TabBarGadget - Tabs wie im Browser

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 6996
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: TabBarGadget - Tabs wie im Browser

Beitrag 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.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
RomanR
Beiträge: 23
Registriert: 21.04.2006 13:43
Wohnort: Eisenstadt

Re: TabBarGadget - Tabs wie im Browser

Beitrag von RomanR »

Genial - vielen Dank (hab ich doch glatt übersehen) :D

Ich muß sagen, das TabBarGadget gefällt mir immer besser :bounce:
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8675
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: TabBarGadget - Tabs wie im Browser

Beitrag 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?
Bild
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 6996
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: TabBarGadget - Tabs wie im Browser

Beitrag 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?
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8675
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: TabBarGadget - Tabs wie im Browser

Beitrag 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.
Bild
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: TabBarGadget - Tabs wie im Browser

Beitrag 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
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 6996
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: TabBarGadget - Tabs wie im Browser

Beitrag 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.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8675
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: TabBarGadget - Tabs wie im Browser

Beitrag von NicTheQuick »

Bei mir wäre es nicht anwendungsübergreifend, höchstens eben fensterübergreifend innerhalb des selben Prozesses.
Bild
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 6996
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: TabBarGadget - Tabs wie im Browser

Beitrag von STARGÅTE »

Ich werde mich damit befassen, kann aber keine Aussage darüber geben, ob/wann es implimentiert ist.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8675
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: TabBarGadget - Tabs wie im Browser

Beitrag 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.
Bild
Antworten