|
Restored from previous forum. Originally posted by Cantor.
I changed the code a little bit: - The window has no longer to be closed and reopened to changed sizes of gadgets. - The sizes of gadgets fit better to the sizes of the window.
But: Why does it work only when the window gets greater? If you size the window smaller, the refresh doesn't work, only if you activate a different window and reactivate your program window. Strange.
Program code:
InitGadget(30) ; 31 Gadgets maximum (0 is included) #WindowWidth = 450 #WindowHeight = 315 h=#WindowHeight w=#WindowWidth ; Load our images.. ; LoadImage(0, "Data\Drive.bmp") LoadImage(1, "Data\File.bmp") LoadImage(2, "Data\PureBasic.bmp") If OpenWindow(0, 100, 120, 450, 315, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget , "PureBasic - Advanced Gadget Demonstration") If CreateGadgetList(WindowID()) ProgressBarGadget(3, 10, #WindowHeight-45, #WindowWidth-25, 20, 0, 100)
; Update the ProgressBar, just for fun ! ; For k=0 To 100 SetGadgetState(3, k) Delay(10) Next Gosub setgadgets EndIf
SetGadgetText(4, "Initialize Ok... Welcome !")
Repeat Repeat EventID.l = WaitWindowEvent() Until EventID 0 If EventID = #PB_EventGadget
Select EventGadgetID() Case 1 MessageRequester("Information", "You did it !", 0) ; resize window by dragging lower right corner Case 2 SetGadgetText(4, "Tree Gadget. Item selected: "+Str(GetGadgetState(2))) Case 5 SetGadgetText(4, "ListIcon Gadget. Item selected: "+Str(GetGadgetState(5)))
EndSelect EndIf
If EventID = #PB_EventRepaint ; If the user has resized the window or anything, we will repaint our graphic hnew=WindowHeight() wnew=WindowWidth() If (h hnew) Or (w wnew) h=hnew w=wnew For i=0 To 5: freegadget(i) Next Gosub setgadgets EndIf EndIf Until EventID = #PB_EventCloseWindow EndIf End buildWindows: h=WindowHeight() w=WindowWidth() CloseWindow(0) OpenWindow(0, 100, 120, w, h, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget , "PureBasic - Advanced Gadget Demonstration")
CreateGadgetList(WindowID())
setgadgets: ImageGadget (0, 200, 5, 0, 0, UseImage(2)) ButtonImageGadget(1, w-66, 5, 50, 36, LoadIcon_(0, #IDI_WINLOGO)) TextGadget(4, 10, 16, 180, 24, "Please wait while initializing...") ListIconGadget(5, w/3+30, 50, w-w/3-50, h-115, "Column 1", 100) AddGadgetColumn(5, 1, "Column 2", 61) AddGadgetColumn(5, 2, "Column 3", 80) For k=0 To 100 AddListIconGadgetItem(5, k, "xxxxxxxElement "+Str(k)+Chr(10)+"Cxxxxxxxxxxxxxxx 2"+Chr(10)+"Comment 3", UseImage(0)) Next TreeGadget (2, 10, 50, w/3, h-115) AddTreeGadgetItem(2, "General ", UseImage(1)) For k=0 To 10 AddTreeGadgetItem(2, "Hardware"+Str(k), UseImage(0)) OpenTreeGadgetNode() AddTreeGadgetItem(2, "640*480", UseImage(1)) AddTreeGadgetItem(2, "800*600", UseImage(1)) AddTreeGadgetItem(2, "1024*768", UseImage(1)) AddTreeGadgetItem(2, "1600*1200", UseImage(1)) AddTreeGadgetItem(2, "ScreenMode", UseImage(0)) AddTreeGadgetItem(2, "Joystick", UseImage(1)) CloseTreeGadgetNode() Next AddTreeGadgetItem(2, "General "+Str(k), UseImage(1)) Return
-- Best regards, Martin
|