refactor
[pspp] / src / ui / gui / psppire-checkbox-treeview.h
1 /* PSPPIRE - a graphical user interface for PSPP.
2    Copyright (C) 2007, 2013  Free Software Foundation
3
4    This program is free software: you can redistribute it and/or modify
5    it under the terms of the GNU General Public License as published by
6    the Free Software Foundation, either version 3 of the License, or
7    (at your option) any later version.
8
9    This program is distributed in the hope that it will be useful,
10    but WITHOUT ANY WARRANTY; without even the implied warranty of
11    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12    GNU General Public License for more details.
13
14    You should have received a copy of the GNU General Public License
15    along with this program.  If not, see <http://www.gnu.org/licenses/>. */
16
17
18 #ifndef __PSPPIRE_CHECKBOX_TREEVIEW_H__
19 #define __PSPPIRE_CHECKBOX_TREEVIEW_H__
20
21
22 #include <glib.h>
23 #include <glib-object.h>
24 #include <gtk/gtk.h>
25
26 G_BEGIN_DECLS
27
28
29 #define PSPPIRE_TYPE_CHECKBOX_TREEVIEW            (psppire_checkbox_treeview_get_type ())
30
31 #define PSPPIRE_CHECKBOX_TREEVIEW(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), \
32     PSPPIRE_TYPE_CHECKBOX_TREEVIEW, PsppireCheckboxTreeview))
33
34 #define PSPPIRE_CHECKBOX_TREEVIEW_CLASS(class)    (G_TYPE_CHECK_CLASS_CAST ((class), \
35     PSPPIRE_TYPE_CHECKBOX_TREEVIEW, PsppireCheckboxTreeviewClass))
36
37 #define PSPPIRE_IS_CHECKBOX_TREEVIEW(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \
38     PSPPIRE_TYPE_CHECKBOX_TREEVIEW))
39
40 #define PSPPIRE_IS_CHECKBOX_TREEVIEW_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), \
41     PSPPIRE_TYPE_CHECKBOX_TREEVIEW))
42
43
44 typedef struct _PsppireCheckboxTreeview       PsppireCheckboxTreeview;
45 typedef struct _PsppireCheckboxTreeviewClass  PsppireCheckboxTreeviewClass;
46
47
48 struct _PsppireCheckboxTreeview
49 {
50   GtkTreeView parent;
51
52   /* <private> */
53   GtkTreeModel *list;
54 };
55
56
57 struct _PsppireCheckboxTreeviewClass
58 {
59   GtkTreeViewClass parent_class;
60 };
61
62
63
64 GType      psppire_checkbox_treeview_get_type        (void);
65 GType      psppire_checkbox_treeview_model_get_type        (void);
66
67
68 struct checkbox_entry_item
69   {
70     const char *name;
71     const char *label;
72     const char *tooltip;
73   };
74
75 enum
76   {
77     CHECKBOX_COLUMN_LABEL,
78     CHECKBOX_COLUMN_SELECTED,
79     CHECKBOX_COLUMN_TOOLTIP,
80     N_CHECKBOX_COLUMNS
81   };
82
83 void psppire_checkbox_treeview_populate (PsppireCheckboxTreeview *pctv,
84                                          guint default_items,
85                                          gint n_items,
86                                          const struct checkbox_entry_item *items);
87
88 G_END_DECLS
89
90 #endif /* __PSPPIRE_CHECKBOX_TREEVIEW_H__ */