Code: Select all
Procedure sizeCB()
wwidth = GadgetWidth(1)+GadgetWidth(2)+26
y4 = GadgetHeight(4)
y5 = GadgetHeight(3)-y4+8
ResizeGadget(10,#PB_Ignore,#PB_Ignore,WindowWidth(0)-18,WindowHeight(0,#PB_Window_InnerCoordinate)-38)
ResizeGadget(0,#PB_Ignore,#PB_Ignore,WindowWidth(0)-20,WindowHeight(0,#PB_Window_InnerCoordinate)-40)
ResizeGadget(1,#PB_Ignore,#PB_Ignore,#PB_Ignore,WindowHeight(0,#PB_Window_InnerCoordinate)-40)
ResizeGadget(2,#PB_Ignore,#PB_Ignore,#PB_Ignore,WindowHeight(0,#PB_Window_InnerCoordinate)-40)
ResizeGadget(3,#PB_Ignore,#PB_Ignore,WindowWidth(0)-340,WindowHeight(0,#PB_Window_InnerCoordinate)-40)
ResizeGadget(4,#PB_Ignore,#PB_Ignore,WindowWidth(0)-wwidth,y4+(cy-inity))
ResizeGadget(5,#PB_Ignore,#PB_Ignore,WindowWidth(0)-wwidth,y5+(inity-cy))
EndProcedure
sgcolor = $67DBF7
flags = #PB_Window_SystemMenu| #PB_Window_Invisible | #PB_Window_MaximizeGadget| #PB_Window_MinimizeGadget| #PB_Window_ScreenCentered | #PB_Window_SizeGadget
OpenWindow(0,0,0,800,600,"Test",Flags)
SmartWindowRefresh(0,1)
If CreateStatusBar(0, WindowID(0))
AddStatusBarField(100)
AddStatusBarField(50)
AddStatusBarField(100)
EndIf
StatusBarText(0, 0, "Area 1")
StatusBarText(0, 1, "Area 2", #PB_StatusBar_BorderLess)
StatusBarText(0, 2, "Area 3", #PB_StatusBar_Right | #PB_StatusBar_Raised)
FrameGadget(10,9,9,784,562,"",#PB_Frame_Flat)
CanvasGadget(0,10,10,780,560,#PB_Canvas_Container)
SetGadgetColor(0,#PB_Gadget_BackColor,$67DBF7)
ListIconGadget(1,0,0,184,560,"Column 0",100,#PB_ListIcon_FullRowSelect|#PB_ListIcon_GridLines)
ExplorerListGadget(2,188,0,188,560,"c:\")
wwidth = GadgetWidth(1)+GadgetWidth(2)+30
CanvasGadget(3,380,0,800,560,#PB_Canvas_Container)
SetGadgetColor(3,#PB_Gadget_BackColor,$8FFE9B)
ExplorerListGadget(4,0,0,wwidth,282,"c:\")
EditorGadget(5,0,288,wwidth,1000)
CloseGadgetList()
CloseGadgetList()
While WindowEvent() : Wend
HideWindow(0,0)
BindEvent(#PB_Event_SizeWindow,@sizeCB())
BindEvent(#PB_Event_MaximizeWindow,@sizeCB())
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Quit = 1
;Case #PB_Event_MaximizeWindow
Case #PB_Event_Gadget
Select EventGadget()
Case 0
Select EventType()
Case #PB_EventType_MouseEnter
SetGadgetAttribute(0,#PB_Canvas_Cursor,#PB_Cursor_LeftRight)
Case #PB_EventType_MouseLeave
SetGadgetAttribute(0,#PB_Canvas_Cursor,#PB_Cursor_Default)
Downflag = 0
Case #PB_EventType_LeftButtonDown
cx = GetGadgetAttribute(0,#PB_Canvas_MouseX)
Downflag = 1
If cx > GadgetX(2)
split = 2
ww = GadgetWidth(2)+GadgetWidth(3)+4
Else
split = 1
ww = GadgetWidth(1)+GadgetWidth(2)+4
EndIf
Case #PB_EventType_LeftButtonUp
Downflag = 0
Downflag2 = 0
Case #PB_EventType_MouseMove
If Downflag = 1
cx = GetGadgetAttribute(0,#PB_Canvas_MouseX)
wwidth = GadgetWidth(0)-GadgetWidth(1)-GadgetWidth(2)-4
If (cx < GadgetX(3)-12 And split = 1) Or (cx > GadgetX(2)+4 And split = 2)
If split = 1
If cx < GadgetWidth(0)-6
ResizeGadget(1,#PB_Ignore,#PB_Ignore,cx,#PB_Ignore)
ResizeGadget(2,cx+5,#PB_Ignore,ww-cx-5,#PB_Ignore)
EndIf
Else
If cx < GadgetWidth(0)-6
ResizeGadget(2,#PB_Ignore,#PB_Ignore,cx-GadgetWidth(1)-4,#PB_Ignore)
While WindowEvent() : Wend
ResizeGadget(3,cx+5,#PB_Ignore,ww-GadgetWidth(2)-4,#PB_Ignore)
EndIf
EndIf
While WindowEvent() : Wend
ResizeGadget(4,#PB_Ignore,#PB_Ignore,wwidth,#PB_Ignore)
ResizeGadget(5,#PB_Ignore,#PB_Ignore,wwidth,#PB_Ignore)
EndIf
EndIf
EndSelect
Case 3
Select EventType()
Case #PB_EventType_MouseEnter
SetGadgetAttribute(3,#PB_Canvas_Cursor,#PB_Cursor_UpDown)
Case #PB_EventType_MouseLeave
SetGadgetAttribute(3,#PB_Canvas_Cursor,#PB_Cursor_Default)
Downflag2 = 0
Case #PB_EventType_LeftButtonDown
Downflag2 = 1
inity = GetGadgetAttribute(3,#PB_Canvas_MouseY)
y4 = GadgetHeight(4)
y5 = GadgetHeight(3)-y4
Case #PB_EventType_LeftButtonUp
Downflag = 0
Downflag2 = 0
Case #PB_EventType_MouseMove
If Downflag2 = 1
cy = GetGadgetAttribute(3,#PB_Canvas_MouseY)
If cy < GadgetHeight(3)-6
ResizeGadget(4,#PB_Ignore,#PB_Ignore,#PB_Ignore,y4+(cy-inity))
While WindowEvent() : Wend
ResizeGadget(5,#PB_Ignore,GadgetHeight(4)+6,#PB_Ignore,y5+(inity-cy))
EndIf
EndIf
EndSelect
EndSelect
EndSelect
Until Quit = 1
End
Edit : Updated (Logically improved)
Edit : Updated again for KCC