Seite 14 von 16

Re: TabBarGadget - Tabs wie im Browser

Verfasst: 29.10.2013 02:49
von STARGÅTE
RomanR hat geschrieben:wäre es möglich, ein RightClick-Event zu bekommen?
Das ist bereits möglich, und ich habe in der Hilfe auch ein Beispiel gegeben:
http://www.unionbytes.de/help/tabbargad ... tType.html
Hier fehlt allerdings (wie ich gerade sehe) der Hinweis darauf, dass EventType() auch die normalen Events zurück gibt.

Mit EventType() können auch alle anderen ganz normalen PB-Events abgefragt werden, also auch Right-Click.
Danach kannst du mit GetTabBarGadgetItemPosition(#Gadget, #TabBarGadgetItem_Event) ermitteln, auf welchem Tab/Item das EVent stattfand, und dementsprechend handeln.

Re: TabBarGadget - Tabs wie im Browser

Verfasst: 30.10.2013 22:30
von RomanR
Genial - vielen Dank (hab ich doch glatt übersehen) :D

Ich muß sagen, das TabBarGadget gefällt mir immer besser :bounce:

Re: TabBarGadget - Tabs wie im Browser

Verfasst: 15.03.2014 14:49
von NicTheQuick
Ist es damit auch möglich ein Tab von einem TabBarGadget zu einem anderen zu verschieben? Das könnte ich nämlich gerade gut gebrauchen.
Vielleicht kann man das ja über Drag'n'Drop-Events lösen?

Re: TabBarGadget - Tabs wie im Browser

Verfasst: 15.03.2014 15:53
von STARGÅTE
Also EnableGadgetDrop() mit #PB_Event_GadgetDrop ist auf ein TabBarGadget (wie auf andere Gadgets auch) anwendbar.
Ich zB habe so #PB_Drop_Files aktiviert, um Dateien in die Leiste zu ziehen, die dann geöffnet werden.

Und eigentlich kannst du auch mit "EventType() = #PB_EventType_DragStart" ein Event starten, aber ich habe gerade festgestellt, dass diese Event garnicht gesendet wird.

Allerdings kommt dann ein Problem dazu, dass während des Drag, das TabBarGadget "einfriert", vermutlich weil ich dann ein DropCallback brauche.
Wenns zB darum geht, dass das Tab dann auch "durch die Luft schwebt" müsste ich natürlich noch etwas mehr programmieren.

Wie genau soll deine Anwendung denn aussehen?

Re: TabBarGadget - Tabs wie im Browser

Verfasst: 15.03.2014 16:15
von NicTheQuick
Ich will eine vergleichbare Funktionalität hinkriegen wie es z.B. Eclipse macht. Da gibt es sozusagen mehrere PanelGadgets und man kann die Tabs von jedem PanelGadget in ein anderes PanelGadget schieben, damit man sich so die Oberfläche individuell anpassen kann.

Re: TabBarGadget - Tabs wie im Browser

Verfasst: 15.03.2014 16:21
von RSBasic
Ist z.B. bei Firefox auch so. Wenn du mehrere Firefox-Fenster hast, dann kannst du einzelne Tabs in ein anderes FF-Fenster verschieben. Bei Firefox gibt es keine zusätzliche Animation beim Verschieben, sondern lediglich ein Pfeilsymbol, damit der Benutzer sieht, wohin der verschiebende Tab eingefügt wird:
Bild

Re: TabBarGadget - Tabs wie im Browser

Verfasst: 15.03.2014 16:54
von STARGÅTE
Oke, das sind jetzt aber zwei verschiedene Sachen:

Das eine ist ja innerhalb einer Anwendung zwischen mehreren Gadgets, das kann ich auch leicht ohne Drag&Drop lösen (was in dem fall von NicTheQuick dann einfacher wäre).
Das andere wäre Anwendungsübergreifend, also muss ich dort Drag&Drop nutzen.

Re: TabBarGadget - Tabs wie im Browser

Verfasst: 15.03.2014 17:00
von NicTheQuick
Bei mir wäre es nicht anwendungsübergreifend, höchstens eben fensterübergreifend innerhalb des selben Prozesses.

Re: TabBarGadget - Tabs wie im Browser

Verfasst: 15.03.2014 17:37
von STARGÅTE
Ich werde mich damit befassen, kann aber keine Aussage darüber geben, ob/wann es implimentiert ist.

Re: TabBarGadget - Tabs wie im Browser

Verfasst: 17.03.2014 02:24
von NicTheQuick
Ich würde mich über noch was freuen.

Erstens mal, dass man das ganze Teil als Modul nutzen kann. Und dann wäre es toll, wenn es unabhängig von der WindowID wäre. Wie ich sehe wird die WindowID nur für PostEvent verwendet. Callbacks fände ich schöner, aber ich verstehe auch, dass du es möglichst PureBasic-treu halten willst. Bei mir werden später aber sowieso alle Events mit 'BindGadgetEvent()' abgefangen. Vielleicht könnte man das auch optional machen? Oder ich baue es schnell selbst ein, aber wenn du dann wieder Updates machst, wird es schwierig das dann wieder zu mergen.