Ironed out the kinks in editing apis for GtkCellArea
- Added gtk_cell_area_aligned_cell_area() to get the aligned internal area use by a cell (for focus painting and for event areas). - Provide the event area in "editing-started" signal - Fire "remove-editable" when editing is canceled by the user, an implementing layouting widget need only catch "editing-started" and "remove-editable" now. - CellAreaScaffold/testcellarea now edit textrenderers.
This commit is contained in:
		| @ -291,7 +291,7 @@ focus_list_model (void) | ||||
|  | ||||
| static void | ||||
| cell_toggled (GtkCellRendererToggle *cell_renderer, | ||||
| 	      gchar                 *path, | ||||
| 	      const gchar           *path, | ||||
| 	      CellAreaScaffold      *scaffold) | ||||
| { | ||||
|   GtkTreeModel *model = cell_area_scaffold_get_model (scaffold); | ||||
| @ -307,6 +307,23 @@ cell_toggled (GtkCellRendererToggle *cell_renderer, | ||||
|   gtk_list_store_set (GTK_LIST_STORE (model), &iter, FOCUS_COLUMN_CHECK, !active, -1); | ||||
| } | ||||
|  | ||||
| static void | ||||
| cell_edited (GtkCellRendererToggle *cell_renderer, | ||||
| 	     const gchar           *path, | ||||
| 	     const gchar           *new_text, | ||||
| 	     CellAreaScaffold      *scaffold) | ||||
| { | ||||
|   GtkTreeModel *model = cell_area_scaffold_get_model (scaffold); | ||||
|   GtkTreeIter   iter; | ||||
|  | ||||
|   g_print ("Cell edited with new text '%s' !\n", new_text); | ||||
|  | ||||
|   if (!gtk_tree_model_get_iter_from_string (model, &iter, path)) | ||||
|     return; | ||||
|  | ||||
|   gtk_list_store_set (GTK_LIST_STORE (model), &iter, FOCUS_COLUMN_NAME, new_text, -1); | ||||
| } | ||||
|  | ||||
| static GtkWidget * | ||||
| focus_scaffold (void) | ||||
| { | ||||
| @ -329,7 +346,9 @@ focus_scaffold (void) | ||||
|   gtk_cell_area_box_pack_start (GTK_CELL_AREA_BOX (area), renderer, TRUE, FALSE); | ||||
|   gtk_cell_area_attribute_connect (area, renderer, "text", FOCUS_COLUMN_NAME); | ||||
|  | ||||
|   /* Catch signal ... */ | ||||
|   g_signal_connect (G_OBJECT (renderer), "edited", | ||||
| 		    G_CALLBACK (cell_edited), scaffold); | ||||
|  | ||||
|   focus_renderer = renderer = gtk_cell_renderer_toggle_new (); | ||||
|   g_object_set (G_OBJECT (renderer), "xalign", 0.0F, NULL); | ||||
|   gtk_cell_area_box_pack_start (GTK_CELL_AREA_BOX (area), renderer, FALSE, TRUE); | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 Tristan Van Berkom
					Tristan Van Berkom