Code: Select all
EnableExplicit
ImportC "-gtk"
g_object_set(object, property.p-UTF8, value, v=0)
gtk_cell_layout_get_cells(col)
g_signal_connect(instance, signal.p-ascii, callback, vdata, destroy=0, flags=0) As "g_signal_connect_data"
EndImport
ProcedureC _MakeColumnEditable_Callback(Cell, Path.s, newTxt.s, Gadget)
Protected Row = Val(Path)
SetGadgetItemText(Gadget, row, PeekS(@newTxt, -1, #PB_UTF8), GetGadgetData(Gadget))
EndProcedure
Procedure MakeColumnEditable(ListIcon, Column)
Protected col = gtk_tree_view_get_column_(GadgetID(ListIcon), Column)
Protected aList = gtk_cell_layout_get_cells(col)
Protected renderer = g_list_nth_data_(alist, 0)
g_list_free_(aList)
SetGadgetData(ListIcon, Column)
g_signal_connect(renderer, "edited", @_MakeColumnEditable_Callback(), ListIcon)
g_object_set(Renderer, "editable", 1)
EndProcedure
OpenWindow(1, 100, 100,400, 200, "ListIcon Editing", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ListIconGadget(1, 5, 5, 390, 190, "Column1", 90)
gtk_tree_view_set_enable_search_(GadgetID(1), 0)
AddGadgetColumn(1, 1, "Column2", 200)
MakeColumnEditable(1, 1)
AddGadgetItem(1,0, "001" + #LF$ + "Test 1")
AddGadgetItem(1,1, "002" + #LF$ + "Test 2")
AddGadgetItem(1,2, "003" + #LF$ + "Test 3")
;
Repeat
Define Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow
End