Code: Select all
; ********************************************************
; Center the Header of a column
; ********************************************************
#List=0
Procedure.s Header_Center(Column, font)
lc=SendMessage_(GadgetID(#List),#LVM_GETCOLUMNWIDTH,Column,0) ; DPI of the Column
Text$=GetGadgetItemText(#List, -1, Column) ; text of the header
StartDrawing(WindowOutput(0))
DrawingFont(FontID(font)) ; the header's 'font'
lt = TextWidth(Text$) ; DPI of Text$
ls= TextWidth(" ") ; DPI of one space
StopDrawing()
k= ((lc-lt)/2)/ls : s$=Space(k) ; calculate the right space to insert before the Text$
SetGadgetItemText(#List, -1, s$+Text$, Column)
EndProcedure
OpenWindow(0,0,0,718,300,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
LoadFont(0, "Arial", 8, #PB_Font_HighQuality)
LoadFont(1, "Arial", 16, #PB_Font_Italic | #PB_Font_HighQuality)
LoadFont(2, "Nina",12, #PB_Font_HighQuality)
ListIconGadget(#List,5,5,706,280,"Column 1",200)
AddGadgetColumn(#List,1,"Column 2",300)
AddGadgetColumn(#List,2,"Column 3",200)
SendMessage_(SendMessage_(GadgetID(#List),#LVM_GETHEADER,0,0),#WM_SETFONT,FontID(2),0)
For x=0 To 15
AddGadgetItem(#List,-1,"Text 1"+Chr(10)+"Text 2"+Chr(10)+"Text 3"+Chr(10)+"Text 4"+Chr(10)+"Text 5",0,0)
Next x
Header_Center(1, 2) ; Column (1) and Font nr. (2)
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow