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:

TabBarGadget - Tabs wie im Browser

Beitrag von STARGÅTE »

Das TabBarGadget erstellt eine Leiste mit Registerkarten,
jedoch ohne eigenen Container wie z.B. das PanelGadget.

Bild

Mit verschiedenen Attributen kann das Aussehen der Leiste und der Registerkarten verändert werden,
indem z.B. eine "Schließen"-Schaltfläche hinzugefügt wird.
Die Registerkarten können untereinander einfach durch ziehen mit der Maus vertauscht werden.
Wird eine Karte geschlossen oder eine neue geöffnet, wird ein Ereignis zurück gegeben,
sodass der Programmierer selbst eine Aktion ausführen kann.
Auch wird automatisch eine Navigation angezeigt, wenn zu viele Registerkarten vorhanden sind.

_________________________________________________________________________________________________


Version 1.5 Beta 2 for PB 5.30+
Download: TabBarGadget V 1.5 Beta 2
Online help: TabBarGadget Help (english)

Version 1.3 until PB 5.11
Archive: TabBarGadget.zip (Include, Example and Help)

_________________________________________________________________________________________________

Bild
_________________________________________________________________________________________________

Update 1.5 Beta 2 (6. August 2014)
  • SetTabBarGadgetItemAttribute() and GetTabBarGadgetItemAttribute(): Ändert das Attribute eines einzelnen Tabs, so können nur bestimmte Tabs ChackBoxen bekommen oder Schließen-Buttons.
  • #TabBarGadget_TabTextAlignment: Ändert die Ausrichtung des Textes in der Karte (wenn mehr Platz da ist)
  • #TabBarGadget_SelectedCloseButton: Fügt ein Schließenbutton hinzu, aber nur bei ausgewählten Tabs sichtbar.
  • #TabBarGadget_ReverseOrdering: Ändert die Tab-Reihenfolge zu: "Rechts nach Links", zB für arabische Leisten
  • Eine neue Version der Hilfe als Internet-Version in englisch: http://help.unionbytes.de/tbg/
Bild

Update 1.5 Beta 1 (19. Oktober 2013)
  • Umstellung der Ereignisverwaltung auf PB 5.20 und BindEvent().
    Somit ist kein TabBarGadgetEvent() mehr nötig und Ereignistypen
    können wie woanders mit EventType() abgefragt werden.
  • Beim Erstellen muss nun das Fenster angegeben werde, wo es hinein soll.
  • Einige Konstantennamen haben sich geändert, um PureBasic-Ähnlich zu sein.
  • EventTab() hab ich entfernt um Namenskollision zu vermeiden,
    dafür gibt es nun GetTabBarGadgetItemPosition() und SetTabBarGadgetItemPosition(),
    so können Tabs auch mit einem Befehl verschoben werden.
  • Außerdem wurde die Funktionalität von vertikalen Tabs, Multiselect, Checkboxen und der Navigation verbessert.
  • Das AutoScroll funktioniert aus Sicherheitsgründen nur, wenn ThreadSafe aktiviert ist.
Update 1.4 Beta 3 (1. Juli 2013)
  • Bug-Fix für PB 5.20
  • vertikale Registerkartenleisten nun immer in Leserichtung orientiert (Wunsch von Lord)
  • Tabs mit gedrückter Maus auf Navi-Pfeile durchscrollbar (Wunsch von NicTheQuick)
  • Beim verschieben eines Tabs, scrollt die TabBar automatisch wenn man über Navigation ist.(Wunsch von NicTheQuick)
  • Neues Attribut: #TabBarGadget_CheckBox, zeigt eine kleine CheckBox in jedem Tab an (um zB bestimmte Tabs zu markieren, ohne sie auszuwählen)
Update 1.3 (1. September 2012)
  • Mehrzeilige Regsiterkartenleisten
  • Prozeduren zum Festlegen von ToolTips je Karte und für den Schließenbutton und die "Neu"-Karte
  • Festlegen von minimaler und maximaler Kartenbreite
  • Einige Bugs gefixt, und einige Kleinigkeiten hinzugefügt
Update 1.2 (1. März 2012)
  • Ausführliche Hilfe als *.chm und online
  • Mehr Prozeduren wie SetTabBarGadgetAttribute(), SetTabBarGadgetItemColor(), DisableTabBarGadgetItem()
  • Ein paar neue Attribute: NoTabMoving, MirroredTabs, TabRounding
  • Verbesserungen in der Darstellung von Verschiebung und Navigation
Update 1.1 (Beta) (12. Dez 2011)
  • Viele neue Prozeduren für das Gadget hinzugefügt
  • Optionale Textkürzung bei zu wenig Platz
  • EventTab() für die Benutzung mit EventType() zum ermitteln des Event-Tabs
  • Mausrad-Benutzung bei Navigation
  • ToolTip mit Text für jede Registerkarte
  • Verbesserte (animierte) Darstellung beim verschieben von Karten.
Zuletzt geändert von STARGÅTE am 24.10.2021 22:08, insgesamt 13-mal geändert.
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
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: TabBarGadget - Tabs wie im Browser

Beitrag von RSBasic »

Sehr schön, danke fürs Teilen. Sieht gut aus. :allright:
Wenn man solche Beispiele sieht, ist man echt froh, dass das CanvasGadget eingeführt wurde.^^
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Kiffi
Beiträge: 10621
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: TabBarGadget - Tabs wie im Browser

Beitrag von Kiffi »

Schickischick!

Bild

Danke und Grüße ... Kiffi
Hygge
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: TabBarGadget - Tabs wie im Browser

Beitrag von ts-soft »

:allright:
Is ja man echt geil :D
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
c4s
Beiträge: 1235
Registriert: 19.09.2007 22:18

Re: TabBarGadget - Tabs wie im Browser

Beitrag von c4s »

Sieht klasse aus - Danke!
"Menschenskinder, das Niveau dieses Forums singt schon wieder!" — GronkhLP ||| "ich hogffe ihr könnt den fehle endecken" — Marvin133 ||| "Ideoten gibts ..." — computerfreak ||| "Jup, danke. Gruss" — funkheld
Benutzeravatar
WPö
Moderator
Beiträge: 669
Registriert: 27.05.2008 12:44
Wohnort: Oberland
Kontaktdaten:

Re: TabBarGadget - Tabs wie im Browser

Beitrag von WPö »

Jawoll, hier geht 'was voran!
Weiter so!
Ich glaube nur der Statistik, die ich selbst gefälscht habe!
Meine Netzpräsenz: WPö.de
PB5.31 auf LMDE und Pentium T7200 2,00GHz, 4GB DDR2, ATI X1400.
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 »

Das sollte man genauso hübsch in die IDE integrieren.
STARGÅTE hat es zwar hier nicht erwähnt, aber mich hat er letzte Nacht noch danach gefragt, wie man unter Linux die Systemfarben herausfinden kann. Und dem Code nach zu urteilen sieht es so aus als ob er immer noch daran interessiert wäre ein Äquivalent zu 'GetSysColor_()' unter Windows für Linux zu finden. Da hat nicht zufällig jemand was im Petto?
Bild
Benutzeravatar
remi_meier
Beiträge: 1078
Registriert: 29.08.2004 20:11
Wohnort: Schweiz

Re: TabBarGadget - Tabs wie im Browser

Beitrag von remi_meier »

Das sollte funktionieren und scheint leider auch der
einzige Weg zu sein. Man benötigt scheinbar ein
Gadget um die Farben zu erhalten.

Code: Alles auswählen

; fg_color
; bg_color
; base_color
; text_color
; selected_bg_color
; selected_fg_color
; tooltip_bg_color
; tooltip_fg_color
ImportC "":gtk_style_lookup_color.l(*style, color_name.p-utf8, *color):EndImport
Procedure GetColor(*widget, color_name.s, *color_out.GdkColor)
  a.s = Space(Len(color_name))
  PokeS(@a, color_name, -1, #PB_Ascii)
  
  gtk_widget_realize_(*widget)
  
  *style.GtkStyle = gtk_rc_get_style_(*widget)
  If Not gtk_style_lookup_color(*style, a, *color_out)
    gdk_color_parse_("black", @color)
  EndIf

EndProcedure


OpenWindow(0,0,0,0,0,"")
ButtonGadget(0, 0, 0, 0, 0, "")

color.GdkColor
GetColor(GadgetID(0), "fg_color", @color)

With color
  Debug (\red / 255) &$FF
  Debug (\green / 255) &$FF
  Debug (\blue / 255) &$FF
EndWith
Andesdaf
Moderator
Beiträge: 2658
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Re: TabBarGadget - Tabs wie im Browser

Beitrag von Andesdaf »

Schick, danke! :allright:
Win11 x64 | PB 6.00 (x64)
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 »

remi_meier hat geschrieben:Das sollte funktionieren und scheint leider auch der
einzige Weg zu sein. Man benötigt scheinbar ein
Gadget um die Farben zu erhalten.
Man kann scheinbar auch einfach die WindowID() nehmen statt des Gadgets. Dann bekommt man auch die Hintergrundfarbe. Ob das allerdings so gedacht ist, weiß ich nicht genau.
Bild
Antworten