SplitterGadget - PanelGadet Demons
Posted: Sat Jul 08, 2023 6:16 am
SplitterGadget - PanelGadet Demons
Code: Select all
;
; ------------------------------------------------------------
;
; PureBasic - Gadget example file
;
; (c) Fantaisie Software
;
; ------------------------------------------------------------
;
; goomoo added PanelGadget. 2023.07.08
#WindowWidth = 640
#WindowHeight = 480
;Gadget 相关
Global TextPureBasic7,WebBaidu0,EditorLine1,ExplorerTree3,ScrollArea6,Button20,Splitter2,Splitter4,Splitter5,ListView1,ExplorerTreePanel0
Procedure OnSizeWindow()
ResizeGadget(Splitter5, #PB_Ignore, #PB_Ignore, WindowWidth(0), WindowHeight(0)-25) ; Our 'master' splitter gadget
Debug "GadgetWidth(Splitter5):"+GadgetWidth(Splitter5)
Debug "GadgetWidth(Splitter4):"+GadgetWidth(Splitter4)
tw=GadgetWidth(Splitter4)-GadgetWidth(ExplorerTree3)-26
Debug "tw:"+tw
th=WindowHeight(0)-GadgetHeight(EditorLine1)-150
Debug "th:"+th
ResizeGadget(ListView1,8,42+30+8,tw,th)
ResizeGadget(ExplorerTreePanel0,8,42+30+8-72,tw,th+72)
EndProcedure
If OpenWindow(0, 0, 0, #WindowWidth, #WindowHeight, "PureBasic - SplitterAdvanced - PanelGadet Demonstration", #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_SizeGadget | #PB_Window_MaximizeGadget | #PB_Window_MinimizeGadget)
TextPureBasic7=TextGadget(#PB_Any, 10, 5, 700, 15, "PureBasic splitter demonstation with Editor, ScrollArea, ExplorerTree and Web gadgets. Feel the power...")
;WebBaidu0=WebGadget(#PB_Any, 10, 10, 300, 20, "https://www.baidu.com")
Panel0=PanelGadget(#PB_Any,10, 10, 300, 20)
AddGadgetItem1=AddGadgetItem (Panel0, -1, "Panel 1")
ButtonOK=ButtonGadget(#PB_Any,8,8,200,30,"OK")
Button02=ButtonGadget(#PB_Any, 8, 42, 80, 30,"Button 2")
ListView1=ListViewGadget(#PB_Any,8,42+30+8,200,300)
AddGadgetItem1=AddGadgetItem (Panel0, -1, "Panel 2")
ExplorerTreePanel0=ExplorerTreeGadget(#PB_Any,8,8,200,300, GetHomeDirectory(), #PB_Explorer_AlwaysShowSelection|#PB_Explorer_FullRowSelect|#PB_Explorer_MultiSelect)
CloseGadgetList()
EditorLine1=EditorGadget(#PB_Any, 115, 10, 100, 190)
For k=1 To 10
AddGadgetItem(EditorLine1, k-1, "Line "+Str(k))
Next
ExplorerTree3=ExplorerTreeGadget(#PB_Any, 115, 10, 100, 190, GetHomeDirectory(), #PB_Explorer_AlwaysShowSelection|#PB_Explorer_FullRowSelect|#PB_Explorer_MultiSelect)
ScrollArea6=ScrollAreaGadget(#PB_Any, 0, 0, 400, 400, 1000, 1000, 1)
Button20=ButtonGadget(#PB_Any, 20, 20, 200, 200, "Scroll Area !")
CloseGadgetList()
Splitter2=SplitterGadget(#PB_Any, 0, 0, #WindowWidth/2, #WindowHeight/2, EditorLine1, Panel0)
Splitter4=SplitterGadget(#PB_Any, 0, 0, #WindowWidth, #WindowHeight, ExplorerTree3, Splitter2, #PB_Splitter_Vertical)
Splitter5=SplitterGadget(#PB_Any, 0, 25, #WindowWidth, #WindowHeight-25, Splitter4, ScrollArea6, #PB_Splitter_Vertical)
SetGadgetState(Splitter5, 500)
; Use BindEvent() to have a realtime window sizing
BindEvent(#PB_Event_SizeWindow, @OnSizeWindow())
Repeat
Event = WaitWindowEvent()
If Event = #PB_Event_Gadget
Select EventGadget()
Case 8
SetGadgetState(Splitter5, 333)
SetGadgetState(Splitter2, 333)
SetGadgetState(11, 5)
Case Splitter2
OnSizeWindow()
Case Splitter4
;Debug "Case Splitter4"
;Case Splitter4
OnSizeWindow()
Case Splitter5
;Debug "Case Splitter5"
;Case Splitter5
OnSizeWindow()
Case Button20
Debug "OK"
EndSelect
EndIf
Until Event = #PB_Event_CloseWindow
EndIf
End