diff options
Diffstat (limited to 'gtk')
-rw-r--r-- | gtk/gui_utils.c | 36 | ||||
-rw-r--r-- | gtk/gui_utils.h | 18 |
2 files changed, 52 insertions, 2 deletions
diff --git a/gtk/gui_utils.c b/gtk/gui_utils.c index d24373bf59..311e60a5a8 100644 --- a/gtk/gui_utils.c +++ b/gtk/gui_utils.c @@ -1447,21 +1447,29 @@ str_ptr_sort_func(GtkTreeModel *model, */ /** - * ws_combo_box_new_text_and_pointer: + * ws_combo_box_new_text_and_pointer_full: * * Convenience function which constructs a new "text and pointer" combo box, which * is a #GtkComboBox just displaying strings and storing a pointer associated with * each combo_box entry; The pointer can be retrieved when an entry is selected. + * Also: optionally returns the cell renderer for the combo box. * If you use this function to create a text_and_pointer combo_box, * you should only manipulate its data source with the * following convenience functions: * ws_combo_box_append_text_and_pointer() * ws_combo_box_append_text_and_pointer_full() * + * @param cell_p pointer to return the 'GtkCellRenderer *' for the combo box (or NULL). * @return A pointer to a new text_and_pointer combo_box. */ + +/* Note: + * GtkComboBox style property: "appears-as-list": + * Default: 0: ie: displays as menus + * Wireshark Windows gtkrc: 1: ie: displays as lists (treeview) + */ GtkWidget * -ws_combo_box_new_text_and_pointer(void) { +ws_combo_box_new_text_and_pointer_full(GtkCellRenderer **cell_p) { GtkWidget *combo_box; GtkCellRenderer *cell; GtkTreeStore *store; @@ -1480,10 +1488,34 @@ ws_combo_box_new_text_and_pointer(void) { gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(combo_box), cell, "text", 0, "sensitive", 2, NULL); + if (cell_p != NULL) { + *cell_p = cell; + } return combo_box; } /** + * ws_combo_box_new_text_and_pointer: + * + * Convenience function which constructs a new "text and pointer" combo box, which + * is a #GtkComboBox just displaying strings and storing a pointer associated with + * each combo_box entry; The pointer can be retrieved when an entry is selected. + * If you use this function to create a text_and_pointer combo_box, + * you should only manipulate its data source with the + * following convenience functions: + * ws_combo_box_append_text_and_pointer() + * ws_combo_box_append_text_and_pointer_full() + * + * @return A pointer to a new text_and_pointer combo_box. + */ + +GtkWidget * +ws_combo_box_new_text_and_pointer(void) { + return ws_combo_box_new_text_and_pointer_full(NULL); +} + + +/** * ws_combo_box_clear_text_and_pointer: * @param combo_box A #GtkComboBox constructed using ws_combo_box_new_text_and_pointer() * diff --git a/gtk/gui_utils.h b/gtk/gui_utils.h index 0b53e88a4c..a9f3a4e5bb 100644 --- a/gtk/gui_utils.h +++ b/gtk/gui_utils.h @@ -401,6 +401,24 @@ gint get_default_col_size(GtkWidget *view, const gchar *str); */ /** + * ws_combo_box_new_text_and_pointer_full: + * + * Convenience function which constructs a new "text and pointer" combo box, which + * is a #GtkComboBox just displaying strings and storing a pointer associated with + * each combo_box entry; The pointer can be retrieved when an entry is selected. + * Also: optionally returns the cell renderer for the combo box. + * If you use this function to create a text_and_pointer combo_box, + * you should only manipulate its data source with the + * following convenience functions: + * ws_combo_box_append_text_and_pointer() + * ws_combo_box_append_text_and_pointer_full() + * + * @param cell_p pointer to return the 'GtkCellRenderer *' for the combo box (or NULL). + * @return A pointer to a new text_and_pointer combo_box. + */ +GtkWidget *ws_combo_box_new_text_and_pointer_full(GtkCellRenderer **cell_p); + +/** * ws_combo_box_new_text_and_pointer: * * Convenience function which constructs a new "text and pointer" combo box, which |