
Code: Select all
AddElement(Saved())
Saved()\Names = "Sparkie, Srod"
Saved()\Times + 1

Code: Select all
AddElement(Saved())
Saved()\Names = "Sparkie, Srod"
Saved()\Times + 1
Code: Select all
GetWrongEndOfStick$ = "srod"
For i = 1 to 10000
PrintN(GetWrongEndOfStick$)
KickSrodUpTheArse + 1
Next
Code: Select all
Global oldproc
Procedure RemoveTVIcheckbox(tvGadget, item)
tvi.TV_ITEM
tvi\mask = #TVIF_HANDLE | #TVIF_STATE
tvi\hItem = GadgetItemID(tvGadget, item)
tvi\state = 0 << 12
tvi\stateMask = #TVIS_STATEIMAGEMASK
SendMessage_(GadgetID(1), #TVM_SETITEM, 0, tvi)
EndProcedure
Procedure Callback(hWnd, uMsg, wParam, lParam)
Protected result
Select uMsg
Case #WM_KEYDOWN
result=0
Case #WM_CHAR ;Stop the infernal beeping!
result=0
Default
result=CallWindowProc_(oldproc, hWnd, uMsg, wParam, lParam)
EndSelect
ProcedureReturn Result
EndProcedure
If OpenWindow(0, 0, 0, 400, 380, "TreeGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) And CreateGadgetList(WindowID(0))
TreeGadget(1, 180, 10, 160, 360, #PB_Tree_CheckBoxes)
For a = 0 To 4
AddGadgetItem (1, -1, "Normal Item "+Str(a), 0, 0)
AddGadgetItem (1, -1, "Node "+Str(a), 0, 0)
AddGadgetItem(1, -1, "Sub-Item 1", 0, 1)
AddGadgetItem(1, -1, "Sub-Item 2", 0, 1)
AddGadgetItem(1, -1, "Sub-Item 3", 0, 1)
AddGadgetItem(1, -1, "Sub-Item 4", 0, 1)
AddGadgetItem (1, -1, "File "+Str(a), 0, 0)
Next a
RemoveTVIcheckbox(1, 1)
RemoveTVIcheckbox(1, 6)
For i = 8 To 12
RemoveTVIcheckbox(1, i)
Next i
SetGadgetItemState(1, 8, #PB_Tree_Expanded)
oldproc=SetWindowLong_(GadgetID(1), #GWL_WNDPROC, @callback())
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
Here is something wierd:Sparkie wrote:![]()
Code: Select all
Procedure RemoveTVIcheckbox(tvGadget, item) tvi.TV_ITEM tvi\mask = #TVIF_HANDLE | #TVIF_STATE tvi\hItem = GadgetItemID(tvGadget, item) tvi\state = 0 << 12 tvi\stateMask = #TVIS_STATEIMAGEMASK SendMessage_(GadgetID(1), #TVM_SETITEM, 0, tvi) EndProcedure If OpenWindow(0, 0, 0, 400, 380, "TreeGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) And CreateGadgetList(WindowID(0)) TreeGadget(1, 180, 10, 160, 360, #PB_Tree_CheckBoxes) For a = 0 To 4 AddGadgetItem (1, -1, "Normal Item "+Str(a), 0, 0) AddGadgetItem (1, -1, "Node "+Str(a), 0, 0) AddGadgetItem(1, -1, "Sub-Item 1", 0, 1) AddGadgetItem(1, -1, "Sub-Item 2", 0, 1) AddGadgetItem(1, -1, "Sub-Item 3", 0, 1) AddGadgetItem(1, -1, "Sub-Item 4", 0, 1) AddGadgetItem (1, -1, "File "+Str(a), 0, 0) Next a RemoveTVIcheckbox(1, 1) RemoveTVIcheckbox(1, 6) For i = 8 To 12 RemoveTVIcheckbox(1, i) Next i SetGadgetItemState(1, 8, #PB_Tree_Expanded) Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow EndIf
Code: Select all
SetGadgetItemState(1, 8, #PB_Tree_Expanded)
Code: Select all
If OpenWindow(0, 0, 0, 400, 380, "TreeGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) And CreateGadgetList(WindowID(0))
TreeGadget(1, 180, 10, 160, 360, #PB_Tree_CheckBoxes)
AddGadgetItem (1, -1, "Normal Item "+Str(a), 0, 0)
AddGadgetItem(1, -1, "Sub-Item 1", 0, 1)
AddGadgetItem(1, -1, "Sub-Item 2", 0, 1)
AddGadgetItem(1, -1, "Sub-Item 3", 0, 1)
AddGadgetItem(1, -1, "Sub-Item 4", 0, 1)
SetGadgetItemState(1, 0, #PB_Tree_Checked)
SetGadgetItemState(1, 0, #PB_Tree_Expanded)
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
Sorry, what i report is not the same.srod wrote:Already reported and Freak has explained that it is not actually a bug, just a misuse of SetGadgetItemState() !
I should have realised. Reckon I should start going to bed earlier!
may be ok, but sorry: that Freak answer is far to be valid for my report.srod wrote:It actually amounts to the same thing, as Sparkie's code is a bit of a cheat to remove the checkmark box from a treeview which does have the #TVS_CHECKBOXES style after all - which is a slight abuse!So I think that Freak's response already explains this one as PB just resets the imagestate icon in response to SetGadgetItemState(....#PB_Tree_Expanded) etc. i.e. in the absence of #PB_Tree_Checked.