1 /* GSheetRow --- an abstract model of the row geometry of a
3 * Copyright (C) 2006 Free Software Foundation
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
20 #ifndef __G_SHEET_ROW_IFACE_H__
21 #define __G_SHEET_ROW_IFACE_H__
23 #include <glib-object.h>
27 #include "gtkextra-sheet.h"
32 #define G_TYPE_SHEET_ROW (g_sheet_row_get_type ())
33 #define G_SHEET_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_SHEET_ROW, GSheetRow))
34 #define G_IS_SHEET_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), G_TYPE_SHEET_ROW))
35 #define G_SHEET_ROW_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), G_TYPE_SHEET_ROW, GSheetRowIface))
40 typedef struct _GSheetRow GSheetRow;
41 typedef struct _GSheetRowIface GSheetRowIface;
43 struct _GSheetRowIface
45 GTypeInterface g_iface;
49 void (* rows_changed) (GSheetRow *geo,
50 gint row, gint n_rows);
53 gint (* get_height) (const GSheetRow *grow, gint row, const GtkSheet *);
54 void (* set_height) (GSheetRow *grow, gint row, gint height,
57 gboolean (* get_visibility) (const GSheetRow *grow, gint row,
60 gboolean (* get_sensitivity) (const GSheetRow *grow, gint row,
63 const GtkSheetButton * (* get_button) (const GSheetRow *grow, gint row,
66 gint (* get_row_count) (const GSheetRow *geo, const GtkSheet *);
69 GtkStateType (*get_button_state)(const GSheetRow *geo, gint row,
72 const gchar * (*get_button_label)(const GSheetRow *geo, gint row,
75 gboolean (*get_button_visibility)(const GSheetRow *geo,
76 gint row, const GtkSheet *);
78 const GtkSheetChild * (*get_button_child)(const GSheetRow *geo,
79 gint row, const GtkSheet *);
81 guint (*top_ypixel)(const GSheetRow *geo, gint row, const GtkSheet *);
82 gint (*pixel_to_row)(const GSheetRow *geo, guint pixel, const GtkSheet *);
86 GType g_sheet_row_get_type (void) G_GNUC_CONST;
89 gint g_sheet_row_get_height (const GSheetRow *grow,
90 gint row, const GtkSheet *sheet);
93 void g_sheet_row_set_height (GSheetRow *grow,
94 gint row, gint size, const GtkSheet *sheet);
97 gboolean g_sheet_row_get_visibility(const GSheetRow *grow,
98 gint row, const GtkSheet *sheet);
100 gboolean g_sheet_row_get_sensitivity(const GSheetRow *grow,
101 gint row, const GtkSheet *sheet);
104 const GtkSheetButton *g_sheet_row_get_button(const GSheetRow *grow,
105 gint row, const GtkSheet *sheet);
108 gint g_sheet_row_get_row_count(const GSheetRow *geo, const GtkSheet *sheet);
110 /* Return the top pixel of row ROW */
111 gint g_sheet_row_start_pixel(const GSheetRow *geo, gint row,
112 const GtkSheet *sheet);
114 /* Return the row contained by pixel PIXEL */
115 gint g_sheet_row_pixel_to_row(const GSheetRow *geo, gint pixel,
116 const GtkSheet *sheet);
119 void g_sheet_row_rows_deleted(GSheetRow *geo,
120 gint first, gint n_rows);
125 #endif /* __G_SHEET_ROW_IFACE_H__ */