Detect when i Press right click on a tree view node with mouse

Started by Hardcoal, February 28, 2023, 11:45:06

Previous topic - Next topic

Hardcoal

Hi. Im trying to open a mouse right click menu when i press a tree view node..
and also so this tree view node be selected..

how do I do that?

thank you
Code

Sinjin

You mean like so?
global window:tgadget=createwindow("Treemenu",0,0,200,200)
global tree:tgadget=createtreeview(0,0,200,200,window)
global root:tgadget=treeviewroot(tree)
addtreeviewnode "Test 1",root
addtreeviewnode "Test 2",root
addtreeviewnode "Test 3",tgadget(root.kids.valueatindex(1))
expandtreeviewnode tgadget(root.kids.valueatindex(1))

global menu:tgadget=createmenu("",0,null)
global menu1:tgadget=createmenu("Test 0",1,menu)
updatewindowmenu menu

repeat
  waitevent
  select currentevent.source
  case window
    select currentevent.id
    case event_windowclose
      end
    endselect
  case tree
    select currentevent.id
    case event_gadgetmenu
      setmenutext menu1,gadgettext(selectedtreeviewnode(tree))
      popupwindowmenu window,menu
    endselect
  endselect
forever

Although I have a little bug there, I need to click left on a node first, otherwise selectedtreeviewnode is not updated.

Midimaster

You missed one line:

Repeat
  ...
  Case tree
     Select CurrentEvent.id
        Case event_gadgetmenu
           Print GadgetText(Tgadget(EventExtra()))
           ' this is also necessary:
           SelectTreeViewNode Tgadget(EventExtra())
           '
           SetMenuText menu1,GadgetText(SelectedTreeViewNode(tree))
           PopupWindowMenu window,menu
     EndSelect
  EndSelect
Forever
...back from Egypt