[GELÖST] MaxGUI - Auf TreeView Mausaktion abfragen?

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

 

CO2

ehemals "SirMO"

Betreff: [GELÖST] MaxGUI - Auf TreeView Mausaktion abfragen?

BeitragDi, Jun 12, 2012 19:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
ich habe ein Problem mit der MaxGUI: Ich habe einen TreeView erstellt. Nun frage ich in der Hauptschleife ab, ob auf dem TreeView die rechte Maustaste geklickt wird, wenn ja, soll ein popupmenü erscheinen.
Ich weiß, dass es beim TreeView einen style-Parameter gibt, nur weiß ich nicht, ob man hier auch sowas wie bei einem Panel machen muss (PANEL_ACTIVE).
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti
  • Zuletzt bearbeitet von CO2 am Fr, Jun 15, 2012 9:46, insgesamt einmal bearbeitet
 

jsp

BeitragDi, Jun 12, 2012 22:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein, ein Treeview hat nur Drag and Drop als Style.
Logic Gui Professional a Gui Designer for MaxGui
 

CO2

ehemals "SirMO"

BeitragMi, Jun 13, 2012 17:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok, aber ich kann doch den rechten mausklick abfragen, wenn der benutzer auf ein Objekt in der treeview klick, oder nicht?

Und ich habe da noch ein Problem mit dem Treeview: Der Benutzer kann später weitere Objekte in der TreeView erstellen, allerdings gibt es dann auch objekte, die wiederrum weitere objekte enthalten können. Wie kann ich denen denn dann das eine etage höher liegende objekt zuweisen? (Ich hoffe man kann das problem verstehen Very Happy)
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti

blackgecko

BeitragDo, Jun 14, 2012 0:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du eine Node einfügst (mit Add- oder InsertTreeviewNode) dann musst du die Node, die eine Etage höher liegt, als Parameter mitgeben.
Rechte Mausklicks abfragen geht mit EVENT_GADGETMENU.
So long and thanks for all the fish.
Fedora 17 | Windows 7 || BlitzPlus | BlitzMax
Rechtschreibflame GO!!! Deppenapostroph | SeidSeit | Deppenakzent | DassDas | Deppenleerzeichen | TodTot | enzigste.info - Ja, ich sammel die.
 

jsp

BeitragDo, Jun 14, 2012 0:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Hier mal ein Beispiel mit Nodes und Unternodes, single, double und right click.
Mit debug compilieren.

Code: [AUSKLAPPEN]
SuperStrict

Import MaxGui.Drivers
Import MaxGui.XPManifest

Global   main_window:TGadget

main_window:TGadget = CreateWindow:TGadget("AppTitle",90,50,189,258,Null,WINDOW_TITLEBAR|WINDOW_MENU |WINDOW_CENTER)
   Local TreeView1:TGadget = CreateTreeView:TGadget(25,21,134,163,main_window:TGadget,Null)

Local Node1:TGadget = AddTreeViewNode( "Node1", TreeViewRoot(Treeview1) )
AddTreeViewNode( "Node1.1", Node1 )
Local Node2:TGadget = AddTreeViewNode( "Node2", TreeViewRoot(Treeview1) )
Local Node22:TGadget = AddTreeViewNode( "Node2.1", Node2 )
AddTreeViewNode( "Node2.2", Node2 )


Repeat
   WaitEvent()
   Select EventID()
      Case EVENT_WINDOWCLOSE
         Select EventSource()
            Case main_window   main_window_WC( main_window:TGadget )
         End Select

      Case EVENT_GADGETACTION
         Select EventSource()
            Case TreeView1   TreeView1_GA( TreeView1:TGadget, EventExtra() )
         End Select

      Case EVENT_GADGETSELECT
         Select EventSource()
            Case TreeView1   TreeView1_GS( TreeView1:TGadget, EventExtra() )
         End Select

      Case EVENT_GADGETMENU
         Select EventSource()
            Case TreeView1   TreeView1_GM( TreeView1:TGadget, EventExtra() , main_window:TGadget )
         End Select

   End Select
Forever

Function main_window_WC( Window:TGadget )
   DebugLog "Window main_window wants to be closed"
   End
End Function

Function TreeView1_GA( TreeView:TGadget , Node:Object )
   DebugLog "TreeView TreeView1 double clicked a Node"
   
End Function

Function TreeView1_GS( TreeView:TGadget , Node:Object )
   DebugLog "TreeView TreeView1 single clicked a Node"
   
End Function

Function TreeView1_GM( TreeView:TGadget , Node:Object , Window:TGadget=Null )
   DebugLog "TreeView TreeView1 right clicked a Node"
   
End Function
Logic Gui Professional a Gui Designer for MaxGui
 

CO2

ehemals "SirMO"

BeitragDo, Jun 14, 2012 15:05
Antworten mit Zitat
Benutzer-Profile anzeigen
@ blackgecko:
Also kann ich es nicht so machen, dass der Benutzer z.B.: Erst Auf "Neues Item erstellen" klickt und dann diesem Item noch ein Unter-Item hinzufügen kann?

