I'am currently working ona demo for all the gadgets in purebasic, below is the code, it's a start.
Has someone a working example of how the spingadget should work.
Als if I resize a spingadget to x,y, width, height only the text field is changing, moving, the up-down buttons are staying on the same place.
Also I want to place in the main panel tab(Panelgadget) another Panel, I also cannot manage that.
Code: Select all
#mainwin=0
#PANELID=500
#PANELID_DEMO=700
PANELTAB_START=600
PANELTAB_BTN=PANELTAB_START
PANELTAB_BTNIMG=PANELTAB_START+1
PANELTAB_CHKBOX=PANELTAB_START+2
PANELTAB_COMBOBOX=PANELTAB_START+3
PANELTAB_IMG=PANELTAB_START+4
PANELTAB_FRAME=PANELTAB_START+5
PANELTAB_IP=PANELTAB_START+6
PANELTAB_LISTICON=PANELTAB_START+7
PANELTAB_LISTVIEW=PANELTAB_START+8
PANELTAB_OPTION=PANELTAB_START+9
;PANELTAB IN MAIN PANELTAB (todo)
PANELTAB_PROGRESSBAR=PANELTAB_START+11
PANELTAB_SPIN=PANELTAB_START+12
; Default Text of gadgets
BtnText.s="Button text"
ChkText.s="CheckBox text"
FrameText.s="Frame text"
OptionText.s="Option text"
ImageID.l = LoadImage(0,"wordpad.ico")
mainwinoptions=#PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget|#PB_Window_SizeGadget
Procedure SizeCallback(WindowID, Message, wParam, lParam)
ReturnValue = #PB_ProcessPureBasicEvents
If Message = #WM_SIZE
UpdateStatusBar(0)
Returnvalue = -1
EndIf
ProcedureReturn Returnvalue
EndProcedure
wndpl.WINDOWPLACEMENT
wndpl\Length = SizeOf(WINDOWPLACEMENT)
wndpl\showCmd = #SW_SHOWMAXIMIZED
wndpl\flags = 0;
If OpenWindow(mainwin,#CW_USEDEFAULT,#CW_USEDEFAULT,#CW_USEDEFAULT,#CW_USEDEFAULT,mainwinoptions ,"PureBasic Gadet Demo")
SetWindowPlacement_(WindowID(), @wndpl)
; Add StatusBar
If CreateStatusBar(0, WindowID())
AddStatusBarField(100)
EndIf
StatusBarText(0, 0, "GadgetID: ", 0)
If CreateGadgetList(WindowID())
Frame3DGadget (10, 10, 300, 130, 130, "[ Enable / Disable ]", 0)
OptionGadget(20, 20, 330, 100, 24, "Enable")
OptionGadget(30, 20, 380, 100, 24, "Disable")
Frame3DGadget (40, 160, 300, 130, 130, "[ Show / Hide ]", 0)
OptionGadget(50, 170, 330, 100, 24, "Show")
OptionGadget(60, 170, 380, 100, 24, "Hide")
Frame3DGadget (70, 310, 300, 300, 130, "[ Resize ]", 0)
TextGadget(80,320, 320, 90,24,"X Change")
TextGadget(90,320, 347, 90,24,"Y Change")
TextGadget(100,320, 372, 90,24,"Width Change")
TextGadget(110,320, 397, 90,24,"Height Change")
TrackBarGadget(120, 420, 318, 150, 24, 10, 600) ; X Change
TrackBarGadget(130, 420, 345, 150, 24, 10, 200) ; Y Change
TrackBarGadget(140, 420, 370, 150, 24, 0, 200); Width Change
TrackBarGadget(150, 420, 395, 150, 24, 0, 200) ; Height Change
PanelGadget(#PANELID, 10, 10, WindowWidth()-25, 250)
AddGadgetItem(#PANELID, -1, "ButtonGadget")
; Frame3DGadget (510, 5, 5, 300, 210, "", 3)
ButtonGadget(PANELTAB_BTN,20,20,100,24,BtnText,#PB_Button_Toggle | #PB_Button_Left )
AddGadgetItem(#PANELID, -1, "ButtonImageGadget")
ButtonImageGadget(PANELTAB_BTNIMG,20,20,100,48,UseImage(0))
AddGadgetItem(#PANELID, -1, "CheckBoxGadget")
CheckBoxGadget(PANELTAB_CHKBOX,20,20,100,24, ChkText)
AddGadgetItem(#PANELID, -1, "ComboBoxGadget")
ComboBoxGadget(PANELTAB_COMBOBOX,20,20,100,24)
AddGadgetItem(#PANELID, -1, "ImageGadget")
ImageGadget(PANELTAB_IMG, 20, 20, 32, 32, UseImage(0))
AddGadgetItem(#PANELID, -1, "Frame3DGadget")
Frame3DGadget (PANELTAB_FRAME, 20, 20, 100, 100, FrameText, 3)
AddGadgetItem(#PANELID, -1, "IPAddressGadget")
IPAddressGadget(PANELTAB_IP, 20, 20, 100, 24)
AddGadgetItem(#PANELID, -1, "ListIconGadget")
ListIconGadget(PANELTAB_LISTICON, 20, 20, 194, 190,"Column 0", 200,#PB_ListIcon_GridLines|#PB_ListIcon_FullRowSelect)
AddGadgetItem(PANELTAB_LISTICON, 0, "Item 0", UseImage(0))
AddGadgetItem(#PANELID, -1, "ListViewGadget")
ListViewGadget(PANELTAB_LISTVIEW, 20, 20, 194, 190)
AddGadgetItem(PANELTAB_LISTVIEW, 0, "Item 0")
AddGadgetItem(#PANELID, -1, "OptionGadget")
OptionGadget(PANELTAB_OPTION, 20, 20, 100, 20, OptionText)
AddGadgetItem(#PANELID, -1, "PanelGadget")
AddGadgetItem(#PANELID, -1, "ProgressBarGadget")
ProgressBarGadget(PANELTAB_PROGRESSBAR, 20, 20, 100, 48, 0, 200, #PB_ProgressBar_Smooth)
AddGadgetItem(#PANELID, -1, "SpinGadget")
SpinGadget(PANELTAB_SPIN, 20, 20, 100, 24, 0, 10)
SetGadgetText(PANELTAB_SPIN, Str(5))
AddGadgetItem(#PANELID, -1, "StringGadget")
AddGadgetItem(#PANELID, -1, "TextGadget")
AddGadgetItem(#PANELID, -1, "TrackBarGadget")
AddGadgetItem(#PANELID, -1, "TreeGadget")
AddGadgetItem(#PANELID, -1, "WebGadget")
ClosePanelGadget()
EndIf
SetGadgetState(500,0)
ActivateGadget(500)
SetWindowCallback(@SizeCallback())
Repeat
EventID.l = WaitWindowEvent()
If EventID = #PB_EventGadget
Select EventGadgetID()
Case 0
result.l = GetGadgetState(0) ;get index
text.s=GetGadgetItemText(0,result,0) ; get item text
StatusBarText(0, 0, Str(result)+":"+text, 0)
Case 120
ResizeGadget(GetGadgetState(#PANELID)+ PANELTAB_START,GetGadgetState(120),-1,-1,-1)
Case 130
ResizeGadget(GetGadgetState(#PANELID)+ PANELTAB_START,-1,GetGadgetState(130),-1,-1)
Case 140
ResizeGadget(GetGadgetState(#PANELID)+ PANELTAB_START,-1,-1,GetGadgetState(140),-1)
Case 150
ResizeGadget(GetGadgetState(#PANELID)+ PANELTAB_START,-1,-1,-1,GetGadgetState(150))
EndSelect
EndIf
Until EventID = #PB_EventCloseWindow
EndIf
End
; ExecutableFormat=Windows
; Executable=D:\Mijn documenten\purebasic\ontwikkel\gadgetdemo.exe
; DisableDebugger
Registered PB version : 3.1 (Windows)
--------------------------
C. de Visser
Author of Super Guitar Chord Finder
http://www.ready4music.com
