Seite 1 von 1

Wieso ist nur eine ToolBar möglich

Verfasst: 06.02.2010 21:18
von STARGÅTE
Tachchen,

mal n kleine Anfängerfrage:

Warum kann man nur eine einzige ToolBar machen ?

Code: Alles auswählen

OpenWindow(0, 0, 0, 400, 300, "Fenster", #PB_Window_MinimizeGadget|#PB_Window_ScreenCentered)
  Debug CreateToolBar(1, WindowID(0))
  ToolBarStandardButton(11, #PB_ToolBarIcon_New)
  ToolBarStandardButton(12, #PB_ToolBarIcon_Open)
  ToolBarStandardButton(13, #PB_ToolBarIcon_Save)
  Debug CreateToolBar(2, WindowID(0))
  ToolBarStandardButton(21, #PB_ToolBarIcon_Cut)
  ToolBarStandardButton(22, #PB_ToolBarIcon_Copy)
  ToolBarStandardButton(23, #PB_ToolBarIcon_Paste)

Repeat

  Event = WaitWindowEvent()
 
  Select Event
    Case #PB_Event_CloseWindow
      End
    Case #PB_Event_Menu
      Debug EventMenu()
  EndSelect

ForEver
Beide ToolBars überlagern sich ...

Wird das in einer zukünftigen Version möglich sein ?

Ich würde mir halt so n ToolBar wünschen, wie es bei Windows ist, die man zB Fixieren kann, aber auch verschieben, und damit mehrere ToolBars hat, die man selber anordneen kann.
Das alles dann mit Flags bei CreateToolBar ...

Re: Wieso ist nur eine ToolBar möglich

Verfasst: 06.02.2010 21:35
von TomS

Re: Wieso ist nur eine ToolBar möglich

Verfasst: 06.02.2010 21:39
von STARGÅTE
dankt für den Link, gibs da auch n "einfachere" Lösung ?
Will ja garkeine "anderen" Gadgets da mit rein haben, sonden die dezenten ToolBarButtons haben.
(also Ohne 3D-Rahmen, nur bei Hover, und halt 16x16)

Re: Wieso ist nur eine ToolBar möglich

Verfasst: 06.02.2010 21:40
von Pelagio
Hallo Stargate,

ich hatte mal was bei WinAPI von rsbasic gefunden was man als Ansatz eventuell noch ausbauen könnte, leider habe ich nicht genug Wissen über WinAPI's.

Code: Alles auswählen

OpenWindow(0, 0, 0, 400, 300, "Fenster", #PB_Window_MinimizeGadget|#PB_Window_ScreenCentered)
  Debug CreateToolBar(1, WindowID(0))
  ToolBarStandardButton(11, #PB_ToolBarIcon_New)
  ToolBarStandardButton(12, #PB_ToolBarIcon_Open)
  ToolBarStandardButton(13, #PB_ToolBarIcon_Save)
  Debug CreateToolBar(2, WindowID(0))
  ToolBarStandardButton(21, #PB_ToolBarIcon_Cut)
  ToolBarStandardButton(22, #PB_ToolBarIcon_Copy)
  ToolBarStandardButton(23, #PB_ToolBarIcon_Paste)
  SetWindowLongPtr_(ToolBarID(2),#GWL_STYLE,#WS_CHILD|#WS_VISIBLE)
Repeat

  Event = WaitWindowEvent()

  Select Event
    Case #PB_Event_CloseWindow
      End
    Case #PB_Event_Menu
      Debug EventMenu()
  EndSelect

ForEver
:allright:

Re: Wieso ist nur eine ToolBar möglich

Verfasst: 06.02.2010 21:53
von Kiffi
jede Toolbar braucht seinen eigenen 'Container'

Code: Alles auswählen

Enumeration
  #Window
EndEnumeration
Enumeration
  #ContainerGadget1
  #ContainerGadget2
  #Toolbar1
  #Toolbar2
EndEnumeration
Enumeration
  #Toolbar1_New
  #Toolbar1_Open
  #Toolbar1_Save
  #Toolbar2_New
  #Toolbar2_Open
  #Toolbar2_Save
EndEnumeration

OpenWindow(#Window, 0, 0, 400, 300, "Fenster", #PB_Window_MinimizeGadget|#PB_Window_ScreenCentered)

ContainerGadget(#ContainerGadget1, 0, 0, 0, 0)

  CreateToolBar(#Toolbar1, GadgetID(#ContainerGadget1))
  ToolBarStandardButton(#Toolbar1_New, #PB_ToolBarIcon_New)
  ToolBarStandardButton(#Toolbar1_Open, #PB_ToolBarIcon_Open)
  ToolBarStandardButton(#Toolbar1_Save, #PB_ToolBarIcon_Save)
  
CloseGadgetList()

ContainerGadget(#ContainerGadget2, 0, 0, 0, 0)
  
  CreateToolBar(#Toolbar2, GadgetID(#ContainerGadget2))
  ToolBarStandardButton(#Toolbar2_New, #PB_ToolBarIcon_New)
  ToolBarStandardButton(#Toolbar2_Open, #PB_ToolBarIcon_Open)
  ToolBarStandardButton(#Toolbar2_Save, #PB_ToolBarIcon_Save)
  
CloseGadgetList()

Repeat
  
  Event = WaitWindowEvent()
  
  Select Event
    Case #PB_Event_SizeWindow
      ResizeGadget(#ContainerGadget1, 0, 0, WindowWidth(#Window), ToolBarHeight(#Toolbar1))
      ResizeGadget(#ContainerGadget2, 0, GadgetHeight(#ContainerGadget1), WindowWidth(#Window), ToolBarHeight(#Toolbar2))
    Case #PB_Event_CloseWindow
      End
    Case #PB_Event_Menu
      Debug EventMenu()
  EndSelect
  
ForEver
Grüße ... Kiffi

Re: Wieso ist nur eine ToolBar möglich

Verfasst: 06.02.2010 22:02
von STARGÅTE
Danke Kiffi,

das ist genau das "einfache" was ich gesucht gabe, danke an dich.
Und auch an die andere für eure Beispiele.

btw. : NUn wäre auch das Geheimnis um den Sinn vom ContainerGadget gelüftet ^^

edit: (das mit dem verschieben kann erst mal warten)

Re: Wieso ist nur eine ToolBar möglich

Verfasst: 06.02.2010 22:34
von marco2007
Noch 2 Vorteile, die mir spontan beim Containergadget einfallen:
- OptionGadget
- man kann´s färben

Re: Wieso ist nur eine ToolBar möglich

Verfasst: 06.02.2010 22:38
von STARGÅTE
ich finde solche "Tricks" sollte man aber in der Hilfe dazuschrieben:

CreateToolBar
Erstellt eine leere Werkzeugleiste auf dem angegebenen Fenster 'WindowID', welche über die Nummer '#Toolbar' identifiziert wird.
[...]
Die 'WindowID' kann einfach mittels dem WindowID() Befehl ermittelt werden.
Das das nicht nur eine WindowID ist, sonden man auch GadgetsIDs ...
Das ist ja nicht immer möglich ...

Re: Wieso ist nur eine ToolBar möglich

Verfasst: 06.02.2010 22:43
von HeX0R
Naja, die Frage dürfte sein, ob solche Tricks auch unter Linux oder Mac funktionieren.
Wahrscheinlich wird es deswegen nicht in der Hilfe stehen.

Re: Wieso ist nur eine ToolBar möglich

Verfasst: 14.03.2010 16:04
von Stephan-X
Hi Leute,
als Pinguin bin ich auf der suche "Wie färbe ich Panels" auf diesen interessanten Post gestossen... :o
Hier mal die Lösung für Linux !

Code: Alles auswählen

Enumeration
  #Window
 
  #ContainerGadget1
  #ContainerGadget2
  #Toolbar1
  #Toolbar2
 
  #Toolbar1_New
  #Toolbar1_Open
  #Toolbar1_Save
  #Toolbar2_New
  #Toolbar2_Open
  #Toolbar2_Save
EndEnumeration

OpenWindow(#Window, 0, 0, 400, 300, "Fenster", #PB_Window_MinimizeGadget|#PB_Window_ScreenCentered)
 
  CreateToolBar(#Toolbar1, WindowID(#Window))
  ToolBarStandardButton(#Toolbar1_New, #PB_ToolBarIcon_New)
  ToolBarStandardButton(#Toolbar1_Open, #PB_ToolBarIcon_Open)
  ToolBarStandardButton(#Toolbar1_Save, #PB_ToolBarIcon_Save)
  
  CreateToolBar(#Toolbar2, WindowID(#Window))
  ToolBarStandardButton(#Toolbar2_New, #PB_ToolBarIcon_New)
  ToolBarStandardButton(#Toolbar2_Open, #PB_ToolBarIcon_Open)
  ToolBarStandardButton(#Toolbar2_Save, #PB_ToolBarIcon_Save)

Repeat
  
  Event = WaitWindowEvent()
  
  Select Event
    Case #PB_Event_SizeWindow
     
    Case #PB_Event_CloseWindow
      End
    Case #PB_Event_Menu
      Debug EventMenu()
  EndSelect
  
ForEver
Schönen Sonntag noch
Stephan