Seite 1 von 1

[gelöst] Wurde ein Treegadget-Eintrag eingeklappt ?

Verfasst: 23.01.2008 01:08
von scholly
moin, moin...

(Wie) Kann man feststellen, ob ein LeftKlick auf ein TreeGadget (#PB_EventType_LeftClick) dazu führt bzw geführt hat, daß das Darunterliegende einklappt?

Hintergrund:
Beim Aufklappen will ich eine Aktion auslösen,
beim Einklappen will ich verhindern, daß diese Aktion wieder stattfindet.

Oder andersherum:
(Wie) Kann man unterscheiden, ob auf den Eintrag (z.B "Generes") oder den dazugehörigen Knoten geklickt wurde ?

mDv... scholly

Verfasst: 23.01.2008 01:51
von STARGÅTE
indem du nach einem EventType() deinen MausKlick abfragst welchen Status das aktuelle Item hat:
GetGadgetItemState()
#PB_Tree_Selected : Der Eintrag ist ausgewählt, andernfalls 0.
#PB_Tree_Expanded : Der Eintrag ist ausgeklappt (ein "Baum"-Eintrag ist geöffnet), andernfalls 0.
#PB_Tree_Collapsed : Der Eintrag ist nicht ausgeklappt.
#PB_Tree_Checked : Das Häkchen bei einem Eintrag ist gesetzt, andernfalls 0. (nur mit #PB_Tree_CheckBoxes Flag)

also bei dir dann so:
If EventType() = #PB_EventType_LeftClick
 If GetGadgetItemState(#Gadget, GetGadgetState(#Gadget)) & #PB_Tree_Expanded
  ; Eintrag gerade ausgeklappt worden
 ElseIf GetGadgetItemState(#Gadget, GetGadgetState(#Gadget)) & #PB_Tree_Collapsed
  ; Eintrag gerade eingeklappt worden
 EndIf
EndIf

Verfasst: 23.01.2008 01:57
von scholly
ARGLLLLL.... >_<

:iamwithstupid: Wieder falsch gesucht

:allright: , STARGÅTE

Verfasst: 23.01.2008 03:15
von NicTheQuick
Das funktioniert allerdings unter Linux nicht, weil ein Eintrag nicht
automatisch den Fokus erhält, wenn man ihn auf- oder zuklappt.
Also 'GetGadgetState()' ändert sich nicht, wenn man auf das + oder - klickt.