X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Ffreeglut_internal.h;h=40045906e097303d54bbc0f1a865cffa2b04aacd;hb=c969a6321bc21d80fd9b993a6355e84f1bc880b8;hp=5b23df1659c2d99109d4773022f8606637737dd4;hpb=ad3f311251e5807c63169e1a4ad059f693bfcd0b;p=freeglut diff --git a/src/freeglut_internal.h b/src/freeglut_internal.h index 5b23df1..4004590 100644 --- a/src/freeglut_internal.h +++ b/src/freeglut_internal.h @@ -28,6 +28,10 @@ #ifndef FREEGLUT_INTERNAL_H #define FREEGLUT_INTERNAL_H +#if HAVE_CONFIG_H +# include "config.h" +#endif + /* XXX Update these for each release! */ #define VERSION_MAJOR 2 #define VERSION_MINOR 2 @@ -69,11 +73,21 @@ #include #include #include -#include -#include -#if TARGET_HOST_UNIX_X11 -#include -#include +#if HAVE_SYS_TYPES_H +# include +#endif +#if HAVE_UNISTD_H +# include +#endif +#if TIME_WITH_SYS_TIME +# include +# include +#else +# if HAVE_SYS_TIME_H +# include +# else +# include +# endif #endif /* The system-dependant include files should go here: */ @@ -367,7 +381,7 @@ do \ { \ if( FETCH_WCB( window, cbname ) != func ) \ (((window).CallBacks[CB_ ## cbname]) = (void *) func); \ -} while( 0 ) \ +} while( 0 ) /* * FETCH_WCB() is used as: @@ -634,7 +648,26 @@ extern SFG_State fgState; * A call to this function makes us sure that the Display and Structure * subsystems have been properly initialized and are ready to be used */ -#define freeglut_assert_ready assert( fgState.Initialised ); +#define FREEGLUT_EXIT_IF_NOT_INITIALISED( string ) \ + if ( ! fgState.Initialised ) \ + { \ + fgError ( " ERROR: Function <%s> called" \ + " without first calling 'glutInit'.", (string) ) ; \ + } + +#define FREEGLUT_INTERNAL_ERROR_EXIT_IF_NOT_INITIALISED( string ) \ + if ( ! fgState.Initialised ) \ + { \ + fgError ( " ERROR: Internal <%s> function called" \ + " without first calling 'glutInit'.", (string) ) ; \ + } + +#define FREEGLUT_INTERNAL_ERROR_EXIT( cond, string, function ) \ + if ( ! ( cond ) ) \ + { \ + fgError ( " ERROR: Internal error <%s> in function %s", \ + (string), (function) ) ; \ + } /* * Following definitions are somewhat similiar to GLib's, @@ -649,9 +682,8 @@ extern SFG_State fgState; /* * A call to those macros assures us that there is a current - * window and menu set, respectively: + * window set, respectively: */ -#define freeglut_assert_menu assert( fgStructure.Menu != NULL ); #define FREEGLUT_EXIT_IF_NO_WINDOW( string ) \ if ( ! fgStructure.Window ) \ { \ @@ -760,8 +792,8 @@ SFG_Menu* fgMenuByID( int menuID ); * of the menu user interface handling code... */ void fgActivateMenu( SFG_Window* window, int button ); -void fgExecuteMenuCallback( SFG_Menu* menu ); -GLboolean fgCheckActiveMenu ( SFG_Window *window, SFG_Menu *menu ); +GLboolean fgCheckActiveMenu ( SFG_Window *window, int button, GLboolean pressed, + int mouse_x, int mouse_y ); void fgDeactivateMenu( SFG_Window *window ); void fgDeactivateSubMenu( SFG_MenuEntry *menuEntry );