Code: Select all
; //////////////////////////////////////////////
; TreeGadget Add Icon
; //////////////////////////////////////////////
Procedure.l AddTreeIcon(TreeID.l,Image.l)
hItem=AddGadgetItem(TreeID,-1,"",Image)
tvitem.TV_ITEM
tvitem\hitem=hItem
tvitem\mask=#TVIF_IMAGE
SendMessage_(GadgetID(TreeID), #TVM_GETITEM,0,@tvitem)
res=tvitem\iImage
ProcedureReturn res
EndProcedure
; //////////////////////////////////////////////
; TreeGadget Change Icon
; //////////////////////////////////////////////
Procedure.l SetTreeIcon(TreeID.l,Index,IcoIndex.l)
hItem=GadgetItemID(TreeID,Index)
txt.S=Space(1000)
tvitem.TV_ITEM
tvitem\hitem=hItem
tvitem\psztext=@txt
tvitem\cchTextMax = 1000
tvitem\mask=#TVIF_TEXT|#TVIF_IMAGE|#TVIF_HANDLE|#TVIF_SELECTEDIMAGE
SendMessage_(GadgetID(TreeID), #TVM_GETITEM,0,@tvitem)
tvitem\iImage=IcoIndex
tvitem\iSelectedImage=IcoIndex
SendMessage_(GadgetID(TreeID), #TVM_SETITEM,0,@tvitem)
EndProcedure
; //////////////////////////////////////////////
; Code Example
; //////////////////////////////////////////////
Enumeration
#WIN
#TREE
#BUTTON
EndEnumeration
If OpenWindow(#WIN, 0, 0, 222, 222, "PureBasic Window", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget)
;images
img0=LoadImage(0, "Data\Drive.bmp")
img1=LoadImage(1, "Data\CdPlayer.ico")
;tree gadget
TreeGadget(#TREE, 0,0,111,222,#PB_Tree_AlwaysShowSelection)
;init tree gadget icon
img0Index=AddTreeIcon(#TREE,img0)
img1Index=AddTreeIcon(#TREE,img1)
;build tree
AddGadgetItem(#TREE,-1,"1-Entry",img0)
AddGadgetItem(#TREE,-1,"2-Entry",img1)
AddGadgetItem(#TREE,-1,"3-Entry",img1)
ButtonGadget(#BUTTON,120,5,80,20,"Change Icons")
Repeat
EventID.l = WaitWindowEvent()
If EventID = #PB_Event_CloseWindow ; If the user has pressed on the close button
Quit = 1
EndIf
If eventID = #PB_Event_Gadget
If EventGadget()=#BUTTON
If mode
mode=0
SetTreeIcon(#TREE,0,img0Index)
SetTreeIcon(#TREE,1,img1Index)
SetTreeIcon(#TREE,2,img1Index)
Else
mode=1
SetTreeIcon(#TREE,0,img1Index)
SetTreeIcon(#TREE,1,img0Index)
SetTreeIcon(#TREE,2,img1Index)
EndIf
EndIf
EndIf
Until Quit = 1
EndIf
End ; All the opened windows are closed automatically by PureBasic