1 /*
2  * e-table-specification.h
3  *
4  * This program is free software; you can redistribute it and/or modify it
5  * under the terms of the GNU Lesser General Public License as published by
6  * the Free Software Foundation.
7  *
8  * This program is distributed in the hope that it will be useful, but
9  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
10  * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
11  * for more details.
12  *
13  * You should have received a copy of the GNU Lesser General Public License
14  * along with this program; if not, see <http://www.gnu.org/licenses/>.
15  *
16  */
17 
18 #if !defined (__E_UTIL_H_INSIDE__) && !defined (LIBEUTIL_COMPILATION)
19 #error "Only <e-util/e-util.h> should be included directly."
20 #endif
21 
22 #ifndef E_TABLE_SPECIFICATION_H
23 #define E_TABLE_SPECIFICATION_H
24 
25 #include <e-util/e-selection-model.h>
26 #include <e-util/e-table-column-specification.h>
27 #include <e-util/e-table-defines.h>
28 #include <e-util/e-table-state.h>
29 
30 /* Standard GObject macros */
31 #define E_TYPE_TABLE_SPECIFICATION \
32 	(e_table_specification_get_type ())
33 #define E_TABLE_SPECIFICATION(obj) \
34 	(G_TYPE_CHECK_INSTANCE_CAST \
35 	((obj), E_TYPE_TABLE_SPECIFICATION, ETableSpecification))
36 #define E_TABLE_SPECIFICATION_CLASS(cls) \
37 	(G_TYPE_CHECK_CLASS_CAST \
38 	((cls), E_TYPE_TABLE_SPECIFICATION, ETableSpecificationClass))
39 #define E_IS_TABLE_SPECIFICATION(obj) \
40 	(G_TYPE_CHECK_INSTANCE_TYPE \
41 	((obj), E_TYPE_TABLE_SPECIFICATION))
42 #define E_IS_TABLE_SPECIFICATION_CLASS(cls) \
43 	(G_TYPE_CHECK_CLASS_TYPE \
44 	((cls), E_TYPE_TABLE_SPECIFICATION))
45 #define E_TABLE_SPECIFICATION_GET_CLASS(obj) \
46 	(G_TYPE_INSTANCE_GET_CLASS \
47 	((obj), E_TYPE_TABLE_SPECIFICATION, ETableSpecificationClass))
48 
49 G_BEGIN_DECLS
50 
51 typedef struct _ETableSpecification ETableSpecification;
52 typedef struct _ETableSpecificationClass ETableSpecificationClass;
53 typedef struct _ETableSpecificationPrivate ETableSpecificationPrivate;
54 
55 struct _ETableSpecification {
56 	GObject parent;
57 	ETableSpecificationPrivate *priv;
58 
59 	ETableState *state;
60 
61 	gboolean alternating_row_colors;
62 	gboolean no_headers;
63 	gboolean click_to_add;
64 	gboolean click_to_add_end;
65 	gboolean horizontal_draw_grid;
66 	gboolean vertical_draw_grid;
67 	gboolean draw_focus;
68 	gboolean horizontal_scrolling;
69 	gboolean horizontal_resize;
70 	gboolean allow_grouping;
71 	GtkSelectionMode selection_mode;
72 	ECursorMode cursor_mode;
73 
74 	gchar *click_to_add_message;
75 	gchar *domain;
76 };
77 
78 struct _ETableSpecificationClass {
79 	GObjectClass parent_class;
80 };
81 
82 GType		e_table_specification_get_type	(void) G_GNUC_CONST;
83 ETableSpecification *
84 		e_table_specification_new	(const gchar *filename,
85 						 GError **error);
86 const gchar *	e_table_specification_get_filename
87 						(ETableSpecification *specification);
88 GPtrArray *	e_table_specification_ref_columns
89 						(ETableSpecification *specification);
90 gint		e_table_specification_get_column_index
91 						(ETableSpecification *specification,
92 						 ETableColumnSpecification *column_spec);
93 ETableColumnSpecification *
94 		e_table_specification_get_column_by_model_col
95 						(ETableSpecification *specification,
96 						 gint model_col);
97 G_END_DECLS
98 
99 #endif /* E_TABLE_SPECIFICATION_H */
100 
101