But the function always returns 0. The same thing happens to #PB_Panel3D_TabHeight.
It works fine for ScrollAreaGadget3D using #PB_ScrollArea3D_InnerWidth and #PB_ScrollArea3D_InnerHeight.
The same behavior also exists on Windows. So, I guess this is a bug in PureBasic?
Example code:
Code: Select all
EnableExplicit
Enumeration
#Window
#Window3D
#Panel
#PanelButton
#ScrollArea
#ScrollAreaButton
#Camera
EndEnumeration
Define Event
InitEngine3D()
InitSprite()
InitKeyboard()
InitMouse()
Add3DArchive(#PB_Compiler_Home + "/examples/3d/Data/GUI", #PB_3DArchive_FileSystem)
If OpenWindow(#Window, 0, 0, 800, 600, "Test", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
If OpenWindowedScreen(WindowID(#Window), 0, 0, 800, 600)
If OpenWindow3D(#Window3D, 100, 100, 600, 300, "Window")
If PanelGadget3D(#Panel, 10, 10, 200, 200)
If AddGadgetItem3D(#Panel, -1, "Tab 1")
ButtonGadget3D(#PanelButton, 10, 10, 100, 30, "Get size")
EndIf
AddGadgetItem3D(#Panel, -1, "Tab 2")
AddGadgetItem3D(#Panel, -1, "Tab 3")
CloseGadgetList3D()
EndIf
If ScrollAreaGadget3D(#ScrollArea, 250, 10, 200, 200, 1000, 1000, 50)
ButtonGadget3D(#ScrollAreaButton, 10, 10, 100, 30, "Get size")
CloseGadgetList3D()
EndIf
EndIf
CreateCamera(#Camera, 0, 0, 100, 100)
Repeat
ExamineKeyboard()
ExamineMouse()
If KeyboardReleased(#PB_Key_Escape)
Break
EndIf
InputEvent3D(MouseX(), MouseY(), MouseButton(#PB_MouseButton_Left))
Select WindowEvent3D()
Case #PB_Event3D_Gadget
Select EventGadget3D()
Case #PanelButton
Debug "*** Panel ***"
Debug "ItemWidth = " + Str(GetGadgetAttribute3D(#Panel, #PB_Panel3D_ItemWidth))
Debug "ItemHeight = " + Str(GetGadgetAttribute3D(#Panel, #PB_Panel3D_ItemHeight))
Debug "TabHeight = " + Str(GetGadgetAttribute3D(#Panel, #PB_Panel3D_TabHeight))
Debug "GadgetWidth = " + Str(GadgetWidth3D(#Panel))
Debug "GadgetHeight = " + Str(GadgetHeight3D(#Panel))
Case #ScrollAreaButton
Debug "*** Scroll Area ***"
Debug "InnerWidth = " + Str(GetGadgetAttribute3D(#ScrollArea, #PB_ScrollArea3D_InnerWidth))
Debug "InnerHeight = " + Str(GetGadgetAttribute3D(#ScrollArea, #PB_ScrollArea3D_InnerHeight))
Debug "GadgetWidth = " + Str(GadgetWidth3D(#ScrollArea))
Debug "GadgetHeight = " + Str(GadgetHeight3D(#ScrollArea))
EndSelect
Case #PB_Event3D_CloseWindow
Break
EndSelect
Select WindowEvent()
Case #PB_Event_CloseWindow
Break
EndSelect
RenderWorld()
FlipBuffers()
ForEver
EndIf
EndIf