joystick:
[freeglut] / src / fg_internal.h
index a0b563b..25de1db 100644 (file)
 /* Freeglut callbacks type definitions */
 typedef void (* FGCBDisplay       )( void );
 typedef void (* FGCBReshape       )( int, int );
+typedef void (* FGCBPosition      )( int, int );
 typedef void (* FGCBVisibility    )( int );
 typedef void (* FGCBKeyboard      )( unsigned char, int, int );
+typedef void (* FGCBKeyboardUp    )( unsigned char, int, int );
 typedef void (* FGCBSpecial       )( int, int, int );
+typedef void (* FGCBSpecialUp     )( int, int, int );
 typedef void (* FGCBMouse         )( int, int, int, int );
 typedef void (* FGCBMouseWheel    )( int, int, int, int );
 typedef void (* FGCBMotion        )( int, int );
 typedef void (* FGCBPassive       )( int, int );
 typedef void (* FGCBEntry         )( int );
 typedef void (* FGCBWindowStatus  )( int );
-typedef void (* FGCBSelect        )( int, int, int );
 typedef void (* FGCBJoystick      )( unsigned int, int, int, int );
-typedef void (* FGCBKeyboardUp    )( unsigned char, int, int );
-typedef void (* FGCBSpecialUp     )( int, int, int );
 typedef void (* FGCBOverlayDisplay)( void );
 typedef void (* FGCBSpaceMotion   )( int, int, int );
 typedef void (* FGCBSpaceRotation )( int, int, int );
@@ -212,7 +212,7 @@ typedef void (* FGCBDials         )( int, int );
 typedef void (* FGCBButtonBox     )( int, int );
 typedef void (* FGCBTabletMotion  )( int, int );
 typedef void (* FGCBTabletButton  )( int, int, int, int );
-typedef void (* FGCBDestroy       )( void );
+typedef void (* FGCBDestroy       )( void );    /* Used for both window and menu destroy callbacks */
 
 typedef void (* FGCBMultiEntry   )( int, int );
 typedef void (* FGCBMultiButton  )( int, int, int, int, int );
@@ -316,7 +316,7 @@ struct tagSFG_State
     fgExecutionState ExecState;           /* Used for GLUT termination       */
     char            *ProgramName;         /* Name of the invoking program    */
     GLboolean        JoysticksInitialised;  /* Only initialize if application calls for them */
-    int              NumActiveJoysticks;    /* Number of active joysticks -- if zero, don't poll joysticks */
+    int              NumActiveJoysticks;    /* Number of active joysticks (callback defined and positive pollrate) -- if zero, don't poll joysticks */
     GLboolean        InputDevsInitialised;  /* Only initialize if application calls for them */
 
        int              MouseWheelTicks;      /* Number of ticks the mouse wheel has turned */
@@ -383,7 +383,7 @@ struct tagSFG_WindowState
     int             Width;              /* Window's width in pixels          */
     int             Height;             /* The same about the height         */
 
-       SFG_PlatformWindowState pWState;    /* Window width/height (X11) or rectangle/style (Windows) from before a resize */
+       SFG_PlatformWindowState pWState;    /* Window width/height (X11) or rectangle/style (Windows) from before a resize, and other stuff only needed on specific platforms */
 
     GLboolean       Redisplay;          /* Do we have to redisplay?          */
     GLboolean       Visible;            /* Is the window visible now         */
@@ -512,6 +512,7 @@ enum
 {
     WCB_Display,
     WCB_Reshape,
+    WCB_Position,
     WCB_Keyboard,
     WCB_KeyboardUp,
     WCB_Special,
@@ -643,8 +644,8 @@ struct tagSFG_Structure
 
     SFG_Window*      GameModeWindow; /* The game mode window               */
 
-    int              WindowID;       /* The new current window ID          */
-    int              MenuID;         /* The new current menu ID            */
+    int              WindowID;       /* The window ID for the next window to be created */
+    int              MenuID;         /* The menu ID for the next menu to be created */
 };
 
 /*