Code: Select all
#MAX_pszText = 255
#HDI_TEXT = 2
#HDI_IMAGE = 32
#HDI_FORMAT = 4
#HDF_BITMAP_ON_LEFT = 0
#HDF_BITMAP_ON_RIGHT = 4096
#HDF_IMAGE = 2048
#HDF_STRING = 16384
Procedure SetHeaderImage(GadgetHandle.l, ImageIndex.l, Column.l, Align.l)
; ImageIndex : (using the lib's default images) 0 = first image [up], 1 = 2nd image [down]
; Align : #HDF_BITMAP_ON_LEFT, #HDF_BITMAP_ON_RIGHT
Protected Var.LVCOLUMN, VarHeader.HDITEM, TextColumn.s, HwndHeader.l, GadgetNumber.l
;
Debug " Set Image ; Index = " + Str(ImageIndex.l)
HwndHeader = SendMessage_(GadgetHandle, #LVM_GETHEADER, 0, 0)
TextColumn = Space(#MAX_pszText + 1)
Var\mask = #LVCF_TEXT | #LVCF_FMT
Var\pszText = @TextColumn
Var\cchTextMax = #MAX_pszText
SendMessage_(GadgetHandle, #LVM_GETCOLUMN, Column, @Var)
VarHeader\mask = #HDI_IMAGE | #HDI_FORMAT | #HDI_TEXT
VarHeader\fmt = #HDF_IMAGE | Align | #HDF_STRING | Var\fmt
VarHeader\iImage = ImageIndex
VarHeader\pszText = @TextColumn
VarHeader\cchTextMax = Len(TextColumn)
SendMessage_(HwndHeader, #HDM_SETITEM, Column, @VarHeader)
;
EndProcedure
#Window_0 = 0
#ListIcon_0 = 0
Procedure Open_Window_0()
If OpenWindow(#Window_0, 216, 0, 602, 302, "PureLVSORT V2 Test", #PB_Window_SystemMenu | #PB_Window_TitleBar | #PB_Window_ScreenCentered)
ListIconGadget(#ListIcon_0, 5, 5, 590, 285, "String", 110)
AddGadgetColumn(#ListIcon_0, 1, "Numeric", 110)
AddGadgetColumn(#ListIcon_0, 2, "Float", 110)
AddGadgetColumn(#ListIcon_0, 3, "DateDDMMYYYY", 120)
AddGadgetColumn(#ListIcon_0, 4, "DateMMDDYYYY", 120)
AddGadgetColumn(#ListIcon_0, 5, "FileSize", 120)
AddGadgetColumn(#ListIcon_0, 6, "NoSorting", 120)
AddGadgetItem(#ListIcon_0, -1, "ABCDE" + Chr(10) + "514" + Chr(10) + "0.9" + Chr(10) + "31/12/2004" + Chr(10) + "12/31/2004" + Chr(10) + "15.02 MB" + Chr(10) + "0")
AddGadgetItem(#ListIcon_0, -1, "ACDEF" + Chr(10) + "118" + Chr(10) + "1.9" + Chr(10) + "11/12/2004" + Chr(10) + "12/11/2004" + Chr(10) + "65 B" + Chr(10) + "1")
AddGadgetItem(#ListIcon_0, -1, "ZABCD" + Chr(10) + "-414" + Chr(10) + "7.0" + Chr(10) + "21/01/2003" + Chr(10) + "01/21/2003" + Chr(10) + "5.98 GB" + Chr(10) + "3")
AddGadgetItem(#ListIcon_0, -1, "DEFGH" + Chr(10) + "524" + Chr(10) + "900" + Chr(10) + "10/06/2001" + Chr(10) + "06/10/2001" + Chr(10) + "100 KB" + Chr(10) + "A")
EndIf
EndProcedure
Open_Window_0()
; ListIcon Sort Setup
If PureLVSORT_SelectGadgetToSort(#ListIcon_0, #PureLVSORT_ShowClickedHeader_IconLeft) = #PureLVSORT_Ok
PureLVSORT_SetColumnType(#ListIcon_0, 0, #PureLVSORT_String) ; default, not necessary
PureLVSORT_SetColumnType(#ListIcon_0, 1, #PureLVSORT_Numeric)
PureLVSORT_SetColumnType(#ListIcon_0, 2, #PureLVSORT_Float)
PureLVSORT_SetColumnType(#ListIcon_0, 3, #PureLVSORT_DateDDMMYYYY)
PureLVSORT_SetColumnType(#ListIcon_0, 4, #PureLVSORT_DateMMDDYYYY)
PureLVSORT_SetColumnType(#ListIcon_0, 5, #PureLVSORT_FileSize)
PureLVSORT_SetColumnType(#ListIcon_0, 6, #PureLVSORT_NoSorting)
EndIf
; Try with and without this line
SetHeaderImage(GadgetID(#ListIcon_0), 1, 0, #HDF_BITMAP_ON_LEFT)
;
Repeat
Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow
End