Yes i'm wrong.
Code: Select all
#WindowHeight = 250
#WindowWidth = 800
Structure GadgetProperties
x.l
y.l
w.l
h.l
Caption.s
Tooltip.s
;etc
;etc
EndStructure
Dim GP.GadgetProperties (200)
For I=5 To 9
GP(I)\x=100*I -300
GP(I)\y=10
GP(I)\w=80
GP(I)\h=25
GP(I)\Caption=Str(I)+"-Button"
Next I
For I=10 To 20
GP(I)\x=40*(I-10)+10
GP(I)\y=120
GP(I)\w=30
GP(I)\h=15
GP(I)\Caption=Str(I)+"-Test"
Next I
For I=21 To 30
GP(I)\x=40*(I-20)+10
GP(I)\y=140
GP(I)\w=30
GP(I)\h=15
GP(I)\Caption=Str(I)+"-Test"
Next I
For I=31 To 40
GP(I)\x=40*(I-30)+10
GP(I)\y=180
GP(I)\w=30
GP(I)\h=40
GP(I)\Caption=Str(I)+"-Test"
Next I
#TestGadget=5
hWnd=OpenWindow(0,0,0, #WindowWidth, #WindowHeight, #PB_Window_SystemMenu |#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget,"XTract Linker")
InitGadget(1000)
If hWnd0 And CreateGadgetList(WindowID())0
MoveWindow((GetSystemMetrics_(#SM_CXSCREEN)-#WindowWidth)/2,(GetSystemMetrics_(#SM_CYSCREEN)-#WindowHeight)/2)
ButtonGadget(1,10,10,80,25,"Exit Demo")
TextGadget(2,10,40,300,20,"Status:")
TextGadget(3,10,70,300,20,"Status:")
StringGadget(4,10,100,200,20,"Test.exe")
For I=5 To 10
ButtonGadget(I,GP(I)\x,GP(I)\y,GP(I)\w,GP(I)\h,GP(I)\Caption)
Next I
For I=11 To 20
CheckBoxGadget(I,GP(I)\x,GP(I)\y,GP(I)\w,GP(I)\h,GP(I)\Caption)
Next I
For I=21 To 30
StringGadget(I,GP(I)\x,GP(I)\y,GP(I)\w,GP(I)\h,GP(I)\Caption)
Next I
For I=31 To 40
ListViewGadget(I,GP(I)\x,GP(I)\y,GP(I)\w,GP(I)\h);,GP(I)\Caption)
Next I
CW=6
ButtonGadget(101,1,1,CW,CW,"")
ButtonGadget(102,1,1,CW,CW,"")
ButtonGadget(103,1,1,CW,CW,"")
ButtonGadget(104,1,1,CW,CW,"")
ButtonGadget(105,1,1,CW,CW,"")
ButtonGadget(106,1,1,CW,CW,"")
;-Mouse-Function Test
Repeat
EventID.l = WaitWindowEvent()
UseWindow(0)
x = WindowMouseX()
y = WindowMouseY()
Info1$=Str(EventID)+"("+Str(x)+"/"+Str(y)+")"
If EventID & 1
LBD= 1
Else
LBD=0
EndIf
If EventID & 2
LBU=1
Else
LBU=0
EndIf
If EventID & 8
RBD=1
Else
RBD=0
EndIf
If EventID & 4
RBU=1
Else
RBU=0
EndIf
If EventID & 512
MM=1
Else
MM=0
EndIf
Info2$=" LBD="+Str(LBD) + ": LBU=" +Str(LBU) + ": RBD" + Str(RBU) + ": RBU"+ Str(RBD) + ": MM=" + Str(MM)
SetGadgetText(2,Info1$ + Info2$)
dummy$=""
P=1
For I=0 To 15
If (EventID.l & P)
dummy$=dummy$ + "1"
Else
dummy$=dummy$ + "0"
EndIf
P=P*2
Next I
SetGadgetText(3,"EventBits : "+dummy$ + " LastID="+Str((LastGadgetID)))
;Move Gadget
If (EventID.l=513);EventGadgetID()=#TestGadget; And x>GP\x And xGP\y And (y-20)4 And GID<41
x1=GP(GID)\x
y1=GP(GID)\y
;If EventID.l=#WM_LBUTTONDOWN
Gosub UpdateCorners
SetGadgetText(4,"Info on "+Str(GID))
; MessageRequester("Info","",0)
EndIf
Select GID
Case 101
MessageRequester("Info","Left Up Corner",0)
Case 102
MessageRequester("Info","Left Down Corner",0)
Case 103
MessageRequester("Info","Right Up Corner",0)
Case 104
MessageRequester("Info","Right Down Corner",0)
Case 1
x1=x;GP(GID)\x
y1=y;GP(GID)\y
Gosub UpdateCorners
Default
; ResizeGadget(101, -CW,-CW,CW,CW);Left Up Corner
; ResizeGadget(102, -CW,-CW,CW,CW);Left Up Corner
; ResizeGadget(103, -CW,-CW,CW,CW);Left Up Corner
; ResizeGadget(104, -CW,-CW,CW,CW);Left Up Corner
; ResizeGadget(105, -CW,-CW,CW,CW);Left Up Corner
; ResizeGadget(106, -CW,-CW,CW,CW);Left Up Corner
SendMessage_(WindowID(),#WM_PAINT, 1,0)
EndSelect
EndIf
Until EventID = #PB_EventCloseWindow
EndIf
End
UpdateCorners:
ResizeGadget(101, x1-CW, y1-CW,CW,CW);Left Up Corner
ResizeGadget(102, x1-CW, y1+GP(LastGadgetID)\h,CW,CW);Left down Corner
ResizeGadget(103, x1+GP(LastGadgetID)\w, y1-CW,CW,CW);right Up Corner
ResizeGadget(104, x1+GP(LastGadgetID)\w, y1+GP(LastGadgetID)\h,CW,CW);right down Corner
ResizeGadget(105, x1+(GP(LastGadgetID)\w-CW)/2, y1-CW,CW,CW);right Up Corner
ResizeGadget(106, x1+(GP(LastGadgetID)\w-CW)/2, y1+GP(LastGadgetID)\h,CW,CW);right down Corner
SendMessage_(WindowID(),#WM_PAINT, 1,0)