Enumerate Gadgets

Share your advanced PureBasic knowledge/code with the community.
RASHAD
PureBasic Expert
PureBasic Expert
Posts: 4954
Joined: Sun Apr 12, 2009 6:27 am

Enumerate Gadgets

Post by RASHAD »

Happy New Year everybody

Code: Select all

CompilerIf #PB_Compiler_OS = #PB_OS_Windows
  Import ""
CompilerElse
  ImportC ""
CompilerEndIf
  PB_Object_EnumerateStart(*object)
  PB_Object_EnumerateNext(*object,*id.Integer)
  PB_Object_EnumerateAbort(*object)
  PB_Gadget_Objects.i
  PB_Image_Objects.i
EndImport
 
Procedure EnumerateGadget() 
  PB_Object_EnumerateStart(PB_Image_Objects)
  While PB_Object_EnumerateNext(PB_Image_Objects, @im)
    AddGadgetItem(23,-1, "Image  ID   : "+Str(im ))
    AddGadgetItem(23,-1, "Image Handle : "+ImageID(im))
    AddGadgetItem(23,-1, "*************") 
  Wend
  PB_Object_EnumerateAbort(*object)
  PB_Object_EnumerateStart(PB_Gadget_Objects)
  While PB_Object_EnumerateNext(PB_Gadget_Objects, @id)
    AddGadgetItem(23,-1, "Gadget  ID   : "+Str(id ))
      Select GadgetType(id)
        Case #PB_GadgetType_Button        :AddGadgetItem(23,-1, "GadgetType : ButtonGadget()")
        Case #PB_GadgetType_ButtonImage   :AddGadgetItem(23,-1, "GadgetType : ButtonImageGadget()")   
        Case #PB_GadgetType_Calendar      :AddGadgetItem(23,-1, "GadgetType : CalendarGadget()")      
        Case #PB_GadgetType_Canvas        :AddGadgetItem(23,-1, "GadgetType : CanvasGadget()")        
        Case #PB_GadgetType_CheckBox      :AddGadgetItem(23,-1, "GadgetType : CheckBoxGadget()")      
        Case #PB_GadgetType_ComboBox      :AddGadgetItem(23,-1, "GadgetType : ComboBoxGadget()")      
        Case #PB_GadgetType_Container     :AddGadgetItem(23,-1, "GadgetType : ContainerGadget()")     
        Case #PB_GadgetType_Date          :AddGadgetItem(23,-1, "GadgetType : DateGadget()")          
        Case #PB_GadgetType_Editor        :AddGadgetItem(23,-1, "GadgetType : EditorGadget()")        
        Case #PB_GadgetType_ExplorerCombo :AddGadgetItem(23,-1, "GadgetType : ExplorerComboGadget()") 
        Case #PB_GadgetType_ExplorerList  :AddGadgetItem(23,-1, "GadgetType : ExplorerListGadget()")  
        Case #PB_GadgetType_ExplorerTree  :AddGadgetItem(23,-1, "GadgetType : ExplorerTreeGadget()")  
        Case #PB_GadgetType_Frame         :AddGadgetItem(23,-1, "GadgetType : FrameGadget()")         
        Case #PB_GadgetType_HyperLink     :AddGadgetItem(23,-1, "GadgetType : HyperLinkGadget()")     
        Case #PB_GadgetType_Image         :AddGadgetItem(23,-1, "GadgetType : ImageGadget()")         
        Case #PB_GadgetType_IPAddress     :AddGadgetItem(23,-1, "GadgetType : IPAddressGadget()")     
        Case #PB_GadgetType_ListIcon      :AddGadgetItem(23,-1, "GadgetType : ListIconGadget()")      
        Case #PB_GadgetType_ListView      :AddGadgetItem(23,-1, "GadgetType : ListViewGadget()")      
        Case #PB_GadgetType_MDI           :AddGadgetItem(23,-1, "GadgetType : MDIGadget()")           
        Case #PB_GadgetType_Option        :AddGadgetItem(23,-1, "GadgetType : OptionGadget()")        
        Case #PB_GadgetType_Panel         :AddGadgetItem(23,-1, "GadgetType : PanelGadget()")         
        Case #PB_GadgetType_ProgressBar   :AddGadgetItem(23,-1, "GadgetType : ProgressBarGadget()")   
        Case #PB_GadgetType_Scintilla     :AddGadgetItem(23,-1, "GadgetType : ScintillaGadget()")     
        Case #PB_GadgetType_ScrollArea    :AddGadgetItem(23,-1, "GadgetType : ScrollAreaGadget()")    
        Case #PB_GadgetType_ScrollBar     :AddGadgetItem(23,-1, "GadgetType : ScrollBarGadget()")     
        Case #PB_GadgetType_Shortcut      :AddGadgetItem(23,-1, "GadgetType : ShortcutGadget()")      
        Case #PB_GadgetType_Spin          :AddGadgetItem(23,-1, "GadgetType : SpinGadget()")          
        Case #PB_GadgetType_Splitter      :AddGadgetItem(23,-1, "GadgetType : SplitterGadget()")      
        Case #PB_GadgetType_String        :AddGadgetItem(23,-1, "GadgetType : StringGadget()")        
        Case #PB_GadgetType_Text          :AddGadgetItem(23,-1, "GadgetType : TextGadget()")          
        Case #PB_GadgetType_TrackBar      :AddGadgetItem(23,-1, "GadgetType : TrackBarGadget()")      
        Case #PB_GadgetType_Tree          :AddGadgetItem(23,-1, "GadgetType : TreeGadget()")          
        Case #PB_GadgetType_Web           :AddGadgetItem(23,-1, "GadgetType : WebGadget()")                
      EndSelect
        AddGadgetItem(23,-1, "*************")      
  Wend
  PB_Object_EnumerateAbort(*object)
