diff options
Diffstat (limited to 'e-util/e-table-item.c')
-rw-r--r-- | e-util/e-table-item.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/e-util/e-table-item.c b/e-util/e-table-item.c index de749ead68..ad6c0890f4 100644 --- a/e-util/e-table-item.c +++ b/e-util/e-table-item.c @@ -99,6 +99,7 @@ enum { PROP_LENGTH_THRESHOLD, PROP_CURSOR_ROW, PROP_UNIFORM_ROW_HEIGHT, + PROP_IS_EDITING, PROP_MINIMUM_WIDTH, PROP_WIDTH, @@ -1697,6 +1698,9 @@ eti_get_property (GObject *object, case PROP_UNIFORM_ROW_HEIGHT: g_value_set_boolean (value, eti->uniform_row_height); break; + case PROP_IS_EDITING: + g_value_set_boolean (value, e_table_item_is_editing (eti)); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; @@ -3273,6 +3277,16 @@ eti_class_init (ETableItemClass *class) FALSE, G_PARAM_READWRITE)); + g_object_class_install_property ( + object_class, + PROP_IS_EDITING, + g_param_spec_boolean ( + "is-editing", + "Whether is in an editing mode", + "Whether is in an editing mode", + FALSE, + G_PARAM_READABLE)); + eti_signals[CURSOR_CHANGE] = g_signal_new ( "cursor_change", G_OBJECT_CLASS_TYPE (object_class), @@ -3582,6 +3596,8 @@ e_table_item_enter_edit (ETableItem *eti, eti->editing_row = row; eti->edit_ctx = e_cell_enter_edit (eti->cell_views[col], view_to_model_col (eti, col), col, row); + + g_object_notify (G_OBJECT (eti), "is-editing"); } /** @@ -3616,6 +3632,8 @@ e_table_item_leave_edit (ETableItem *eti) eti->cell_views[col], view_to_model_col (eti, col), col, row, edit_ctx); + + g_object_notify (G_OBJECT (eti), "is-editing"); } /** @@ -4039,3 +4057,17 @@ e_table_item_get_printable (ETableItem *item) return printable; } + +/** + * e_table_item_is_editing: + * @eti: an %ETableItem + * + * Returns: Whether the table item is currently editing cell content. + **/ +gboolean +e_table_item_is_editing (ETableItem *eti) +{ + g_return_val_if_fail (E_IS_TABLE_ITEM (eti), FALSE); + + return eti_editing (eti); +} |