#include <pango/pango.h>
#include "gtksheet.h"
#include <gtksheet/psppire-marshal.h>
-#include "gsheetmodel.h"
+#include "psppire-sheetmodel.h"
#include <libpspp/misc.h>
#include <math.h>
static inline void
dispose_string (const GtkSheet *sheet, gchar *text)
{
- GSheetModel *model = gtk_sheet_get_model (sheet);
+ PsppireSheetModel *model = gtk_sheet_get_model (sheet);
if ( ! model )
return;
- if (g_sheet_model_free_strings (model))
+ if (psppire_sheet_model_free_strings (model))
g_free (text);
}
/* Callback which occurs whenever columns are inserted / deleted in the model */
static void
-columns_inserted_deleted_callback (GSheetModel *model, gint first_column,
+columns_inserted_deleted_callback (PsppireSheetModel *model, gint first_column,
gint n_columns,
gpointer data)
{
GtkSheet *sheet = GTK_SHEET (data);
GtkSheetRange range;
- gint model_columns = g_sheet_model_get_column_count (model);
+ gint model_columns = psppire_sheet_model_get_column_count (model);
/* Need to update all the columns starting from the first column and onwards.
/* Callback which occurs whenever rows are inserted / deleted in the model */
static void
-rows_inserted_deleted_callback (GSheetModel *model, gint first_row,
+rows_inserted_deleted_callback (PsppireSheetModel *model, gint first_row,
gint n_rows, gpointer data)
{
GtkSheet *sheet = GTK_SHEET (data);
GtkSheetRange range;
- gint model_rows = g_sheet_model_get_row_count (model);
+ gint model_rows = psppire_sheet_model_get_row_count (model);
/* Need to update all the rows starting from the first row and onwards.
* Previous rows are unchanged, so don't need to be updated.
If col0 or coli are negative, then all columns will be updated.
*/
static void
-range_update_callback (GSheetModel *m, gint row0, gint col0,
+range_update_callback (PsppireSheetModel *m, gint row0, gint col0,
gint rowi, gint coli, gpointer data)
{
GtkSheet *sheet = GTK_SHEET (data);
* Returns: the new sheet widget
*/
GtkWidget *
-gtk_sheet_new (GSheetModel *model)
+gtk_sheet_new (PsppireSheetModel *model)
{
GtkWidget *widget = g_object_new (GTK_TYPE_SHEET,
"model", model,
*
*/
void
-gtk_sheet_set_model (GtkSheet *sheet, GSheetModel *model)
+gtk_sheet_set_model (GtkSheet *sheet, PsppireSheetModel *model)
{
g_return_if_fail (GTK_IS_SHEET (sheet));
GtkJustification justification,
const gchar *text)
{
- GSheetModel *model ;
+ PsppireSheetModel *model ;
gchar *old_text ;
g_return_if_fail (sheet != NULL);
model = gtk_sheet_get_model (sheet);
- old_text = g_sheet_model_get_string (model, row, col);
+ old_text = psppire_sheet_model_get_string (model, row, col);
if (0 != safe_strcmp (old_text, text))
{
g_signal_handler_block (sheet->model, sheet->update_handler_id);
- g_sheet_model_set_string (model, text, row, col);
+ psppire_sheet_model_set_string (model, text, row, col);
g_signal_handler_unblock (sheet->model, sheet->update_handler_id);
}
- if ( g_sheet_model_free_strings (model))
+ if ( psppire_sheet_model_free_strings (model))
g_free (old_text);
}
static void
gtk_sheet_real_cell_clear (GtkSheet *sheet, gint row, gint column)
{
- GSheetModel *model = gtk_sheet_get_model (sheet);
+ PsppireSheetModel *model = gtk_sheet_get_model (sheet);
gchar *old_text = gtk_sheet_cell_get_text (sheet, row, column);
if (old_text && strlen (old_text) > 0 )
{
- g_sheet_model_datum_clear (model, row, column);
+ psppire_sheet_model_datum_clear (model, row, column);
}
dispose_string (sheet, old_text);
gchar *
gtk_sheet_cell_get_text (const GtkSheet *sheet, gint row, gint col)
{
- GSheetModel *model;
+ PsppireSheetModel *model;
g_return_val_if_fail (sheet != NULL, NULL);
g_return_val_if_fail (GTK_IS_SHEET (sheet), NULL);
if ( !model )
return NULL;
- return g_sheet_model_get_string (model, row, col);
+ return psppire_sheet_model_get_string (model, row, col);
}
gtk_sheet_size_allocate_entry (sheet);
gtk_widget_set_sensitive (GTK_WIDGET (sheet_entry),
- g_sheet_model_is_editable (sheet->model,
+ psppire_sheet_model_is_editable (sheet->model,
row, col));
gtk_widget_map (sheet->entry_widget);
}
sheet_signals[BUTTON_EVENT_COLUMN], 0,
column, event);
- if (g_sheet_model_get_column_sensitivity (sheet->model, column))
+ if (psppire_sheet_model_get_column_sensitivity (sheet->model, column))
{
if ( event->type == GDK_2BUTTON_PRESS && event->button == 1)
g_signal_emit (sheet,
sheet_signals[BUTTON_EVENT_ROW], 0,
row, event);
- if (g_sheet_model_get_row_sensitivity (sheet->model, row))
+ if (psppire_sheet_model_get_row_sensitivity (sheet->model, row))
{
if ( event->type == GDK_2BUTTON_PRESS && event->button == 1)
g_signal_emit (sheet,
column = column_from_xpixel (sheet, x);
- if (g_sheet_model_get_column_sensitivity (sheet->model, column))
+ if (psppire_sheet_model_get_column_sensitivity (sheet->model, column))
{
veto = gtk_sheet_click_cell (sheet, -1, column);
gtk_grab_add (GTK_WIDGET (sheet));
y += sheet->vadjustment->value;
row = row_from_ypixel (sheet, y);
- if (g_sheet_model_get_row_sensitivity (sheet->model, row))
+ if (psppire_sheet_model_get_row_sensitivity (sheet->model, row))
{
veto = gtk_sheet_click_cell (sheet, row, -1);
gtk_grab_add (GTK_WIDGET (sheet));
{
if (sheet->row_title_under && row >= 0)
{
- gchar *text = g_sheet_model_get_row_subtitle (sheet->model, row);
+ gchar *text = psppire_sheet_model_get_row_subtitle (sheet->model, row);
show_subtitle (sheet, row, -1, text);
g_free (text);
if (sheet->column_title_under && column >= 0)
{
- gchar *text = g_sheet_model_get_column_subtitle (sheet->model,
+ gchar *text = psppire_sheet_model_get_column_subtitle (sheet->model,
column);
show_subtitle (sheet, -1, column, text);
gboolean is_sensitive = FALSE;
GtkSheetButton *
- button = g_sheet_model_get_column_button (sheet->model, col);
+ button = psppire_sheet_model_get_column_button (sheet->model, col);
allocation.y = 0;
allocation.x = psppire_axis_start_pixel (sheet->haxis, col)
+ CELL_SPACING;
allocation.height = sheet->column_title_area.height;
allocation.width = psppire_axis_unit_size (sheet->haxis, col);
- is_sensitive = g_sheet_model_get_column_sensitivity (sheet->model, col);
+ is_sensitive = psppire_sheet_model_get_column_sensitivity (sheet->model, col);
draw_button (sheet, sheet->column_title_window,
button, is_sensitive, allocation);
gboolean is_sensitive = FALSE;
GtkSheetButton *button =
- g_sheet_model_get_row_button (sheet->model, row);
+ psppire_sheet_model_get_row_button (sheet->model, row);
allocation.x = 0;
allocation.y = psppire_axis_start_pixel (sheet->vaxis, row)
+ CELL_SPACING;
allocation.width = sheet->row_title_area.width;
allocation.height = psppire_axis_unit_size (sheet->vaxis, row);
- is_sensitive = g_sheet_model_get_row_sensitivity (sheet->model, row);
+ is_sensitive = psppire_sheet_model_get_row_sensitivity (sheet->model, row);
draw_button (sheet, sheet->row_title_window,
button, is_sensitive, allocation);
attr->border.mask = 0;
attr->border.color = GTK_WIDGET (sheet)->style->black;
- attr->is_editable = g_sheet_model_is_editable (sheet->model, row, col);
+ attr->is_editable = psppire_sheet_model_is_editable (sheet->model, row, col);
colormap = gtk_widget_get_colormap (GTK_WIDGET (sheet));
- fg = g_sheet_model_get_foreground (sheet->model, row, col);
+ fg = psppire_sheet_model_get_foreground (sheet->model, row, col);
if ( fg )
{
gdk_colormap_alloc_color (colormap, fg, TRUE, TRUE);
attr->foreground = *fg;
}
- bg = g_sheet_model_get_background (sheet->model, row, col);
+ bg = psppire_sheet_model_get_background (sheet->model, row, col);
if ( bg )
{
gdk_colormap_alloc_color (colormap, bg, TRUE, TRUE);
}
attr->justification =
- g_sheet_model_get_column_justification (sheet->model, col);
+ psppire_sheet_model_get_column_justification (sheet->model, col);
- j = g_sheet_model_get_justification (sheet->model, row, col);
+ j = psppire_sheet_model_get_justification (sheet->model, row, col);
if (j)
attr->justification = *j;
}
-GSheetModel *
+PsppireSheetModel *
gtk_sheet_get_model (const GtkSheet *sheet)
{
g_return_val_if_fail (GTK_IS_SHEET (sheet), NULL);