X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Ffreeglut_structure.c;h=8708d2bf8def8bfcc6d41fec83f89821bbd17efe;hb=01b5b38f3170ff5372df2f17037162220dc70ffe;hp=353bb038f9e5aae701e35f4274f0fd4cf7a7ab4c;hpb=453e9bfabcaa1885f602129d9f775e23b6ef9cd3;p=freeglut diff --git a/src/freeglut_structure.c b/src/freeglut_structure.c index 353bb03..8708d2b 100644 --- a/src/freeglut_structure.c +++ b/src/freeglut_structure.c @@ -29,8 +29,6 @@ #include "config.h" #endif -#define G_LOG_DOMAIN "freeglut-structure" - #include "../include/GL/freeglut.h" #include "freeglut_internal.h" @@ -111,7 +109,7 @@ SFG_Window* fgCreateWindow( SFG_Window* parent, const char* title, /* * This private function creates a menu and adds it to the menus list */ -SFG_Menu* fgCreateMenu( FGCBmenu menuCallback ) +SFG_Menu* fgCreateMenu( FGCBMenu menuCallback ) { int x = 100, y = 100, w = 100, h = 100 ; SFG_Window *current_window = fgStructure.Window ; @@ -268,11 +266,15 @@ void fgDestroyWindow( SFG_Window* window, GLboolean needToClose ) while ( (subWindow = (SFG_Window *)window->Children.First) != NULL ) fgDestroyWindow( subWindow, needToClose ); - if ( window->Callbacks.Destroy != NULL ) + /* + * XXX Since INVOKE_WCB() tests the function pointer, why not make + * XXX this unconditional? Overhead is close to nil, and it would + * XXX clarify the code by omitting a conditional test. + */ + if ( FETCH_WCB( *window, Destroy ) ) { SFG_Window *activeWindow = fgStructure.Window ; - fgSetWindow ( window ) ; - window->Callbacks.Destroy () ; + INVOKE_WCB( *window, Destroy, ( ) ); fgSetWindow ( activeWindow ) ; } @@ -561,7 +563,7 @@ static void fghcbWindowByID( SFG_Window *window, SFG_Enumerator *enumerator ) /* * Check the window's handle. Hope this works. Looks ugly. That's for sure. */ - if( window->ID == (int) (enumerator->data) ) + if( window->ID == (int) (enumerator->data) ) /* XXX int/ptr conversion! */ { enumerator->found = TRUE; enumerator->data = window; @@ -588,7 +590,7 @@ SFG_Window* fgWindowByID( int windowID ) * Uses a method very similiar for fgWindowByHandle... */ enumerator.found = FALSE; - enumerator.data = (void *) windowID; + enumerator.data = (void *) windowID; /* XXX int/pointer conversion! */ fgEnumWindows( fghcbWindowByID, &enumerator ); if( enumerator.found == TRUE ) return( SFG_Window *) enumerator.data; @@ -608,19 +610,12 @@ SFG_Menu* fgMenuByID( int menuID ) /* * It's enough to check all entries in fgStructure.Menus... */ - for( menu = (SFG_Menu *)fgStructure.Menus.First; menu; menu = (SFG_Menu *)menu->Node.Next ) - { - /* - * Does the ID number match? - */ + for( menu = (SFG_Menu *)fgStructure.Menus.First; + menu; + menu = (SFG_Menu *)menu->Node.Next ) if( menu->ID == menuID ) - return( menu ); - } - - /* - * We have not found the requested menu ID - */ - return( NULL ); + return menu; + return NULL; } /* @@ -673,7 +668,7 @@ int fgListLength(SFG_List *list) for( node = (SFG_Node *)list->First; node; node = (SFG_Node *)node->Next ) ++length; - return( length ); + return length; } /*** END OF FILE ***/