MultiBar - Mehrere Toolbars auf einem Fenster

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
Mok
BotHunter
Beiträge: 1484
Registriert: 26.12.2005 14:14
Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit
Wohnort:   

MultiBar - Mehrere Toolbars auf einem Fenster

Beitrag von Mok »

Hallo
Ja, es ist möglich mehrere Toolbars zu machen, aber man braucht für jede Toolbar ein eigenes ContainerGadget.
Ein BeispielCode:

Code: Alles auswählen

Enumeration
  #Window
EndEnumeration
Enumeration
  #ContainerGadget_0
  #ContainerGadget_1
  #ContainerGadget_2
  #ContainerGadget_3
  #ContainerGadget_4
EndEnumeration
Enumeration
  #ToolBar_0
  #ToolBar_1
  #ToolBar_2
  #ToolBar_3
  #ToolBar_4
EndEnumeration



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

ContainerGadget(#ContainerGadget_0, 0, 0, 0, 0)
  CreateToolBar(#ToolBar_0, GadgetID(#ContainerGadget_0))
    ToolBarStandardButton(0, #PB_ToolBarIcon_New)
    ToolBarStandardButton(1, #PB_ToolBarIcon_Open)
    ToolBarStandardButton(2, #PB_ToolBarIcon_Save)
CloseGadgetList()

ContainerGadget(#ContainerGadget_1, 0, 0, 0, 0)
  CreateToolBar(#ToolBar_1, GadgetID(#ContainerGadget_1))
    ToolBarStandardButton(3, #PB_ToolBarIcon_Print)
    ToolBarStandardButton(4, #PB_ToolBarIcon_PrintPreview)
    ToolBarSeparator()
    ToolBarStandardButton(5, #PB_ToolBarIcon_Find)
    ToolBarStandardButton(6, #PB_ToolBarIcon_Replace)
CloseGadgetList()

ContainerGadget(#ContainerGadget_2, 0, 0, 0, 0)
  CreateToolBar(#ToolBar_2, GadgetID(#ContainerGadget_2))
    ToolBarStandardButton(7, #PB_ToolBarIcon_Cut)
    ToolBarStandardButton(8, #PB_ToolBarIcon_Copy)
    ToolBarStandardButton(9, #PB_ToolBarIcon_Paste)
CloseGadgetList()

ContainerGadget(#ContainerGadget_3, 0, 0, 0, 0)
  CreateToolBar(#ToolBar_3, GadgetID(#ContainerGadget_3))
    ToolBarStandardButton(10, #PB_ToolBarIcon_Undo)
    ToolBarStandardButton(11, #PB_ToolBarIcon_Redo)
CloseGadgetList()

ContainerGadget(#ContainerGadget_4, 0, 0, 0, 0)
  CreateToolBar(#ToolBar_4, GadgetID(#ContainerGadget_4))
    ToolBarStandardButton(11, #PB_ToolBarIcon_Delete)
    ToolBarStandardButton(12, #PB_ToolBarIcon_Properties)
    ToolBarStandardButton(13, #PB_ToolBarIcon_Help)
CloseGadgetList()

ToolBarHeight = ToolBarHeight(#ToolBar_0)

Repeat
 
  Event = WaitWindowEvent()
 
  Select Event
    Case #PB_Event_SizeWindow
      ResizeGadget(#ContainerGadget_0, 0, 0, WindowWidth(#Window), ToolBarHeight(#ToolBar_0))
      ResizeGadget(#ContainerGadget_1, 0, ToolBarHeight, WindowWidth(#Window), ToolBarHeight(#ToolBar_1))
      ResizeGadget(#ContainerGadget_2, 0, ToolBarHeight*2, WindowWidth(#Window), ToolBarHeight(#ToolBar_2))
      ResizeGadget(#ContainerGadget_3, 0, ToolBarHeight*3, WindowWidth(#Window), ToolBarHeight(#ToolBar_3))
      ResizeGadget(#ContainerGadget_4, 0, ToolBarHeight*4, WindowWidth(#Window), ToolBarHeight(#ToolBar_4))
    Case #PB_Event_CloseWindow
      Exit = 1
    Case #PB_Event_Menu
      MessageRequester("Info","Button no: "+Str(EventMenu()))
  EndSelect
 
Until Exit
End
Das sieht dann wie folgt aus:
Bild

Grüße, Mok
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl