* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
+
#ifndef __G_SHEET_MODEL_H__
#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 <glib-object.h>
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 */
struct _GtkSheetRange
{
- gint row0,col0; /* upper-left cell */
- gint rowi,coli; /* lower-right cell */
+ glong row0,col0; /* upper-left cell */
+ glong rowi,coli; /* lower-right cell */
};
struct _GtkSheetCellBorder
{
GTypeInterface g_iface;
+ gboolean free_strings;
+
/* 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,
+ glong column, glong n_columns);
+
+ void (* columns_deleted) (GSheetModel *sheet_model,
+ glong column, glong n_columns);
+
/* Virtual Table */
- const gchar * (* get_string) (const GSheetModel *sheet_model,
- gint row, gint column);
- gboolean (* set_string) (GSheetModel *sheet_model,
- const gchar *s, 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 (* clear_datum) (GSheetModel *sheet_model,
- gint row, gint column);
+ gboolean (* clear_datum) (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);
+ gboolean (* is_visible) (const GSheetModel *sheet_model, glong row, glong column);
+ gboolean (* is_editable) (const GSheetModel *sheet_model, glong row, glong column);
- const GdkColor * (* get_foreground) (const GSheetModel *sheet_model,
- gint row, gint column);
+ GdkColor * (* get_foreground) (const GSheetModel *sheet_model,
+ glong row, glong column);
- const GdkColor * (* get_background) (const GSheetModel *sheet_model,
- gint row, gint column);
+ GdkColor * (* get_background) (const GSheetModel *sheet_model,
+ glong row, glong column);
- const GtkJustification * (* get_justification) (const GSheetModel *sheet_model,
- gint row, gint column);
+ const GtkJustification * (* get_justification) (const GSheetModel *sheet_model,
+ glong row, glong column);
- const PangoFontDescription * (* get_font_desc) (const GSheetModel *sheet_model,
- gint row, gint column);
+ const PangoFontDescription * (* get_font_desc) (const GSheetModel *sheet_model,
+ glong row, glong column);
- const GtkSheetCellBorder * (* get_cell_border) (const GSheetModel *sheet_model,
- gint row, gint column);
+ const GtkSheetCellBorder * (* get_cell_border) (const GSheetModel *sheet_model,
+ glong row, glong column);
+
+
+ glong (*get_column_count) (const GSheetModel *model);
+
+ glong (*get_row_count) (const GSheetModel *model);
};
GType g_sheet_model_get_type (void) G_GNUC_CONST;
-inline const gchar * g_sheet_model_get_string (const GSheetModel *sheet_model,
- gint row, gint column);
+inline gchar * g_sheet_model_get_string (const GSheetModel *sheet_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_set_string (GSheetModel *sheet_model,
+ const gchar *s,
+ glong row, glong column);
-inline gboolean g_sheet_model_datum_clear (GSheetModel *sheet_model,
- gint row, gint column);
+inline gboolean g_sheet_model_datum_clear (GSheetModel *sheet_model,
+ glong row, glong column);
inline void g_sheet_model_range_changed (GSheetModel *sheet_model,
- gint row0, gint col0,
- gint rowi, gint coli);
+ glong row0, glong col0,
+ glong rowi, glong coli);
inline void g_sheet_model_rows_deleted (GSheetModel *sheet_model,
- gint row, gint n_rows);
+ glong row, glong n_rows);
inline void g_sheet_model_rows_inserted (GSheetModel *sheet_model,
- gint row, gint n_rows);
+ glong row, glong n_rows);
+
+inline void g_sheet_model_columns_inserted (GSheetModel *sheet_model,
+ glong column, glong n_columns);
+
+inline void g_sheet_model_columns_deleted (GSheetModel *sheet_model,
+ glong column, glong n_columns);
+
-inline gboolean g_sheet_model_is_editable (const GSheetModel *model,
- gint row, gint column);
+inline gboolean g_sheet_model_is_editable (const GSheetModel *model,
+ glong row, glong column);
-inline gboolean g_sheet_model_is_visible
- (const GSheetModel *model, gint row, gint column);
+inline gboolean g_sheet_model_is_visible
+ (const GSheetModel *model, glong row, glong column);
-inline const GdkColor *g_sheet_model_get_foreground
- (const GSheetModel *model, gint row, gint column);
+inline GdkColor *g_sheet_model_get_foreground
+ (const GSheetModel *model, glong row, glong column);
-inline const GdkColor *g_sheet_model_get_background
- (const GSheetModel *model, gint row, gint column);
+inline GdkColor *g_sheet_model_get_background
+ (const GSheetModel *model, glong row, glong column);
-inline const GtkJustification *g_sheet_model_get_justification
- (const GSheetModel *model, gint row, gint column);
+inline const GtkJustification *g_sheet_model_get_justification
+ (const GSheetModel *model, glong row, glong column);
inline const PangoFontDescription *g_sheet_model_get_font_desc
- (const GSheetModel *model, gint row, gint column);
+ (const GSheetModel *model, glong row, glong column);
-inline const GtkSheetCellBorder * g_sheet_model_get_cell_border
- (const GSheetModel *model, gint row, gint column);
+inline const GtkSheetCellBorder * g_sheet_model_get_cell_border
+ (const GSheetModel *model, glong row, glong column);
+inline gboolean g_sheet_model_free_strings (const GSheetModel *sheet_model);
+inline glong 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