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.
Derren
Beiträge: 558
Registriert: 23.07.2011 02:08

Re: TabBarGadget - Tabs wie im Browser

Beitrag von Derren »

ts-soft hat geschrieben:ein DisableExplicit am Ende behebt diese Einschränkung nicht, sondern führt eine Änderung bei denjenigen aus, die EnableExplicit nutzen möchten.
Hä?

Code: Alles auswählen

EnableExplicit
;Include
DisableExplicit

Code: Alles auswählen

IncludeFile "include.pbi"
EnableExplicit
;Rest
Wo ist das Problem? Wer EnableExplicit nutzen möchte, muss es so oder so an den Anfang seines Codes stellen, ob er jetzt
eine Include benutzt oder nicht.

@Stargate, ja gut, aber meistens wird doch ein Lib-Präfix benutzt. zB. PBOSL_CreateWhatEver(). Das meinte ich. Da ändert sich ja nicht viel wenn es in Zukunft heißt: PBOSL::CreateWhatEVer()^^
Signatur und so
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: TabBarGadget - Tabs wie im Browser

Beitrag von RSBasic »

Lass es wie es ist. Deine Include-Datei funktioniert und ich finde eine Umstrukturierung nicht so sinnvoll, weil jeder User, der deine Include-Datei bereits verwendet, alles anpassen muss (wegen Umbenennung) und nicht jeder hat Bock drauf.

Ansonsten wären Module in zukünftigen Projekten sehr angebracht, selbstverständlich auch in Includes.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
computerfreak
Beiträge: 112
Registriert: 23.07.2012 19:19

Re: TabBarGadget - Tabs wie im Browser

Beitrag von computerfreak »

Hallo,
ich finde es hat alles Vor- und Nachteile.
Module finde ich gerade in Includes sinnvoll.
klar - bei dem Tabbar ist das wohl nicht das problem , aber stell dir mal vor , jemand nutzt 2 verschiedene mp3 encoder (doofes Bsp. , ich weiß )
und beide nennen ihre Funktionen "mp3_load() , mp3_play()" usw.
Will man da kollisionen vermeiden , muss man alle Procezeduren (und evtl. Variablen , Arrays ... ) umbenennen.
Bei Modulen muss maln lediglich das Modul umbenennnen z.B. von "mp3" zu "mp3_1".Somit wären alle Kollisionen vermieden , da man die Funktionen nun mit
"mp3::load()" und "mp3_1::load()" aufrufen kann.
jetzt sagen vllt. einige "das ist nicht mehr PB" , ich finde es jedoch gut , dass PB vorangeht und neue "sachen" hinzufügt.

Und - was ist das Problem mit der umbenennung ? (einfach bereich markieren , suchen-ersetzen ,fertig :D )

Also ich würde auf Module umstellen , jedoch noch darauf warten , dass die PB 5.20 Final rauskommt , da viele hier ja die Betas meiden.
Aber - du bist der Chef , dein Include , das (^^) ist nur meine Meinung

Ach ja ... danke , das Include ist super :)

Grüße Computerfreak
PureBasic: Immer das neueste
Windows 8.1 / AMD FX 6100 / R9280X / 8GB RAM
Macbook Pro 2015 Retina
Dell Inspiron 1720 mit Linux Mint
...Und diverse Kleinstcomputer
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7028
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: TabBarGadget - Tabs wie im Browser

Beitrag von STARGÅTE »

Ich möchte euch hier die dritte Beta zu Version 1.4 geben:
TabBarGadgetBeta3a.zip

Dismal ist nur das Include und ein Beispiel dabei.
Hilfe wird in der finalen Version aktualisiert.

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)
Wäre nett wenn ihr vorallem die auto-Scroll-Funktionen testen könnt (Beispiel ist bereit gestellt).
Sie sind threadbasierend, sollten aber ohne Thread-Safe fehlerfrei laufen.
Im Beispiel ist auch #TabBarGadget_Editable eingeschaltet, bitte dort auch den Texteditor in den Tabs testen (Doppelklick in Tab)

Danke.
Zuletzt geändert von STARGÅTE am 01.07.2013 18:11, insgesamt 1-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
NicTheQuick
Ein Admin
Beiträge: 8807
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: TabBarGadget - Tabs wie im Browser