@ jsp:
Danke dir
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti

blackgecko

BeitragDo, Jun 14, 2012 15:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Also kann ich es nicht so machen, dass der Benutzer z.B.: Erst Auf "Neues Item erstellen" klickt und dann diesem Item noch ein Unter-Item hinzufügen kann?

Natürlich. Ein Treeview kann beliebig tief verschachtelt sein.
Oder versteh ich dich falsch?
So long and thanks for all the fish.
Fedora 17 | Windows 7 || BlitzPlus | BlitzMax
Rechtschreibflame GO!!! Deppenapostroph | SeidSeit | Deppenakzent | DassDas | Deppenleerzeichen | TodTot | enzigste.info - Ja, ich sammel die.
 

jsp

BeitragDo, Jun 14, 2012 15:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielleicht solltest du noch mal genau beschreiben was dabei herauskommen soll, dann ist es vielleicht einfacher zu helfen.

Hier das obige Beispiel abgeändert um ein zusätzliches popup Menü und das anhängen von extra Nodes.
Einfach ein Node anwählen und dann rechte Maustaste "Neu" im Popup-Menü ...
Code: [AUSKLAPPEN]
SuperStrict

Import MaxGui.Drivers
Import MaxGui.XPManifest

Global   main_window:TGadget
Global   TreeView1:TGadget

main_window:TGadget = CreateWindow:TGadget("AppTitle",90,50,189,258,Null,WINDOW_TITLEBAR|WINDOW_MENU |WINDOW_CENTER)
   TreeView1:TGadget = CreateTreeView:TGadget(25,21,134,163,main_window:TGadget,Null)
      Local TreeView1_PopUpMenu:TGadget = CreateMenu( "" , 0 , Null )
         Local TreeView1_PopUpMenu_NeuerKnoten:TGadget = CreateMenu( "Neu" , 100 , TreeView1_PopUpMenu:TGadget  )

Local Node1:TGadget = AddTreeViewNode( "Node1", TreeViewRoot(Treeview1) )
AddTreeViewNode( "Node1.1", Node1 )
Local Node2:TGadget = AddTreeViewNode( "Node2", TreeViewRoot(Treeview1) )
Local Node22:TGadget = AddTreeViewNode( "Node2.1", Node2 )
AddTreeViewNode( "Node2.2", Node2 )


Repeat
   WaitEvent()
   Select EventID()
      Case EVENT_WINDOWCLOSE
         Select EventSource()
            Case main_window   main_window_WC( main_window:TGadget )
         End Select

      Case EVENT_GADGETACTION
         Select EventSource()
            Case TreeView1   TreeView1_GA( TreeView1:TGadget, EventExtra() )
         End Select

      Case EVENT_GADGETSELECT
         Select EventSource()
            Case TreeView1   TreeView1_GS( TreeView1:TGadget, EventExtra() )
         End Select

      Case EVENT_GADGETMENU
         Select EventSource()
            Case TreeView1   TreeView1_GM( TreeView1:TGadget, EventExtra() , main_window:TGadget , TreeView1_PopUpMenu:TGadget )
         End Select

      Case EVENT_MENUACTION
         Select EventSource()
            'Menu_Events for Gadget = TreeView1_PopUpMenu
            Case TreeView1_PopUpMenu_NeuerKnoten:TGadget   TreeView1_PopUpMenu_NeuerKnoten_MA( TreeView1_PopUpMenu:TGadget , TreeView1_PopUpMenu:TGadget , TreeView1_PopUpMenu_NeuerKnoten:TGadget )
         End Select

   End Select
Forever

Function main_window_WC( Window:TGadget )
   DebugLog "Window main_window wants to be closed"
   End
End Function

Function TreeView1_GA( TreeView:TGadget , Node:Object )
   DebugLog "TreeView TreeView1 double clicked a Node"
   
End Function

Function TreeView1_GS( TreeView:TGadget , Node:Object )
   DebugLog "TreeView TreeView1 single clicked a Node"
   
End Function

Function TreeView1_GM( TreeView:TGadget , Node:Object , Window:TGadget=Null , PopUpMenu:TGadget=Null )
   DebugLog "TreeView TreeView1 right clicked a Node"
    PopupWindowMenu( Window:TGadget , PopUpMenu:TGadget )
   
End Function

Function TreeView1_PopUpMenu_NeuerKnoten_MA( Window:TGadget , Parent:TGadget , Menu:TGadget )
   DebugLog "Menu Neu was selected from Window TreeView1_PopUpMenu"
   Local Node:TGadget = SelectedTreeViewNode( Treeview1 )
   AddTreeViewNode( "xxx",Node)
End Function
Logic Gui Professional a Gui Designer for MaxGui
 

CO2

ehemals "SirMO"

BeitragFr, Jun 15, 2012 9:46
Antworten mit Zitat
Benutzer-Profile anzeigen
@ jsp:
Danke dir, das war die Lösung.
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group