Set the minimum-extent property from the size_allocate handler of the sheet
[pspp-builds.git] / lib / gtksheet / gsheet-row-iface.h
1 /* GSheetRow --- an abstract model of the row geometry of a
2  * GSheet widget.
3  * Copyright (C) 2006 Free Software Foundation
4  *
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.
9  *
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.
14  *
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
18  */
19
20 #ifndef __G_SHEET_ROW_IFACE_H__
21 #define __G_SHEET_ROW_IFACE_H__
22
23 #include <glib-object.h>
24 #include <gdk/gdk.h>
25 #include <gtk/gtk.h>
26
27 #include "gtkextra-sheet.h"
28
29
30 G_BEGIN_DECLS
31
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))
36
37
38
39
40 typedef struct _GSheetRow        GSheetRow;
41 typedef struct _GSheetRowIface   GSheetRowIface;
42
43 struct _GSheetRowIface
44 {
45   GTypeInterface g_iface;
46
47
48   /* Signals */
49   void         (* rows_changed)     (GSheetRow *geo,
50                                       glong row, glong n_rows);
51
52   /* Virtual Table */
53   gint (* get_height) (const GSheetRow *grow, glong row);
54   void (* set_height) (GSheetRow *grow, glong row, gint height);
55
56   gboolean (* get_sensitivity) (const GSheetRow *grow, glong row);
57
58   const GtkSheetButton * (* get_button) (const GSheetRow *grow, glong row);
59
60   glong  (* get_row_count) (const GSheetRow *geo);
61
62   GtkStateType  (*get_button_state) (const GSheetRow *geo, glong row);
63
64   gchar * (*get_button_label) (const GSheetRow *geo, glong row);
65
66   gchar * (*get_subtitle) (const GSheetRow *geo, glong row);
67
68   gboolean  (*get_button_visibility) (const GSheetRow *geo,
69                                           glong row);
70
71   guint (*top_ypixel) (const GSheetRow *geo, glong row);
72   glong (*pixel_to_row) (const GSheetRow *geo, guint pixel);
73 };
74
75
76 GType g_sheet_row_get_type   (void) G_GNUC_CONST;
77
78
79 gint  g_sheet_row_get_height (const GSheetRow *grow,
80                               glong row);
81
82
83 void  g_sheet_row_set_height (GSheetRow *grow,
84                               glong row, gint size);
85
86
87 gboolean  g_sheet_row_get_visibility (const GSheetRow *grow,
88                                       glong row);
89
90 gboolean  g_sheet_row_get_sensitivity (const GSheetRow *grow,
91                                        glong row);
92
93
94 GtkSheetButton *g_sheet_row_get_button (const GSheetRow *grow,
95                                         glong row);
96
97
98 glong  g_sheet_row_get_row_count (const GSheetRow *geo);
99
100 /* Return the top pixel of row ROW */
101 gint  g_sheet_row_start_pixel (const GSheetRow *geo, glong row);
102
103
104 /* Return the row contained by pixel PIXEL */
105 glong  g_sheet_row_pixel_to_row (const GSheetRow *geo, gint pixel);
106
107
108 void g_sheet_row_rows_deleted (GSheetRow *geo,
109                                       glong first, glong n_rows);
110
111
112 gchar *g_sheet_row_get_subtitle (const GSheetRow *row_geo, glong row);
113
114
115 G_END_DECLS
116
117 #endif /* __G_SHEET_ROW_IFACE_H__ */