I want to hide, unhide Listicon Columns, by clicking on it's Headers.
Code: Select all
Enumeration
#win1
#Menu
#ListIcon_1
#OpenFile
#SaveFile
#col0
#Col1
#Col2
#Col3
#Col4
#Col5
#Col6
#Col7
#Col8
#Exit
EndEnumeration
flg=#PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_ScreenCentered
OpenWindow(#win1, 0, 0, 770, 500, "Hide And UnHideColumns",flg)
If CreateMenu(#Menu, WindowID(#win1))
MenuTitle("Hide-UnhideColumn Test")
MenuItem( #OpenFile, "Open")
MenuItem( #SaveFile, "Save")
MenuItem( #col0, "Col 0")
MenuItem( #Col1, "Col 1")
MenuItem( #Col2, "Col 2")
MenuItem( #Col3, "Col 3")
MenuItem( #Col4, "Col 4")
MenuItem( #Col5, "Col 5")
MenuItem( #Col6, "Col 6")
MenuItem( #Col7, "Col 7")
MenuItem( #Col8, "Col 8")
MenuItem( #Exit, "Exit")
EndIf
ListIconGadget(#ListIcon_1, 10, 10, 750, 440, "Col 0", 100)
AddGadgetColumn(#ListIcon_1, 1, "Col 1", 80)
AddGadgetColumn(#ListIcon_1, 2, "Col 2", 75)
AddGadgetColumn(#ListIcon_1, 3, "Col 3", 50)
AddGadgetColumn(#ListIcon_1, 4, "Col 4", 40)
AddGadgetColumn(#ListIcon_1, 5, "Col 5", 100)
AddGadgetColumn(#ListIcon_1, 6, "Col 6", 110)
AddGadgetColumn(#ListIcon_1, 7, "Col 7", 60)
AddGadgetColumn(#ListIcon_1, 8, "Col 8", 45)
col_0 =SendMessage_(GadgetID(#ListIcon_1),#LVM_GETCOLUMNWIDTH,0 ,0)
col_1 =SendMessage_(GadgetID(#ListIcon_1),#LVM_GETCOLUMNWIDTH,1 ,0)
col_2 =SendMessage_(GadgetID(#ListIcon_1),#LVM_GETCOLUMNWIDTH,2 ,0)
col_3 =SendMessage_(GadgetID(#ListIcon_1),#LVM_GETCOLUMNWIDTH,3 ,0)
col_4 =SendMessage_(GadgetID(#ListIcon_1),#LVM_GETCOLUMNWIDTH,4 ,0)
col_5 =SendMessage_(GadgetID(#ListIcon_1),#LVM_GETCOLUMNWIDTH,5 ,0)
col_6 =SendMessage_(GadgetID(#ListIcon_1),#LVM_GETCOLUMNWIDTH,6 ,0)
col_7 =SendMessage_(GadgetID(#ListIcon_1),#LVM_GETCOLUMNWIDTH,7 ,0)
col_8 =SendMessage_(GadgetID(#ListIcon_1),#LVM_GETCOLUMNWIDTH,8 ,0)
TotHeaders=SendMessage_(SendMessage_(GadgetID(#ListIcon_1),#LVM_GETHEADER,0,0), #HDM_GETITEMCOUNT,0,0)
Global Dim HideColumns(TotHeaders)
Procedure HideColumnCallBack(WindowID, Message, wParam, lParam)
Result = #PB_ProcessPureBasicEvents
If Message=#WM_NOTIFY
*nmhdr.NMHEADER = lParam
If *nmhdr\hdr\code=#HDN_ITEMCHANGING
If HideColumns(*nmhdr\iItem)
*nmdata.HD_ITEM = *nmhdr\pitem
*nmdata\cxy=0
EndIf
EndIf
EndIf
ProcedureReturn Result
EndProcedure
SetWindowCallback(@HideColumnCallBack())
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
appQuit = 1
Case #PB_Event_Menu
Select EventMenu()
Case #col0
If GetMenuItemState(#Menu,#col0) = 0
SetMenuItemState(#Menu,#col0, 1)
SendMessage_(GadgetID(#ListIcon_1),#LVM_SETCOLUMNWIDTH,0 ,0)
HideColumns(0)=#True
Else
SetMenuItemState(#Menu,#col0, 0)
HideColumns(0)=#False
SendMessage_(GadgetID(#ListIcon_1),#LVM_SETCOLUMNWIDTH,0,col_0)
EndIf
;********************************************
Case #Col1
If GetMenuItemState(#Menu,#Col1) = 0
SetMenuItemState(#Menu, #Col1, 1)
SendMessage_(GadgetID(#ListIcon_1),#LVM_SETCOLUMNWIDTH,1 ,0)
HideColumns(1)=#True
Else
SetMenuItemState(#Menu, #Col1, 0)
HideColumns(1)=#False
SendMessage_(GadgetID(#ListIcon_1),#LVM_SETCOLUMNWIDTH,1,col_1)
EndIf
;********************************************
Case #Col2
If GetMenuItemState(#Menu,#Col2) = 0
SetMenuItemState(#Menu, #Col2, 1)
SendMessage_(GadgetID(#ListIcon_1),#LVM_SETCOLUMNWIDTH,2 ,0)
HideColumns(2)=#True
Else
SetMenuItemState(#Menu, #Col2, 0)
HideColumns(2)=#False
SendMessage_(GadgetID(#ListIcon_1),#LVM_SETCOLUMNWIDTH,2,col_2)
EndIf
;********************************************
Case #Col3
If GetMenuItemState(#Menu,#Col3) = 0
SetMenuItemState(#Menu, #Col3, 1)
SendMessage_(GadgetID(#ListIcon_1),#LVM_SETCOLUMNWIDTH,3 ,0)
HideColumns(3)=#True
Else
SetMenuItemState(#Menu, #Col3, 0)
HideColumns(3)=#False
SendMessage_(GadgetID(#ListIcon_1),#LVM_SETCOLUMNWIDTH,3,col_3)
EndIf
;********************************************
Case #Col4
If GetMenuItemState(#Menu,#Col4) = 0
SetMenuItemState(#Menu, #Col4, 1)
SendMessage_(GadgetID(#ListIcon_1),#LVM_SETCOLUMNWIDTH,4 ,0)
HideColumns(4)=#True
Else
SetMenuItemState(#Menu, #Col4, 0)
HideColumns(4)=#False
SendMessage_(GadgetID(#ListIcon_1),#LVM_SETCOLUMNWIDTH,4,col_4)
EndIf
;********************************************
Case #Col5
If GetMenuItemState(#Menu,#Col5) = 0
SetMenuItemState(#Menu, #Col5, 1)
SendMessage_(GadgetID(#ListIcon_1),#LVM_SETCOLUMNWIDTH,5 ,0)
HideColumns(5)=#True
Else
SetMenuItemState(#Menu, #Col5, 0)
HideColumns(5)=#False
SendMessage_(GadgetID(#ListIcon_1),#LVM_SETCOLUMNWIDTH,5,col_5)
EndIf
;********************************************
Case #Col6
If GetMenuItemState(#Menu,#Col6) = 0
SetMenuItemState(#Menu, #Col6, 1)
SendMessage_(GadgetID(#ListIcon_1),#LVM_SETCOLUMNWIDTH,6 ,0)
HideColumns(6)=#True
Else
SetMenuItemState(#Menu, #Col6, 0)
HideColumns(6)=#False
SendMessage_(GadgetID(#ListIcon_1),#LVM_SETCOLUMNWIDTH,6,col_6)
EndIf
;********************************************
Case #Col7
If GetMenuItemState(#Menu,#Col7) = 0
SetMenuItemState(#Menu, #Col7, 1)
SendMessage_(GadgetID(#ListIcon_1),#LVM_SETCOLUMNWIDTH,7 ,0)
HideColumns(7)=#True
Else
SetMenuItemState(#Menu, #Col7, 0)
HideColumns(7)=#False
SendMessage_(GadgetID(#ListIcon_1),#LVM_SETCOLUMNWIDTH,7,col_7)
EndIf
;********************************************
Case #Col8
If GetMenuItemState(#Menu,#Col8) = 0
SetMenuItemState(#Menu, #Col8, 1)
SendMessage_(GadgetID(#ListIcon_1),#LVM_SETCOLUMNWIDTH,8 ,0)
HideColumns(8)=#True
Else
SetMenuItemState(#Menu, #Col8, 0)
HideColumns(8)=#False
SendMessage_(GadgetID(#ListIcon_1),#LVM_SETCOLUMNWIDTH,8,col_8)
EndIf
EndSelect
Case #PB_Event_Gadget
Select EventGadget()
EndSelect
EndSelect
Until appQuit