Dialog, splittergadget and TabBarGadget
Posted: Fri Oct 10, 2025 5:31 pm
The TabBarGadget from Stargate here https://www.unionbytes.de/libs/tabbargadget/ seems to work within the dialog library except if this gadget is encapsulated in a splittergadget.
TabBarGadget uses a PB CanvasGadget.
Something wrong with a callback somewhere ?
M.
TabBarGadget uses a PB CanvasGadget.
Something wrong with a callback somewhere ?
Code: Select all
XIncludeFile "TabBarGadget.pbi"
DisableExplicit
#Dialog = 0
#Xml = 0
Runtime Enumeration
#tabbar
#splitter_menus
#splitter_themes
#canvas
#canvas_themes
#container_canvas_themes
EndEnumeration
;The TabBarGadget Works
; XML$ = "<window id='#PB_Any' name='test' text='test' minwidth='auto' minheight='auto' flags='#PB_Window_ScreenCentered | #PB_Window_SystemMenu | #PB_Window_SizeGadget'>" +
; " <canvas height='100' width='800' name='tabbar' id='#tabbar'/>" +
; "</window>"
;The TabBarGadget Works
; XML$ = "<window id='#PB_Any' name='test' text='test' minwidth='auto' minheight='auto' flags='#PB_Window_ScreenCentered | #PB_Window_SystemMenu | #PB_Window_SizeGadget'>"+
; "<vbox spacing='0' name='main' expand='item:2'>" +
; "<canvas height='50' width='800' id='#tabbar'/>" +
; "<splitter flags='#PB_Splitter_Separator' id='#splitter_themes'>" +
; "<canvas height='100' width='800' id='#canvas'/>" +
; "<canvas height='100' width='800' id='#canvas_themes'/>" +
; "</splitter>" +
; "</vbox>" +
; "</window>"
;The TabBarGadget inside a splittergadget Doesn't work
XML$ = "<window id='#PB_Any' name='test' text='test' minwidth='auto' minheight='auto' flags='#PB_Window_ScreenCentered | #PB_Window_SystemMenu | #PB_Window_SizeGadget'>"+
"<vbox spacing='0' name='main' expand='item:2'>" +
"<splitter flags='#PB_Splitter_Separator|#PB_Splitter_SecondFixed' id='#splitter_menus'>" +
"<canvas height='50' width='800' id='#tabbar'/>" +
"<container id='#container_canvas_themes'>" +
"<splitter flags='#PB_Splitter_Separator|#PB_Splitter_SecondFixed' id='#splitter_themes'>" +
"<canvas height='100' width='800' id='#canvas'/>" +
"<canvas height='100' width='800' id='#canvas_themes'/>" +
"</splitter>" +
"</container>" +
"</splitter>" +
"</vbox>" +
"</window>"
If ParseXML(#Xml, XML$) And XMLStatus(#Xml) = #PB_XML_Success
If CreateDialog(#Dialog) And OpenXMLDialog(#Dialog, #Xml, "test")
WindowMain=DialogWindow(#Dialog)
TabBarGadgetAttributes = #TabBarGadget_BottomLine|#TabBarGadget_PopupButton
TabBarGadget(#tabbar, 0, 0, 800, #TabBarGadget_DefaultHeight, TabBarGadgetAttributes, WindowMain)
AddTabBarGadgetItem(#tabbar, #PB_Default, "File")
AddTabBarGadgetItem(#tabbar, #PB_Default, "Other")
AddTabBarGadgetItem(#tabbar, #PB_Default, "Main")
If IsGadget(#splitter_menus)
SetGadgetState(#splitter_menus, 30)
EndIf
If IsGadget(#splitter_themes)
SetGadgetState(#splitter_themes, 30+100)
EndIf
; RefreshDialog(#Dialog)
Repeat
Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow
Else
Debug "Error -Dialog- : " + DialogError(#Dialog)
EndIf
Else
Debug "Error XML : " + XMLError(#Xml) + " (Line: " + XMLErrorLine(#Xml) + " " + XMLErrorPosition(#XML) + ")"
EndIf