Child Windows (MaxGui)

BlitzMax Forums/BlitzMax Programming/Child Windows (MaxGui)

OK....been playin with code from another post and i can make a second window appear thats always in front. however it requires me to click the menu option twice to get the menu to appear in the first place:


Type TNWorderWin

Field Window:TGadget = CreateWindow("new window",0,0,640,480,Null,WINDOW_TITLEBAR|WINDOW_STATUS|WINDOW_MENU)
Field RegWin:TGadget
Field FileMnu:TGadget = CreateMenu ("&File",0,WindowMenu(window))
Field HelpMnu:TGadget = CreateMenu ("&Help",0,WindowMenu(window))

Method New()
CreateMenu("&About",101,HelpMnu)
CreateMenu("&Register",102,FileMnu,KEY_R,MODIFIER_COMMAND)
CreateMenu("&Exit",103,FileMnu,KEY_E,MODIFIER_COMMAND)
AddHook EmitEventHook,eventhook,Self
UpdateWindowMenu Window
EndMethod

Function eventhook:Object(id:Int,data:Object,context:Object)
If TNWorderWin(context) Then TNWorderWin(context).OnEvent TEvent(data)
Return data
EndFunction

Method Delete()
RemoveHook EmitEventHook,eventhook
FreeGadget(window)
EndMethod

Method OnEvent(event:TEvent)
Select event.id
Case EVENT_WINDOWCLOSE
Select Event.Source
Case window
FreeGadget(window)
End
Case RegWin
FreeGadget (RegWin)
End Select

Case EVENT_GADGETACTION
Select Event.Source

EndSelect
Case EVENT_GADGETPAINT
Select Event.Source

EndSelect
Case EVENT_MENUACTION
Select EventData()
Case 103
End
Case 101
RegWin = CreateWindow("Register",0,0,320,240,Window,WINDOW_TITLEBAR)
ActivateGadget RegWin
EndSelect

EndSelect
EndMethod

EndType


Global App:TNWorderWin= New TNWorderWin

While True
WaitEvent()
Wend