Go to the source code of this file.
Classes | |
struct | _erGtkSelectionGroup |
struct | _erGtkSelectionGroupClass |
Defines | |
#define | ERGTK_SELECTION_GROUP_TYPE (ergtk_selection_group_get_type()) |
#define | ERGTK_SELECTION_GROUP(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), ERGTK_SELECTION_GROUP_TYPE, erGtkSelectionGroup)) |
#define | ERGTK_IS_SELECTION_GROUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), ERGTK_SELECTION_GROUP_TYPE)) |
#define | ERGTK_SELECTION_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), ERGTK_SELECTION_GROUP_TYPE, erGtkSelectionGroupClass)) |
#define | ERGTK_SELECTION_GROUP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ERGTK_SELECTION_GROUP_TYPE, erGtkSelectionGroupClass)) |
#define | ERGTK_IS_SELECTION_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), ERGTK_SELECTION_GROUP_TYPE)) |
Typedefs | |
typedef struct _erGtkSelectionGroup | erGtkSelectionGroup |
typedef struct _erGtkSelectionGroupClass | erGtkSelectionGroupClass |
Functions | |
GtkWidget * | ergtk_selection_group_new (GtkToggleButton **button_tbl) |
gboolean | ergtk_selection_group_set_details (erGtkSelectionGroup *item, const guint min_selected, const guint max_selected) |
void | ergtk_selection_group_freeze_buttons (erGtkSelectionGroup *item, const gboolean freeze) |
GtkToggleButton * | ergtk_selection_group_get_button (erGtkSelectionGroup *item, const guint button_id) |
void | ergtk_selection_group_get_selected_buttons (erGtkSelectionGroup *item, gint *button_ids, const guint len) |
gint | ergtk_selection_group_get_length (erGtkSelectionGroup *item) |
GType | ergtk_selection_group_get_type (void) |
Ensure only the allowed number of buttons is selected at any time. Note: no relation with the standard GTK class erGtkSelection.
Copyright (C) 2007 iRex Technologies B.V. All rights reserved.
Definition in file erGtkSelectionGroup.h.
#define ERGTK_IS_SELECTION_GROUP | ( | obj | ) | (G_TYPE_CHECK_INSTANCE_TYPE((obj), ERGTK_SELECTION_GROUP_TYPE)) |
Definition at line 38 of file erGtkSelectionGroup.h.
#define ERGTK_IS_SELECTION_GROUP_CLASS | ( | klass | ) | (G_TYPE_CHECK_CLASS_TYPE((klass), ERGTK_SELECTION_GROUP_TYPE)) |
Definition at line 42 of file erGtkSelectionGroup.h.
#define ERGTK_SELECTION_GROUP | ( | obj | ) | (G_TYPE_CHECK_INSTANCE_CAST((obj), ERGTK_SELECTION_GROUP_TYPE, erGtkSelectionGroup)) |
Definition at line 37 of file erGtkSelectionGroup.h.
#define ERGTK_SELECTION_GROUP_CLASS | ( | klass | ) | (G_TYPE_CHECK_CLASS_CAST((klass), ERGTK_SELECTION_GROUP_TYPE, erGtkSelectionGroupClass)) |
Definition at line 40 of file erGtkSelectionGroup.h.
#define ERGTK_SELECTION_GROUP_GET_CLASS | ( | obj | ) | (G_TYPE_INSTANCE_GET_CLASS ((obj), ERGTK_SELECTION_GROUP_TYPE, erGtkSelectionGroupClass)) |
Definition at line 41 of file erGtkSelectionGroup.h.
#define ERGTK_SELECTION_GROUP_TYPE (ergtk_selection_group_get_type()) |
Definition at line 36 of file erGtkSelectionGroup.h.
typedef struct _erGtkSelectionGroup erGtkSelectionGroup |
Definition at line 45 of file erGtkSelectionGroup.h.
typedef struct _erGtkSelectionGroupClass erGtkSelectionGroupClass |
Definition at line 46 of file erGtkSelectionGroup.h.
void ergtk_selection_group_freeze_buttons | ( | erGtkSelectionGroup * | item, | |
const gboolean | freeze | |||
) |
force buttons to stay in their current state, even when user changes them
item | - the erGtkSelectionGroup object | |
freeze | - TRUE force buttons in current state, FALSE allow user to change buttons |
Definition at line 319 of file erGtkSelectionGroup.c.
00321 { 00322 LOGPRINTF("entry: item [%p] freeze [%d]", item, freeze); 00323 g_return_if_fail(ERGTK_IS_SELECTION_GROUP(item)); 00324 g_return_if_fail((item->dispose_has_run == FALSE)); 00325 00326 erGtkSelectionGroupClass* klass = ERGTK_SELECTION_GROUP_GET_CLASS(item); 00327 00328 // chain to real method, which may be overloaded 00329 if (klass->freeze_buttons) 00330 { 00331 klass->freeze_buttons(item, freeze); 00332 } 00333 }
GtkToggleButton* ergtk_selection_group_get_button | ( | erGtkSelectionGroup * | item, | |
const guint | button_id | |||
) |
get button by index
item | - the erGtkSelectionGroup object | |
button_id | - id of the requested button as an index (0 ..) in button_tbl on .._new() |
Definition at line 346 of file erGtkSelectionGroup.c.
00347 { 00348 LOGPRINTF("entry: item [%p] button_id [%d]", item, button_id); 00349 g_return_val_if_fail(ERGTK_IS_SELECTION_GROUP(item), NULL); 00350 g_return_val_if_fail((item->dispose_has_run == FALSE), NULL); 00351 00352 erGtkSelectionGroupClass* klass = ERGTK_SELECTION_GROUP_GET_CLASS(item); 00353 00354 // chain to real method, which may be overloaded 00355 if (klass->get_button) 00356 { 00357 return klass->get_button(item, button_id); 00358 } 00359 else 00360 { 00361 return NULL; 00362 } 00363 }
gint ergtk_selection_group_get_length | ( | erGtkSelectionGroup * | item | ) |
get the number of how many buttons in erGtkSelectionGroup
item | - the erGtkSelectionGroup object |
Definition at line 545 of file erGtkSelectionGroup.c.
00546 { 00547 LOGPRINTF("entry: item [%p]", item); 00548 00549 gint num_buttons = 0; 00550 00551 g_return_val_if_fail(ERGTK_IS_SELECTION_GROUP(item), 0); 00552 g_return_val_if_fail(item->buttons, 0); 00553 00554 num_buttons = g_slist_length(item->buttons); 00555 00556 LOGPRINTF("%d buttons cotrolled by erGtkSelectionGroup [%p]",num_buttons, item); 00557 00558 return num_buttons; 00559 }
void ergtk_selection_group_get_selected_buttons | ( | erGtkSelectionGroup * | item, | |
gint * | button_ids, | |||
const guint | len | |||
) |
get index of currently selected buttons
item | - the erGtkSelectionGroup object | |
button_ids | (out) - array selected buttons id (0 ..), latest selected first, unused items set to -1 | |
len | - number of elements in array button_ids |
Definition at line 377 of file erGtkSelectionGroup.c.
00378 { 00379 LOGPRINTF("entry: item [%p]", item); 00380 g_return_if_fail(ERGTK_IS_SELECTION_GROUP(item)); 00381 g_return_if_fail((item->dispose_has_run == FALSE)); 00382 00383 erGtkSelectionGroupClass* klass = ERGTK_SELECTION_GROUP_GET_CLASS(item); 00384 00385 // chain to real method, which may be overloaded 00386 if (klass->get_selected_buttons) 00387 { 00388 klass->get_selected_buttons(item, button_ids, len); 00389 } 00390 }
GType ergtk_selection_group_get_type | ( | void | ) |
Definition at line 120 of file erGtkSelectionGroup.c.
00121 { 00122 static GType class_type = 0; 00123 00124 if (class_type == 0) 00125 { 00126 static const GTypeInfo class_info = 00127 { 00128 sizeof(erGtkSelectionGroupClass), 00129 NULL, /* base_init */ 00130 NULL, /* base_finalize */ 00131 (GClassInitFunc) ergtk_selection_group_class_init, 00132 NULL, /* class_finalize */ 00133 NULL, /* class_data */ 00134 sizeof(erGtkSelectionGroup), 00135 0, /* n_preallocs */ 00136 (GInstanceInitFunc) ergtk_selection_group_init, 00137 }; 00138 00139 class_type = g_type_register_static(GTK_TYPE_EVENT_BOX, "erGtkSelectionGroup", &class_info, 0); 00140 } 00141 return class_type; 00142 }
GtkWidget* ergtk_selection_group_new | ( | GtkToggleButton ** | button_tbl | ) |
create a new erGtkSelectionGroup object
button_tbl | - NULL-terminated array of ptrs to the buttons that must be controlled |
Definition at line 76 of file erGtkSelectionGroup.c.
00077 { 00078 GtkToggleButton** p_button; 00079 00080 // check input 00081 for (p_button = button_tbl ; *p_button ; p_button++) 00082 { 00083 g_return_val_if_fail(GTK_IS_TOGGLE_BUTTON(*p_button), FALSE); 00084 } 00085 00086 // create new object 00087 erGtkSelectionGroup* item = (erGtkSelectionGroup*) g_object_new(ERGTK_SELECTION_GROUP_TYPE, NULL); 00088 00089 // add buttons to new object 00090 add_buttons(item, button_tbl); 00091 00092 return GTK_WIDGET(item); 00093 }
gboolean ergtk_selection_group_set_details | ( | erGtkSelectionGroup * | item, | |
const guint | min_selected, | |||
const guint | max_selected | |||
) |
set selection details for the buttons controlled by the erGtkSelectionGroup object
item | - the erGtkSelectionGroup object | |
min_selected | - the minimum number of buttons that must be selected | |
max_selected | - the maximum number of buttons that must be selected | |
enforce_min | - enforce that at least min_selected buttons are selected | |
enforce_max | - enforce that at most max_selected buttons are selected |
Definition at line 238 of file erGtkSelectionGroup.c.
00239 { 00240 LOGPRINTF("entry: item [%p] min [%u] max [%u]", item, min_selected, max_selected); 00241 g_return_val_if_fail(ERGTK_IS_SELECTION_GROUP(item), FALSE); 00242 g_return_val_if_fail((item->dispose_has_run == FALSE), FALSE); 00243 00244 erGtkSelectionGroupClass* klass = ERGTK_SELECTION_GROUP_GET_CLASS(item); 00245 00246 // chain to real method, which may be overloaded 00247 if (klass->set_details) 00248 { 00249 return klass->set_details(item, min_selected, max_selected); 00250 } 00251 else 00252 { 00253 return FALSE; // not ok 00254 } 00255 }