void GUImain( void ) { GUIMemOpen(); GUIWndInit( 300, GUI_GMOUSE ); GUISetScale( &Scale ); Child.parent = GUICreateWindow( &Parent ); GUICreateWindow( &Child ); }
bool GUIWndInit( unsigned DClickInterval, gui_window_styles style ) { GUIMemOpen(); Style = style; GUISysInit( 0 ); _wpi_setdoubleclicktime( DClickInterval ); GUISetScreen( 0, 0, _wpi_getsystemmetrics( SM_CXSCREEN ), _wpi_getsystemmetrics( SM_CYSCREEN ) ); GUIInitDialog(); return( TRUE ); }
extern void GUImain( void ) /*************************/ { int argc = 0; char **argv = NULL; char *dir; char *drive; char *inf_name; char *tmp_path; char *arc_name; char *new_inf; char current_dir[_MAX_PATH]; bool ret = FALSE; dlg_state state; GUIMemOpen(); GUIGetArgs( &argv, &argc ); #if defined( __NT__ ) if( CheckWin95Uninstall( argc, argv ) ) return; #endif #ifdef __WINDOWS__ if( CheckForSetup32( argc, argv ) ) return; #endif // initialize paths and env. vbls. if( !SetupPreInit() ) return; if( !GetDirParams( argc, argv, &inf_name, &tmp_path, &arc_name ) ) return; if( !SetupInit() ) return; GUIDrainEvents(); // push things along FileInit( arc_name ); InitGlobalVarList(); strcpy( current_dir, tmp_path ); while( InitInfo( inf_name, tmp_path ) ) { ret = DoMainLoop( &state ); if( state == DLG_DONE ) break; // if( CancelSetup == TRUE || !ret ) break; if( CancelSetup == TRUE ) break; // if( !ret ) break; // look for another SETUP.INF if( GetVariableByName( "SetupPath" ) == NO_VAR ) { if( DirParamStack( &inf_name, &tmp_path, Stack_IsEmpty ) == FALSE ) { // "IsEmpty"? DirParamStack( &inf_name, &tmp_path, Stack_Pop ); // "Pop" CloseDownMessage( ret ); CancelSetup = FALSE; ret = TRUE; } else { CloseDownMessage( ret ); break; } } else { if( GetVariableIntVal( "IsMultiInstall" ) ) { // push current script on stack DirParamStack( &inf_name, &tmp_path, Stack_Push ); // "Push" } new_inf = GUIMemAlloc( _MAX_PATH ); drive = GUIMemAlloc( _MAX_DRIVE ); dir = GUIMemAlloc( _MAX_PATH ); if( new_inf == NULL || drive == NULL || dir == NULL ) { GUIMemFree( new_inf ); GUIMemFree( drive ); GUIMemFree( dir ); break; } // construct new path relative to previous ReplaceVars( new_inf, GetVariableStrVal( "SetupPath" ) ); _splitpath( current_dir, drive, dir, NULL, NULL ); _makepath( inf_name, drive, dir, new_inf, NULL ); _splitpath( inf_name, drive, dir, NULL, NULL ); _makepath( tmp_path, drive, dir, NULL, NULL ); // strcpy( current_dir, tmp_path ); GUIMemFree( new_inf ); GUIMemFree( drive ); GUIMemFree( dir ); } /* if */ FreeGlobalVarList( FALSE ); FreeDefaultDialogs(); FreeAllStructs(); ConfigModified = FALSE; } /* while */ FileFini(); FreeGlobalVarList( TRUE ); FreeDefaultDialogs(); FreeAllStructs(); FreeDirParams( &inf_name, &tmp_path, &arc_name ); CloseDownProgram(); }
int GUIXMain( int argc, char *argv[] ) { bool ok; int ret; bool register_done; HAB inst; inst = WinInitialize( 0 ); if( !inst ) { return( 0 ); } GUIPMmq = WinCreateMsgQueue( inst, 0 ); if( !GUIPMmq ) { return( 0 ); } register_done = FALSE; #else int GUIXMain( int argc, char *argv[], WPI_INST inst, WPI_INST hPrevInstance, LPSTR lpCmdLine, int nShowCmd ) { bool ok; int ret; bool register_done; ret = 0; lpCmdLine = lpCmdLine; nShowCmd = nShowCmd; register_done = ( hPrevInstance != 0 ); FirstInstance = ( hPrevInstance == 0 ); #endif GUIMainTouched = TRUE; GUIStoreArgs( argv, argc ); _wpi_setwpiinst( inst, 0, &GUIMainHInst ); memcpy( &GUIResHInst, &GUIMainHInst, sizeof( WPI_INST ) ) ; ok = TRUE; GUISetWindowClassName(); GUIMemOpen(); ok = GUIFirstCrack(); if( ok ) { if( !register_done ) { ok = SetupClass(); } } if( ok ) { ok = GUILoadStrInit( argv[0] ); } if( ok ) { ok = GUIInitInternalStringTable(); } if( ok ) { GUIInitGUIMenuHint(); GUImain(); } if( GUIGetFront() == NULL && !Posted ) { /* no windows created */ _wpi_postquitmessage( 0 ); } if( NumWindows ) { ret = GUIWinMessageLoop(); } #ifdef __OS2_PM__ WinDestroyMsgQueue( GUIPMmq ); WinTerminate( inst ); #endif GUICleanup(); GUIDead(); GUIMemClose(); return( ret ); }