Code: Select all
lvi.LV_ITEM\mask=#LVIF_STATE
lvi\stateMask=#LVIS_SELECTED
lvi\state=#LVIS_SELECTED
SendMessage_(GadgetID(0),#LVM_SETITEMSTATE,-1,lvi)
Code: Select all
lvi.LV_ITEM\mask=#LVIF_STATE
lvi\stateMask=#LVIS_SELECTED
lvi\state=#LVIS_SELECTED
SendMessage_(GadgetID(0),#LVM_SETITEMSTATE,-1,lvi)
Code: Select all
Procedure TreeDeselectAllItems(TreeId)
  Protected CurItem.i, CurState.i, ItemCnt.i = CountGadgetItems(TreeId) 
  If ItemCnt <= 0: ProcedureReturn: EndIf 
  For CurItem = 0 To ItemCnt-1
    CurState = GetGadgetItemState(TreeId, CurItem)
    CurState = CurState ! #PB_Tree_Checked
    SetGadgetItemState(TreeId, CurItem, CurState)
  Next
EndProcedure
Procedure TreeSelectAllItems(TreeId)
  Protected CurItem.i, CurState.i, ItemCnt.i = CountGadgetItems(TreeId) 
  If ItemCnt <= 0: ProcedureReturn: EndIf 
  For CurItem = 0 To ItemCnt-1
    CurState = GetGadgetItemState(TreeId, CurItem)
    CurState = CurState | #PB_Tree_Checked
    SetGadgetItemState(TreeId, CurItem, CurState)
  Next
EndProcedure We'll see if anyone else can come up with a one-hit answer.
 We'll see if anyone else can come up with a one-hit answer.Maybe that's the key!? I didn't think there was such an "apply to all items" WM message, but maybe -1 is all thats needed?!?! hope so! but i just noticed it looks like thats what you were trying in your first post; Function: LVM_SetItemState
; Description:
; Changes the state of an item in a ListView control.
; Parameters:
; p_Item - Zero-based index of the item. If set to -1, the state change is applied to all items.
Code: Select all
[DllImport("user32.dll", EntryPoint = "SendMessage")]
  internal static extern IntPtr SendMessage(IntPtr hWnd, UInt32 msg, IntPtr wParam, IntPtr lParam);
  // Select All
  SendMessage(listBox.Handle, 0x185, (IntPtr)1, (IntPtr)(-1));
  // Unselect All
  SendMessage(listBox.Handle, 0x185, (IntPtr)0, (IntPtr)(-1)); i think still have to enumerate through all items for Linux+OSX
  i think still have to enumerate through all items for Linux+OSXCode: Select all
#LVIS_CHECKED = $2000
#LVIS_UNCHECKED = $1000
If OpenWindow(0, 0, 0, 640, 400, "ListIconGadgets", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
 
  ListIconGadget(0,  10, 10, 620,350, "Column 0", 100, #PB_ListIcon_GridLines|#PB_ListIcon_FullRowSelect| #PB_ListIcon_CheckBoxes )
  ButtonGadget(1,10,370,100,20,"Set CheckBoxes")
 
  For c = 1 To 6
    AddGadgetColumn(0, c, "Column " + Str(c), 100)
  Next
  For r = 0 To 100
    AddGadgetItem(0, r, "  Item "+Str(r)+Chr(10)+"Item "+Str(r)+Chr(10)+"Item 3"+Chr(10)+"Item 4")
  Next
EndIf
Repeat
  Select WaitWindowEvent(1)
     
    Case #PB_Event_CloseWindow
      Quit = 1
     
    Case #PB_Event_Gadget
      Select EventGadget()               
        Case 1
            Run ! 1
            If Run = 1
                lvi.LV_ITEM\mask=#LVIF_STATE
                lvi\stateMask=#LVIS_STATEIMAGEMASK
                lvi\state=#LVIS_CHECKED
                SendMessage_(GadgetID(0),#LVM_SETITEMSTATE,-1,lvi)
                Debug GetGadgetItemState(0,2)
            Else               
                lvi.LV_ITEM\mask=#LVIF_STATE
                lvi\stateMask=#LVIS_STATEIMAGEMASK
                lvi\state=#LVIS_UNCHECKED
                SendMessage_(GadgetID(0),#LVM_SETITEMSTATE,-1,lvi)
                Debug GetGadgetItemState(0,2)
            EndIf
       
      EndSelect
  EndSelect
 
Until Quit = 1


