コード例 #1
0
/*
 * ECell::event method
 */
static gint
eprog_event (ECellView *ecell_view, GdkEvent *event, int model_col, int view_col, int row, ECellFlags flags, ECellActions *actions)
{
	ECellProgressView *progress_view = (ECellProgressView *) ecell_view;
	void *_value = e_table_model_value_at (ecell_view->e_table_model, model_col, row);
	const int value = GPOINTER_TO_INT (_value);

#if 0
	if (!(flags & E_CELL_EDITING))
		return FALSE;
#endif

	switch (event->type){
	case GDK_KEY_PRESS:
		if (event->key.keyval != GDK_space)
			return FALSE;
		/* Fall through */
	case GDK_BUTTON_PRESS:
		if (!e_table_model_is_cell_editable(ecell_view->e_table_model, model_col, row))
			return FALSE;

		eprog_set_value (progress_view, model_col, view_col, row, value + 1);
		return TRUE;

	default:
		return FALSE;
	}
}
コード例 #2
0
ファイル: e-table-one.c プロジェクト: ebbywiselyn/evolution
static gboolean
one_is_cell_editable (ETableModel *etm, int col, int row)
{
	ETableOne *one = E_TABLE_ONE(etm);

	if (one->source)
		return e_table_model_is_cell_editable(one->source, col, -1);
	else
		return FALSE;
}
コード例 #3
0
ファイル: e-table-subset.c プロジェクト: jdapena/evolution
static gboolean
etss_is_cell_editable (ETableModel *etm,
                       gint col,
                       gint row)
{
	ETableSubset *etss = (ETableSubset *) etm;

	g_return_val_if_fail (VALID_ROW (etss, row), FALSE);

	return e_table_model_is_cell_editable (etss->source, col, MAP_ROW (etss, row));
}