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 

