Repeat; WaitEvent() ; Forever
Repeat;WaitSystem();Forever
Function CloseProgram() Select Proceed("Are you sure you want to quit?") Case 1 End Case 0,- 1 Return EndSelectEndFunction
Function MainHook:Object(id:Int,data:Object,context:Object) Local event:TEvent=TEvent(data) If Not event Then Return data Select event.id Case EVENT_WINDOWCLOSE Select event.source Case MainWindow CloseProgram() EndSelect End Select Return dataEndFunction
Function MenuHook:Object(id:Int,data:Object,context:Object) Local event:TEvent=TEvent(data) If Not event Then Return data Select event.id Case EVENT_MENUACTION Select GadgetText(TGadget(event.source)) Case "Exit" CloseProgram() EndSelect End Select Return dataEndFunction
SuperStrictFramework Maxgui.Drivers'Import brl.eventqueueAppTitle=StripAll(AppFile)Global MainWindow:TGadgetMainWindow=CreateWindow(AppTitle,100,100,640,480,Null,WINDOW_TITLEBAR|WINDOW_STATUS|WINDOW_MENU|WINDOW_CLIENTCOORDS)Local root:TGadgetLocal menu:TGadgetroot=WindowMenu(MainWindow)menu=CreateMenu("File",0,root)CreateMenu("Open",0,menu,KEY_O,MODIFIER_COMMAND)CreateMenu("Save",0,menu)CreateMenu("",0,menu)CreateMenu("Exit",0,menu)UpdateWindowMenu(MainWindow)AddHook EmitEventHook,MainHookAddHook EmitEventHook,MenuHookRepeat;WaitSystem();ForeverFunction MainHook:Object(id:Int,data:Object,context:Object) Local event:TEvent=TEvent(data) If Not event Then Return data Select event.id Case EVENT_WINDOWCLOSE Select event.source Case MainWindow CloseProgram() EndSelect End Select Return dataEndFunctionFunction MenuHook:Object(id:Int,data:Object,context:Object) Local event:TEvent=TEvent(data) If Not event Then Return data Select event.id Case EVENT_MENUACTION Select GadgetText(TGadget(event.source)) Case "Exit" CloseProgram() EndSelect End Select Return dataEndFunctionFunction CloseProgram() Select Confirm("Are you sure you want to quit?") Case 1 End Case 0,- 1 Return EndSelectEndFunction