Page 1 of 1

Posted: Fri Jun 14, 2002 6:35 am
by BackupUser
Restored from previous forum. Originally posted by cor.

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

 
Using Windows 98 SE
Registered PB version : 3.1 (Windows)
--------------------------
C. de Visser
Author of Super Guitar Chord Finder
http://www.ready4music.com