X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Fgtksheet%2Fgsheetmodel.h;h=cd7f1d33596814fe9e8ec261eea1d5ef9afef156;hb=02351194a13ff724babc77e9c1da48ef0eed254f;hp=39ab173f3593a3e4582b0e71ab0e7a4f7a858da0;hpb=1ce1429567835f83a712a8a76ab80db64360d742;p=pspp diff --git a/lib/gtksheet/gsheetmodel.h b/lib/gtksheet/gsheetmodel.h index 39ab173f35..cd7f1d3359 100644 --- a/lib/gtksheet/gsheetmodel.h +++ b/lib/gtksheet/gsheetmodel.h @@ -20,13 +20,13 @@ #define __G_SHEET_MODEL_H__ -/* This file provides an abstract interface or the data displayed by the +/* This file provides an abstract interface or the data displayed by the GtkSheet widget */ #include #include #include - +#include "gtkextra-sheet.h" G_BEGIN_DECLS @@ -37,11 +37,11 @@ G_BEGIN_DECLS typedef enum { - GTK_SHEET_LEFT_BORDER = 1 << 0, - GTK_SHEET_RIGHT_BORDER = 1 << 1, - GTK_SHEET_TOP_BORDER = 1 << 2, - GTK_SHEET_BOTTOM_BORDER = 1 << 3 -} GtkSheetBorderType ; + GTK_SHEET_LEFT_BORDER = 1 << 0, + GTK_SHEET_RIGHT_BORDER = 1 << 1, + GTK_SHEET_TOP_BORDER = 1 << 2, + GTK_SHEET_BOTTOM_BORDER = 1 << 3 +} GtkSheetBorderType ; typedef struct _GSheetModel GSheetModel; /* Dummy typedef */ @@ -51,8 +51,8 @@ typedef struct _GtkSheetCellBorder GtkSheetCellBorder; struct _GtkSheetRange { - gint row0,col0; /* upper-left cell */ - gint rowi,coli; /* lower-right cell */ + gint row0, col0; /* upper-left cell */ + gint rowi, coli; /* lower-right cell */ }; struct _GtkSheetCellBorder @@ -75,58 +75,69 @@ struct _GSheetModelIface /* Signals */ void (* range_changed) (GSheetModel *sheet_model, - gint row0, gint col0, - gint rowi, gint coli); + glong row0, glong col0, + glong rowi, glong coli); void (* rows_inserted) (GSheetModel *sheet_model, - gint row, gint n_rows); + glong row, glong n_rows); void (* rows_deleted) (GSheetModel *sheet_model, - gint row, gint n_rows); + glong row, glong n_rows); void (* columns_inserted) (GSheetModel *sheet_model, - gint column, gint n_columns); + glong column, glong n_columns); void (* columns_deleted) (GSheetModel *sheet_model, - gint column, gint n_columns); + glong column, glong n_columns); + + /* Virtual Table */ - gchar * (* get_string) (const GSheetModel *sheet_model, - gint row, gint column); + gchar * (* get_string) (const GSheetModel *sheet_model, + glong row, glong column); + + gboolean (* set_string) (GSheetModel *sheet_model, + const gchar *s, glong row, glong column); - gboolean (* set_string) (GSheetModel *sheet_model, - const gchar *s, gint row, gint column); + gboolean (* clear_datum) (GSheetModel *sheet_model, + glong row, glong column); - gboolean (* clear_datum) (GSheetModel *sheet_model, - gint row, gint column); + gboolean (* is_editable) (const GSheetModel *sheet_model, glong row, glong column); - gboolean (* is_visible) (const GSheetModel *sheet_model, gint row, gint column); - gboolean (* is_editable) (const GSheetModel *sheet_model, gint row, gint column); + GdkColor * (* get_foreground) (const GSheetModel *sheet_model, + glong row, glong column); - const GdkColor * (* get_foreground) (const GSheetModel *sheet_model, - gint row, gint column); + GdkColor * (* get_background) (const GSheetModel *sheet_model, + glong row, glong column); - const GdkColor * (* get_background) (const GSheetModel *sheet_model, - gint row, gint column); + const GtkJustification * (* get_justification) (const GSheetModel *sheet_model, + glong row, glong column); - const GtkJustification * (* get_justification) (const GSheetModel *sheet_model, - gint row, gint column); + const GtkSheetCellBorder * (* get_cell_border) (const GSheetModel *sheet_model, + glong row, glong column); - const PangoFontDescription * (* get_font_desc) (const GSheetModel *sheet_model, - gint row, gint column); - const GtkSheetCellBorder * (* get_cell_border) (const GSheetModel *sheet_model, - gint row, gint column); + /* column related metadata */ - gint (*get_column_count) (const GSheetModel *model); + gchar * (*get_column_title) (const GSheetModel *, gint col); + gchar * (*get_column_subtitle) (const GSheetModel *, gint col); + gboolean (*get_column_sensitivity) (const GSheetModel *, gint col); + GtkJustification (*get_column_justification) (const GSheetModel *mode, gint col); + const GtkSheetButton * (* get_button) (const GSheetModel *model, gint col); - gint (*get_row_count) (const GSheetModel *model); + glong (*get_column_count) (const GSheetModel *model); + + /* row related metadata */ + gchar * (*get_row_title) (const GSheetModel *, gint row); + gchar * (*get_row_subtitle) (const GSheetModel *, gint row); + glong (*get_row_count) (const GSheetModel *model); + gboolean (*get_row_sensitivity) (const GSheetModel *, gint row); }; @@ -134,63 +145,86 @@ struct _GSheetModelIface GType g_sheet_model_get_type (void) G_GNUC_CONST; -inline gchar * g_sheet_model_get_string (const GSheetModel *sheet_model, - gint row, gint column); +gchar * g_sheet_model_get_string (const GSheetModel *sheet_model, + glong row, glong column); + +gboolean g_sheet_model_set_string (GSheetModel *sheet_model, + const gchar *s, + glong row, glong column); + +gboolean g_sheet_model_datum_clear (GSheetModel *sheet_model, + glong row, glong column); + + +void g_sheet_model_range_changed (GSheetModel *sheet_model, + glong row0, glong col0, + glong rowi, glong coli); + +void g_sheet_model_rows_deleted (GSheetModel *sheet_model, + glong row, glong n_rows); + +void g_sheet_model_rows_inserted (GSheetModel *sheet_model, + glong row, glong n_rows); + +void g_sheet_model_columns_inserted (GSheetModel *sheet_model, + glong column, glong n_columns); + +void g_sheet_model_columns_deleted (GSheetModel *sheet_model, + glong column, glong n_columns); + + +gboolean g_sheet_model_is_editable (const GSheetModel *model, + glong row, glong column); + +gboolean g_sheet_model_is_visible + (const GSheetModel *model, glong row, glong column); -inline gboolean g_sheet_model_set_string (GSheetModel *sheet_model, - const gchar *s, - gint row, gint column); -inline gboolean g_sheet_model_datum_clear (GSheetModel *sheet_model, - gint row, gint column); +GdkColor *g_sheet_model_get_foreground + (const GSheetModel *model, glong row, glong column); +GdkColor *g_sheet_model_get_background + (const GSheetModel *model, glong row, glong column); -inline void g_sheet_model_range_changed (GSheetModel *sheet_model, - gint row0, gint col0, - gint rowi, gint coli); +const GtkJustification *g_sheet_model_get_justification + (const GSheetModel *model, glong row, glong column); -inline void g_sheet_model_rows_deleted (GSheetModel *sheet_model, - gint row, gint n_rows); +const GtkSheetCellBorder * g_sheet_model_get_cell_border + (const GSheetModel *model, glong row, glong column); -inline void g_sheet_model_rows_inserted (GSheetModel *sheet_model, - gint row, gint n_rows); +gboolean g_sheet_model_free_strings (const GSheetModel *sheet_model); -inline void g_sheet_model_columns_inserted (GSheetModel *sheet_model, - gint column, gint n_columns); +glong g_sheet_model_get_column_count (const GSheetModel *sheet_model); -inline void g_sheet_model_columns_deleted (GSheetModel *sheet_model, - gint column, gint n_columns); +gint g_sheet_model_get_row_count (const GSheetModel *sheet_model); + -inline gboolean g_sheet_model_is_editable (const GSheetModel *model, - gint row, gint column); +gboolean g_sheet_model_get_column_sensitivity (const GSheetModel *model, + gint col); -inline gboolean g_sheet_model_is_visible - (const GSheetModel *model, gint row, gint column); +gchar * g_sheet_model_get_column_subtitle (const GSheetModel *model, + gint col); +GtkSheetButton * g_sheet_model_get_column_button (const GSheetModel *, gint); -inline const GdkColor *g_sheet_model_get_foreground - (const GSheetModel *model, gint row, gint column); +GtkJustification g_sheet_model_get_column_justification (const GSheetModel *, + gint); -inline const GdkColor *g_sheet_model_get_background - (const GSheetModel *model, gint row, gint column); + +gboolean g_sheet_model_get_row_sensitivity (const GSheetModel *model, + gint row); -inline const GtkJustification *g_sheet_model_get_justification - (const GSheetModel *model, gint row, gint column); +gchar * g_sheet_model_get_row_subtitle (const GSheetModel *model, + gint row); -inline const PangoFontDescription *g_sheet_model_get_font_desc - (const GSheetModel *model, gint row, gint column); -inline const GtkSheetCellBorder * g_sheet_model_get_cell_border - (const GSheetModel *model, gint row, gint column); +GtkSheetButton * g_sheet_model_get_row_button (const GSheetModel *, gint); -inline gboolean g_sheet_model_free_strings (const GSheetModel *sheet_model); -inline gint g_sheet_model_get_column_count(const GSheetModel *sheet_model); -inline gint g_sheet_model_get_row_count(const GSheetModel *sheet_model); G_END_DECLS