1 /*
2  * This program is free software; you can redistribute it and/or modify it
3  * under the terms of the GNU Lesser General Public License as published by
4  * the Free Software Foundation.
5  *
6  * This program is distributed in the hope that it will be useful, but
7  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
8  * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
9  * for more details.
10  *
11  * You should have received a copy of the GNU Lesser General Public License
12  * along with this program; if not, see <http://www.gnu.org/licenses/>.
13  *
14  *
15  * Authors:
16  *		Chris Lahey <clahey@ximian.com>
17  *
18  * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com)
19  *
20  */
21 
22 #if !defined (__E_UTIL_H_INSIDE__) && !defined (LIBEUTIL_COMPILATION)
23 #error "Only <e-util/e-util.h> should be included directly."
24 #endif
25 
26 #ifndef _E_TABLE_COLUMN_SPECIFICATION_H_
27 #define _E_TABLE_COLUMN_SPECIFICATION_H_
28 
29 #include <glib-object.h>
30 
31 /* Standard GObject macros */
32 #define E_TYPE_TABLE_COLUMN_SPECIFICATION \
33 	(e_table_column_specification_get_type ())
34 #define E_TABLE_COLUMN_SPECIFICATION(obj) \
35 	(G_TYPE_CHECK_INSTANCE_CAST \
36 	((obj), E_TYPE_TABLE_COLUMN_SPECIFICATION, ETableColumnSpecification))
37 #define E_TABLE_COLUMN_SPECIFICATION_CLASS(cls) \
38 	(G_TYPE_CHECK_CLASS_CAST \
39 	((cls), E_TYPE_TABLE_COLUMN_SPECIFICATION, ETableColumnSpecificationClass))
40 #define E_IS_TABLE_COLUMN_SPECIFICATION(obj) \
41 	(G_TYPE_CHECK_INSTANCE_TYPE \
42 	((obj), E_TYPE_TABLE_COLUMN_SPECIFICATION))
43 #define E_IS_TABLE_COLUMN_SPECIFICATION_CLASS(cls) \
44 	(G_TYPE_CHECK_CLASS_TYPE \
45 	((cls), E_TYPE_TABLE_COLUMN_SPECIFICATION))
46 #define E_TABLE_COLUMN_SPECIFICATION_GET_CLASS(obj) \
47 	(G_TYPE_INSTANCE_GET_CLASS \
48 	((obj), E_TYPE_TABLE_COLUMN_SPECIFICATION, ETableColumnSpecificationClass))
49 
50 G_BEGIN_DECLS
51 
52 typedef struct _ETableColumnSpecification ETableColumnSpecification;
53 typedef struct _ETableColumnSpecificationClass ETableColumnSpecificationClass;
54 
55 struct _ETableColumnSpecification {
56 	GObject parent;
57 
58 	gint model_col;
59 	gint compare_col;
60 	gchar *title;
61 	gchar *pixbuf;
62 
63 	gdouble expansion;
64 	gint minimum_width;
65 	gboolean resizable;
66 	gboolean disabled;
67 	gboolean sortable;
68 
69 	gchar *cell;
70 	gchar *compare;
71 	gchar *search;
72 	gint priority;
73 };
74 
75 struct _ETableColumnSpecificationClass {
76 	GObjectClass parent_class;
77 };
78 
79 GType		e_table_column_specification_get_type	(void) G_GNUC_CONST;
80 ETableColumnSpecification *
81 		e_table_column_specification_new	(void);
82 gboolean	e_table_column_specification_equal
83 					(ETableColumnSpecification *spec_a,
84 					 ETableColumnSpecification *spec_b);
85 
86 G_END_DECLS
87 
88 #endif /* _E_TABLE_COLUMN_SPECIFICATION_H_ */
89