EventSource() and EVENT_GADGETMENU

BlitzMax Forums/BlitzMax Programming/EventSource() and EVENT_GADGETMENU

The forum is locked. These are the original blitzbasic.com forums, kept so they can still be read. No new topics, replies or edits can be made here. To join in, head over to the Blitz3D+ forums.

Here is the simple example






' a window
Local win:TGadget = CreateWindow("Project File Example",100,100,400,400,0,WINDOW_TITLEBAR|WINDOW_RESIZABLE|WINDOW_MENU|WINDOW_STATUS|WINDOW_CLIENTCOORDS|WINDOW_ACCEPTFILES)

' create a text area and treeview
Local TextArea:tGadget = CreateTextArea ((ClientWidth(win)/2)+5, 0, (ClientWidth(win)/2)-10, ClientHeight(win), win)


Local TreeView:tGadget = CreateTreeView (0,0,(ClientWidth(win)/2),ClientHeight(win),win)

Local root:TGadget = TreeViewRoot(TreeView)
Local tvHelp:TGadget = AddTreeViewNode("Help",root,1)
Local tvHelp_t1:TGadget = AddTreeViewNode( "topic 1",tvhelp)
Local tvHelp_t2:TGadget = AddTreeViewNode( "topic 2",tvhelp)
Local tvHelp_t3:TGadget = AddTreeViewNode( "topic 3",tvhelp)



' a right click menu for the tree view
Local TVMenu:tGadget = CreateMenu ("TVMENU",101,TreeView)

Local TVMenu_Open:tGadget = CreateMenu ("Open Tree View", 102, TVMenu)
Local TVMenu_Close:tGadget = CreateMenu ("Close Tree View", 103, TVMenu)

' a right click menu for the tree view
Local TAMenu:tGadget = CreateMenu ("TAMENU",108,TextArea)

Local TAMenu_Open:tGadget = CreateMenu ("Open Text Area", 109, TAMenu)
Local TAMenu_Close:tGadget = CreateMenu ("Close Text Area", 110, TAMenu)



' Main loop
While WaitEvent()

	Select EventID()
		Case EVENT_WINDOWCLOSE
			End
		
		Case EVENT_GADGETMENU
			Select EventSource()
				Case TreeView
					' will not work on Mac. Works fine on PC <------------------------------------------
					PopupWindowMenu (TreeView, TVMenu)
									
				Case TextArea
					PopupWindowMenu (TextArea, TAMenu)
					
			End Select
		
		Case EVENT_MENUACTION
			Select EventData()
				Case 101
					Notify "TV Menu"
					
				Case 102
					Notify "Open TV"
					
				Case 103
					Notify "Close TV"
					
				Case 108
					Notify "TA Menu"
					
				Case 109
					' here is a demo of event source for menu items
					If EventSource() = TAMenu_Open Then
						' Will get this on MAC <----------------------------------------------------
						Notify "TA Open:  Source = This menu item"
					Else
						' Will get this on PC <----------------------------------------------------
						Notify "TA Open: Source =  NOT this menu item"
					End If
					
				Case 110
					Notify "TA CLose"
					
			End Select
		
			
	End Select

Wend