'Splitters R EZ
'Author: Dennis McKinney
'Compatibility: Liberty BASIC 4.

Nomainwin

Struct rect,_
  l As Long,_
  t As Long,_
  r As Long,_
  b As Long

WindowWidth = 600
WindowHeight = 400
UpperLeftX = Int((DisplayWidth-WindowWidth)/2)
UpperLeftY = Int((DisplayHeight-WindowHeight)/2)

Stylebits #main.list, _WS_SIZEBOX, 0, 0, 0

Dim a$(2)
a$(1) = "Item 1"
a$(2) = "Function( Gee I wish all of this could be seen )"
Listbox #main.list, a$(), [getsize], x, y, wide, high

Texteditor #main.tbRight, 0, 0, 0, 0

Open "Splitters R EZ" For Window As #main
hMain = Hwnd(#main)
htb = Hwnd(#main.list)

#main, "trapclose [quit]"
#main.tbRight,"Right Panel  "
#main.tbRight,"!origin 1 1"
#main.tbRight,"!select 13 1"
#main.tbRight,"!setfocus"

[getsize]
  Timer 0
  Calldll #user32, "GetWindowRect", htb As Ulong, rect As Struct, r As Long
  widnew = rect.r.struct - rect.l.struct
  Calldll #user32, "GetClientRect", hMain As Ulong, rect As Struct, r As Long
  heightnew = rect.b.struct - rect.t.struct
  wid2 = rect.r.struct - widnew
  widmain = rect.r.struct - rect.l.struct
  If widnew <> widold Or heightnew <> heightold Or widmain <> widmainold Then
    #main.list,"locate -5 -5 "; widnew; " "; heightnew+10
    #main.tbRight,"!locate ";widnew-5; " "; "0 "; wid2+5; " "; heightnew
    #main, "refresh"
    widold = widnew: heightold = heightnew: widmainold = widmain
  End If
  Timer 10, [getsize]
Wait

[quit]
Close #main
End