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






