Hi,
Is there a way to detect when a pop up menu is closed? (ie. for when no menu item is selected).
Is there a way to detect when a pop up menu is closed? (ie. for when no menu item is selected).
If( MouseHit( 2 )) Local window:TGadget = CreateWindow("win", 0,0,10,10, Null, WINDOW_HIDDEN | WINDOW_MENU ) Local menu:TGadget = CreateMenu( "Menu", 0, WindowMenu( window )) CreateMenu( "Item 1", 1, menu ) Local done = False ShowMouse() PopupWindowMenu( window, menu ) While Not done WaitEvent Local id = EventID() Local dat = EventData() Select id Case EVENT_MENUACTION Select dat Case 1 Notify("Item 1 clicked") done = True EndSelect EndSelect If( ActiveGadget() <> menu ) Notify( "Menu closed") done = True EndIf Wend FreeGadget( window ) HideMouse() FlushMouse() EndIf
Strict Graphics 640,480 While Not KeyDown(KEY_ESCAPE) Cls DrawText "Right mouse to invoke popup menu", 10,10 Flip If( MouseHit( 2 )) Local window:TGadget = CreateWindow("win", 0,0,10,10, Null, WINDOW_HIDDEN | WINDOW_MENU ) Local menu:TGadget = CreateMenu( "Menu", 0, WindowMenu( window )) CreateMenu( "Item 1", 1, menu ) Local done = False PopupWindowMenu( window, menu ) While Not done WaitEvent Local id = EventID() Local dat = EventData() Select id Case EVENT_MENUACTION Select dat Case 1 Notify("Item 1 clicked") done = True EndSelect EndSelect Wend FreeGadget( window ) FlushMouse() EndIf Wend
Strict Graphics 640,480 While Not KeyDown(KEY_ESCAPE) Cls DrawText "Right mouse to invoke popup menu", 10,10 Flip If( MouseHit( 2 )) Local window:TGadget = CreateWindow("win", 0,0,10,10, Null, WINDOW_HIDDEN | WINDOW_MENU ) Local menu:TGadget = CreateMenu( "Menu", 0, WindowMenu( window )) CreateMenu( "Item 1", 1, menu ) CreateMenu( "Item 2", 2, menu ) CreateMenu( "Item 3", 3, menu ) CreateMenu( "Item 4", 4, menu ) PopupWindowMenu( window, menu ) Local nEvents = 0 While PollEvent() Select CurrentEvent.id Case EVENT_MENUACTION Select EventData() Case 1 DebugLog("Item 1 clicked") Case 2 DebugLog("Item 2 clicked") Case 3 DebugLog("Item 3 clicked") Case 4 DebugLog("Item 4 clicked") EndSelect EndSelect Wend FreeGadget( window ) FlushMouse() EndIf Wend