gwycombobox — Combo box constructors
#include <libgwydgets/gwydgets.h>
Combo boxes can be easily constructed from GwyEnum's with gwy_enum_combo_box_new()
. Here's an example of
construction of a combo box with three items:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
typedef enum { MY_ENUM_FOO, MY_ENUM_BAR, MY_ENUM_BAZ } MyEnum; static GwyEnum my_enum_fields[] = { { N_("Foo"), MY_ENUM_FOO }, { N_("Bar"), MY_ENUM_BAR }, { N_("Baz"), MY_ENUM_BAZ }, }; static void menu_callback(GtkWidget *combo, gpointer cbdata) { MyEnum value; value = gwy_enum_combo_box_get_active(GTK_COMBO_BOX(combo)); ... } static void function(void) { GtkWidget *combo; ... combo = gwy_enum_combo_box_new(fields, G_N_ELEMENTS(fields), G_CALLBACK(menu_callback), NULL, MY_ENUM_FOO, TRUE); ... } |
Many common Gwyddion enumerations have companion function returning corresponding GwyEnum, see for example gwyprocessenums, making combo box construction even easier.
For example, a combo box with possible interpolation types can be constructed:
1 2 3 |
combo = gwy_enum_combo_box_new(gwy_interpolation_type_get_enum(), -1, G_CALLBACK(menu_callback), NULL, GWY_INTERPOLATION_BILINEAR, TRUE); |
GtkWidget * gwy_enum_combo_box_new (const GwyEnum *entries
,gint nentries
,GCallback callback
,gpointer cbdata
,gint active
,gboolean translate
);
Creates a combo box with choices from a enum.
The array entries
must exist during the whole lifetime of the combo box because it is used directly as the model.
entries |
An enum with choices. |
|
nentries |
The number of items in |
|
callback |
A callback called when a new choice is selected (may be |
|
cbdata |
User data passed to the callback. |
|
active |
The enum value to show as currently selected. If it isn't equal to any |
|
translate |
Whether to apply translation function ( |
A newly created combo box as GtkWidget.
GtkWidget * gwy_enum_combo_box_newl (GCallback callback
,gpointer cbdata
,gint active
,...
);
Creates a combo box with choices from a list of label/value pairs.
The string values passed as label texts must exist through the whole lifetime of the widget.
callback |
A callback called when a new choice is selected (may be |
|
cbdata |
User data passed to the callback. |
|
active |
The enum value to show as currently selected. If it isn't equal to any |
|
... |
First item label, first item value, second item label, second item value, etc. Terminated with |
A newly created combo box as GtkWidget.
Since: 2.5
GtkWidget * gwy_combo_box_metric_unit_new (GCallback callback
,gpointer cbdata
,gint from
,gint to
,GwySIUnit *unit
,gint active
);
Creates an enum combo box with SI power of 10 multiplies.
The integer value is the power of 10.
callback |
A callback called when a new choice is selected (may be |
|
cbdata |
User data passed to the callback. |
|
from |
The exponent of 10 the menu should start at (a multiple of 3, will be rounded downward if isn't). |
|
to |
The exponent of 10 the menu should end at (a multiple of 3, will be rounded upward if isn't). |
|
unit |
The unit to be prefixed. |
|
active |
The power of 10 to show as currently selected (a multiple of 3). |
The newly created combo box as GtkWidget.
void gwy_combo_box_metric_unit_set_unit (GtkComboBox *combo
,gint from
,gint to
,GwySIUnit *unit
);
Changes the unit selection displayed by a metric unit combo box.
combo |
A combo box which was created with |
|
from |
The exponent of 10 the menu should start at (a multiple of 3, will be rounded downward if isn't). |
|
to |
The exponent of 10 the menu should end at (a multiple of 3, will be rounded upward if isn't). |
|
unit |
The unit to be prefixed. |
Since: 2.5
GtkWidget * gwy_combo_box_graph_curve_new (GCallback callback
,gpointer cbdata
,GwyGraphModel *gmodel
,gint current
);
Creates an enum combo box with curves from a graph model.
This function is intended for selection of curves from static graphs in graph modules. The graph model is not permitted to change.
callback |
A callback called when a new choice is selected (may be |
|
cbdata |
User data passed to the callback. |
|
gmodel |
A graph model. |
|
current |
Index of currently selected curve. |
The newly created combo box as GtkWidget.
Since: 2.45
GtkWidget * gwy_combo_box_lawn_curve_new (GCallback callback
,gpointer cbdata
,GwyLawn *lawn
,gint current
);
Creates an enum combo box with curves from a lawn curve map object.
This function is intended for selection of curves from static lawn objects. The lawn object is not permitted to change.
callback |
A callback called when a new choice is selected (may be |
|
cbdata |
User data passed to the callback. |
|
lawn |
A lawn curve map object. |
|
current |
Index of currently selected curve. |
The newly created combo box as GtkWidget.
Since: 2.60
GtkWidget * gwy_combo_box_lawn_segment_new (GCallback callback
,gpointer cbdata
,GwyLawn *lawn
,gint current
);
Creates an enum combo box with segments from a lawn curve map object.
This function is intended for selection of segments from static lawn objects. The lawn object is not permitted to change.
callback |
A callback called when a new choice is selected (may be |
|
cbdata |
User data passed to the callback. |
|
lawn |
A lawn curve map object. |
|
current |
Index of currently selected segment. |
The newly created combo box as GtkWidget.
Since: 2.60
void gwy_enum_combo_box_set_active (GtkComboBox *combo
,gint active
);
Sets the active combo box item by corresponding enum value.
combo |
A combo box which was created with |
|
active |
The enum value to show as currently selected. |
gint
gwy_enum_combo_box_get_active (GtkComboBox *combo
);
Gets the enum value corresponding to currently active combo box item.
combo |
A combo box which was created with |
The selected enum value.
void gwy_enum_combo_box_update_int (GtkComboBox *combo
,gint *integer
);
Convenience callback keeping an integer synchronized with selected enum combo box value.
combo |
A combo box which was created with |
|
integer |
Pointer to an integer to update to selected enum value. |