of ListIconGadget columns during runtime. For a cross-platform
solution take a look into this posting.
Code: Select all
EnableExplicit
#kControlUseJustMask = $0040
#teCenter = 1
#teFlushRight = -1
#teFlushLeft = -2
ImportC ""
GetDataBrowserListViewHeaderDesc(DataBrowserRef.L, ColumnID.L, *HeaderDesc)
GetDataBrowserTableViewColumnProperty(DataBrowserRef.L, Column.L, *ColumnID)
SetDataBrowserListViewHeaderDesc(DataBrowserRef.L, ColumnID.L, *HeaderDesc)
EndImport
Structure RGBColor
Red.U
Green.U
Blue.U
EndStructure
Structure ControlFontStyleRec
Flags.W
Font.W
Size.W
Style.W
Mode.W
Just.W
ForeColor.RGBColor
BackColor.RGBColor
EndStructure
Structure DataBrowserListViewHeaderDesc
Version.L
MinimumColumnWidth.U
MaximumColumnWidth.U
TitleOffset.W
CFTitleString.L
InitialSortOrder.U
FontStyle.ControlFontStyleRec
IconInfo.L
EndStructure
Procedure SetListIconColumnJustification(ListIconID.L, Column.L, OptionGadgetID.L)
Protected ColumnID.L
Protected FontStyle.ControlFontStyleRec
Protected HeaderDesc.DataBrowserListViewHeaderDesc
If GetDataBrowserTableViewColumnProperty(GadgetID(0), Column, @ColumnID) = 0
If GetDataBrowserListViewHeaderDesc(GadgetID(0), ColumnID, @HeaderDesc) = 0
HeaderDesc\FontStyle\Flags = #kControlUseJustMask
Select OptionGadgetID
Case 2
HeaderDesc\FontStyle\Just = #teFlushLeft
Case 3
HeaderDesc\FontStyle\Just = #teCenter
Case 4
HeaderDesc\FontStyle\Just = #teFlushRight
EndSelect
SetDataBrowserListViewHeaderDesc(GadgetID(0), ColumnID, @HeaderDesc)
EndIf
EndIf
EndProcedure
Define GadgetID.L
OpenWindow(0, 200, 100, 445, 160, "Change column justification")
ListIconGadget(0, 5, 5, 435, 80, "Name", 110)
AddGadgetColumn(0, 1, "Address", 300)
AddGadgetItem(0, -1, "Harry Rannit" + #LF$ + "12 Parliament Way, Battle Street, By the Bay")
AddGadgetItem(0, -1, "Ginger Brokeit" + #LF$ + "130 PureBasic Road, BigTown, CodeCity")
Frame3DGadget(1, 10, 100, WindowWidth(0) - 20, 50, "Justification of 2nd column:")
OptionGadget(2, 20, 120, 70, 20, "Left")
OptionGadget(3, 180, 120, 70, 20, "Center")
OptionGadget(4, 330, 120, 70, 20, "Right")
SetGadgetState(2, #True)
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Break
Case #PB_Event_Gadget
GadgetID = EventGadget()
Select GadgetID
Case 2 To 4
SetListIconColumnJustification(0, 1, GadgetID)
EndSelect
EndSelect
ForEver