Beitrag von NicTheQuick »

Also wenn ich das Beispiel einfach so starte, kommt bei PB 5.11 das leere Hauptfenster und sonst nichts. Gleichzeitig wird ein Core komplett ausgelastet.

Gleich teste ich es mal noch mit der neusten Beta...
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7028
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: TabBarGadget - Tabs wie im Browser

Beitrag von STARGÅTE »

Ubs sry, jo der Thread hatte im Wartemodus kein Delay, bitte noch mal runterladen.
Sollte sowohl mit 5.1 als auch mit 5.2 laufen.
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
mirca
Beiträge: 169
Registriert: 13.11.2011 16:05

GELÖSCHT

Beitrag von mirca »

GELÖSCHT
Zuletzt geändert von mirca am 17.10.2013 12:00, insgesamt 1-mal geändert.
Kevin
Beiträge: 236
Registriert: 11.06.2007 12:55

Re: TabBarGadget - Tabs wie im Browser

Beitrag von Kevin »

vielleicht klappt es mit diesem Beispiel:

Code: Alles auswählen

XIncludeFile "TabBarGadget.pbi"

Enumeration
  #Window
  #Gadget
  #Directory
EndEnumeration

UsePNGImageDecoder()

OpenWindow(#Window, 0, 0, 800, 200, "TabBarGadget", #PB_Window_ScreenCentered|#PB_Window_SystemMenu|#PB_Window_SizeGadget)
TabBarGadget(#Gadget, 5, 5, WindowWidth(#Window)-10, 27, #TabBarGadget_CheckBox|#TabBarGadget_CloseButton|#TabBarGadget_Editable, #Window)

If ExamineDirectory(#Directory,  #PB_Compiler_Home+"\PureLibraries", "")
  While NextDirectoryEntry(#Directory)
    If DirectoryEntryName(#Directory) <> "." And DirectoryEntryName(#Directory) <> ".."
      AddTabBarGadgetItem(#Gadget, #PB_Default, DirectoryEntryName(#Directory))
    EndIf
  Wend
  FinishDirectory(#Directory)
EndIf

If CountTabBarGadgetItems(#Gadget) = 0
  Define i.i
  For i.i=0 To 32
    AddTabBarGadgetItem(#Gadget, #PB_Default, "Tab "+Str(i))
  Next
EndIf

Repeat
  Select WaitWindowEvent()
    Case #PB_Event_CloseWindow
      End
    Case #PB_Event_SizeWindow
      ResizeGadget(#Gadget, #PB_Ignore, #PB_Ignore, WindowWidth(#Window)-10, #PB_Ignore)
      UpdateTabBarGadget(#Gadget)
      
    Case #PB_Event_Gadget
      Select EventGadget()
        Case #Gadget
          Select TabBarGadgetEvent(#Gadget)
            Case #TabBarGadgetEvent_CloseTab
              RemoveTabBarGadgetItem(#Gadget, #TabBarGadgetItem_Event)
          EndSelect
      EndSelect
  EndSelect
ForEver
Ich finde deine Include Super!
Aber es wäre toll wenn man nur denn gerade Aktiven Tab schließen kann (wie in Opera)
weil ich komme beim Tabwechsel in PB öfters mal auf Schließen und muss dann die Datei wieder suchen und öffnen...

mfg
kevin
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7028
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: TabBarGadget - Tabs wie im Browser

Beitrag von STARGÅTE »

Danke Kevin, funktioniert denn bei dir das "auto-Scrollen" wenn du die Navigationspfeile gedrückt hältst?

Zu dem Schließenbutton, jo ich wollte da noch n Flag einbauen.
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
Kevin
Beiträge: 236
Registriert: 11.06.2007 12:55

Re: TabBarGadget - Tabs wie im Browser

Beitrag von Kevin »

STARGÅTE hat geschrieben:Danke Kevin, funktioniert denn bei dir das "auto-Scrollen" wenn du die Navigationspfeile gedrückt hältst?
Funktioniert alles. ist nur ein wenig zu schnell
STARGÅTE hat geschrieben:Zu dem Schließenbutton, jo ich wollte da noch n Flag einbauen.
cool dann muss man nur noch Freak dazu bringen es einzubauen...

mfg
kevin
Antworten