#include <data/data-out.h>
#include <data/variable.h>
-#include <gtksheet/gsheetmodel.h>
-#include <gtksheet/psppire-marshal.h>
+#include <ui/gui/sheet/psppire-sheetmodel.h>
+#include <ui/gui/psppire-marshal.h>
#include <pango/pango-context.h>
static void psppire_data_store_init (PsppireDataStore *data_store);
static void psppire_data_store_class_init (PsppireDataStoreClass *class);
-static void psppire_data_store_sheet_model_init (GSheetModelIface *iface);
+static void psppire_data_store_sheet_model_init (PsppireSheetModelIface *iface);
static void psppire_data_store_finalize (GObject *object);
static void psppire_data_store_dispose (GObject *object);
-static gboolean psppire_data_store_clear_datum (GSheetModel *model,
+static gboolean psppire_data_store_clear_datum (PsppireSheetModel *model,
glong row, glong column);
&data_store_info, 0);
g_type_add_interface_static (data_store_type,
- G_TYPE_SHEET_MODEL,
+ PSPPIRE_TYPE_SHEET_MODEL,
&sheet_model_info);
}
static glong
-psppire_data_store_get_var_count (const GSheetModel *model)
+psppire_data_store_get_var_count (const PsppireSheetModel *model)
{
const PsppireDataStore *store = PSPPIRE_DATA_STORE (model);
}
static casenumber
-psppire_data_store_get_case_count_wrapper (const GSheetModel *model)
+psppire_data_store_get_case_count_wrapper (const PsppireSheetModel *model)
{
const PsppireDataStore *store = PSPPIRE_DATA_STORE (model);
return psppire_data_store_get_case_count (store);
}
static inline gchar *
-psppire_data_store_get_string_wrapper (const GSheetModel *model, glong row,
+psppire_data_store_get_string_wrapper (const PsppireSheetModel *model, glong row,
glong column)
{
return psppire_data_store_get_string (PSPPIRE_DATA_STORE (model), row, column);
static inline gboolean
-psppire_data_store_set_string_wrapper (GSheetModel *model,
+psppire_data_store_set_string_wrapper (PsppireSheetModel *model,
const gchar *text,
glong row, glong column)
{
-static gchar * get_column_subtitle (const GSheetModel *model, gint col);
-static gchar * get_column_button_label (const GSheetModel *model, gint col);
-static gboolean get_column_sensitivity (const GSheetModel *model, gint col);
-static GtkJustification get_column_justification (const GSheetModel *model, gint col);
+static gchar * get_column_subtitle (const PsppireSheetModel *model, gint col);
+static gchar * get_column_button_label (const PsppireSheetModel *model, gint col);
+static gboolean get_column_sensitivity (const PsppireSheetModel *model, gint col);
+static GtkJustification get_column_justification (const PsppireSheetModel *model, gint col);
-static gchar * get_row_button_label (const GSheetModel *model, gint row);
-static gboolean get_row_sensitivity (const GSheetModel *model, gint row);
+static gchar * get_row_button_label (const PsppireSheetModel *model, gint row);
+static gboolean get_row_sensitivity (const PsppireSheetModel *model, gint row);
static void
-psppire_data_store_sheet_model_init (GSheetModelIface *iface)
+psppire_data_store_sheet_model_init (PsppireSheetModelIface *iface)
{
iface->free_strings = TRUE;
iface->get_string = psppire_data_store_get_string_wrapper;
iface->is_editable = NULL;
iface->get_foreground = NULL;
iface->get_background = NULL;
- iface->get_cell_border = NULL;
iface->get_column_count = psppire_data_store_get_var_count;
iface->get_row_count = psppire_data_store_get_case_count_wrapper;
{
PsppireDataStore *store = PSPPIRE_DATA_STORE (data);
+
+ psppire_sheet_model_columns_deleted (PSPPIRE_SHEET_MODEL (store), dict_index, 1);
#if AXIS_TRANSITION
- g_sheet_model_columns_deleted (G_SHEET_MODEL (store), dict_index, 1);
- g_sheet_column_columns_changed (G_SHEET_COLUMN (store),
+
+ psppire_sheet_column_columns_changed (PSPPIRE_SHEET_COLUMN (store),
dict_index, -1);
#endif
}
-
-
static void
variable_changed_callback (GObject *obj, gint var_num, gpointer data)
{
PsppireDataStore *store = PSPPIRE_DATA_STORE (data);
#if AXIS_TRANSITION
- g_sheet_column_columns_changed (G_SHEET_COLUMN (store),
+ psppire_sheet_column_columns_changed (PSPPIRE_SHEET_COLUMN (store),
var_num, 1);
-
- g_sheet_model_range_changed (G_SHEET_MODEL (store),
+ psppire_sheet_model_range_changed (PSPPIRE_SHEET_MODEL (store),
-1, var_num,
-1, var_num);
#endif
psppire_data_store_insert_values (store, 1, posn);
#if AXIS_TRANSITION
- g_sheet_column_columns_changed (G_SHEET_COLUMN (store),
+
+ psppire_sheet_column_columns_changed (PSPPIRE_SHEET_COLUMN (store),
var_num, 1);
#endif
- g_sheet_model_columns_inserted (G_SHEET_MODEL (store), var_num, 1);
+ psppire_sheet_model_columns_inserted (PSPPIRE_SHEET_MODEL (store), var_num, 1);
}
ds->datasheet = datasheet_create (reader);
- g_sheet_model_range_changed (G_SHEET_MODEL (ds),
+ psppire_sheet_model_range_changed (PSPPIRE_SHEET_MODEL (ds),
-1, -1, -1, -1);
if ( ds->dict )
/* The entire model has changed */
- g_sheet_model_range_changed (G_SHEET_MODEL (data_store), -1, -1, -1, -1);
+ psppire_sheet_model_range_changed (PSPPIRE_SHEET_MODEL (data_store), -1, -1, -1, -1);
#if AXIS_TRANSITION
- g_sheet_column_columns_changed (G_SHEET_COLUMN (data_store), 0, -1);
+ psppire_sheet_column_columns_changed (PSPPIRE_SHEET_COLUMN (data_store), 0, -1);
#endif
if ( data_store->dict )
static gboolean
-psppire_data_store_clear_datum (GSheetModel *model,
+psppire_data_store_clear_datum (PsppireSheetModel *model,
glong row, glong col)
{
PsppireDataStore *store = PSPPIRE_DATA_STORE (model);
psppire_data_store_set_value (store, row, index, &v,
var_get_width (pv));
+ psppire_sheet_model_range_changed (model, row, col, row, col);
+
return TRUE;
}
{
glong n_cases;
const struct variable *pv = psppire_dict_get_variable (store->dict, col);
- g_return_val_if_fail (pv, FALSE);
+ if ( NULL == pv)
+ return FALSE;
n_cases = psppire_data_store_get_case_count (store);
var_get_case_index (pv), ss_cstr (text),
var_get_write_format (pv));
+ psppire_sheet_model_range_changed (PSPPIRE_SHEET_MODEL (store), row, col, row, col);
+
return TRUE;
}
store->show_labels = show_labels;
- g_sheet_model_range_changed (G_SHEET_MODEL (store),
+ psppire_sheet_model_range_changed (PSPPIRE_SHEET_MODEL (store),
-1, -1, -1, -1);
}
/* Row related funcs */
static gchar *
-get_row_button_label (const GSheetModel *model, gint unit)
+get_row_button_label (const PsppireSheetModel *model, gint unit)
{
gchar *s = g_strdup_printf (_("%d"), unit + FIRST_CASE_NUMBER);
static gboolean
-get_row_sensitivity (const GSheetModel *model, gint unit)
+get_row_sensitivity (const PsppireSheetModel *model, gint unit)
{
PsppireDataStore *ds = PSPPIRE_DATA_STORE (model);
/* Column related stuff */
static gchar *
-get_column_subtitle (const GSheetModel *model, gint col)
+get_column_subtitle (const PsppireSheetModel *model, gint col)
{
gchar *text;
const struct variable *v ;
}
static gchar *
-get_column_button_label (const GSheetModel *model, gint col)
+get_column_button_label (const PsppireSheetModel *model, gint col)
{
gchar *text;
struct variable *pv ;
}
static gboolean
-get_column_sensitivity (const GSheetModel *model, gint col)
+get_column_sensitivity (const PsppireSheetModel *model, gint col)
{
PsppireDataStore *ds = PSPPIRE_DATA_STORE (model);
static GtkJustification
-get_column_justification (const GSheetModel *model, gint col)
+get_column_justification (const PsppireSheetModel *model, gint col)
{
PsppireDataStore *ds = PSPPIRE_DATA_STORE (model);
const struct variable *pv ;
datasheet_delete_rows (ds->datasheet, first, n_cases);
g_signal_emit (ds, signals [CASES_DELETED], 0, first, n_cases);
+ psppire_sheet_model_rows_deleted (PSPPIRE_SHEET_MODEL (ds), first, n_cases);
return TRUE;
}
result = datasheet_insert_rows (ds->datasheet, posn, &tmp, 1);
if ( result )
- g_signal_emit (ds, signals [CASE_INSERTED], 0, posn);
+ {
+ g_signal_emit (ds, signals [CASE_INSERTED], 0, posn);
+ psppire_sheet_model_rows_inserted (PSPPIRE_SHEET_MODEL (ds), posn, 1);
+ }
else
g_warning ("Cannot insert case at position %ld\n", posn);
ok = datasheet_put_value (ds->datasheet, casenum, idx, v, width);
if (ok)
g_signal_emit (ds, signals [CASE_CHANGED], 0, casenum);
+
return ok;
}
&& data_in (input, LEGACY_NATIVE, fmt->type, 0, 0, 0, value, width)
&& datasheet_put_value (ds->datasheet, casenum, idx, value, width));
+ freea (value);
+
if (ok)
g_signal_emit (ds, signals [CASE_CHANGED], 0, casenum);
- freea (value);
-
- return TRUE;
+ return ok;
}
/* Resize the cases in the casefile, by inserting N_VALUES into every