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 glong row, glong n_rows);
53 gint (* get_height) (const GSheetRow *grow, glong row);
54 void (* set_height) (GSheetRow *grow, glong row, gint height);
56 gboolean (* get_visibility) (const GSheetRow *grow, glong row);
58 gboolean (* get_sensitivity) (const GSheetRow *grow, glong row);
60 const GtkSheetButton * (* get_button) (const GSheetRow *grow, glong row);
62 glong (* get_row_count) (const GSheetRow *geo);
64 GtkStateType (*get_button_state) (const GSheetRow *geo, glong row);
66 gchar * (*get_button_label) (const GSheetRow *geo, glong row);
68 gchar * (*get_subtitle) (const GSheetRow *geo, glong row);
70 gboolean (*get_button_visibility) (const GSheetRow *geo,
73 const GtkSheetChild * (*get_button_child) (const GSheetRow *geo,
76 guint (*top_ypixel) (const GSheetRow *geo, glong row);
77 glong (*pixel_to_row) (const GSheetRow *geo, guint pixel);
81 GType g_sheet_row_get_type (void) G_GNUC_CONST;
84 gint g_sheet_row_get_height (const GSheetRow *grow,
88 void g_sheet_row_set_height (GSheetRow *grow,
89 glong row, gint size);
92 gboolean g_sheet_row_get_visibility (const GSheetRow *grow,
95 gboolean g_sheet_row_get_sensitivity (const GSheetRow *grow,
99 GtkSheetButton *g_sheet_row_get_button (const GSheetRow *grow,
103 glong g_sheet_row_get_row_count (const GSheetRow *geo);
105 /* Return the top pixel of row ROW */
106 gint g_sheet_row_start_pixel (const GSheetRow *geo, glong row);
109 /* Return the row contained by pixel PIXEL */
110 glong g_sheet_row_pixel_to_row (const GSheetRow *geo, gint pixel);
113 void g_sheet_row_rows_deleted (GSheetRow *geo,
114 glong first, glong n_rows);
117 gchar *g_sheet_row_get_subtitle (const GSheetRow *row_geo, glong row);
122 #endif /* __G_SHEET_ROW_IFACE_H__ */