EndProcedure 
 
LoadImage(0, #PB_Compiler_Home + "Examples\Sources\Data\GeeBee2.bmp")
LoadImage(1, #PB_Compiler_Home + "Examples\Sources\Data\PureBasicLogo.bmp")

OpenWindow(0, 0, 0, 800, 600, "Enumurate Gadgets",#PB_Window_SystemMenu| #PB_Window_ScreenCentered |#PB_Window_Invisible)
ButtonGadget(10, 10, 10, 100, 20 , "Click to Enumerate")
ButtonImageGadget(12, 400, 10, 100, 90 ,ImageID(0))
ComboBoxGadget(14, 510, 10, 250, 20, #PB_ComboBox_Editable)
CheckBoxGadget(16, 510, 30, 250, 20, "CheckBox standard")
OptionGadget(18, 510, 50, 60, 20, "Option 1")
OptionGadget(19, 510, 70, 60, 20, "Option 2")
OptionGadget(20, 510, 90, 60, 20, "Option 3")
EditorGadget(23, 10, 40, 380, 540 )
SetGadgetColor(23,#PB_Gadget_BackColor,$DCFEFE)
SetGadgetColor(23,#PB_Gadget_FrontColor,$F1000C)
ContainerGadget(26,400,110,800,470)
  CalendarGadget(28, 0, 0, 230, 180)
  WebGadget(30, 0, 190, 380, 400, "http://www.purebasic.com")
CloseGadgetList()
While WindowEvent() : Wend
HideWindow(0,0)

Repeat
 Select WaitWindowEvent()
    Case #PB_Event_CloseWindow 
      Quit = 1
      
    Case #PB_Event_Gadget
      Select EventGadget()
        Case 10
          EnumerateGadget()
      EndSelect
 EndSelect
Until Quit = 1
Edit :Modified
Last edited by RASHAD on Sat Dec 31, 2016 7:56 am, edited 1 time in total.
Egypt my love
User avatar
netmaestro
PureBasic Bullfrog
PureBasic Bullfrog
Posts: 8451
Joined: Wed Jul 06, 2005 5:42 am
Location: Fort Nelson, BC, Canada

Re: Enumurate Gadgets

Post by netmaestro »

Useful, thanks for sharing. Note that you can also enumerate images in the same manner by importing PB_Image_Objects.
BERESHEIT
RASHAD
PureBasic Expert
PureBasic Expert
Posts: 4954
Joined: Sun Apr 12, 2009 6:27 am

Re: Enumerate Gadgets

Post by RASHAD »

Thanks NM :wink:
Previous post updated
Egypt my love
User avatar
netmaestro
PureBasic Bullfrog
PureBasic Bullfrog
Posts: 8451
Joined: Wed Jul 06, 2005 5:42 am
Location: Fort Nelson, BC, Canada

Re: Enumerate Gadgets

Post by netmaestro »

Excellent, lots of coders will find this useful, and a nice example too.
BERESHEIT
User avatar
Bisonte
Addict
Addict
Posts: 1313
Joined: Tue Oct 09, 2007 2:15 am

Re: Enumerate Gadgets

Post by Bisonte »

Uh two errors Rashad :

Old:
Line 20 : PB_Object_EnumerateAbort(*object)
Must be:
Line 20: PB_Object_EnumerateAbort(PB_Image_Objects)

and
Old:
Line 61: PB_Object_EnumerateAbort(*object)
Must be:
Line 61: PB_Object_EnumerateAbort(PB_Gadget_Objects)

otherwise : IMA ;)

Thanks for sharing.
PureBasic 6.21 (Windows x64) | Windows 11 Pro | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​
English is not my native language... (I often use DeepL.)
User avatar
Kwai chang caine
Always Here
Always Here
Posts: 5494
Joined: Sun Nov 05, 2006 11:42 pm
Location: Lyon - France

Re: Enumerate Gadgets

Post by Kwai chang caine »

Works very well
Thanks for sharing another jewel 8)
Egyptian MASTER wrote:Happy New Year everybody
A new year who begin with you, it's surely an "Happy new year" :wink:
ImageThe happiness is a road...
Not a destination
Post Reply