Gwyddion – Free SPM (AFM, SNOM/NSOM, STM, MFM, …) data analysis software

gwycombobox (HEAD)

gwycombobox — Combo box constructors

Functions

GtkWidget * gwy_enum_combo_box_new ()
GtkWidget * gwy_enum_combo_box_newl ()
GtkWidget * gwy_combo_box_metric_unit_new ()
void gwy_combo_box_metric_unit_set_unit ()
GtkWidget * gwy_combo_box_graph_curve_new ()
void gwy_enum_combo_box_set_active ()
gint gwy_enum_combo_box_get_active ()
void gwy_enum_combo_box_update_int ()

Includes

#include <libgwydgets/gwydgets.h>

Description

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);

Functions

gwy_enum_combo_box_new ()

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.

Parameters

entries

An enum with choices.

 

nentries

The number of items in entries , may be -1 when entries is terminated with NULL enum name.

 

callback

A callback called when a new choice is selected (may be NULL). If you want to just update an integer, you can use gwy_enum_combo_box_update_int() here.

 

cbdata

User data passed to the callback.

 

active

The enum value to show as currently selected. If it isn't equal to any entries value, first item is selected.

 

translate

Whether to apply translation function (gwy_sgettext()) to item names.

 

Returns

A newly created combo box as GtkWidget.

gwy_enum_combo_box_newl ()

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.

Parameters

callback

A callback called when a new choice is selected (may be NULL).

 

cbdata

User data passed to the callback.

 

active

The enum value to show as currently selected. If it isn't equal to any entries value, the first item is selected.

 

...

First item label, first item value, second item label, second item value, etc. Terminated with NULL.

 

Returns

A newly created combo box as GtkWidget.

Since: 2.5

gwy_combo_box_metric_unit_new ()

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.

Parameters

callback

A callback called when a new choice is selected (may be NULL). If you want to just update an integer, you can use gwy_enum_combo_box_update_int() here.

 

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).

 

Returns

The newly created combo box as GtkWidget.

gwy_combo_box_metric_unit_set_unit ()

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.

Parameters

combo

A combo box which was created with gwy_combo_box_metric_unit_new().

 

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

gwy_combo_box_graph_curve_new ()

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.

Parameters

callback

A callback called when a new choice is selected (may be NULL). If you want to just update an integer, you can use gwy_enum_combo_box_update_int() here.

 

cbdata

User data passed to the callback.

 

gmodel

A graph model.

 

current

Index of currently selected curve.

 

Returns

The newly created combo box as GtkWidget.

Since: 2.45

gwy_enum_combo_box_set_active ()

void
gwy_enum_combo_box_set_active (GtkComboBox *combo,
                               gint active);

Sets the active combo box item by corresponding enum value.

Parameters

combo

A combo box which was created with gwy_enum_combo_box_new().

 

active

The enum value to show as currently selected.

 

gwy_enum_combo_box_get_active ()

gint
gwy_enum_combo_box_get_active (GtkComboBox *combo);

Gets the enum value corresponding to currently active combo box item.

Parameters

combo

A combo box which was created with gwy_enum_combo_box_new().

 

Returns

The selected enum value.

gwy_enum_combo_box_update_int ()

void
gwy_enum_combo_box_update_int (GtkComboBox *combo,
                               gint *integer);

Convenience callback keeping an integer synchronized with selected enum combo box value.

Parameters

combo

A combo box which was created with gwy_enum_combo_box_new().

 

integer

Pointer to an integer to update to selected enum value.

 

See Also

gwyradiobuttons

-- radio button constructors

© David Nečas and Petr Klapetek

Home Download News Features Screenshots Documentation Communicate Participate Resources Publications Applications Site Map

Valid XHTML 1.0 Valid CSS