00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00029 #ifndef __ERGTK_SELECTION_GROUP_H__
00030 #define __ERGTK_SELECTION_GROUP_H__
00031 #ifdef __cplusplus
00032 extern "C" {
00033 #endif
00034
00035
00036 #define ERGTK_SELECTION_GROUP_TYPE (ergtk_selection_group_get_type())
00037 #define ERGTK_SELECTION_GROUP(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), ERGTK_SELECTION_GROUP_TYPE, erGtkSelectionGroup))
00038 #define ERGTK_IS_SELECTION_GROUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), ERGTK_SELECTION_GROUP_TYPE))
00039
00040 #define ERGTK_SELECTION_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), ERGTK_SELECTION_GROUP_TYPE, erGtkSelectionGroupClass))
00041 #define ERGTK_SELECTION_GROUP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ERGTK_SELECTION_GROUP_TYPE, erGtkSelectionGroupClass))
00042 #define ERGTK_IS_SELECTION_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), ERGTK_SELECTION_GROUP_TYPE))
00043
00044
00045 typedef struct _erGtkSelectionGroup erGtkSelectionGroup;
00046 typedef struct _erGtkSelectionGroupClass erGtkSelectionGroupClass;
00047
00048 struct _erGtkSelectionGroup
00049 {
00050 GtkEventBox parent;
00051
00052
00053 GSList* buttons;
00054
00055
00056 gboolean dispose_has_run;
00057 guint min_selected;
00058 guint max_selected;
00059 gboolean freeze_buttons;
00060 GSList* history;
00061 };
00062
00063 struct _erGtkSelectionGroupClass
00064 {
00065 GtkEventBoxClass parent_class;
00066
00067
00068
00069 gboolean (*set_details) (erGtkSelectionGroup *item, const guint min_selected, const guint max_selected);
00070 void (*freeze_buttons) (erGtkSelectionGroup *item, const gboolean freeze);
00071 GtkToggleButton* (*get_button) (erGtkSelectionGroup *item, const guint button_id);
00072 void (*get_selected_buttons) (erGtkSelectionGroup *item, gint* button_ids, const guint len);
00073
00074
00075
00076 void (*add_buttons) (erGtkSelectionGroup *item, GtkToggleButton** button_tbl);
00077
00078
00079
00080 void (*selection_update) (erGtkSelectionGroup *selection_group);
00081 };
00082
00083
00091 GtkWidget* ergtk_selection_group_new(GtkToggleButton** button_tbl);
00092
00104 gboolean ergtk_selection_group_set_details(erGtkSelectionGroup *item,
00105 const guint min_selected,
00106 const guint max_selected);
00107
00116 void ergtk_selection_group_freeze_buttons(erGtkSelectionGroup *item,
00117 const gboolean freeze);
00118
00127 GtkToggleButton* ergtk_selection_group_get_button(erGtkSelectionGroup *item,
00128 const guint button_id);
00129
00139 void ergtk_selection_group_get_selected_buttons(erGtkSelectionGroup *item,
00140 gint* button_ids, const guint len);
00141
00149 gint ergtk_selection_group_get_length(erGtkSelectionGroup *item);
00150
00151
00152 GType ergtk_selection_group_get_type (void);
00153
00154
00155 #ifdef __cplusplus
00156 }
00157 #endif
00158
00159 #endif // __ERGTK_SELECTION_GROUP_H__
00160
00161
00162