Unfortunately I also wasn't able to utilize the pango "markup" attribute. But perhaps you may take a look into my workaround which uses a cell data callback to delete the markup tags during rendering and set the tagged cell text to bold:
Code: Select all
EnableExplicit
#BoldColumn = 0
#PANGO_WEIGHT_BOLD = 700
ImportC ""
g_object_set(*Object.GtkObject, PropertyName.P-UTF8, PropertyValue.I, Terminator.I = 0)
g_type_check_instance_is_a(*Instance.GTypeInstance, *Type.GTypeClass)
EndImport
ProcedureC ColumnRenderingCallback(*Column.GtkTreeViewColumn, *Renderer.GtkCellRenderer, *Model, *Iter.GtkTreeIter, *UserData)
Protected CellText.S
Protected StrippedText.S
Protected Row = Val(PeekS(gtk_tree_model_get_string_from_iter_(gtk_tree_view_get_model_(GadgetID(0)), *Iter), -1, #PB_UTF8))
CellText = GetGadgetItemText(0, Row, #BoldColumn)
If Left(CellText, 3) = "<b>"
StrippedText = ReplaceString(CellText, "<b>", "")
StrippedText = ReplaceString(StrippedText, "</b>", "")
g_object_set(*Renderer, "text", @StrippedText)
g_object_set(*Renderer, "weight", #PANGO_WEIGHT_BOLD)
g_object_set(*Renderer, "weight-set", #True)
Else
g_object_set(*Renderer, "weight-set", #False)
EndIf
EndProcedure
Define Column.I
Define i.I
Define Renderer.I
Define RendererList.I
OpenWindow(0, 100, 100, 430, 118, "Display bold text in tagged cells")
ListIconGadget(0, 10, 10, WindowWidth(0) - 20, WindowHeight(0) - 20, "Name", 120, #PB_ListIcon_GridLines)
AddGadgetColumn(0, 1, "Address", GadgetWidth(0) - GetGadgetItemAttribute(0, 0, #PB_ListIcon_ColumnWidth) - 30)
AddGadgetItem(0, -1, "Harry Rannit" + #LF$ + "12 Parliament Way, Battle Street, By the Bay")
AddGadgetItem(0, -1, "<b>Ginger Brokeit</b>" + #LF$ + "130 PureBasic Road, BigTown, CodeCity")
AddGadgetItem(0, -1, "Didi Foundit" + #LF$ + "321 Logo Drive, Mouse House, Downtown")
Column = gtk_tree_view_get_column_(GadgetID(0), #BoldColumn)
RendererList = gtk_tree_view_column_get_cell_renderers_(Column)
Renderer = g_list_nth_data_(RendererList, 1)
For i = 0 To g_list_length_(RendererList) - 1
Renderer = g_list_nth_data_(RendererList, i)
If g_type_check_instance_is_a(Renderer, gtk_cell_renderer_text_get_type_())
Break
EndIf
Next i
If Renderer
gtk_tree_view_column_set_cell_data_func_(Column, Renderer, @ColumnRenderingCallback(), 0, 0)
EndIf
Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow