diff options
Diffstat (limited to 'clients/tui')
120 files changed, 12661 insertions, 12711 deletions
diff --git a/clients/tui/newt/nmt-newt-button-box.c b/clients/tui/newt/nmt-newt-button-box.c index 4334d418cd..b1b132c36e 100644 --- a/clients/tui/newt/nmt-newt-button-box.c +++ b/clients/tui/newt/nmt-newt-button-box.c @@ -22,21 +22,22 @@ #include "nmt-newt-button.h" -G_DEFINE_TYPE (NmtNewtButtonBox, nmt_newt_button_box, NMT_TYPE_NEWT_CONTAINER) +G_DEFINE_TYPE(NmtNewtButtonBox, nmt_newt_button_box, NMT_TYPE_NEWT_CONTAINER) -#define NMT_NEWT_BUTTON_BOX_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NMT_TYPE_NEWT_BUTTON_BOX, NmtNewtButtonBoxPrivate)) +#define NMT_NEWT_BUTTON_BOX_GET_PRIVATE(o) \ + (G_TYPE_INSTANCE_GET_PRIVATE((o), NMT_TYPE_NEWT_BUTTON_BOX, NmtNewtButtonBoxPrivate)) typedef struct { - NmtNewtButtonBoxOrientation orientation; - GPtrArray *start_buttons, *end_buttons; + NmtNewtButtonBoxOrientation orientation; + GPtrArray * start_buttons, *end_buttons; } NmtNewtButtonBoxPrivate; enum { - PROP_0, + PROP_0, - PROP_ORIENTATION, + PROP_ORIENTATION, - LAST_PROP + LAST_PROP }; /** @@ -56,20 +57,18 @@ enum { * Returns: a new #NmtNewtButtonBox */ NmtNewtWidget * -nmt_newt_button_box_new (NmtNewtButtonBoxOrientation orientation) +nmt_newt_button_box_new(NmtNewtButtonBoxOrientation orientation) { - return g_object_new (NMT_TYPE_NEWT_BUTTON_BOX, - "orientation", orientation, - NULL); + return g_object_new(NMT_TYPE_NEWT_BUTTON_BOX, "orientation", orientation, NULL); } static void -nmt_newt_button_box_init (NmtNewtButtonBox *bbox) +nmt_newt_button_box_init(NmtNewtButtonBox *bbox) { - NmtNewtButtonBoxPrivate *priv = NMT_NEWT_BUTTON_BOX_GET_PRIVATE (bbox); + NmtNewtButtonBoxPrivate *priv = NMT_NEWT_BUTTON_BOX_GET_PRIVATE(bbox); - priv->start_buttons = g_ptr_array_new (); - priv->end_buttons = g_ptr_array_new (); + priv->start_buttons = g_ptr_array_new(); + priv->end_buttons = g_ptr_array_new(); } /** @@ -84,14 +83,13 @@ nmt_newt_button_box_init (NmtNewtButtonBox *bbox) * Returns: the newly-created button, already added to @bbox */ NmtNewtWidget * -nmt_newt_button_box_add_start (NmtNewtButtonBox *bbox, - const char *label) +nmt_newt_button_box_add_start(NmtNewtButtonBox *bbox, const char *label) { - NmtNewtWidget *button; + NmtNewtWidget *button; - button = nmt_newt_button_new (label); - nmt_newt_button_box_add_widget_start (bbox, button); - return button; + button = nmt_newt_button_new(label); + nmt_newt_button_box_add_widget_start(bbox, button); + return button; } /** @@ -102,14 +100,13 @@ nmt_newt_button_box_add_start (NmtNewtButtonBox *bbox, * Adds the given widget to the "start" section of @bbox. */ void -nmt_newt_button_box_add_widget_start (NmtNewtButtonBox *bbox, - NmtNewtWidget *widget) +nmt_newt_button_box_add_widget_start(NmtNewtButtonBox *bbox, NmtNewtWidget *widget) { - NmtNewtButtonBoxPrivate *priv = NMT_NEWT_BUTTON_BOX_GET_PRIVATE (bbox); + NmtNewtButtonBoxPrivate *priv = NMT_NEWT_BUTTON_BOX_GET_PRIVATE(bbox); - NMT_NEWT_CONTAINER_CLASS (nmt_newt_button_box_parent_class)-> - add (NMT_NEWT_CONTAINER (bbox), widget); - g_ptr_array_add (priv->start_buttons, widget); + NMT_NEWT_CONTAINER_CLASS(nmt_newt_button_box_parent_class) + ->add(NMT_NEWT_CONTAINER(bbox), widget); + g_ptr_array_add(priv->start_buttons, widget); } /** @@ -124,14 +121,13 @@ nmt_newt_button_box_add_widget_start (NmtNewtButtonBox *bbox, * Returns: the newly-created button, already added to @bbox */ NmtNewtWidget * -nmt_newt_button_box_add_end (NmtNewtButtonBox *bbox, - const char *label) +nmt_newt_button_box_add_end(NmtNewtButtonBox *bbox, const char *label) { - NmtNewtWidget *button; + NmtNewtWidget *button; - button = nmt_newt_button_new (label); - nmt_newt_button_box_add_widget_end (bbox, button); - return button; + button = nmt_newt_button_new(label); + nmt_newt_button_box_add_widget_end(bbox, button); + return button; } /** @@ -142,229 +138,221 @@ nmt_newt_button_box_add_end (NmtNewtButtonBox *bbox, * Adds the given widget to the "end" section of @bbox. */ void -nmt_newt_button_box_add_widget_end (NmtNewtButtonBox *bbox, - NmtNewtWidget *widget) +nmt_newt_button_box_add_widget_end(NmtNewtButtonBox *bbox, NmtNewtWidget *widget) { - NmtNewtButtonBoxPrivate *priv = NMT_NEWT_BUTTON_BOX_GET_PRIVATE (bbox); + NmtNewtButtonBoxPrivate *priv = NMT_NEWT_BUTTON_BOX_GET_PRIVATE(bbox); - NMT_NEWT_CONTAINER_CLASS (nmt_newt_button_box_parent_class)-> - add (NMT_NEWT_CONTAINER (bbox), widget); - g_ptr_array_add (priv->end_buttons, widget); + NMT_NEWT_CONTAINER_CLASS(nmt_newt_button_box_parent_class) + ->add(NMT_NEWT_CONTAINER(bbox), widget); + g_ptr_array_add(priv->end_buttons, widget); } static void -nmt_newt_button_box_remove (NmtNewtContainer *container, - NmtNewtWidget *child) +nmt_newt_button_box_remove(NmtNewtContainer *container, NmtNewtWidget *child) { - NmtNewtButtonBoxPrivate *priv = NMT_NEWT_BUTTON_BOX_GET_PRIVATE (container); - int i; - - NMT_NEWT_CONTAINER_CLASS (nmt_newt_button_box_parent_class)-> - remove (container, child); - - for (i = 0; i < priv->start_buttons->len; i++) { - if (priv->start_buttons->pdata[i] == (gpointer) child) { - g_ptr_array_remove_index (priv->start_buttons, i); - return; - } - } - for (i = 0; i < priv->end_buttons->len; i++) { - if (priv->end_buttons->pdata[i] == (gpointer) child) { - g_ptr_array_remove_index (priv->end_buttons, i); - return; - } - } + NmtNewtButtonBoxPrivate *priv = NMT_NEWT_BUTTON_BOX_GET_PRIVATE(container); + int i; + + NMT_NEWT_CONTAINER_CLASS(nmt_newt_button_box_parent_class)->remove(container, child); + + for (i = 0; i < priv->start_buttons->len; i++) { + if (priv->start_buttons->pdata[i] == (gpointer) child) { + g_ptr_array_remove_index(priv->start_buttons, i); + return; + } + } + for (i = 0; i < priv->end_buttons->len; i++) { + if (priv->end_buttons->pdata[i] == (gpointer) child) { + g_ptr_array_remove_index(priv->end_buttons, i); + return; + } + } } static void -add_buttons (GPtrArray *buttons, GPtrArray *cos) +add_buttons(GPtrArray *buttons, GPtrArray *cos) { - NmtNewtWidget *child; - newtComponent *child_cos; - int i, c; + NmtNewtWidget *child; + newtComponent *child_cos; + int i, c; - for (i = 0; i < buttons->len; i++) { - child = buttons->pdata[i]; + for (i = 0; i < buttons->len; i++) { + child = buttons->pdata[i]; - if (!nmt_newt_widget_get_visible (child)) - continue; + if (!nmt_newt_widget_get_visible(child)) + continue; - child_cos = nmt_newt_widget_get_components (child); - for (c = 0; child_cos[c]; c++) - g_ptr_array_add (cos, child_cos[c]); - g_free (child_cos); - } + child_cos = nmt_newt_widget_get_components(child); + for (c = 0; child_cos[c]; c++) + g_ptr_array_add(cos, child_cos[c]); + g_free(child_cos); + } } static newtComponent * -nmt_newt_button_box_get_components (NmtNewtWidget *widget) +nmt_newt_button_box_get_components(NmtNewtWidget *widget) { - NmtNewtButtonBoxPrivate *priv = NMT_NEWT_BUTTON_BOX_GET_PRIVATE (widget); - GPtrArray *cos; + NmtNewtButtonBoxPrivate *priv = NMT_NEWT_BUTTON_BOX_GET_PRIVATE(widget); + GPtrArray * cos; - cos = g_ptr_array_new (); - add_buttons (priv->start_buttons, cos); - add_buttons (priv->end_buttons, cos); - g_ptr_array_add (cos, NULL); + cos = g_ptr_array_new(); + add_buttons(priv->start_buttons, cos); + add_buttons(priv->end_buttons, cos); + g_ptr_array_add(cos, NULL); - return (newtComponent *) g_ptr_array_free (cos, FALSE); + return (newtComponent *) g_ptr_array_free(cos, FALSE); } static void -size_request_buttons (NmtNewtButtonBox *bbox, - GPtrArray *buttons, - int *width, - int *height) +size_request_buttons(NmtNewtButtonBox *bbox, GPtrArray *buttons, int *width, int *height) { - NmtNewtButtonBoxPrivate *priv = NMT_NEWT_BUTTON_BOX_GET_PRIVATE (bbox); - int child_width, child_height; - int i; - - for (i = 0; i < buttons->len; i++) { - NmtNewtWidget *child = buttons->pdata[i]; - - nmt_newt_widget_size_request (child, &child_width, &child_height); - if (priv->orientation == NMT_NEWT_BUTTON_BOX_HORIZONTAL) { - *width += child_width; - if (i > 0) - *width += 1; - *height = MAX (*height, child_height); - } else { - *height += child_height; - if (i > 0) - *height += 1; - *width = MAX (*width, child_width); - } - } + NmtNewtButtonBoxPrivate *priv = NMT_NEWT_BUTTON_BOX_GET_PRIVATE(bbox); + int child_width, child_height; + int i; + + for (i = 0; i < buttons->len; i++) { + NmtNewtWidget *child = buttons->pdata[i]; + + nmt_newt_widget_size_request(child, &child_width, &child_height); + if (priv->orientation == NMT_NEWT_BUTTON_BOX_HORIZONTAL) { + *width += child_width; + if (i > 0) + *width += 1; + *height = MAX(*height, child_height); + } else { + *height += child_height; + if (i > 0) + *height += 1; + *width = MAX(*width, child_width); + } + } } static void -nmt_newt_button_box_size_request (NmtNewtWidget *widget, - int *width, - int *height) +nmt_newt_button_box_size_request(NmtNewtWidget *widget, int *width, int *height) { - NmtNewtButtonBox *bbox = NMT_NEWT_BUTTON_BOX (widget); - NmtNewtButtonBoxPrivate *priv = NMT_NEWT_BUTTON_BOX_GET_PRIVATE (widget); + NmtNewtButtonBox * bbox = NMT_NEWT_BUTTON_BOX(widget); + NmtNewtButtonBoxPrivate *priv = NMT_NEWT_BUTTON_BOX_GET_PRIVATE(widget); - *width = *height = 0; - size_request_buttons (bbox, priv->start_buttons, width, height); - size_request_buttons (bbox, priv->end_buttons, width, height); + *width = *height = 0; + size_request_buttons(bbox, priv->start_buttons, width, height); + size_request_buttons(bbox, priv->end_buttons, width, height); - if (priv->orientation == NMT_NEWT_BUTTON_BOX_HORIZONTAL) - *width += 1; - else - *height += 1; + if (priv->orientation == NMT_NEWT_BUTTON_BOX_HORIZONTAL) + *width += 1; + else + *height += 1; } static void -nmt_newt_button_box_size_allocate (NmtNewtWidget *widget, - int x, - int y, - int width, - int height) +nmt_newt_button_box_size_allocate(NmtNewtWidget *widget, int x, int y, int width, int height) { - NmtNewtButtonBoxPrivate *priv = NMT_NEWT_BUTTON_BOX_GET_PRIVATE (widget); - NmtNewtWidget *child; - int child_x, child_y, child_width, child_height; - int i; - - child_x = x; - child_y = y; - for (i = 0; i < priv->start_buttons->len; i++) { - child = priv->start_buttons->pdata[i]; - nmt_newt_widget_size_request (child, &child_width, &child_height); - - if (priv->orientation == NMT_NEWT_BUTTON_BOX_HORIZONTAL) { - nmt_newt_widget_size_allocate (child, child_x, child_y, child_width, child_height); - child_x += child_width + 1; - } else { - nmt_newt_widget_size_allocate (child, child_x, child_y, child_width, child_height); - child_y += child_height + 1; - } - } - - if (priv->orientation == NMT_NEWT_BUTTON_BOX_HORIZONTAL) - child_x = x + width; - else - child_y = y + height; - - for (i = priv->end_buttons->len - 1; i >= 0; i--) { - child = priv->end_buttons->pdata[i]; - nmt_newt_widget_size_request (child, &child_width, &child_height); - - if (priv->orientation == NMT_NEWT_BUTTON_BOX_HORIZONTAL) { - nmt_newt_widget_size_allocate (child, - child_x - child_width, child_y, - child_width, child_height); - child_x -= child_width + 1; - } else { - nmt_newt_widget_size_allocate (child, - child_x, child_y - child_height, - child_width, child_height); - child_y -= child_height + 1; - } - } + NmtNewtButtonBoxPrivate *priv = NMT_NEWT_BUTTON_BOX_GET_PRIVATE(widget); + NmtNewtWidget * child; + int child_x, child_y, child_width, child_height; + int i; + + child_x = x; + child_y = y; + for (i = 0; i < priv->start_buttons->len; i++) { + child = priv->start_buttons->pdata[i]; + nmt_newt_widget_size_request(child, &child_width, &child_height); + + if (priv->orientation == NMT_NEWT_BUTTON_BOX_HORIZONTAL) { + nmt_newt_widget_size_allocate(child, child_x, child_y, child_width, child_height); + child_x += child_width + 1; + } else { + nmt_newt_widget_size_allocate(child, child_x, child_y, child_width, child_height); + child_y += child_height + 1; + } + } + + if (priv->orientation == NMT_NEWT_BUTTON_BOX_HORIZONTAL) + child_x = x + width; + else + child_y = y + height; + + for (i = priv->end_buttons->len - 1; i >= 0; i--) { + child = priv->end_buttons->pdata[i]; + nmt_newt_widget_size_request(child, &child_width, &child_height); + + if (priv->orientation == NMT_NEWT_BUTTON_BOX_HORIZONTAL) { + nmt_newt_widget_size_allocate(child, + child_x - child_width, + child_y, + child_width, + child_height); + child_x -= child_width + 1; + } else { + nmt_newt_widget_size_allocate(child, + child_x, + child_y - child_height, + child_width, + child_height); + child_y -= child_height + 1; + } + } } static void -nmt_newt_button_box_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) +nmt_newt_button_box_set_property(GObject * object, + guint prop_id, + const GValue *value, + GParamSpec * pspec) { - NmtNewtButtonBoxPrivate *priv = NMT_NEWT_BUTTON_BOX_GET_PRIVATE (object); - - switch (prop_id) { - case PROP_ORIENTATION: - priv->orientation = g_value_get_int (value); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtNewtButtonBoxPrivate *priv = NMT_NEWT_BUTTON_BOX_GET_PRIVATE(object); + + switch (prop_id) { + case PROP_ORIENTATION: + priv->orientation = g_value_get_int(value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_newt_button_box_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) +nmt_newt_button_box_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - NmtNewtButtonBoxPrivate *priv = NMT_NEWT_BUTTON_BOX_GET_PRIVATE (object); - - switch (prop_id) { - case PROP_ORIENTATION: - g_value_set_int (value, priv->orientation); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtNewtButtonBoxPrivate *priv = NMT_NEWT_BUTTON_BOX_GET_PRIVATE(object); + + switch (prop_id) { + case PROP_ORIENTATION: + g_value_set_int(value, priv->orientation); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_newt_button_box_class_init (NmtNewtButtonBoxClass *bbox_class) +nmt_newt_button_box_class_init(NmtNewtButtonBoxClass *bbox_class) { - GObjectClass *object_class = G_OBJECT_CLASS (bbox_class); - NmtNewtWidgetClass *widget_class = NMT_NEWT_WIDGET_CLASS (bbox_class); - NmtNewtContainerClass *container_class = NMT_NEWT_CONTAINER_CLASS (bbox_class); - - g_type_class_add_private (bbox_class, sizeof (NmtNewtButtonBoxPrivate)); - - object_class->get_property = nmt_newt_button_box_get_property; - object_class->set_property = nmt_newt_button_box_set_property; - - widget_class->get_components = nmt_newt_button_box_get_components; - widget_class->size_request = nmt_newt_button_box_size_request; - widget_class->size_allocate = nmt_newt_button_box_size_allocate; - - container_class->remove = nmt_newt_button_box_remove; - - g_object_class_install_property - (object_class, PROP_ORIENTATION, - g_param_spec_int ("orientation", "", "", - 0, G_MAXINT, 0, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); + GObjectClass * object_class = G_OBJECT_CLASS(bbox_class); + NmtNewtWidgetClass * widget_class = NMT_NEWT_WIDGET_CLASS(bbox_class); + NmtNewtContainerClass *container_class = NMT_NEWT_CONTAINER_CLASS(bbox_class); + + g_type_class_add_private(bbox_class, sizeof(NmtNewtButtonBoxPrivate)); + + object_class->get_property = nmt_newt_button_box_get_property; + object_class->set_property = nmt_newt_button_box_set_property; + + widget_class->get_components = nmt_newt_button_box_get_components; + widget_class->size_request = nmt_newt_button_box_size_request; + widget_class->size_allocate = nmt_newt_button_box_size_allocate; + + container_class->remove = nmt_newt_button_box_remove; + + g_object_class_install_property( + object_class, + PROP_ORIENTATION, + g_param_spec_int("orientation", + "", + "", + 0, + G_MAXINT, + 0, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); } diff --git a/clients/tui/newt/nmt-newt-button-box.h b/clients/tui/newt/nmt-newt-button-box.h index b9b82a1e14..dfc7112a33 100644 --- a/clients/tui/newt/nmt-newt-button-box.h +++ b/clients/tui/newt/nmt-newt-button-box.h @@ -8,40 +8,39 @@ #include "nmt-newt-grid.h" -#define NMT_TYPE_NEWT_BUTTON_BOX (nmt_newt_button_box_get_type ()) -#define NMT_NEWT_BUTTON_BOX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NMT_TYPE_NEWT_BUTTON_BOX, NmtNewtButtonBox)) -#define NMT_NEWT_BUTTON_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NMT_TYPE_NEWT_BUTTON_BOX, NmtNewtButtonBoxClass)) -#define NMT_IS_NEWT_BUTTON_BOX(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NMT_TYPE_NEWT_BUTTON_BOX)) -#define NMT_IS_NEWT_BUTTON_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NMT_TYPE_NEWT_BUTTON_BOX)) -#define NMT_NEWT_BUTTON_BOX_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NMT_TYPE_NEWT_BUTTON_BOX, NmtNewtButtonBoxClass)) +#define NMT_TYPE_NEWT_BUTTON_BOX (nmt_newt_button_box_get_type()) +#define NMT_NEWT_BUTTON_BOX(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), NMT_TYPE_NEWT_BUTTON_BOX, NmtNewtButtonBox)) +#define NMT_NEWT_BUTTON_BOX_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), NMT_TYPE_NEWT_BUTTON_BOX, NmtNewtButtonBoxClass)) +#define NMT_IS_NEWT_BUTTON_BOX(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), NMT_TYPE_NEWT_BUTTON_BOX)) +#define NMT_IS_NEWT_BUTTON_BOX_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass), NMT_TYPE_NEWT_BUTTON_BOX)) +#define NMT_NEWT_BUTTON_BOX_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), NMT_TYPE_NEWT_BUTTON_BOX, NmtNewtButtonBoxClass)) struct _NmtNewtButtonBox { - NmtNewtContainer parent; - + NmtNewtContainer parent; }; typedef struct { - NmtNewtContainerClass parent; + NmtNewtContainerClass parent; } NmtNewtButtonBoxClass; -GType nmt_newt_button_box_get_type (void); +GType nmt_newt_button_box_get_type(void); typedef enum { - NMT_NEWT_BUTTON_BOX_HORIZONTAL, - NMT_NEWT_BUTTON_BOX_VERTICAL + NMT_NEWT_BUTTON_BOX_HORIZONTAL, + NMT_NEWT_BUTTON_BOX_VERTICAL } NmtNewtButtonBoxOrientation; -NmtNewtWidget *nmt_newt_button_box_new (NmtNewtButtonBoxOrientation orientation); +NmtNewtWidget *nmt_newt_button_box_new(NmtNewtButtonBoxOrientation orientation); -NmtNewtWidget *nmt_newt_button_box_add_start (NmtNewtButtonBox *bbox, - const char *label); -NmtNewtWidget *nmt_newt_button_box_add_end (NmtNewtButtonBox *bbox, - const char *label); +NmtNewtWidget *nmt_newt_button_box_add_start(NmtNewtButtonBox *bbox, const char *label); +NmtNewtWidget *nmt_newt_button_box_add_end(NmtNewtButtonBox *bbox, const char *label); -void nmt_newt_button_box_add_widget_start (NmtNewtButtonBox *bbox, - NmtNewtWidget *widget); -void nmt_newt_button_box_add_widget_end (NmtNewtButtonBox *bbox, - NmtNewtWidget *widget); +void nmt_newt_button_box_add_widget_start(NmtNewtButtonBox *bbox, NmtNewtWidget *widget); +void nmt_newt_button_box_add_widget_end(NmtNewtButtonBox *bbox, NmtNewtWidget *widget); #endif /* NMT_NEWT_BUTTON_BOX_H */ diff --git a/clients/tui/newt/nmt-newt-button.c b/clients/tui/newt/nmt-newt-button.c index 83420d2f44..402faf7bbf 100644 --- a/clients/tui/newt/nmt-newt-button.c +++ b/clients/tui/newt/nmt-newt-button.c @@ -15,28 +15,29 @@ #include "nmt-newt-button.h" #include "nmt-newt-utils.h" -G_DEFINE_TYPE (NmtNewtButton, nmt_newt_button, NMT_TYPE_NEWT_COMPONENT) +G_DEFINE_TYPE(NmtNewtButton, nmt_newt_button, NMT_TYPE_NEWT_COMPONENT) -#define NMT_NEWT_BUTTON_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NMT_TYPE_NEWT_BUTTON, NmtNewtButtonPrivate)) +#define NMT_NEWT_BUTTON_GET_PRIVATE(o) \ + (G_TYPE_INSTANCE_GET_PRIVATE((o), NMT_TYPE_NEWT_BUTTON, NmtNewtButtonPrivate)) typedef struct { - char *label; + char *label; } NmtNewtButtonPrivate; enum { - PROP_0, - PROP_LABEL, + PROP_0, + PROP_LABEL, - LAST_PROP + LAST_PROP }; enum { - CLICKED, + CLICKED, - LAST_SIGNAL + LAST_SIGNAL }; -static guint signals[LAST_SIGNAL] = { 0 }; +static guint signals[LAST_SIGNAL] = {0}; /** * nmt_newt_button_new: @@ -47,11 +48,9 @@ static guint signals[LAST_SIGNAL] = { 0 }; * Returns: a new #NmtNewtButton */ NmtNewtWidget * -nmt_newt_button_new (const char *label) +nmt_newt_button_new(const char *label) { - return g_object_new (NMT_TYPE_NEWT_BUTTON, - "label", label, - NULL); + return g_object_new(NMT_TYPE_NEWT_BUTTON, "label", label, NULL); } /** @@ -62,17 +61,16 @@ nmt_newt_button_new (const char *label) * Updates @button's label. */ void -nmt_newt_button_set_label (NmtNewtButton *button, - const char *label) +nmt_newt_button_set_label(NmtNewtButton *button, const char *label) { - NmtNewtButtonPrivate *priv = NMT_NEWT_BUTTON_GET_PRIVATE (button); + NmtNewtButtonPrivate *priv = NMT_NEWT_BUTTON_GET_PRIVATE(button); - if (!g_strcmp0 (priv->label, label)) - return; + if (!g_strcmp0(priv->label, label)) + return; - g_free (priv->label); - priv->label = g_strdup (label); - nmt_newt_widget_needs_rebuild (NMT_NEWT_WIDGET (button)); + g_free(priv->label); + priv->label = g_strdup(label); + nmt_newt_widget_needs_rebuild(NMT_NEWT_WIDGET(button)); } /** @@ -84,165 +82,151 @@ nmt_newt_button_set_label (NmtNewtButton *button, * Returns: @button's label. */ const char * -nmt_newt_button_get_label (NmtNewtButton *button) +nmt_newt_button_get_label(NmtNewtButton *button) { - NmtNewtButtonPrivate *priv = NMT_NEWT_BUTTON_GET_PRIVATE (button); + NmtNewtButtonPrivate *priv = NMT_NEWT_BUTTON_GET_PRIVATE(button); - return priv->label; + return priv->label; } static void -nmt_newt_button_init (NmtNewtButton *button) -{ -} +nmt_newt_button_init(NmtNewtButton *button) +{} static void -nmt_newt_button_finalize (GObject *object) +nmt_newt_button_finalize(GObject *object) { - NmtNewtButtonPrivate *priv = NMT_NEWT_BUTTON_GET_PRIVATE (object); + NmtNewtButtonPrivate *priv = NMT_NEWT_BUTTON_GET_PRIVATE(object); - g_free (priv->label); + g_free(priv->label); - G_OBJECT_CLASS (nmt_newt_button_parent_class)->finalize (object); + G_OBJECT_CLASS(nmt_newt_button_parent_class)->finalize(object); } static newtComponent -nmt_newt_button_build_component (NmtNewtComponent *component, - gboolean sensitive) +nmt_newt_button_build_component(NmtNewtComponent *component, gboolean sensitive) { - NmtNewtButtonPrivate *priv = NMT_NEWT_BUTTON_GET_PRIVATE (component); - newtComponent co; - char *label = NULL, *label_lc; - - if (sensitive) { - label_lc = nmt_newt_locale_from_utf8 (priv->label); - co = newtCompactButton (-1, -1, label_lc); - g_free (label_lc); - } else { - label = g_strdup_printf (" <%s>", priv->label); - label_lc = nmt_newt_locale_from_utf8 (label); - co = newtLabel (-1, -1, label_lc); - g_free (label_lc); - newtLabelSetColors (co, NMT_NEWT_COLORSET_DISABLED_BUTTON); - } - - return co; + NmtNewtButtonPrivate *priv = NMT_NEWT_BUTTON_GET_PRIVATE(component); + newtComponent co; + char * label = NULL, *label_lc; + + if (sensitive) { + label_lc = nmt_newt_locale_from_utf8(priv->label); + co = newtCompactButton(-1, -1, label_lc); + g_free(label_lc); + } else { + label = g_strdup_printf(" <%s>", priv->label); + label_lc = nmt_newt_locale_from_utf8(label); + co = newtLabel(-1, -1, label_lc); + g_free(label_lc); + newtLabelSetColors(co, NMT_NEWT_COLORSET_DISABLED_BUTTON); + } + + return co; } static void -nmt_newt_button_size_request (NmtNewtWidget *widget, - int *width, - int *height) +nmt_newt_button_size_request(NmtNewtWidget *widget, int *width, int *height) { - NMT_NEWT_WIDGET_CLASS (nmt_newt_button_parent_class)->size_request (widget, width, height); + NMT_NEWT_WIDGET_CLASS(nmt_newt_button_parent_class)->size_request(widget, width, height); - /* remove the automatically-added left padding */ - (*width)--; + /* remove the automatically-added left padding */ + (*width)--; } static void -nmt_newt_button_size_allocate (NmtNewtWidget *widget, - int x, - int y, - int width, - int height) +nmt_newt_button_size_allocate(NmtNewtWidget *widget, int x, int y, int width, int height) { - /* account for the automatically-added left padding */ - x--; - width++; + /* account for the automatically-added left padding */ + x--; + width++; - NMT_NEWT_WIDGET_CLASS (nmt_newt_button_parent_class)->size_allocate (widget, x, y, width, height); + NMT_NEWT_WIDGET_CLASS(nmt_newt_button_parent_class)->size_allocate(widget, x, y, width, height); } static void -nmt_newt_button_activated (NmtNewtWidget *widget) +nmt_newt_button_activated(NmtNewtWidget *widget) { - g_signal_emit (widget, signals[CLICKED], 0); + g_signal_emit(widget, signals[CLICKED], 0); - NMT_NEWT_WIDGET_CLASS (nmt_newt_button_parent_class)->activated (widget); + NMT_NEWT_WIDGET_CLASS(nmt_newt_button_parent_class)->activated(widget); } static void -nmt_newt_button_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) +nmt_newt_button_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { - switch (prop_id) { - case PROP_LABEL: - nmt_newt_button_set_label (NMT_NEWT_BUTTON (object), - g_value_get_string (value)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + switch (prop_id) { + case PROP_LABEL: + nmt_newt_button_set_label(NMT_NEWT_BUTTON(object), g_value_get_string(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_newt_button_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) +nmt_newt_button_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - NmtNewtButtonPrivate *priv = NMT_NEWT_BUTTON_GET_PRIVATE (object); - - switch (prop_id) { - case PROP_LABEL: - g_value_set_string (value, priv->label); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtNewtButtonPrivate *priv = NMT_NEWT_BUTTON_GET_PRIVATE(object); + + switch (prop_id) { + case PROP_LABEL: + g_value_set_string(value, priv->label); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_newt_button_class_init (NmtNewtButtonClass *button_class) +nmt_newt_button_class_init(NmtNewtButtonClass *button_class) { - GObjectClass *object_class = G_OBJECT_CLASS (button_class); - NmtNewtComponentClass *component_class = NMT_NEWT_COMPONENT_CLASS (button_class); - NmtNewtWidgetClass *widget_class = NMT_NEWT_WIDGET_CLASS (button_class); + GObjectClass * object_class = G_OBJECT_CLASS(button_class); + NmtNewtComponentClass *component_class = NMT_NEWT_COMPONENT_CLASS(button_class); + NmtNewtWidgetClass * widget_class = NMT_NEWT_WIDGET_CLASS(button_class); - g_type_class_add_private (button_class, sizeof (NmtNewtButtonPrivate)); + g_type_class_add_private(button_class, sizeof(NmtNewtButtonPrivate)); - /* virtual methods */ - object_class->set_property = nmt_newt_button_set_property; - object_class->get_property = nmt_newt_button_get_property; - object_class->finalize = nmt_newt_button_finalize; + /* virtual methods */ + object_class->set_property = nmt_newt_button_set_property; + object_class->get_property = nmt_newt_button_get_property; + object_class->finalize = nmt_newt_button_finalize; - widget_class->size_request = nmt_newt_button_size_request; - widget_class->size_allocate = nmt_newt_button_size_allocate; - widget_class->activated = nmt_newt_button_activated; + widget_class->size_request = nmt_newt_button_size_request; + widget_class->size_allocate = nmt_newt_button_size_allocate; + widget_class->activated = nmt_newt_button_activated; - component_class->build_component = nmt_newt_button_build_component; + component_class->build_component = nmt_newt_button_build_component; - /* signals */ + /* signals */ - /** + /** * NmtNewtButton::clicked: * @button: the #NmtNewtButton * * Emitted when the button is clicked. */ - signals[CLICKED] = - g_signal_new ("clicked", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - 0, NULL, NULL, NULL, - G_TYPE_NONE, 0); - - /* properties */ - - /** + signals[CLICKED] = g_signal_new("clicked", + G_OBJECT_CLASS_TYPE(object_class), + G_SIGNAL_RUN_FIRST, + 0, + NULL, + NULL, + NULL, + G_TYPE_NONE, + 0); + + /* properties */ + + /** * NmtNewtButton:label: * * The button's label */ - g_object_class_install_property - (object_class, PROP_LABEL, - g_param_spec_string ("label", "", "", - NULL, - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS)); + g_object_class_install_property( + object_class, + PROP_LABEL, + g_param_spec_string("label", "", "", NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); } diff --git a/clients/tui/newt/nmt-newt-button.h b/clients/tui/newt/nmt-newt-button.h index bfcb49965a..111f2679de 100644 --- a/clients/tui/newt/nmt-newt-button.h +++ b/clients/tui/newt/nmt-newt-button.h @@ -8,29 +8,30 @@ #include "nmt-newt-component.h" -#define NMT_TYPE_NEWT_BUTTON (nmt_newt_button_get_type ()) -#define NMT_NEWT_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NMT_TYPE_NEWT_BUTTON, NmtNewtButton)) -#define NMT_NEWT_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NMT_TYPE_NEWT_BUTTON, NmtNewtButtonClass)) -#define NMT_IS_NEWT_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NMT_TYPE_NEWT_BUTTON)) -#define NMT_IS_NEWT_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NMT_TYPE_NEWT_BUTTON)) -#define NMT_NEWT_BUTTON_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NMT_TYPE_NEWT_BUTTON, NmtNewtButtonClass)) +#define NMT_TYPE_NEWT_BUTTON (nmt_newt_button_get_type()) +#define NMT_NEWT_BUTTON(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), NMT_TYPE_NEWT_BUTTON, NmtNewtButton)) +#define NMT_NEWT_BUTTON_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), NMT_TYPE_NEWT_BUTTON, NmtNewtButtonClass)) +#define NMT_IS_NEWT_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), NMT_TYPE_NEWT_BUTTON)) +#define NMT_IS_NEWT_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), NMT_TYPE_NEWT_BUTTON)) +#define NMT_NEWT_BUTTON_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), NMT_TYPE_NEWT_BUTTON, NmtNewtButtonClass)) struct _NmtNewtButton { - NmtNewtComponent parent; - + NmtNewtComponent parent; }; typedef struct { - NmtNewtComponentClass parent; + NmtNewtComponentClass parent; } NmtNewtButtonClass; -GType nmt_newt_button_get_type (void); +GType nmt_newt_button_get_type(void); -NmtNewtWidget *nmt_newt_button_new (const char *label); +NmtNewtWidget *nmt_newt_button_new(const char *label); -void nmt_newt_button_set_label (NmtNewtButton *button, - const char *label); -const char *nmt_newt_button_get_label (NmtNewtButton *button); +void nmt_newt_button_set_label(NmtNewtButton *button, const char *label); +const char *nmt_newt_button_get_label(NmtNewtButton *button); #endif /* NMT_NEWT_BUTTON_H */ diff --git a/clients/tui/newt/nmt-newt-checkbox.c b/clients/tui/newt/nmt-newt-checkbox.c index 95773f2015..9e67dbd2f5 100644 --- a/clients/tui/newt/nmt-newt-checkbox.c +++ b/clients/tui/newt/nmt-newt-checkbox.c @@ -15,21 +15,22 @@ #include "nmt-newt-checkbox.h" #include "nmt-newt-utils.h" -G_DEFINE_TYPE (NmtNewtCheckbox, nmt_newt_checkbox, NMT_TYPE_NEWT_COMPONENT) +G_DEFINE_TYPE(NmtNewtCheckbox, nmt_newt_checkbox, NMT_TYPE_NEWT_COMPONENT) -#define NMT_NEWT_CHECKBOX_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NMT_TYPE_NEWT_CHECKBOX, NmtNewtCheckboxPrivate)) +#define NMT_NEWT_CHECKBOX_GET_PRIVATE(o) \ + (G_TYPE_INSTANCE_GET_PRIVATE((o), NMT_TYPE_NEWT_CHECKBOX, NmtNewtCheckboxPrivate)) typedef struct { - char *label_lc; - gboolean active; + char * label_lc; + gboolean active; } NmtNewtCheckboxPrivate; enum { - PROP_0, - PROP_LABEL, - PROP_ACTIVE, + PROP_0, + PROP_LABEL, + PROP_ACTIVE, - LAST_PROP + LAST_PROP }; #define CHECKBOX_INACTIVE ' ' @@ -45,11 +46,9 @@ enum { * Returns: a new #NmtNewtCheckbox */ NmtNewtWidget * -nmt_newt_checkbox_new (const char *label) +nmt_newt_checkbox_new(const char *label) { - return g_object_new (NMT_TYPE_NEWT_CHECKBOX, - "label", label, - NULL); + return g_object_new(NMT_TYPE_NEWT_CHECKBOX, "label", label, NULL); } /** @@ -60,23 +59,22 @@ nmt_newt_checkbox_new (const char *label) * Updates @checkbox's checked state */ void -nmt_newt_checkbox_set_active (NmtNewtCheckbox *checkbox, - gboolean active) +nmt_newt_checkbox_set_active(NmtNewtCheckbox *checkbox, gboolean active) { - NmtNewtCheckboxPrivate *priv = NMT_NEWT_CHECKBOX_GET_PRIVATE (checkbox); - newtComponent co; + NmtNewtCheckboxPrivate *priv = NMT_NEWT_CHECKBOX_GET_PRIVATE(checkbox); + newtComponent co; - active = !!active; - if (active == priv->active) - return; + active = !!active; + if (active == priv->active) + return; - priv->active = active; + priv->active = active; - co = nmt_newt_component_get_component (NMT_NEWT_COMPONENT (checkbox)); - if (co) - newtCheckboxSetValue (co, priv->active ? CHECKBOX_ACTIVE : CHECKBOX_INACTIVE); + co = nmt_newt_component_get_component(NMT_NEWT_COMPONENT(checkbox)); + if (co) + newtCheckboxSetValue(co, priv->active ? CHECKBOX_ACTIVE : CHECKBOX_INACTIVE); - g_object_notify (G_OBJECT (checkbox), "active"); + g_object_notify(G_OBJECT(checkbox), "active"); } /** @@ -88,137 +86,130 @@ nmt_newt_checkbox_set_active (NmtNewtCheckbox *checkbox, * Returns: @checkbox's checked state */ gboolean -nmt_newt_checkbox_get_active (NmtNewtCheckbox *checkbox) +nmt_newt_checkbox_get_active(NmtNewtCheckbox *checkbox) { - NmtNewtCheckboxPrivate *priv = NMT_NEWT_CHECKBOX_GET_PRIVATE (checkbox); + NmtNewtCheckboxPrivate *priv = NMT_NEWT_CHECKBOX_GET_PRIVATE(checkbox); - return priv->active; + return priv->active; } static void -nmt_newt_checkbox_init (NmtNewtCheckbox *checkbox) -{ -} +nmt_newt_checkbox_init(NmtNewtCheckbox *checkbox) +{} static void -nmt_newt_checkbox_finalize (GObject *object) +nmt_newt_checkbox_finalize(GObject *object) { - NmtNewtCheckboxPrivate *priv = NMT_NEWT_CHECKBOX_GET_PRIVATE (object); + NmtNewtCheckboxPrivate *priv = NMT_NEWT_CHECKBOX_GET_PRIVATE(object); - g_free (priv->label_lc); + g_free(priv->label_lc); - G_OBJECT_CLASS (nmt_newt_checkbox_parent_class)->finalize (object); + G_OBJECT_CLASS(nmt_newt_checkbox_parent_class)->finalize(object); } static void -checkbox_toggled_callback (newtComponent co, - void *checkbox) +checkbox_toggled_callback(newtComponent co, void *checkbox) { - NmtNewtCheckboxPrivate *priv = NMT_NEWT_CHECKBOX_GET_PRIVATE (checkbox); - gboolean active; - - active = (newtCheckboxGetValue (co) == CHECKBOX_ACTIVE); - if (active != priv->active) { - priv->active = active; - g_object_notify (checkbox, "active"); - } + NmtNewtCheckboxPrivate *priv = NMT_NEWT_CHECKBOX_GET_PRIVATE(checkbox); + gboolean active; + + active = (newtCheckboxGetValue(co) == CHECKBOX_ACTIVE); + if (active != priv->active) { + priv->active = active; + g_object_notify(checkbox, "active"); + } } static newtComponent -nmt_newt_checkbox_build_component (NmtNewtComponent *component, - gboolean sensitive) +nmt_newt_checkbox_build_component(NmtNewtComponent *component, gboolean sensitive) { - NmtNewtCheckboxPrivate *priv = NMT_NEWT_CHECKBOX_GET_PRIVATE (component); - newtComponent co; - - co = newtCheckbox (-1, -1, priv->label_lc, - priv->active ? CHECKBOX_ACTIVE : CHECKBOX_INACTIVE, - CHECKBOX_STATES, NULL); - if (!sensitive) - newtCheckboxSetFlags (co, NEWT_FLAG_DISABLED, NEWT_FLAGS_SET); - newtComponentAddCallback (co, checkbox_toggled_callback, component); - return co; + NmtNewtCheckboxPrivate *priv = NMT_NEWT_CHECKBOX_GET_PRIVATE(component); + newtComponent co; + + co = newtCheckbox(-1, + -1, + priv->label_lc, + priv->active ? CHECKBOX_ACTIVE : CHECKBOX_INACTIVE, + CHECKBOX_STATES, + NULL); + if (!sensitive) + newtCheckboxSetFlags(co, NEWT_FLAG_DISABLED, NEWT_FLAGS_SET); + newtComponentAddCallback(co, checkbox_toggled_callback, component); + return co; } static void -nmt_newt_checkbox_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) +nmt_newt_checkbox_set_property(GObject * object, + guint prop_id, + const GValue *value, + GParamSpec * pspec) { - NmtNewtCheckbox *checkbox = NMT_NEWT_CHECKBOX (object); - NmtNewtCheckboxPrivate *priv = NMT_NEWT_CHECKBOX_GET_PRIVATE (object); - - switch (prop_id) { - case PROP_LABEL: - g_free (priv->label_lc); - priv->label_lc = nmt_newt_locale_from_utf8 (g_value_get_string (value)); - break; - case PROP_ACTIVE: - nmt_newt_checkbox_set_active (checkbox, g_value_get_boolean (value)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtNewtCheckbox * checkbox = NMT_NEWT_CHECKBOX(object); + NmtNewtCheckboxPrivate *priv = NMT_NEWT_CHECKBOX_GET_PRIVATE(object); + + switch (prop_id) { + case PROP_LABEL: + g_free(priv->label_lc); + priv->label_lc = nmt_newt_locale_from_utf8(g_value_get_string(value)); + break; + case PROP_ACTIVE: + nmt_newt_checkbox_set_active(checkbox, g_value_get_boolean(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_newt_checkbox_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) +nmt_newt_checkbox_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - NmtNewtCheckboxPrivate *priv = NMT_NEWT_CHECKBOX_GET_PRIVATE (object); - - switch (prop_id) { - case PROP_LABEL: - g_value_take_string (value, nmt_newt_locale_to_utf8 (priv->label_lc)); - break; - case PROP_ACTIVE: - g_value_set_boolean (value, priv->active); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtNewtCheckboxPrivate *priv = NMT_NEWT_CHECKBOX_GET_PRIVATE(object); + + switch (prop_id) { + case PROP_LABEL: + g_value_take_string(value, nmt_newt_locale_to_utf8(priv->label_lc)); + break; + case PROP_ACTIVE: + g_value_set_boolean(value, priv->active); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_newt_checkbox_class_init (NmtNewtCheckboxClass *checkbox_class) +nmt_newt_checkbox_class_init(NmtNewtCheckboxClass *checkbox_class) { - GObjectClass *object_class = G_OBJECT_CLASS (checkbox_class); - NmtNewtComponentClass *component_class = NMT_NEWT_COMPONENT_CLASS (checkbox_class); + GObjectClass * object_class = G_OBJECT_CLASS(checkbox_class); + NmtNewtComponentClass *component_class = NMT_NEWT_COMPONENT_CLASS(checkbox_class); - g_type_class_add_private (checkbox_class, sizeof (NmtNewtCheckboxPrivate)); + g_type_class_add_private(checkbox_class, sizeof(NmtNewtCheckboxPrivate)); - /* virtual methods */ - object_class->set_property = nmt_newt_checkbox_set_property; - object_class->get_property = nmt_newt_checkbox_get_property; - object_class->finalize = nmt_newt_checkbox_finalize; + /* virtual methods */ + object_class->set_property = nmt_newt_checkbox_set_property; + object_class->get_property = nmt_newt_checkbox_get_property; + object_class->finalize = nmt_newt_checkbox_finalize; - component_class->build_component = nmt_newt_checkbox_build_component; + component_class->build_component = nmt_newt_checkbox_build_component; - /** + /** * NmtNewtCheckbox:label: * * The checkbox's label */ - g_object_class_install_property - (object_class, PROP_LABEL, - g_param_spec_string ("label", "", "", - NULL, - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS)); - /** + g_object_class_install_property( + object_class, + PROP_LABEL, + g_param_spec_string("label", "", "", NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** * NmtNewtCheckbox:active: * * The checkbox's checked state */ - g_object_class_install_property - (object_class, PROP_ACTIVE, - g_param_spec_boolean ("active", "", "", - FALSE, - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS)); + g_object_class_install_property( + object_class, + PROP_ACTIVE, + g_param_spec_boolean("active", "", "", FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); } diff --git a/clients/tui/newt/nmt-newt-checkbox.h b/clients/tui/newt/nmt-newt-checkbox.h index 4cf6419829..1ab3485229 100644 --- a/clients/tui/newt/nmt-newt-checkbox.h +++ b/clients/tui/newt/nmt-newt-checkbox.h @@ -8,29 +8,30 @@ #include "nmt-newt-component.h" -#define NMT_TYPE_NEWT_CHECKBOX (nmt_newt_checkbox_get_type ()) -#define NMT_NEWT_CHECKBOX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NMT_TYPE_NEWT_CHECKBOX, NmtNewtCheckbox)) -#define NMT_NEWT_CHECKBOX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NMT_TYPE_NEWT_CHECKBOX, NmtNewtCheckboxClass)) -#define NMT_IS_NEWT_CHECKBOX(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NMT_TYPE_NEWT_CHECKBOX)) -#define NMT_IS_NEWT_CHECKBOX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NMT_TYPE_NEWT_CHECKBOX)) -#define NMT_NEWT_CHECKBOX_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NMT_TYPE_NEWT_CHECKBOX, NmtNewtCheckboxClass)) +#define NMT_TYPE_NEWT_CHECKBOX (nmt_newt_checkbox_get_type()) +#define NMT_NEWT_CHECKBOX(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), NMT_TYPE_NEWT_CHECKBOX, NmtNewtCheckbox)) +#define NMT_NEWT_CHECKBOX_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), NMT_TYPE_NEWT_CHECKBOX, NmtNewtCheckboxClass)) +#define NMT_IS_NEWT_CHECKBOX(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), NMT_TYPE_NEWT_CHECKBOX)) +#define NMT_IS_NEWT_CHECKBOX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), NMT_TYPE_NEWT_CHECKBOX)) +#define NMT_NEWT_CHECKBOX_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), NMT_TYPE_NEWT_CHECKBOX, NmtNewtCheckboxClass)) struct _NmtNewtCheckbox { - NmtNewtComponent parent; - + NmtNewtComponent parent; }; typedef struct { - NmtNewtComponentClass parent; + NmtNewtComponentClass parent; } NmtNewtCheckboxClass; -GType nmt_newt_checkbox_get_type (void); +GType nmt_newt_checkbox_get_type(void); -NmtNewtWidget *nmt_newt_checkbox_new (const char *label); +NmtNewtWidget *nmt_newt_checkbox_new(const char *label); -void nmt_newt_checkbox_set_active (NmtNewtCheckbox *checkbox, - gboolean active); -gboolean nmt_newt_checkbox_get_active (NmtNewtCheckbox *checkbox); +void nmt_newt_checkbox_set_active(NmtNewtCheckbox *checkbox, gboolean active); +gboolean nmt_newt_checkbox_get_active(NmtNewtCheckbox *checkbox); #endif /* NMT_NEWT_CHECKBOX_H */ diff --git a/clients/tui/newt/nmt-newt-component.c b/clients/tui/newt/nmt-newt-component.c index 5a7eec8e9a..a7007e2c41 100644 --- a/clients/tui/newt/nmt-newt-component.c +++ b/clients/tui/newt/nmt-newt-component.c @@ -17,136 +17,136 @@ #include "nmt-newt-form.h" #include "nmt-newt-hacks.h" -G_DEFINE_ABSTRACT_TYPE (NmtNewtComponent, nmt_newt_component, NMT_TYPE_NEWT_WIDGET) +G_DEFINE_ABSTRACT_TYPE(NmtNewtComponent, nmt_newt_component, NMT_TYPE_NEWT_WIDGET) -#define NMT_NEWT_COMPONENT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NMT_TYPE_NEWT_COMPONENT, NmtNewtComponentPrivate)) +#define NMT_NEWT_COMPONENT_GET_PRIVATE(o) \ + (G_TYPE_INSTANCE_GET_PRIVATE((o), NMT_TYPE_NEWT_COMPONENT, NmtNewtComponentPrivate)) typedef struct { - newtComponent co; - gboolean own_component; - gboolean sensitive; + newtComponent co; + gboolean own_component; + gboolean sensitive; } NmtNewtComponentPrivate; enum { - PROP_0, + PROP_0, - PROP_COMPONENT, - PROP_SENSITIVE, + PROP_COMPONENT, + PROP_SENSITIVE, - LAST_PROP + LAST_PROP }; static void -nmt_newt_component_init (NmtNewtComponent *component) +nmt_newt_component_init(NmtNewtComponent *component) { - NmtNewtComponentPrivate *priv = NMT_NEWT_COMPONENT_GET_PRIVATE (component); + NmtNewtComponentPrivate *priv = NMT_NEWT_COMPONENT_GET_PRIVATE(component); - priv->sensitive = TRUE; + priv->sensitive = TRUE; } static void -nmt_newt_component_unrealize (NmtNewtWidget *widget) +nmt_newt_component_unrealize(NmtNewtWidget *widget) { - NmtNewtComponentPrivate *priv = NMT_NEWT_COMPONENT_GET_PRIVATE (widget); + NmtNewtComponentPrivate *priv = NMT_NEWT_COMPONENT_GET_PRIVATE(widget); - if (!priv->co) - return; + if (!priv->co) + return; - newtComponentAddCallback (priv->co, NULL, NULL); - newtComponentAddDestroyCallback (priv->co, NULL, NULL); + newtComponentAddCallback(priv->co, NULL, NULL); + newtComponentAddDestroyCallback(priv->co, NULL, NULL); - if (priv->own_component) - newtComponentDestroy (priv->co); - priv->co = NULL; + if (priv->own_component) + newtComponentDestroy(priv->co); + priv->co = NULL; } static void -component_destroy_callback (newtComponent co, - void *component) +component_destroy_callback(newtComponent co, void *component) { - NmtNewtComponentPrivate *priv = NMT_NEWT_COMPONENT_GET_PRIVATE (component); + NmtNewtComponentPrivate *priv = NMT_NEWT_COMPONENT_GET_PRIVATE(component); - priv->own_component = FALSE; - nmt_newt_widget_unrealize (component); - nmt_newt_widget_needs_rebuild (component); + priv->own_component = FALSE; + nmt_newt_widget_unrealize(component); + nmt_newt_widget_needs_rebuild(component); } static void -nmt_newt_component_realize (NmtNewtWidget *widget) +nmt_newt_component_realize(NmtNewtWidget *widget) { - NmtNewtComponentPrivate *priv = NMT_NEWT_COMPONENT_GET_PRIVATE (widget); - - nmt_newt_component_unrealize (widget); - priv->co = NMT_NEWT_COMPONENT_GET_CLASS (widget)-> - build_component (NMT_NEWT_COMPONENT (widget), priv->sensitive); - priv->own_component = TRUE; - if (!priv->sensitive) - newtComponentTakesFocus (priv->co, FALSE); - newtComponentAddDestroyCallback (priv->co, component_destroy_callback, widget); + NmtNewtComponentPrivate *priv = NMT_NEWT_COMPONENT_GET_PRIVATE(widget); + + nmt_newt_component_unrealize(widget); + priv->co = NMT_NEWT_COMPONENT_GET_CLASS(widget)->build_component(NMT_NEWT_COMPONENT(widget), + priv->sensitive); + priv->own_component = TRUE; + if (!priv->sensitive) + newtComponentTakesFocus(priv->co, FALSE); + newtComponentAddDestroyCallback(priv->co, component_destroy_callback, widget); } static newtComponent * -nmt_newt_component_get_components (NmtNewtWidget *widget) +nmt_newt_component_get_components(NmtNewtWidget *widget) { - NmtNewtComponentPrivate *priv = NMT_NEWT_COMPONENT_GET_PRIVATE (widget); - newtComponent *cos; + NmtNewtComponentPrivate *priv = NMT_NEWT_COMPONENT_GET_PRIVATE(widget); + newtComponent * cos; - priv->own_component = FALSE; - cos = g_new0 (newtComponent, 2); - cos[0] = priv->co; - return cos; + priv->own_component = FALSE; + cos = g_new0(newtComponent, 2); + cos[0] = priv->co; + return cos; } static NmtNewtWidget * -nmt_newt_component_find_component (NmtNewtWidget *widget, - newtComponent co) +nmt_newt_component_find_component(NmtNewtWidget *widget, newtComponent co) { - NmtNewtComponentPrivate *priv = NMT_NEWT_COMPONENT_GET_PRIVATE (widget); + NmtNewtComponentPrivate *priv = NMT_NEWT_COMPONENT_GET_PRIVATE(widget); - if (co == priv->co) - return widget; - else - return NULL; + if (co == priv->co) + return widget; + else + return NULL; } static void -nmt_newt_component_size_request (NmtNewtWidget *widget, - int *width, - int *height) +nmt_newt_component_size_request(NmtNewtWidget *widget, int *width, int *height) { - NmtNewtComponentPrivate *priv = NMT_NEWT_COMPONENT_GET_PRIVATE (widget); + NmtNewtComponentPrivate *priv = NMT_NEWT_COMPONENT_GET_PRIVATE(widget); - newtComponentGetSize (priv->co, width, height); + newtComponentGetSize(priv->co, width, height); } static void -nmt_newt_component_size_allocate (NmtNewtWidget *widget, - int x, - int y, - int width, - int height) +nmt_newt_component_size_allocate(NmtNewtWidget *widget, int x, int y, int width, int height) { - NmtNewtComponentPrivate *priv = NMT_NEWT_COMPONENT_GET_PRIVATE (widget); - newtGrid grid; + NmtNewtComponentPrivate *priv = NMT_NEWT_COMPONENT_GET_PRIVATE(widget); + newtGrid grid; - /* You can't directly place a newtComponent, so we create a newtGrid, + /* You can't directly place a newtComponent, so we create a newtGrid, * position the component within that, and then place the grid. */ - grid = newtCreateGrid (1, 1); - newtGridSetField (grid, 0, 0, - NEWT_GRID_COMPONENT, priv->co, - x, y, 0, 0, - NEWT_ANCHOR_LEFT | NEWT_ANCHOR_TOP, 0); - newtGridPlace (grid, 0, 0); - newtGridFree (grid, FALSE); + grid = newtCreateGrid(1, 1); + newtGridSetField(grid, + 0, + 0, + NEWT_GRID_COMPONENT, + priv->co, + x, + y, + 0, + 0, + NEWT_ANCHOR_LEFT | NEWT_ANCHOR_TOP, + 0); + newtGridPlace(grid, 0, 0); + newtGridFree(grid, FALSE); } static newtComponent -nmt_newt_component_get_focus_component (NmtNewtWidget *widget) +nmt_newt_component_get_focus_component(NmtNewtWidget *widget) { - NmtNewtComponentPrivate *priv = NMT_NEWT_COMPONENT_GET_PRIVATE (widget); + NmtNewtComponentPrivate *priv = NMT_NEWT_COMPONENT_GET_PRIVATE(widget); - return priv->co; + return priv->co; } /** @@ -161,11 +161,11 @@ nmt_newt_component_get_focus_component (NmtNewtWidget *widget) * Returns: @component's #newtComponent */ newtComponent -nmt_newt_component_get_component (NmtNewtComponent *component) +nmt_newt_component_get_component(NmtNewtComponent *component) { - NmtNewtComponentPrivate *priv = NMT_NEWT_COMPONENT_GET_PRIVATE (component); + NmtNewtComponentPrivate *priv = NMT_NEWT_COMPONENT_GET_PRIVATE(component); - return priv->co; + return priv->co; } /** @@ -180,11 +180,11 @@ nmt_newt_component_get_component (NmtNewtComponent *component) * Returns: @component's #NmtNewtComponent:sensitive property */ gboolean -nmt_newt_component_get_sensitive (NmtNewtComponent *component) +nmt_newt_component_get_sensitive(NmtNewtComponent *component) { - NmtNewtComponentPrivate *priv = NMT_NEWT_COMPONENT_GET_PRIVATE (component); + NmtNewtComponentPrivate *priv = NMT_NEWT_COMPONENT_GET_PRIVATE(component); - return priv->sensitive; + return priv->sensitive; } /** @@ -195,102 +195,99 @@ nmt_newt_component_get_sensitive (NmtNewtComponent *component) * Sets @component's #NmtNewtComponent:sensitive property. */ void -nmt_newt_component_set_sensitive (NmtNewtComponent *component, - gboolean sensitive) +nmt_newt_component_set_sensitive(NmtNewtComponent *component, gboolean sensitive) { - NmtNewtComponentPrivate *priv = NMT_NEWT_COMPONENT_GET_PRIVATE (component); + NmtNewtComponentPrivate *priv = NMT_NEWT_COMPONENT_GET_PRIVATE(component); - sensitive = !!sensitive; - if (priv->sensitive == sensitive) - return; + sensitive = !!sensitive; + if (priv->sensitive == sensitive) + return; - priv->sensitive = sensitive; - g_object_notify (G_OBJECT (component), "sensitive"); - nmt_newt_widget_needs_rebuild (NMT_NEWT_WIDGET (component)); + priv->sensitive = sensitive; + g_object_notify(G_OBJECT(component), "sensitive"); + nmt_newt_widget_needs_rebuild(NMT_NEWT_WIDGET(component)); } static void -nmt_newt_component_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) +nmt_newt_component_set_property(GObject * object, + guint prop_id, + const GValue *value, + GParamSpec * pspec) { - NmtNewtComponent *component = NMT_NEWT_COMPONENT (object); - - switch (prop_id) { - case PROP_SENSITIVE: - nmt_newt_component_set_sensitive (component, g_value_get_boolean (value)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtNewtComponent *component = NMT_NEWT_COMPONENT(object); + + switch (prop_id) { + case PROP_SENSITIVE: + nmt_newt_component_set_sensitive(component, g_value_get_boolean(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_newt_component_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) +nmt_newt_component_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - NmtNewtComponent *component = NMT_NEWT_COMPONENT (object); - - switch (prop_id) { - case PROP_COMPONENT: - g_value_set_pointer (value, nmt_newt_component_get_component (component)); - break; - case PROP_SENSITIVE: - g_value_set_boolean (value, nmt_newt_component_get_sensitive (component)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtNewtComponent *component = NMT_NEWT_COMPONENT(object); + + switch (prop_id) { + case PROP_COMPONENT: + g_value_set_pointer(value, nmt_newt_component_get_component(component)); + break; + case PROP_SENSITIVE: + g_value_set_boolean(value, nmt_newt_component_get_sensitive(component)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_newt_component_class_init (NmtNewtComponentClass *component_class) +nmt_newt_component_class_init(NmtNewtComponentClass *component_class) { - GObjectClass *object_class = G_OBJECT_CLASS (component_class); - NmtNewtWidgetClass *widget_class = NMT_NEWT_WIDGET_CLASS (component_class); + GObjectClass * object_class = G_OBJECT_CLASS(component_class); + NmtNewtWidgetClass *widget_class = NMT_NEWT_WIDGET_CLASS(component_class); - g_type_class_add_private (component_class, sizeof (NmtNewtComponentPrivate)); + g_type_class_add_private(component_class, sizeof(NmtNewtComponentPrivate)); - /* virtual methods */ - object_class->set_property = nmt_newt_component_set_property; - object_class->get_property = nmt_newt_component_get_property; + /* virtual methods */ + object_class->set_property = nmt_newt_component_set_property; + object_class->get_property = nmt_newt_component_get_property; - widget_class->realize = nmt_newt_component_realize; - widget_class->unrealize = nmt_newt_component_unrealize; - widget_class->get_components = nmt_newt_component_get_components; - widget_class->find_component = nmt_newt_component_find_component; - widget_class->size_request = nmt_newt_component_size_request; - widget_class->size_allocate = nmt_newt_component_size_allocate; - widget_class->get_focus_component = nmt_newt_component_get_focus_component; + widget_class->realize = nmt_newt_component_realize; + widget_class->unrealize = nmt_newt_component_unrealize; + widget_class->get_components = nmt_newt_component_get_components; + widget_class->find_component = nmt_newt_component_find_component; + widget_class->size_request = nmt_newt_component_size_request; + widget_class->size_allocate = nmt_newt_component_size_allocate; + widget_class->get_focus_component = nmt_newt_component_get_focus_component; - /* properties */ + /* properties */ - /** + /** * NmtNewtComponent:component: * * The component's #newtComponent */ - g_object_class_install_property - (object_class, PROP_COMPONENT, - g_param_spec_pointer ("component", "", "", - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - /** + g_object_class_install_property( + object_class, + PROP_COMPONENT, + g_param_spec_pointer("component", "", "", G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); + /** * NmtNewtComponent:sensitive: * * Whether the component is sensitive. Insensitive components will * be skipped over in the keyboard tab chain, and may be displayed * differently. */ - g_object_class_install_property - (object_class, PROP_SENSITIVE, - g_param_spec_boolean ("sensitive", "", "", - TRUE, - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS)); + g_object_class_install_property( + object_class, + PROP_SENSITIVE, + g_param_spec_boolean("sensitive", + "", + "", + TRUE, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); } diff --git a/clients/tui/newt/nmt-newt-component.h b/clients/tui/newt/nmt-newt-component.h index 9f64a09fba..aa2caf6fd5 100644 --- a/clients/tui/newt/nmt-newt-component.h +++ b/clients/tui/newt/nmt-newt-component.h @@ -8,33 +8,34 @@ #include "nmt-newt-widget.h" -#define NMT_TYPE_NEWT_COMPONENT (nmt_newt_component_get_type ()) -#define NMT_NEWT_COMPONENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NMT_TYPE_NEWT_COMPONENT, NmtNewtComponent)) -#define NMT_NEWT_COMPONENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NMT_TYPE_NEWT_COMPONENT, NmtNewtComponentClass)) -#define NMT_IS_NEWT_COMPONENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NMT_TYPE_NEWT_COMPONENT)) -#define NMT_IS_NEWT_COMPONENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NMT_TYPE_NEWT_COMPONENT)) -#define NMT_NEWT_COMPONENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NMT_TYPE_NEWT_COMPONENT, NmtNewtComponentClass)) +#define NMT_TYPE_NEWT_COMPONENT (nmt_newt_component_get_type()) +#define NMT_NEWT_COMPONENT(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), NMT_TYPE_NEWT_COMPONENT, NmtNewtComponent)) +#define NMT_NEWT_COMPONENT_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), NMT_TYPE_NEWT_COMPONENT, NmtNewtComponentClass)) +#define NMT_IS_NEWT_COMPONENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), NMT_TYPE_NEWT_COMPONENT)) +#define NMT_IS_NEWT_COMPONENT_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass), NMT_TYPE_NEWT_COMPONENT)) +#define NMT_NEWT_COMPONENT_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), NMT_TYPE_NEWT_COMPONENT, NmtNewtComponentClass)) struct _NmtNewtComponent { - NmtNewtWidget parent; - + NmtNewtWidget parent; }; typedef struct { - NmtNewtWidgetClass parent; + NmtNewtWidgetClass parent; - /* methods */ - newtComponent (*build_component) (NmtNewtComponent *component, - gboolean sensitive); + /* methods */ + newtComponent (*build_component)(NmtNewtComponent *component, gboolean sensitive); } NmtNewtComponentClass; -GType nmt_newt_component_get_type (void); +GType nmt_newt_component_get_type(void); -newtComponent nmt_newt_component_get_component (NmtNewtComponent *component); +newtComponent nmt_newt_component_get_component(NmtNewtComponent *component); -gboolean nmt_newt_component_get_sensitive (NmtNewtComponent *component); -void nmt_newt_component_set_sensitive (NmtNewtComponent *component, - gboolean sensitive); +gboolean nmt_newt_component_get_sensitive(NmtNewtComponent *component); +void nmt_newt_component_set_sensitive(NmtNewtComponent *component, gboolean sensitive); #endif /* NMT_NEWT_COMPONENT_H */ diff --git a/clients/tui/newt/nmt-newt-container.c b/clients/tui/newt/nmt-newt-container.c index 7f88397ef7..fbe651aeb1 100644 --- a/clients/tui/newt/nmt-newt-container.c +++ b/clients/tui/newt/nmt-newt-container.c @@ -19,145 +19,142 @@ #include "nmt-newt-component.h" -G_DEFINE_ABSTRACT_TYPE (NmtNewtContainer, nmt_newt_container, NMT_TYPE_NEWT_WIDGET) +G_DEFINE_ABSTRACT_TYPE(NmtNewtContainer, nmt_newt_container, NMT_TYPE_NEWT_WIDGET) -#define NMT_NEWT_CONTAINER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NMT_TYPE_NEWT_CONTAINER, NmtNewtContainerPrivate)) +#define NMT_NEWT_CONTAINER_GET_PRIVATE(o) \ + (G_TYPE_INSTANCE_GET_PRIVATE((o), NMT_TYPE_NEWT_CONTAINER, NmtNewtContainerPrivate)) typedef struct { - GPtrArray *children; + GPtrArray *children; } NmtNewtContainerPrivate; -static void child_needs_rebuild (NmtNewtWidget *widget, gpointer user_data); +static void child_needs_rebuild(NmtNewtWidget *widget, gpointer user_data); static void -nmt_newt_container_init (NmtNewtContainer *container) +nmt_newt_container_init(NmtNewtContainer *container) { - NmtNewtContainerPrivate *priv = NMT_NEWT_CONTAINER_GET_PRIVATE (container); + NmtNewtContainerPrivate *priv = NMT_NEWT_CONTAINER_GET_PRIVATE(container); - priv->children = g_ptr_array_new (); + priv->children = g_ptr_array_new(); } static void -nmt_newt_container_finalize (GObject *object) +nmt_newt_container_finalize(GObject *object) { - NmtNewtContainer *container = NMT_NEWT_CONTAINER (object); - NmtNewtContainerPrivate *priv = NMT_NEWT_CONTAINER_GET_PRIVATE (object); + NmtNewtContainer * container = NMT_NEWT_CONTAINER(object); + NmtNewtContainerPrivate *priv = NMT_NEWT_CONTAINER_GET_PRIVATE(object); - while (priv->children->len) - nmt_newt_container_remove (container, priv->children->pdata[0]); + while (priv->children->len) + nmt_newt_container_remove(container, priv->children->pdata[0]); - G_OBJECT_CLASS (nmt_newt_container_parent_class)->finalize (object); + G_OBJECT_CLASS(nmt_newt_container_parent_class)->finalize(object); } static void -nmt_newt_container_realize (NmtNewtWidget *widget) +nmt_newt_container_realize(NmtNewtWidget *widget) { - NmtNewtContainerPrivate *priv = NMT_NEWT_CONTAINER_GET_PRIVATE (widget); - int i; + NmtNewtContainerPrivate *priv = NMT_NEWT_CONTAINER_GET_PRIVATE(widget); + int i; - for (i = 0; i < priv->children->len; i++) - nmt_newt_widget_realize (priv->children->pdata[i]); + for (i = 0; i < priv->children->len; i++) + nmt_newt_widget_realize(priv->children->pdata[i]); } static void -nmt_newt_container_unrealize (NmtNewtWidget *widget) +nmt_newt_container_unrealize(NmtNewtWidget *widget) { - NmtNewtContainerPrivate *priv = NMT_NEWT_CONTAINER_GET_PRIVATE (widget); - int i; + NmtNewtContainerPrivate *priv = NMT_NEWT_CONTAINER_GET_PRIVATE(widget); + int i; - for (i = 0; i < priv->children->len; i++) - nmt_newt_widget_unrealize (priv->children->pdata[i]); + for (i = 0; i < priv->children->len; i++) + nmt_newt_widget_unrealize(priv->children->pdata[i]); } static void -child_needs_rebuild (NmtNewtWidget *widget, - gpointer user_data) +child_needs_rebuild(NmtNewtWidget *widget, gpointer user_data) { - NmtNewtWidget *container = user_data; + NmtNewtWidget *container = user_data; - nmt_newt_widget_needs_rebuild (container); + nmt_newt_widget_needs_rebuild(container); } static void -nmt_newt_container_real_child_validity_changed (NmtNewtContainer *container, - NmtNewtWidget *widget) +nmt_newt_container_real_child_validity_changed(NmtNewtContainer *container, NmtNewtWidget *widget) { - NmtNewtContainerPrivate *priv; - int i; - - if (widget) { - if (!nmt_newt_widget_get_visible (widget)) - return; - if (!nmt_newt_widget_get_valid (widget)) { - nmt_newt_widget_set_valid (NMT_NEWT_WIDGET (container), FALSE); - return; - } - } - - priv = NMT_NEWT_CONTAINER_GET_PRIVATE (container); - for (i = 0; i < priv->children->len; i++) { - widget = priv->children->pdata[i]; - if ( nmt_newt_widget_get_visible (widget) - && !nmt_newt_widget_get_valid (widget)) { - nmt_newt_widget_set_valid (NMT_NEWT_WIDGET (container), FALSE); - return; - } - } - - nmt_newt_widget_set_valid (NMT_NEWT_WIDGET (container), TRUE); + NmtNewtContainerPrivate *priv; + int i; + + if (widget) { + if (!nmt_newt_widget_get_visible(widget)) + return; + if (!nmt_newt_widget_get_valid(widget)) { + nmt_newt_widget_set_valid(NMT_NEWT_WIDGET(container), FALSE); + return; + } + } + + priv = NMT_NEWT_CONTAINER_GET_PRIVATE(container); + for (i = 0; i < priv->children->len; i++) { + widget = priv->children->pdata[i]; + if (nmt_newt_widget_get_visible(widget) && !nmt_newt_widget_get_valid(widget)) { + nmt_newt_widget_set_valid(NMT_NEWT_WIDGET(container), FALSE); + return; + } + } + + nmt_newt_widget_set_valid(NMT_NEWT_WIDGET(container), TRUE); } static void -nmt_newt_container_child_validity_changed (NmtNewtContainer *container, - NmtNewtWidget *widget) +nmt_newt_container_child_validity_changed(NmtNewtContainer *container, NmtNewtWidget *widget) { - NMT_NEWT_CONTAINER_GET_CLASS (container)->child_validity_changed (container, widget); + NMT_NEWT_CONTAINER_GET_CLASS(container)->child_validity_changed(container, widget); } static void -child_validity_notify (GObject *object, - GParamSpec *pspec, - gpointer container) +child_validity_notify(GObject *object, GParamSpec *pspec, gpointer container) { - nmt_newt_container_child_validity_changed (container, NMT_NEWT_WIDGET (object)); + nmt_newt_container_child_validity_changed(container, NMT_NEWT_WIDGET(object)); } static void -nmt_newt_container_real_add (NmtNewtContainer *container, - NmtNewtWidget *widget) +nmt_newt_container_real_add(NmtNewtContainer *container, NmtNewtWidget *widget) { - NmtNewtContainerPrivate *priv = NMT_NEWT_CONTAINER_GET_PRIVATE (container); + NmtNewtContainerPrivate *priv = NMT_NEWT_CONTAINER_GET_PRIVATE(container); - g_signal_connect (widget, "needs-rebuild", G_CALLBACK (child_needs_rebuild), container); - g_signal_connect (widget, "notify::valid", G_CALLBACK (child_validity_notify), container); - g_ptr_array_add (priv->children, g_object_ref_sink (widget)); - nmt_newt_widget_set_parent (widget, NMT_NEWT_WIDGET (container)); + g_signal_connect(widget, "needs-rebuild", G_CALLBACK(child_needs_rebuild), container); + g_signal_connect(widget, "notify::valid", G_CALLBACK(child_validity_notify), container); + g_ptr_array_add(priv->children, g_object_ref_sink(widget)); + nmt_newt_widget_set_parent(widget, NMT_NEWT_WIDGET(container)); - nmt_newt_container_child_validity_changed (container, widget); - nmt_newt_widget_needs_rebuild (NMT_NEWT_WIDGET (container)); + nmt_newt_container_child_validity_changed(container, widget); + nmt_newt_widget_needs_rebuild(NMT_NEWT_WIDGET(container)); } static void -nmt_newt_container_real_remove (NmtNewtContainer *container, - NmtNewtWidget *widget) +nmt_newt_container_real_remove(NmtNewtContainer *container, NmtNewtWidget *widget) { - NmtNewtContainerPrivate *priv = NMT_NEWT_CONTAINER_GET_PRIVATE (container); - int i; - - for (i = 0; i < priv->children->len; i++) { - if (widget == priv->children->pdata[i]) { - g_ptr_array_remove_index (priv->children, i); - g_signal_handlers_disconnect_by_func (widget, G_CALLBACK (child_needs_rebuild), container); - g_signal_handlers_disconnect_by_func (widget, G_CALLBACK (child_validity_notify), container); - nmt_newt_widget_set_parent (widget, NULL); - g_object_unref (widget); - - nmt_newt_container_child_validity_changed (container, NULL); - nmt_newt_widget_needs_rebuild (NMT_NEWT_WIDGET (container)); - return; - } - } + NmtNewtContainerPrivate *priv = NMT_NEWT_CONTAINER_GET_PRIVATE(container); + int i; + + for (i = 0; i < priv->children->len; i++) { + if (widget == priv->children->pdata[i]) { + g_ptr_array_remove_index(priv->children, i); + g_signal_handlers_disconnect_by_func(widget, + G_CALLBACK(child_needs_rebuild), + container); + g_signal_handlers_disconnect_by_func(widget, + G_CALLBACK(child_validity_notify), + container); + nmt_newt_widget_set_parent(widget, NULL); + g_object_unref(widget); + + nmt_newt_container_child_validity_changed(container, NULL); + nmt_newt_widget_needs_rebuild(NMT_NEWT_WIDGET(container)); + return; + } + } } /** @@ -172,29 +169,27 @@ nmt_newt_container_real_remove (NmtNewtContainer *container, * container-type-specific methods to add widgets to containers. */ void -nmt_newt_container_remove (NmtNewtContainer *container, - NmtNewtWidget *widget) +nmt_newt_container_remove(NmtNewtContainer *container, NmtNewtWidget *widget) { - NMT_NEWT_CONTAINER_GET_CLASS (container)->remove (container, widget); + NMT_NEWT_CONTAINER_GET_CLASS(container)->remove(container, widget); } static NmtNewtWidget * -nmt_newt_container_find_component (NmtNewtWidget *widget, - newtComponent co) +nmt_newt_container_find_component(NmtNewtWidget *widget, newtComponent co) { - NmtNewtContainerPrivate *priv = NMT_NEWT_CONTAINER_GET_PRIVATE (widget); - NmtNewtWidget *found, *child; - int i; + NmtNewtContainerPrivate *priv = NMT_NEWT_CONTAINER_GET_PRIVATE(widget); + NmtNewtWidget * found, *child; + int i; - for (i = 0; i < priv->children->len; i++) { - child = priv->children->pdata[i]; + for (i = 0; i < priv->children->len; i++) { + child = priv->children->pdata[i]; - found = nmt_newt_widget_find_component (child, co); - if (found) - return found; - } + found = nmt_newt_widget_find_component(child, co); + if (found) + return found; + } - return NULL; + return NULL; } /** @@ -206,33 +201,33 @@ nmt_newt_container_find_component (NmtNewtWidget *widget, * Returns: (transfer full): a list of @container's children. */ GSList * -nmt_newt_container_get_children (NmtNewtContainer *container) +nmt_newt_container_get_children(NmtNewtContainer *container) { - NmtNewtContainerPrivate *priv = NMT_NEWT_CONTAINER_GET_PRIVATE (container); - GSList *ret; - int i; + NmtNewtContainerPrivate *priv = NMT_NEWT_CONTAINER_GET_PRIVATE(container); + GSList * ret; + int i; - for (i = 0, ret = NULL; i < priv->children->len; i++) - ret = g_slist_prepend (ret, g_object_ref (priv->children->pdata[i])); - return g_slist_reverse (ret); + for (i = 0, ret = NULL; i < priv->children->len; i++) + ret = g_slist_prepend(ret, g_object_ref(priv->children->pdata[i])); + return g_slist_reverse(ret); } static void -nmt_newt_container_class_init (NmtNewtContainerClass *container_class) +nmt_newt_container_class_init(NmtNewtContainerClass *container_class) { - GObjectClass *object_class = G_OBJECT_CLASS (container_class); - NmtNewtWidgetClass *widget_class = NMT_NEWT_WIDGET_CLASS (container_class); + GObjectClass * object_class = G_OBJECT_CLASS(container_class); + NmtNewtWidgetClass *widget_class = NMT_NEWT_WIDGET_CLASS(container_class); - g_type_class_add_private (container_class, sizeof (NmtNewtContainerPrivate)); + g_type_class_add_private(container_class, sizeof(NmtNewtContainerPrivate)); - /* virtual methods */ - object_class->finalize = nmt_newt_container_finalize; + /* virtual methods */ + object_class->finalize = nmt_newt_container_finalize; - widget_class->realize = nmt_newt_container_realize; - widget_class->unrealize = nmt_newt_container_unrealize; - widget_class->find_component = nmt_newt_container_find_component; + widget_class->realize = nmt_newt_container_realize; + widget_class->unrealize = nmt_newt_container_unrealize; + widget_class->find_component = nmt_newt_container_find_component; - container_class->add = nmt_newt_container_real_add; - container_class->remove = nmt_newt_container_real_remove; - container_class->child_validity_changed = nmt_newt_container_real_child_validity_changed; + container_class->add = nmt_newt_container_real_add; + container_class->remove = nmt_newt_container_real_remove; + container_class->child_validity_changed = nmt_newt_container_real_child_validity_changed; } diff --git a/clients/tui/newt/nmt-newt-container.h b/clients/tui/newt/nmt-newt-container.h index 309398729f..6a59cfc8a8 100644 --- a/clients/tui/newt/nmt-newt-container.h +++ b/clients/tui/newt/nmt-newt-container.h @@ -8,37 +8,36 @@ #include "nmt-newt-widget.h" -#define NMT_TYPE_NEWT_CONTAINER (nmt_newt_container_get_type ()) -#define NMT_NEWT_CONTAINER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NMT_TYPE_NEWT_CONTAINER, NmtNewtContainer)) -#define NMT_NEWT_CONTAINER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NMT_TYPE_NEWT_CONTAINER, NmtNewtContainerClass)) -#define NMT_IS_NEWT_CONTAINER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NMT_TYPE_NEWT_CONTAINER)) -#define NMT_IS_NEWT_CONTAINER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NMT_TYPE_NEWT_CONTAINER)) -#define NMT_NEWT_CONTAINER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NMT_TYPE_NEWT_CONTAINER, NmtNewtContainerClass)) +#define NMT_TYPE_NEWT_CONTAINER (nmt_newt_container_get_type()) +#define NMT_NEWT_CONTAINER(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), NMT_TYPE_NEWT_CONTAINER, NmtNewtContainer)) +#define NMT_NEWT_CONTAINER_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), NMT_TYPE_NEWT_CONTAINER, NmtNewtContainerClass)) +#define NMT_IS_NEWT_CONTAINER(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), NMT_TYPE_NEWT_CONTAINER)) +#define NMT_IS_NEWT_CONTAINER_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass), NMT_TYPE_NEWT_CONTAINER)) +#define NMT_NEWT_CONTAINER_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), NMT_TYPE_NEWT_CONTAINER, NmtNewtContainerClass)) struct _NmtNewtContainer { - NmtNewtWidget parent; - + NmtNewtWidget parent; }; typedef struct { - NmtNewtWidgetClass parent; + NmtNewtWidgetClass parent; - /* methods */ - void (*add) (NmtNewtContainer *container, - NmtNewtWidget *child); - void (*remove) (NmtNewtContainer *container, - NmtNewtWidget *child); + /* methods */ + void (*add)(NmtNewtContainer *container, NmtNewtWidget *child); + void (*remove)(NmtNewtContainer *container, NmtNewtWidget *child); - void (*child_validity_changed) (NmtNewtContainer *container, - NmtNewtWidget *child); + void (*child_validity_changed)(NmtNewtContainer *container, NmtNewtWidget *child); } NmtNewtContainerClass; -GType nmt_newt_container_get_type (void); +GType nmt_newt_container_get_type(void); -void nmt_newt_container_remove (NmtNewtContainer *container, - NmtNewtWidget *widget); +void nmt_newt_container_remove(NmtNewtContainer *container, NmtNewtWidget *widget); -GSList *nmt_newt_container_get_children (NmtNewtContainer *container); +GSList *nmt_newt_container_get_children(NmtNewtContainer *container); #endif /* NMT_NEWT_CONTAINER_H */ diff --git a/clients/tui/newt/nmt-newt-entry-numeric.c b/clients/tui/newt/nmt-newt-entry-numeric.c index 88d4ceb0ad..10d6490c7c 100644 --- a/clients/tui/newt/nmt-newt-entry-numeric.c +++ b/clients/tui/newt/nmt-newt-entry-numeric.c @@ -19,22 +19,23 @@ #include "nmt-newt-entry-numeric.h" -G_DEFINE_TYPE (NmtNewtEntryNumeric, nmt_newt_entry_numeric, NMT_TYPE_NEWT_ENTRY) +G_DEFINE_TYPE(NmtNewtEntryNumeric, nmt_newt_entry_numeric, NMT_TYPE_NEWT_ENTRY) -#define NMT_NEWT_ENTRY_NUMERIC_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NMT_TYPE_NEWT_ENTRY_NUMERIC, NmtNewtEntryNumericPrivate)) +#define NMT_NEWT_ENTRY_NUMERIC_GET_PRIVATE(o) \ + (G_TYPE_INSTANCE_GET_PRIVATE((o), NMT_TYPE_NEWT_ENTRY_NUMERIC, NmtNewtEntryNumericPrivate)) typedef struct { - gint64 min, max; - bool optional; + gint64 min, max; + bool optional; } NmtNewtEntryNumericPrivate; enum { - PROP_0, - PROP_MINIMUM, - PROP_MAXIMUM, - PROP_OPTIONAL, + PROP_0, + PROP_MINIMUM, + PROP_MAXIMUM, + PROP_OPTIONAL, - LAST_PROP + LAST_PROP }; /** @@ -49,14 +50,9 @@ enum { * Returns: a new #NmtNewtEntryNumeric */ NmtNewtWidget * -nmt_newt_entry_numeric_new (int width, - gint64 min, - gint64 max) +nmt_newt_entry_numeric_new(int width, gint64 min, gint64 max) { - return nmt_newt_entry_numeric_new_full (width, - min, - max, - FALSE); + return nmt_newt_entry_numeric_new_full(width, min, max, FALSE); } /** @@ -72,171 +68,177 @@ nmt_newt_entry_numeric_new (int width, * Returns: a new #NmtNewtEntryNumeric */ NmtNewtWidget * -nmt_newt_entry_numeric_new_full (int width, - gint64 min, - gint64 max, - gboolean optional) +nmt_newt_entry_numeric_new_full(int width, gint64 min, gint64 max, gboolean optional) { - return g_object_new (NMT_TYPE_NEWT_ENTRY_NUMERIC, - "width", width, - "minimum", min, - "maximum", max, - "optional", optional, - NULL); + return g_object_new(NMT_TYPE_NEWT_ENTRY_NUMERIC, + "width", + width, + "minimum", + min, + "maximum", + max, + "optional", + optional, + NULL); } static gboolean -newt_entry_numeric_filter (NmtNewtEntry *entry, - const char *text, - int ch, - int position, - gpointer user_data) +newt_entry_numeric_filter(NmtNewtEntry *entry, + const char * text, + int ch, + int position, + gpointer user_data) { - NmtNewtEntryNumericPrivate *priv = NMT_NEWT_ENTRY_NUMERIC_GET_PRIVATE (entry); + NmtNewtEntryNumericPrivate *priv = NMT_NEWT_ENTRY_NUMERIC_GET_PRIVATE(entry); - if (g_ascii_isdigit (ch)) - return TRUE; + if (g_ascii_isdigit(ch)) + return TRUE; - if (ch == '-' && position == 0 && priv->min < 0) - return TRUE; + if (ch == '-' && position == 0 && priv->min < 0) + return TRUE; - return FALSE; + return FALSE; } static gboolean -newt_entry_numeric_validate (NmtNewtEntry *entry, - const char *text, - gpointer user_data) +newt_entry_numeric_validate(NmtNewtEntry *entry, const char *text, gpointer user_data) { - NmtNewtEntryNumericPrivate *priv = NMT_NEWT_ENTRY_NUMERIC_GET_PRIVATE (entry); - gint64 val; + NmtNewtEntryNumericPrivate *priv = NMT_NEWT_ENTRY_NUMERIC_GET_PRIVATE(entry); + gint64 val; - if (!*text) - return priv->optional ? TRUE : FALSE; + if (!*text) + return priv->optional ? TRUE : FALSE; - val = _nm_utils_ascii_str_to_int64 (text, 10, priv->min, priv->max, G_MAXINT64); - return val != G_MAXINT64 || errno == 0; + val = _nm_utils_ascii_str_to_int64(text, 10, priv->min, priv->max, G_MAXINT64); + return val != G_MAXINT64 || errno == 0; } static void -nmt_newt_entry_numeric_init (NmtNewtEntryNumeric *entry) +nmt_newt_entry_numeric_init(NmtNewtEntryNumeric *entry) { - nmt_newt_entry_set_filter (NMT_NEWT_ENTRY (entry), newt_entry_numeric_filter, NULL); - nmt_newt_entry_set_validator (NMT_NEWT_ENTRY (entry), newt_entry_numeric_validate, NULL); + nmt_newt_entry_set_filter(NMT_NEWT_ENTRY(entry), newt_entry_numeric_filter, NULL); + nmt_newt_entry_set_validator(NMT_NEWT_ENTRY(entry), newt_entry_numeric_validate, NULL); } static void -nmt_newt_entry_numeric_constructed (GObject *object) +nmt_newt_entry_numeric_constructed(GObject *object) { - NmtNewtEntryNumericPrivate *priv = NMT_NEWT_ENTRY_NUMERIC_GET_PRIVATE (object); + NmtNewtEntryNumericPrivate *priv = NMT_NEWT_ENTRY_NUMERIC_GET_PRIVATE(object); - if (!*nmt_newt_entry_get_text (NMT_NEWT_ENTRY (object))) { - char buf[32]; + if (!*nmt_newt_entry_get_text(NMT_NEWT_ENTRY(object))) { + char buf[32]; - g_snprintf (buf, sizeof (buf), "%lld", (long long) priv->min); - nmt_newt_entry_set_text (NMT_NEWT_ENTRY (object), buf); - } + g_snprintf(buf, sizeof(buf), "%lld", (long long) priv->min); + nmt_newt_entry_set_text(NMT_NEWT_ENTRY(object), buf); + } - G_OBJECT_CLASS (nmt_newt_entry_numeric_parent_class)->constructed (object); + G_OBJECT_CLASS(nmt_newt_entry_numeric_parent_class)->constructed(object); } static void -nmt_newt_entry_numeric_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) +nmt_newt_entry_numeric_set_property(GObject * object, + guint prop_id, + const GValue *value, + GParamSpec * pspec) { - NmtNewtEntryNumericPrivate *priv = NMT_NEWT_ENTRY_NUMERIC_GET_PRIVATE (object); - - switch (prop_id) { - case PROP_MINIMUM: - priv->min = g_value_get_int64 (value); - break; - case PROP_MAXIMUM: - priv->max = g_value_get_int64 (value); - break; - case PROP_OPTIONAL: - priv->optional = g_value_get_boolean (value); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtNewtEntryNumericPrivate *priv = NMT_NEWT_ENTRY_NUMERIC_GET_PRIVATE(object); + + switch (prop_id) { + case PROP_MINIMUM: + priv->min = g_value_get_int64(value); + break; + case PROP_MAXIMUM: + priv->max = g_value_get_int64(value); + break; + case PROP_OPTIONAL: + priv->optional = g_value_get_boolean(value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_newt_entry_numeric_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) +nmt_newt_entry_numeric_get_property(GObject * object, + guint prop_id, + GValue * value, + GParamSpec *pspec) { - NmtNewtEntryNumericPrivate *priv = NMT_NEWT_ENTRY_NUMERIC_GET_PRIVATE (object); - - switch (prop_id) { - case PROP_MINIMUM: - g_value_set_int64 (value, priv->min); - break; - case PROP_MAXIMUM: - g_value_set_int64 (value, priv->max); - break; - case PROP_OPTIONAL: - g_value_set_boolean (value, priv->optional); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtNewtEntryNumericPrivate *priv = NMT_NEWT_ENTRY_NUMERIC_GET_PRIVATE(object); + + switch (prop_id) { + case PROP_MINIMUM: + g_value_set_int64(value, priv->min); + break; + case PROP_MAXIMUM: + g_value_set_int64(value, priv->max); + break; + case PROP_OPTIONAL: + g_value_set_boolean(value, priv->optional); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_newt_entry_numeric_class_init (NmtNewtEntryNumericClass *entry_class) +nmt_newt_entry_numeric_class_init(NmtNewtEntryNumericClass *entry_class) { - GObjectClass *object_class = G_OBJECT_CLASS (entry_class); + GObjectClass *object_class = G_OBJECT_CLASS(entry_class); - g_type_class_add_private (entry_class, sizeof (NmtNewtEntryNumericPrivate)); + g_type_class_add_private(entry_class, sizeof(NmtNewtEntryNumericPrivate)); - /* virtual methods */ - object_class->constructed = nmt_newt_entry_numeric_constructed; - object_class->set_property = nmt_newt_entry_numeric_set_property; - object_class->get_property = nmt_newt_entry_numeric_get_property; + /* virtual methods */ + object_class->constructed = nmt_newt_entry_numeric_constructed; + object_class->set_property = nmt_newt_entry_numeric_set_property; + object_class->get_property = nmt_newt_entry_numeric_get_property; - /** + /** * NmtNewtEntryNumeric:minimum: * * The minimum #NmtNewtWidget:valid value for the entry. If this * is non-negative, then the entry will not allow negative numbers * to be entered. */ - g_object_class_install_property - (object_class, PROP_MINIMUM, - g_param_spec_int64 ("minimum", "", "", - G_MININT64, G_MAXINT64, 0, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); - /** + g_object_class_install_property( + object_class, + PROP_MINIMUM, + g_param_spec_int64("minimum", + "", + "", + G_MININT64, + G_MAXINT64, + 0, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); + /** * NmtNewtEntryNumeric:maximum: * * The maximum #NmtNewtWidget:valid value for the entry. */ - g_object_class_install_property - (object_class, PROP_MAXIMUM, - g_param_spec_int64 ("maximum", "", "", - G_MININT64, G_MAXINT64, G_MAXINT64, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); - /** + g_object_class_install_property( + object_class, + PROP_MAXIMUM, + g_param_spec_int64("maximum", + "", + "", + G_MININT64, + G_MAXINT64, + G_MAXINT64, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); + /** * NmtNewtEntryNumeric:optional: * * If %TRUE, allow empty string to indicate some default value. * It means the property is optional and can be left at the default */ - g_object_class_install_property - (object_class, PROP_OPTIONAL, - g_param_spec_boolean ("optional", "", "", - FALSE, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); + g_object_class_install_property( + object_class, + PROP_OPTIONAL, + g_param_spec_boolean("optional", + "", + "", + FALSE, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); } diff --git a/clients/tui/newt/nmt-newt-entry-numeric.h b/clients/tui/newt/nmt-newt-entry-numeric.h index d4c62363f3..56e04c91ad 100644 --- a/clients/tui/newt/nmt-newt-entry-numeric.h +++ b/clients/tui/newt/nmt-newt-entry-numeric.h @@ -8,32 +8,32 @@ #include "nmt-newt-entry.h" -#define NMT_TYPE_NEWT_ENTRY_NUMERIC (nmt_newt_entry_numeric_get_type ()) -#define NMT_NEWT_ENTRY_NUMERIC(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NMT_TYPE_NEWT_ENTRY_NUMERIC, NmtNewtEntryNumeric)) -#define NMT_NEWT_ENTRY_NUMERIC_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NMT_TYPE_NEWT_ENTRY_NUMERIC, NmtNewtEntryNumericClass)) -#define NMT_IS_NEWT_ENTRY_NUMERIC(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NMT_TYPE_NEWT_ENTRY_NUMERIC)) -#define NMT_IS_NEWT_ENTRY_NUMERIC_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NMT_TYPE_NEWT_ENTRY_NUMERIC)) -#define NMT_NEWT_ENTRY_NUMERIC_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NMT_TYPE_NEWT_ENTRY_NUMERIC, NmtNewtEntryNumericClass)) +#define NMT_TYPE_NEWT_ENTRY_NUMERIC (nmt_newt_entry_numeric_get_type()) +#define NMT_NEWT_ENTRY_NUMERIC(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), NMT_TYPE_NEWT_ENTRY_NUMERIC, NmtNewtEntryNumeric)) +#define NMT_NEWT_ENTRY_NUMERIC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), NMT_TYPE_NEWT_ENTRY_NUMERIC, NmtNewtEntryNumericClass)) +#define NMT_IS_NEWT_ENTRY_NUMERIC(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj), NMT_TYPE_NEWT_ENTRY_NUMERIC)) +#define NMT_IS_NEWT_ENTRY_NUMERIC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass), NMT_TYPE_NEWT_ENTRY_NUMERIC)) +#define NMT_NEWT_ENTRY_NUMERIC_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), NMT_TYPE_NEWT_ENTRY_NUMERIC, NmtNewtEntryNumericClass)) struct _NmtNewtEntryNumeric { - NmtNewtEntry parent; - + NmtNewtEntry parent; }; typedef struct { - NmtNewtEntryClass parent; + NmtNewtEntryClass parent; } NmtNewtEntryNumericClass; -GType nmt_newt_entry_numeric_get_type (void); +GType nmt_newt_entry_numeric_get_type(void); -NmtNewtWidget *nmt_newt_entry_numeric_new (int width, - gint64 min, - gint64 max); +NmtNewtWidget *nmt_newt_entry_numeric_new(int width, gint64 min, gint64 max); -NmtNewtWidget *nmt_newt_entry_numeric_new_full (int width, - gint64 min, - gint64 max, - gboolean optional); +NmtNewtWidget * +nmt_newt_entry_numeric_new_full(int width, gint64 min, gint64 max, gboolean optional); #endif /* NMT_NEWT_ENTRY_NUMERIC_H */ diff --git a/clients/tui/newt/nmt-newt-entry.c b/clients/tui/newt/nmt-newt-entry.c index 62d40a1185..6fbc302134 100644 --- a/clients/tui/newt/nmt-newt-entry.c +++ b/clients/tui/newt/nmt-newt-entry.c @@ -20,32 +20,33 @@ #include "nmt-newt-hacks.h" #include "nmt-newt-utils.h" -G_DEFINE_TYPE (NmtNewtEntry, nmt_newt_entry, NMT_TYPE_NEWT_COMPONENT) +G_DEFINE_TYPE(NmtNewtEntry, nmt_newt_entry, NMT_TYPE_NEWT_COMPONENT) -#define NMT_NEWT_ENTRY_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NMT_TYPE_NEWT_ENTRY, NmtNewtEntryPrivate)) +#define NMT_NEWT_ENTRY_GET_PRIVATE(o) \ + (G_TYPE_INSTANCE_GET_PRIVATE((o), NMT_TYPE_NEWT_ENTRY, NmtNewtEntryPrivate)) typedef struct { - int width; - NmtNewtEntryFlags flags; - char *text; - int last_cursor_pos; - guint idle_update; + int width; + NmtNewtEntryFlags flags; + char * text; + int last_cursor_pos; + guint idle_update; - NmtNewtEntryFilter filter; - gpointer filter_data; + NmtNewtEntryFilter filter; + gpointer filter_data; - NmtNewtEntryValidator validator; - gpointer validator_data; + NmtNewtEntryValidator validator; + gpointer validator_data; } NmtNewtEntryPrivate; enum { - PROP_0, - PROP_TEXT, - PROP_WIDTH, - PROP_FLAGS, - PROP_PASSWORD, + PROP_0, + PROP_TEXT, + PROP_WIDTH, + PROP_FLAGS, + PROP_PASSWORD, - LAST_PROP + LAST_PROP }; /** @@ -70,13 +71,9 @@ enum { * Returns: a new #NmtNewtEntry */ NmtNewtWidget * -nmt_newt_entry_new (int width, - NmtNewtEntryFlags flags) +nmt_newt_entry_new(int width, NmtNewtEntryFlags flags) { - return g_object_new (NMT_TYPE_NEWT_ENTRY, - "width", width, - "flags", flags, - NULL); + return g_object_new(NMT_TYPE_NEWT_ENTRY, "width", width, "flags", flags, NULL); } /** @@ -107,31 +104,28 @@ nmt_newt_entry_new (int width, * nmt_newt_entry_set_text(). */ void -nmt_newt_entry_set_filter (NmtNewtEntry *entry, - NmtNewtEntryFilter filter, - gpointer user_data) +nmt_newt_entry_set_filter(NmtNewtEntry *entry, NmtNewtEntryFilter filter, gpointer user_data) { - NmtNewtEntryPrivate *priv = NMT_NEWT_ENTRY_GET_PRIVATE (entry); + NmtNewtEntryPrivate *priv = NMT_NEWT_ENTRY_GET_PRIVATE(entry); - priv->filter = filter; - priv->filter_data = user_data; + priv->filter = filter; + priv->filter_data = user_data; } static void -nmt_newt_entry_check_valid (NmtNewtEntry *entry) +nmt_newt_entry_check_valid(NmtNewtEntry *entry) { - NmtNewtEntryPrivate *priv = NMT_NEWT_ENTRY_GET_PRIVATE (entry); - gboolean valid; - - if ( (priv->flags & NMT_NEWT_ENTRY_NONEMPTY) - && *priv->text == '\0') - valid = FALSE; - else if (priv->validator) - valid = !!priv->validator (entry, priv->text, priv->validator_data); - else - valid = TRUE; - - nmt_newt_widget_set_valid (NMT_NEWT_WIDGET (entry), valid); + NmtNewtEntryPrivate *priv = NMT_NEWT_ENTRY_GET_PRIVATE(entry); + gboolean valid; + + if ((priv->flags & NMT_NEWT_ENTRY_NONEMPTY) && *priv->text == '\0') + valid = FALSE; + else if (priv->validator) + valid = !!priv->validator(entry, priv->text, priv->validator_data); + else + valid = TRUE; + + nmt_newt_widget_set_valid(NMT_NEWT_WIDGET(entry), valid); } /** @@ -156,47 +150,45 @@ nmt_newt_entry_check_valid (NmtNewtEntry *entry) * will not be considered #NmtNewtWidget:valid. */ void -nmt_newt_entry_set_validator (NmtNewtEntry *entry, - NmtNewtEntryValidator validator, - gpointer user_data) +nmt_newt_entry_set_validator(NmtNewtEntry * entry, + NmtNewtEntryValidator validator, + gpointer user_data) { - NmtNewtEntryPrivate *priv = NMT_NEWT_ENTRY_GET_PRIVATE (entry); + NmtNewtEntryPrivate *priv = NMT_NEWT_ENTRY_GET_PRIVATE(entry); - priv->validator = validator; - priv->validator_data = user_data; + priv->validator = validator; + priv->validator_data = user_data; - nmt_newt_entry_check_valid (entry); + nmt_newt_entry_check_valid(entry); } static void -nmt_newt_entry_set_text_internal (NmtNewtEntry *entry, - const char *text, - newtComponent co) +nmt_newt_entry_set_text_internal(NmtNewtEntry *entry, const char *text, newtComponent co) { - NmtNewtEntryPrivate *priv = NMT_NEWT_ENTRY_GET_PRIVATE (entry); + NmtNewtEntryPrivate *priv = NMT_NEWT_ENTRY_GET_PRIVATE(entry); - if (!text) - text = ""; + if (!text) + text = ""; - if (!strcmp (priv->text, text)) - return; + if (!strcmp(priv->text, text)) + return; - g_free (priv->text); - priv->text = g_strdup (text); + g_free(priv->text); + priv->text = g_strdup(text); - if (co) { - char *text_lc; + if (co) { + char *text_lc; - text_lc = priv->text ? nmt_newt_locale_from_utf8 (priv->text) : NULL; - newtEntrySet (co, text_lc, TRUE); - g_free (text_lc); - priv->last_cursor_pos = -1; - } + text_lc = priv->text ? nmt_newt_locale_from_utf8(priv->text) : NULL; + newtEntrySet(co, text_lc, TRUE); + g_free(text_lc); + priv->last_cursor_pos = -1; + } - g_object_freeze_notify (G_OBJECT (entry)); - nmt_newt_entry_check_valid (entry); - g_object_notify (G_OBJECT (entry), "text"); - g_object_thaw_notify (G_OBJECT (entry)); + g_object_freeze_notify(G_OBJECT(entry)); + nmt_newt_entry_check_valid(entry); + g_object_notify(G_OBJECT(entry), "text"); + g_object_thaw_notify(G_OBJECT(entry)); } /** @@ -209,13 +201,12 @@ nmt_newt_entry_set_text_internal (NmtNewtEntry *entry, * be re-run. */ void -nmt_newt_entry_set_text (NmtNewtEntry *entry, - const char *text) +nmt_newt_entry_set_text(NmtNewtEntry *entry, const char *text) { - newtComponent co; + newtComponent co; - co = nmt_newt_component_get_component (NMT_NEWT_COMPONENT (entry)); - nmt_newt_entry_set_text_internal (entry, text, co); + co = nmt_newt_component_get_component(NMT_NEWT_COMPONENT(entry)); + nmt_newt_entry_set_text_internal(entry, text, co); } /** @@ -227,11 +218,11 @@ nmt_newt_entry_set_text (NmtNewtEntry *entry, * Returns: @entry's text */ const char * -nmt_newt_entry_get_text (NmtNewtEntry *entry) +nmt_newt_entry_get_text(NmtNewtEntry *entry) { - NmtNewtEntryPrivate *priv = NMT_NEWT_ENTRY_GET_PRIVATE (entry); + NmtNewtEntryPrivate *priv = NMT_NEWT_ENTRY_GET_PRIVATE(entry); - return priv->text; + return priv->text; } /** @@ -242,18 +233,17 @@ nmt_newt_entry_get_text (NmtNewtEntry *entry) * Updates @entry's width */ void -nmt_newt_entry_set_width (NmtNewtEntry *entry, - int width) +nmt_newt_entry_set_width(NmtNewtEntry *entry, int width) { - NmtNewtEntryPrivate *priv = NMT_NEWT_ENTRY_GET_PRIVATE (entry); + NmtNewtEntryPrivate *priv = NMT_NEWT_ENTRY_GET_PRIVATE(entry); - if (priv->width == width) - return; + if (priv->width == width) + return; - priv->width = width; - nmt_newt_widget_needs_rebuild (NMT_NEWT_WIDGET (entry)); + priv->width = width; + nmt_newt_widget_needs_rebuild(NMT_NEWT_WIDGET(entry)); - g_object_notify (G_OBJECT (entry), "width"); + g_object_notify(G_OBJECT(entry), "width"); } /** @@ -265,261 +255,252 @@ nmt_newt_entry_set_width (NmtNewtEntry *entry, * Returns: @entry's width */ int -nmt_newt_entry_get_width (NmtNewtEntry *entry) +nmt_newt_entry_get_width(NmtNewtEntry *entry) { - NmtNewtEntryPrivate *priv = NMT_NEWT_ENTRY_GET_PRIVATE (entry); + NmtNewtEntryPrivate *priv = NMT_NEWT_ENTRY_GET_PRIVATE(entry); - return priv->width; + return priv->width; } static void -nmt_newt_entry_init (NmtNewtEntry *entry) +nmt_newt_entry_init(NmtNewtEntry *entry) { - NmtNewtEntryPrivate *priv = NMT_NEWT_ENTRY_GET_PRIVATE (entry); + NmtNewtEntryPrivate *priv = NMT_NEWT_ENTRY_GET_PRIVATE(entry); - priv->text = g_strdup (""); - priv->last_cursor_pos = -1; + priv->text = g_strdup(""); + priv->last_cursor_pos = -1; } static void -nmt_newt_entry_constructed (GObject *object) +nmt_newt_entry_constructed(GObject *object) { - nmt_newt_entry_check_valid (NMT_NEWT_ENTRY (object)); + nmt_newt_entry_check_valid(NMT_NEWT_ENTRY(object)); - G_OBJECT_CLASS (nmt_newt_entry_parent_class)->constructed (object); + G_OBJECT_CLASS(nmt_newt_entry_parent_class)->constructed(object); } static void -nmt_newt_entry_finalize (GObject *object) +nmt_newt_entry_finalize(GObject *object) { - NmtNewtEntryPrivate *priv = NMT_NEWT_ENTRY_GET_PRIVATE (object); + NmtNewtEntryPrivate *priv = NMT_NEWT_ENTRY_GET_PRIVATE(object); - g_free (priv->text); - if (priv->idle_update) - g_source_remove (priv->idle_update); + g_free(priv->text); + if (priv->idle_update) + g_source_remove(priv->idle_update); - G_OBJECT_CLASS (nmt_newt_entry_parent_class)->finalize (object); + G_OBJECT_CLASS(nmt_newt_entry_parent_class)->finalize(object); } static gboolean -idle_update_entry (gpointer entry) +idle_update_entry(gpointer entry) { - NmtNewtEntryPrivate *priv = NMT_NEWT_ENTRY_GET_PRIVATE (entry); - newtComponent co = nmt_newt_component_get_component (entry); - char *text; + NmtNewtEntryPrivate *priv = NMT_NEWT_ENTRY_GET_PRIVATE(entry); + newtComponent co = nmt_newt_component_get_component(entry); + char * text; - priv->idle_update = 0; - if (!co) - return FALSE; + priv->idle_update = 0; + if (!co) + return FALSE; - priv->last_cursor_pos = newtEntryGetCursorPosition (co); + priv->last_cursor_pos = newtEntryGetCursorPosition(co); - text = nmt_newt_locale_to_utf8 (newtEntryGetValue (co)); - nmt_newt_entry_set_text_internal (entry, text, NULL); - g_free (text); + text = nmt_newt_locale_to_utf8(newtEntryGetValue(co)); + nmt_newt_entry_set_text_internal(entry, text, NULL); + g_free(text); - return FALSE; + return FALSE; } static int -entry_filter (newtComponent entry, - void *self, - int ch, - int cursor) +entry_filter(newtComponent entry, void *self, int ch, int cursor) { - NmtNewtEntryPrivate *priv = NMT_NEWT_ENTRY_GET_PRIVATE (self); - - if (g_ascii_isprint (ch)) { - if (priv->filter) { - char *text = nmt_newt_locale_to_utf8 (newtEntryGetValue (entry)); - - if (!priv->filter (self, text, ch, cursor, priv->filter_data)) { - g_free (text); - return 0; - } - g_free (text); - } - } - - if (!priv->idle_update) - priv->idle_update = g_idle_add (idle_update_entry, self); - return ch; + NmtNewtEntryPrivate *priv = NMT_NEWT_ENTRY_GET_PRIVATE(self); + + if (g_ascii_isprint(ch)) { + if (priv->filter) { + char *text = nmt_newt_locale_to_utf8(newtEntryGetValue(entry)); + + if (!priv->filter(self, text, ch, cursor, priv->filter_data)) { + g_free(text); + return 0; + } + g_free(text); + } + } + + if (!priv->idle_update) + priv->idle_update = g_idle_add(idle_update_entry, self); + return ch; } static guint -convert_flags (NmtNewtEntryFlags flags) +convert_flags(NmtNewtEntryFlags flags) { - guint newt_flags = NEWT_FLAG_RETURNEXIT; + guint newt_flags = NEWT_FLAG_RETURNEXIT; - if (!(flags & NMT_NEWT_ENTRY_NOSCROLL)) - newt_flags |= NEWT_FLAG_SCROLL; - if (flags & NMT_NEWT_ENTRY_PASSWORD) - newt_flags |= NEWT_FLAG_PASSWORD; + if (!(flags & NMT_NEWT_ENTRY_NOSCROLL)) + newt_flags |= NEWT_FLAG_SCROLL; + if (flags & NMT_NEWT_ENTRY_PASSWORD) + newt_flags |= NEWT_FLAG_PASSWORD; - return newt_flags; + return newt_flags; } static newtComponent -nmt_newt_entry_build_component (NmtNewtComponent *component, - gboolean sensitive) +nmt_newt_entry_build_component(NmtNewtComponent *component, gboolean sensitive) { - NmtNewtEntryPrivate *priv = NMT_NEWT_ENTRY_GET_PRIVATE (component); - newtComponent co; - char *text_lc; - int flags; + NmtNewtEntryPrivate *priv = NMT_NEWT_ENTRY_GET_PRIVATE(component); + newtComponent co; + char * text_lc; + int flags; - flags = convert_flags (priv->flags); - if (!sensitive) - flags |= NEWT_FLAG_DISABLED; + flags = convert_flags(priv->flags); + if (!sensitive) + flags |= NEWT_FLAG_DISABLED; - text_lc = priv->text ? nmt_newt_locale_from_utf8 (priv->text) : NULL; - co = newtEntry (-1, -1, text_lc, priv->width, NULL, flags); - g_free (text_lc); + text_lc = priv->text ? nmt_newt_locale_from_utf8(priv->text) : NULL; + co = newtEntry(-1, -1, text_lc, priv->width, NULL, flags); + g_free(text_lc); - if (priv->last_cursor_pos != -1) - newtEntrySetCursorPosition (co, priv->last_cursor_pos); + if (priv->last_cursor_pos != -1) + newtEntrySetCursorPosition(co, priv->last_cursor_pos); - newtEntrySetFilter (co, entry_filter, component); - return co; + newtEntrySetFilter(co, entry_filter, component); + return co; } static void -nmt_newt_entry_activated (NmtNewtWidget *widget) +nmt_newt_entry_activated(NmtNewtWidget *widget) { - NmtNewtEntryPrivate *priv = NMT_NEWT_ENTRY_GET_PRIVATE (widget); + NmtNewtEntryPrivate *priv = NMT_NEWT_ENTRY_GET_PRIVATE(widget); - if (priv->idle_update) { - g_source_remove (priv->idle_update); - idle_update_entry (widget); - } + if (priv->idle_update) { + g_source_remove(priv->idle_update); + idle_update_entry(widget); + } - NMT_NEWT_WIDGET_CLASS (nmt_newt_entry_parent_class)->activated (widget); + NMT_NEWT_WIDGET_CLASS(nmt_newt_entry_parent_class)->activated(widget); } static void -nmt_newt_entry_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) +nmt_newt_entry_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { - NmtNewtEntry *entry = NMT_NEWT_ENTRY (object); - NmtNewtEntryPrivate *priv = NMT_NEWT_ENTRY_GET_PRIVATE (entry); - - switch (prop_id) { - case PROP_TEXT: - nmt_newt_entry_set_text (entry, g_value_get_string (value)); - break; - case PROP_WIDTH: - nmt_newt_entry_set_width (entry, g_value_get_int (value)); - break; - case PROP_FLAGS: - priv->flags = g_value_get_uint (value); - nmt_newt_widget_needs_rebuild (NMT_NEWT_WIDGET (entry)); - break; - case PROP_PASSWORD: - if (g_value_get_boolean (value)) - priv->flags |= NMT_NEWT_ENTRY_PASSWORD; - else - priv->flags &= ~NMT_NEWT_ENTRY_PASSWORD; - nmt_newt_widget_needs_rebuild (NMT_NEWT_WIDGET (entry)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtNewtEntry * entry = NMT_NEWT_ENTRY(object); + NmtNewtEntryPrivate *priv = NMT_NEWT_ENTRY_GET_PRIVATE(entry); + + switch (prop_id) { + case PROP_TEXT: + nmt_newt_entry_set_text(entry, g_value_get_string(value)); + break; + case PROP_WIDTH: + nmt_newt_entry_set_width(entry, g_value_get_int(value)); + break; + case PROP_FLAGS: + priv->flags = g_value_get_uint(value); + nmt_newt_widget_needs_rebuild(NMT_NEWT_WIDGET(entry)); + break; + case PROP_PASSWORD: + if (g_value_get_boolean(value)) + priv->flags |= NMT_NEWT_ENTRY_PASSWORD; + else + priv->flags &= ~NMT_NEWT_ENTRY_PASSWORD; + nmt_newt_widget_needs_rebuild(NMT_NEWT_WIDGET(entry)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_newt_entry_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) +nmt_newt_entry_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - NmtNewtEntry *entry = NMT_NEWT_ENTRY (object); - NmtNewtEntryPrivate *priv = NMT_NEWT_ENTRY_GET_PRIVATE (entry); - - switch (prop_id) { - case PROP_TEXT: - g_value_set_string (value, nmt_newt_entry_get_text (entry)); - break; - case PROP_WIDTH: - g_value_set_int (value, priv->width); - break; - case PROP_FLAGS: - g_value_set_uint (value, priv->flags); - break; - case PROP_PASSWORD: - g_value_set_boolean (value, (priv->flags & NMT_NEWT_ENTRY_PASSWORD) != 0); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtNewtEntry * entry = NMT_NEWT_ENTRY(object); + NmtNewtEntryPrivate *priv = NMT_NEWT_ENTRY_GET_PRIVATE(entry); + + switch (prop_id) { + case PROP_TEXT: + g_value_set_string(value, nmt_newt_entry_get_text(entry)); + break; + case PROP_WIDTH: + g_value_set_int(value, priv->width); + break; + case PROP_FLAGS: + g_value_set_uint(value, priv->flags); + break; + case PROP_PASSWORD: + g_value_set_boolean(value, (priv->flags & NMT_NEWT_ENTRY_PASSWORD) != 0); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_newt_entry_class_init (NmtNewtEntryClass *entry_class) +nmt_newt_entry_class_init(NmtNewtEntryClass *entry_class) { - GObjectClass *object_class = G_OBJECT_CLASS (entry_class); - NmtNewtWidgetClass *widget_class = NMT_NEWT_WIDGET_CLASS (entry_class); - NmtNewtComponentClass *component_class = NMT_NEWT_COMPONENT_CLASS (entry_class); + GObjectClass * object_class = G_OBJECT_CLASS(entry_class); + NmtNewtWidgetClass * widget_class = NMT_NEWT_WIDGET_CLASS(entry_class); + NmtNewtComponentClass *component_class = NMT_NEWT_COMPONENT_CLASS(entry_class); - g_type_class_add_private (entry_class, sizeof (NmtNewtEntryPrivate)); + g_type_class_add_private(entry_class, sizeof(NmtNewtEntryPrivate)); - /* virtual methods */ - object_class->constructed = nmt_newt_entry_constructed; - object_class->set_property = nmt_newt_entry_set_property; - object_class->get_property = nmt_newt_entry_get_property; - object_class->finalize = nmt_newt_entry_finalize; + /* virtual methods */ + object_class->constructed = nmt_newt_entry_constructed; + object_class->set_property = nmt_newt_entry_set_property; + object_class->get_property = nmt_newt_entry_get_property; + object_class->finalize = nmt_newt_entry_finalize; - widget_class->activated = nmt_newt_entry_activated; + widget_class->activated = nmt_newt_entry_activated; - component_class->build_component = nmt_newt_entry_build_component; + component_class->build_component = nmt_newt_entry_build_component; - /** + /** * NmtNewtEntry:text * * The entry's text */ - g_object_class_install_property - (object_class, PROP_TEXT, - g_param_spec_string ("text", "", "", - NULL, - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS)); - /** + g_object_class_install_property( + object_class, + PROP_TEXT, + g_param_spec_string("text", "", "", NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** * NmtNewtEntry:width * * The entry's width in characters */ - g_object_class_install_property - (object_class, PROP_WIDTH, - g_param_spec_int ("width", "", "", - -1, 80, -1, - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS)); - /** + g_object_class_install_property( + object_class, + PROP_WIDTH, + g_param_spec_int("width", "", "", -1, 80, -1, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** * NmtNewtEntry:flags * * The entry's #NmtNewtEntryFlags */ - g_object_class_install_property - (object_class, PROP_FLAGS, - g_param_spec_uint ("flags", "", "", - 0, 0xFFFF, 0, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); - /** + g_object_class_install_property( + object_class, + PROP_FLAGS, + g_param_spec_uint("flags", + "", + "", + 0, + 0xFFFF, + 0, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); + /** * NmtNewtEntry:password * * %TRUE if #NmtNewtEntry:flags contains %NMT_NEWT_ENTRY_PASSWORD, * %FALSE if not. */ - g_object_class_install_property - (object_class, PROP_PASSWORD, - g_param_spec_boolean ("password", "", "", - FALSE, - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS)); + g_object_class_install_property( + object_class, + PROP_PASSWORD, + g_param_spec_boolean("password", + "", + "", + FALSE, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); } diff --git a/clients/tui/newt/nmt-newt-entry.h b/clients/tui/newt/nmt-newt-entry.h index d6f5530b88..1029810cad 100644 --- a/clients/tui/newt/nmt-newt-entry.h +++ b/clients/tui/newt/nmt-newt-entry.h @@ -8,50 +8,47 @@ #include "nmt-newt-component.h" -#define NMT_TYPE_NEWT_ENTRY (nmt_newt_entry_get_type ()) -#define NMT_NEWT_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NMT_TYPE_NEWT_ENTRY, NmtNewtEntry)) -#define NMT_NEWT_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NMT_TYPE_NEWT_ENTRY, NmtNewtEntryClass)) -#define NMT_IS_NEWT_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NMT_TYPE_NEWT_ENTRY)) -#define NMT_IS_NEWT_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NMT_TYPE_NEWT_ENTRY)) -#define NMT_NEWT_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NMT_TYPE_NEWT_ENTRY, NmtNewtEntryClass)) +#define NMT_TYPE_NEWT_ENTRY (nmt_newt_entry_get_type()) +#define NMT_NEWT_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), NMT_TYPE_NEWT_ENTRY, NmtNewtEntry)) +#define NMT_NEWT_ENTRY_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), NMT_TYPE_NEWT_ENTRY, NmtNewtEntryClass)) +#define NMT_IS_NEWT_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), NMT_TYPE_NEWT_ENTRY)) +#define NMT_IS_NEWT_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), NMT_TYPE_NEWT_ENTRY)) +#define NMT_NEWT_ENTRY_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), NMT_TYPE_NEWT_ENTRY, NmtNewtEntryClass)) struct _NmtNewtEntry { - NmtNewtComponent parent; - + NmtNewtComponent parent; }; typedef struct { - NmtNewtComponentClass parent; + NmtNewtComponentClass parent; } NmtNewtEntryClass; -GType nmt_newt_entry_get_type (void); +GType nmt_newt_entry_get_type(void); -typedef gboolean (*NmtNewtEntryFilter) (NmtNewtEntry *, const char *text, int ch, int position, gpointer); -typedef gboolean (*NmtNewtEntryValidator) (NmtNewtEntry *, const char *text, gpointer); +typedef gboolean ( + *NmtNewtEntryFilter)(NmtNewtEntry *, const char *text, int ch, int position, gpointer); +typedef gboolean (*NmtNewtEntryValidator)(NmtNewtEntry *, const char *text, gpointer); typedef enum { - NMT_NEWT_ENTRY_NOSCROLL = (1 << 0), - NMT_NEWT_ENTRY_PASSWORD = (1 << 1), - NMT_NEWT_ENTRY_NONEMPTY = (1 << 2) + NMT_NEWT_ENTRY_NOSCROLL = (1 << 0), + NMT_NEWT_ENTRY_PASSWORD = (1 << 1), + NMT_NEWT_ENTRY_NONEMPTY = (1 << 2) } NmtNewtEntryFlags; -NmtNewtWidget *nmt_newt_entry_new (int width, - NmtNewtEntryFlags flags); +NmtNewtWidget *nmt_newt_entry_new(int width, NmtNewtEntryFlags flags); -void nmt_newt_entry_set_filter (NmtNewtEntry *entry, - NmtNewtEntryFilter filter, - gpointer user_data); -void nmt_newt_entry_set_validator (NmtNewtEntry *entry, - NmtNewtEntryValidator validator, - gpointer user_data); +void nmt_newt_entry_set_filter(NmtNewtEntry *entry, NmtNewtEntryFilter filter, gpointer user_data); +void nmt_newt_entry_set_validator(NmtNewtEntry * entry, + NmtNewtEntryValidator validator, + gpointer user_data); -void nmt_newt_entry_set_text (NmtNewtEntry *entry, - const char *text); -const char *nmt_newt_entry_get_text (NmtNewtEntry *entry); +void nmt_newt_entry_set_text(NmtNewtEntry *entry, const char *text); +const char *nmt_newt_entry_get_text(NmtNewtEntry *entry); -void nmt_newt_entry_set_width (NmtNewtEntry *entry, - int width); -int nmt_newt_entry_get_width (NmtNewtEntry *entry); +void nmt_newt_entry_set_width(NmtNewtEntry *entry, int width); +int nmt_newt_entry_get_width(NmtNewtEntry *entry); #endif /* NMT_NEWT_ENTRY_H */ diff --git a/clients/tui/newt/nmt-newt-form.c b/clients/tui/newt/nmt-newt-form.c index c2f4572992..d9ad278bc9 100644 --- a/clients/tui/newt/nmt-newt-form.c +++ b/clients/tui/newt/nmt-newt-form.c @@ -21,52 +21,53 @@ #include "nmt-newt-grid.h" #include "nmt-newt-utils.h" -G_DEFINE_TYPE (NmtNewtForm, nmt_newt_form, NMT_TYPE_NEWT_CONTAINER) +G_DEFINE_TYPE(NmtNewtForm, nmt_newt_form, NMT_TYPE_NEWT_CONTAINER) -#define NMT_NEWT_FORM_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NMT_TYPE_NEWT_FORM, NmtNewtFormPrivate)) +#define NMT_NEWT_FORM_GET_PRIVATE(o) \ + (G_TYPE_INSTANCE_GET_PRIVATE((o), NMT_TYPE_NEWT_FORM, NmtNewtFormPrivate)) typedef struct { - newtComponent form; - NmtNewtWidget *content; + newtComponent form; + NmtNewtWidget *content; - guint x, y, width, height; - guint padding; - gboolean fixed_x, fixed_y; - gboolean fixed_width, fixed_height; - char *title_lc; + guint x, y, width, height; + guint padding; + gboolean fixed_x, fixed_y; + gboolean fixed_width, fixed_height; + char * title_lc; - gboolean dirty, escape_exits; - NmtNewtWidget *focus; + gboolean dirty, escape_exits; + NmtNewtWidget *focus; #ifdef HAVE_NEWTFORMGETSCROLLPOSITION - int scroll_position = 0; + int scroll_position = 0; #endif } NmtNewtFormPrivate; enum { - PROP_0, - PROP_TITLE, - PROP_FULLSCREEN, - PROP_FULLSCREEN_VERTICAL, - PROP_FULLSCREEN_HORIZONTAL, - PROP_X, - PROP_Y, - PROP_WIDTH, - PROP_HEIGHT, - PROP_PADDING, - PROP_ESCAPE_EXITS, - - LAST_PROP + PROP_0, + PROP_TITLE, + PROP_FULLSCREEN, + PROP_FULLSCREEN_VERTICAL, + PROP_FULLSCREEN_HORIZONTAL, + PROP_X, + PROP_Y, + PROP_WIDTH, + PROP_HEIGHT, + PROP_PADDING, + PROP_ESCAPE_EXITS, + + LAST_PROP }; enum { - QUIT, + QUIT, - LAST_SIGNAL + LAST_SIGNAL }; -static guint signals[LAST_SIGNAL] = { 0 }; +static guint signals[LAST_SIGNAL] = {0}; -static void nmt_newt_form_redraw (NmtNewtForm *form); +static void nmt_newt_form_redraw(NmtNewtForm *form); /** * nmt_newt_form_new: @@ -84,11 +85,9 @@ static void nmt_newt_form_redraw (NmtNewtForm *form); * Returns: a new #NmtNewtForm */ NmtNewtForm * -nmt_newt_form_new (const char *title) +nmt_newt_form_new(const char *title) { - return g_object_new (NMT_TYPE_NEWT_FORM, - "title", title, - NULL); + return g_object_new(NMT_TYPE_NEWT_FORM, "title", title, NULL); } /** @@ -102,53 +101,49 @@ nmt_newt_form_new (const char *title) * Returns: a new #NmtNewtForm */ NmtNewtForm * -nmt_newt_form_new_fullscreen (const char *title) +nmt_newt_form_new_fullscreen(const char *title) { - return g_object_new (NMT_TYPE_NEWT_FORM, - "title", title, - "fullscreen", TRUE, - NULL); + return g_object_new(NMT_TYPE_NEWT_FORM, "title", title, "fullscreen", TRUE, NULL); } static void -nmt_newt_form_init (NmtNewtForm *form) +nmt_newt_form_init(NmtNewtForm *form) { - g_object_ref_sink (form); + g_object_ref_sink(form); } static void -nmt_newt_form_finalize (GObject *object) +nmt_newt_form_finalize(GObject *object) { - NmtNewtFormPrivate *priv = NMT_NEWT_FORM_GET_PRIVATE (object); + NmtNewtFormPrivate *priv = NMT_NEWT_FORM_GET_PRIVATE(object); - g_free (priv->title_lc); - g_clear_object (&priv->focus); + g_free(priv->title_lc); + g_clear_object(&priv->focus); - G_OBJECT_CLASS (nmt_newt_form_parent_class)->finalize (object); + G_OBJECT_CLASS(nmt_newt_form_parent_class)->finalize(object); } static void -nmt_newt_form_needs_rebuild (NmtNewtWidget *widget) +nmt_newt_form_needs_rebuild(NmtNewtWidget *widget) { - NmtNewtFormPrivate *priv = NMT_NEWT_FORM_GET_PRIVATE (widget); + NmtNewtFormPrivate *priv = NMT_NEWT_FORM_GET_PRIVATE(widget); - if (!priv->dirty) { - priv->dirty = TRUE; - nmt_newt_form_redraw (NMT_NEWT_FORM (widget)); - } + if (!priv->dirty) { + priv->dirty = TRUE; + nmt_newt_form_redraw(NMT_NEWT_FORM(widget)); + } } static void -nmt_newt_form_remove (NmtNewtContainer *container, - NmtNewtWidget *widget) +nmt_newt_form_remove(NmtNewtContainer *container, NmtNewtWidget *widget) { - NmtNewtFormPrivate *priv = NMT_NEWT_FORM_GET_PRIVATE (container); - NmtNewtContainerClass *parent_class = NMT_NEWT_CONTAINER_CLASS (nmt_newt_form_parent_class); + NmtNewtFormPrivate * priv = NMT_NEWT_FORM_GET_PRIVATE(container); + NmtNewtContainerClass *parent_class = NMT_NEWT_CONTAINER_CLASS(nmt_newt_form_parent_class); - g_return_if_fail (widget == priv->content); + g_return_if_fail(widget == priv->content); - parent_class->remove (container, widget); - priv->content = NULL; + parent_class->remove(container, widget); + priv->content = NULL; } /** @@ -159,100 +154,100 @@ nmt_newt_form_remove (NmtNewtContainer *container, * Sets @form's content to be @content. */ void -nmt_newt_form_set_content (NmtNewtForm *form, - NmtNewtWidget *content) +nmt_newt_form_set_content(NmtNewtForm *form, NmtNewtWidget *content) { - NmtNewtFormPrivate *priv = NMT_NEWT_FORM_GET_PRIVATE (form); - NmtNewtContainerClass *parent_class = NMT_NEWT_CONTAINER_CLASS (nmt_newt_form_parent_class); + NmtNewtFormPrivate * priv = NMT_NEWT_FORM_GET_PRIVATE(form); + NmtNewtContainerClass *parent_class = NMT_NEWT_CONTAINER_CLASS(nmt_newt_form_parent_class); - if (priv->content) - nmt_newt_form_remove (NMT_NEWT_CONTAINER (form), priv->content); + if (priv->content) + nmt_newt_form_remove(NMT_NEWT_CONTAINER(form), priv->content); - priv->content = content; + priv->content = content; - if (priv->content) - parent_class->add (NMT_NEWT_CONTAINER (form), content); + if (priv->content) + parent_class->add(NMT_NEWT_CONTAINER(form), content); } static void -nmt_newt_form_build (NmtNewtForm *form) +nmt_newt_form_build(NmtNewtForm *form) { - NmtNewtFormPrivate *priv = NMT_NEWT_FORM_GET_PRIVATE (form); - int screen_height, screen_width, form_height, form_width; - newtComponent *cos; - int i; - - priv->dirty = FALSE; - nmt_newt_widget_realize (NMT_NEWT_WIDGET (form)); - - nmt_newt_widget_size_request (priv->content, &form_width, &form_height); - newtGetScreenSize (&screen_width, &screen_height); - - if (!priv->fixed_width) - priv->width = MIN (form_width + 2 * priv->padding, screen_width - 2); - if (!priv->fixed_height) - priv->height = MIN (form_height + 2 * priv->padding, screen_height - 2); - - if (!priv->fixed_x) - priv->x = (screen_width - form_width) / 2; - if (!priv->fixed_y) - priv->y = (screen_height - form_height) / 2; - - nmt_newt_widget_size_allocate (priv->content, - priv->padding, - priv->padding, - priv->width - 2 * priv->padding, - priv->height - 2 * priv->padding); - - if (priv->height - 2 * priv->padding < form_height) { - newtComponent scroll_bar = - newtVerticalScrollbar (priv->width - 1, 0, priv->height, - NEWT_COLORSET_WINDOW, - NEWT_COLORSET_ACTCHECKBOX); - - priv->form = newtForm (scroll_bar, NULL, NEWT_FLAG_NOF12); - newtFormAddComponent (priv->form, scroll_bar); - newtFormSetHeight (priv->form, priv->height - 2); - } else - priv->form = newtForm (NULL, NULL, NEWT_FLAG_NOF12); - - if (priv->escape_exits) - newtFormAddHotKey (priv->form, NEWT_KEY_ESCAPE); - - cos = nmt_newt_widget_get_components (priv->content); - for (i = 0; cos[i]; i++) - newtFormAddComponent (priv->form, cos[i]); - g_free (cos); - - if (priv->focus) { - newtComponent fco; - - fco = nmt_newt_widget_get_focus_component (priv->focus); - if (fco) - newtFormSetCurrent (priv->form, fco); - } + NmtNewtFormPrivate *priv = NMT_NEWT_FORM_GET_PRIVATE(form); + int screen_height, screen_width, form_height, form_width; + newtComponent * cos; + int i; + + priv->dirty = FALSE; + nmt_newt_widget_realize(NMT_NEWT_WIDGET(form)); + + nmt_newt_widget_size_request(priv->content, &form_width, &form_height); + newtGetScreenSize(&screen_width, &screen_height); + + if (!priv->fixed_width) + priv->width = MIN(form_width + 2 * priv->padding, screen_width - 2); + if (!priv->fixed_height) + priv->height = MIN(form_height + 2 * priv->padding, screen_height - 2); + + if (!priv->fixed_x) + priv->x = (screen_width - form_width) / 2; + if (!priv->fixed_y) + priv->y = (screen_height - form_height) / 2; + + nmt_newt_widget_size_allocate(priv->content, + priv->padding, + priv->padding, + priv->width - 2 * priv->padding, + priv->height - 2 * priv->padding); + + if (priv->height - 2 * priv->padding < form_height) { + newtComponent scroll_bar = newtVerticalScrollbar(priv->width - 1, + 0, + priv->height, + NEWT_COLORSET_WINDOW, + NEWT_COLORSET_ACTCHECKBOX); + + priv->form = newtForm(scroll_bar, NULL, NEWT_FLAG_NOF12); + newtFormAddComponent(priv->form, scroll_bar); + newtFormSetHeight(priv->form, priv->height - 2); + } else + priv->form = newtForm(NULL, NULL, NEWT_FLAG_NOF12); + + if (priv->escape_exits) + newtFormAddHotKey(priv->form, NEWT_KEY_ESCAPE); + + cos = nmt_newt_widget_get_components(priv->content); + for (i = 0; cos[i]; i++) + newtFormAddComponent(priv->form, cos[i]); + g_free(cos); + + if (priv->focus) { + newtComponent fco; + + fco = nmt_newt_widget_get_focus_component(priv->focus); + if (fco) + newtFormSetCurrent(priv->form, fco); + } #ifdef HAVE_NEWTFORMGETSCROLLPOSITION - if (priv->scroll_position) - newtFormSetScrollPosition (priv->form, priv->scroll_position); + if (priv->scroll_position) + newtFormSetScrollPosition(priv->form, priv->scroll_position); #endif - newtOpenWindow (priv->x, priv->y, priv->width, priv->height, priv->title_lc); + newtOpenWindow(priv->x, priv->y, priv->width, priv->height, priv->title_lc); } static void -nmt_newt_form_destroy (NmtNewtForm *form) +nmt_newt_form_destroy(NmtNewtForm *form) { - NmtNewtFormPrivate *priv = NMT_NEWT_FORM_GET_PRIVATE (form); + NmtNewtFormPrivate *priv = NMT_NEWT_FORM_GET_PRIVATE(form); #ifdef HAVE_NEWTFORMGETSCROLLPOSITION - priv->scroll_position = newtFormGetScrollPosition (priv->form); + priv->scroll_position = newtFormGetScrollPosition(priv->form); #endif - newtFormDestroy (priv->form); - priv->form = NULL; - newtPopWindowNoRefresh (); + newtFormDestroy(priv->form); + priv->form = NULL; + newtPopWindowNoRefresh(); - nmt_newt_widget_unrealize (NMT_NEWT_WIDGET (form)); + nmt_newt_widget_unrealize(NMT_NEWT_WIDGET(form)); } /* A "normal" newt program would call newtFormRun() to run newt's main loop @@ -263,44 +258,42 @@ nmt_newt_form_destroy (NmtNewtForm *form) * or keypresses). */ static void -nmt_newt_form_iterate (NmtNewtForm *form) +nmt_newt_form_iterate(NmtNewtForm *form) { - NmtNewtFormPrivate *priv = NMT_NEWT_FORM_GET_PRIVATE (form); - NmtNewtWidget *focus; - struct newtExitStruct es; - - if (priv->dirty) { - nmt_newt_form_destroy (form); - nmt_newt_form_build (form); - } - - newtFormSetTimer (priv->form, 1); - newtFormRun (priv->form, &es); - - if ( es.reason == NEWT_EXIT_HOTKEY - || es.reason == NEWT_EXIT_ERROR) { - /* The user hit Esc or there was an error. */ - g_clear_object (&priv->focus); - nmt_newt_form_quit (form); - return; - } - - if (es.reason == NEWT_EXIT_COMPONENT) { - /* The user hit Return/Space on a component; update the form focus + NmtNewtFormPrivate * priv = NMT_NEWT_FORM_GET_PRIVATE(form); + NmtNewtWidget * focus; + struct newtExitStruct es; + + if (priv->dirty) { + nmt_newt_form_destroy(form); + nmt_newt_form_build(form); + } + + newtFormSetTimer(priv->form, 1); + newtFormRun(priv->form, &es); + + if (es.reason == NEWT_EXIT_HOTKEY || es.reason == NEWT_EXIT_ERROR) { + /* The user hit Esc or there was an error. */ + g_clear_object(&priv->focus); + nmt_newt_form_quit(form); + return; + } + + if (es.reason == NEWT_EXIT_COMPONENT) { + /* The user hit Return/Space on a component; update the form focus * to point that component, and activate it. */ - focus = nmt_newt_widget_find_component (priv->content, es.u.co); - if (focus) { - nmt_newt_form_set_focus (form, focus); - nmt_newt_widget_activated (focus); - } - } else { - /* The 1ms timer ran out. Update focus but don't do anything else. */ - focus = nmt_newt_widget_find_component (priv->content, - newtFormGetCurrent (priv->form)); - if (focus) - nmt_newt_form_set_focus (form, focus); - } + focus = nmt_newt_widget_find_component(priv->content, es.u.co); + if (focus) { + nmt_newt_form_set_focus(form, focus); + nmt_newt_widget_activated(focus); + } + } else { + /* The 1ms timer ran out. Update focus but don't do anything else. */ + focus = nmt_newt_widget_find_component(priv->content, newtFormGetCurrent(priv->form)); + if (focus) + nmt_newt_form_set_focus(form, focus); + } } /* @form_stack keeps track of all currently-displayed forms, from top to bottom. @@ -308,51 +301,49 @@ nmt_newt_form_iterate (NmtNewtForm *form) * nmt_newt_form_keypress_callback() iterates the top-most form, so it can * process the keypress. */ -static GSList *form_stack; +static GSList * form_stack; static GSource *keypress_source; static gboolean -nmt_newt_form_keypress_callback (int fd, - GIOCondition condition, - gpointer user_data) +nmt_newt_form_keypress_callback(int fd, GIOCondition condition, gpointer user_data) { - g_return_val_if_fail (form_stack != NULL, FALSE); + g_return_val_if_fail(form_stack != NULL, FALSE); - nmt_newt_form_iterate (form_stack->data); - return TRUE; + nmt_newt_form_iterate(form_stack->data); + return TRUE; } static gboolean -nmt_newt_form_timeout_callback (gpointer user_data) +nmt_newt_form_timeout_callback(gpointer user_data) { - if (form_stack) - nmt_newt_form_iterate (form_stack->data); - return FALSE; + if (form_stack) + nmt_newt_form_iterate(form_stack->data); + return FALSE; } static void -nmt_newt_form_redraw (NmtNewtForm *form) +nmt_newt_form_redraw(NmtNewtForm *form) { - g_timeout_add (0, nmt_newt_form_timeout_callback, NULL); + g_timeout_add(0, nmt_newt_form_timeout_callback, NULL); } static void -nmt_newt_form_real_show (NmtNewtForm *form) +nmt_newt_form_real_show(NmtNewtForm *form) { - if (!keypress_source) { - keypress_source = nm_g_unix_fd_source_new (STDIN_FILENO, - G_IO_IN, - G_PRIORITY_DEFAULT, - nmt_newt_form_keypress_callback, - NULL, - NULL); - g_source_set_can_recurse (keypress_source, TRUE); - g_source_attach (keypress_source, NULL); - } - - nmt_newt_form_build (form); - form_stack = g_slist_prepend (form_stack, g_object_ref (form)); - nmt_newt_form_redraw (form); + if (!keypress_source) { + keypress_source = nm_g_unix_fd_source_new(STDIN_FILENO, + G_IO_IN, + G_PRIORITY_DEFAULT, + nmt_newt_form_keypress_callback, + NULL, + NULL); + g_source_set_can_recurse(keypress_source, TRUE); + g_source_attach(keypress_source, NULL); + } + + nmt_newt_form_build(form); + form_stack = g_slist_prepend(form_stack, g_object_ref(form)); + nmt_newt_form_redraw(form); } /** @@ -367,9 +358,9 @@ nmt_newt_form_real_show (NmtNewtForm *form) * Call nmt_newt_form_quit() to quit the form. */ void -nmt_newt_form_show (NmtNewtForm *form) +nmt_newt_form_show(NmtNewtForm *form) { - NMT_NEWT_FORM_GET_CLASS (form)->show (form); + NMT_NEWT_FORM_GET_CLASS(form)->show(form); } /** @@ -384,15 +375,15 @@ nmt_newt_form_show (NmtNewtForm *form) * sort of weird and may not be 100% accurate anyway. */ NmtNewtWidget * -nmt_newt_form_run_sync (NmtNewtForm *form) +nmt_newt_form_run_sync(NmtNewtForm *form) { - NmtNewtFormPrivate *priv = NMT_NEWT_FORM_GET_PRIVATE (form); + NmtNewtFormPrivate *priv = NMT_NEWT_FORM_GET_PRIVATE(form); - nmt_newt_form_show (form); - while (priv->form) - g_main_context_iteration (NULL, TRUE); + nmt_newt_form_show(form); + while (priv->form) + g_main_context_iteration(NULL, TRUE); - return priv->focus; + return priv->focus; } /** @@ -402,23 +393,23 @@ nmt_newt_form_run_sync (NmtNewtForm *form) * Causes @form to exit. */ void -nmt_newt_form_quit (NmtNewtForm *form) +nmt_newt_form_quit(NmtNewtForm *form) { - NmtNewtFormPrivate *priv = NMT_NEWT_FORM_GET_PRIVATE (form); + NmtNewtFormPrivate *priv = NMT_NEWT_FORM_GET_PRIVATE(form); - g_return_if_fail (priv->form != NULL); + g_return_if_fail(priv->form != NULL); - nmt_newt_form_destroy (form); + nmt_newt_form_destroy(form); - form_stack = g_slist_remove (form_stack, form); + form_stack = g_slist_remove(form_stack, form); - if (form_stack) - nmt_newt_form_iterate (form_stack->data); - else - nm_clear_g_source_inst (&keypress_source); + if (form_stack) + nmt_newt_form_iterate(form_stack->data); + else + nm_clear_g_source_inst(&keypress_source); - g_signal_emit (form, signals[QUIT], 0); - g_object_unref (form); + g_signal_emit(form, signals[QUIT], 0); + g_object_unref(form); } /** @@ -429,305 +420,320 @@ nmt_newt_form_quit (NmtNewtForm *form) * Focuses @widget in @form. */ void -nmt_newt_form_set_focus (NmtNewtForm *form, - NmtNewtWidget *widget) +nmt_newt_form_set_focus(NmtNewtForm *form, NmtNewtWidget *widget) { - NmtNewtFormPrivate *priv = NMT_NEWT_FORM_GET_PRIVATE (form); + NmtNewtFormPrivate *priv = NMT_NEWT_FORM_GET_PRIVATE(form); - g_return_if_fail (priv->form != NULL); + g_return_if_fail(priv->form != NULL); - if (priv->focus == widget) - return; + if (priv->focus == widget) + return; - if (priv->focus) - g_object_unref (priv->focus); - priv->focus = widget; - if (priv->focus) - g_object_ref (priv->focus); + if (priv->focus) + g_object_unref(priv->focus); + priv->focus = widget; + if (priv->focus) + g_object_ref(priv->focus); } static void -nmt_newt_form_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) +nmt_newt_form_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { - NmtNewtFormPrivate *priv = NMT_NEWT_FORM_GET_PRIVATE (object); - int screen_width, screen_height; - - switch (prop_id) { - case PROP_TITLE: - if (g_value_get_string (value)) { - priv->title_lc = nmt_newt_locale_from_utf8 (g_value_get_string (value)); - } else - priv->title_lc = NULL; - break; - case PROP_FULLSCREEN: - if (g_value_get_boolean (value)) { - newtGetScreenSize (&screen_width, &screen_height); - priv->x = priv->y = 2; - priv->fixed_x = priv->fixed_y = TRUE; - priv->width = screen_width - 4; - priv->height = screen_height - 4; - priv->fixed_width = priv->fixed_height = TRUE; - } - break; - case PROP_FULLSCREEN_VERTICAL: - if (g_value_get_boolean (value)) { - newtGetScreenSize (&screen_width, &screen_height); - priv->y = 2; - priv->fixed_y = TRUE; - priv->height = screen_height - 4; - priv->fixed_height = TRUE; - } - break; - case PROP_FULLSCREEN_HORIZONTAL: - if (g_value_get_boolean (value)) { - newtGetScreenSize (&screen_width, &screen_height); - priv->x = 2; - priv->fixed_x = TRUE; - priv->width = screen_width - 4; - priv->fixed_width = TRUE; - } - break; - case PROP_X: - if (g_value_get_uint (value)) { - priv->x = g_value_get_uint (value); - priv->fixed_x = TRUE; - } - break; - case PROP_Y: - if (g_value_get_uint (value)) { - priv->y = g_value_get_uint (value); - priv->fixed_y = TRUE; - } - break; - case PROP_WIDTH: - if (g_value_get_uint (value)) { - priv->width = g_value_get_uint (value); - priv->fixed_width = TRUE; - } - break; - case PROP_HEIGHT: - if (g_value_get_uint (value)) { - priv->height = g_value_get_uint (value); - priv->fixed_height = TRUE; - } - break; - case PROP_PADDING: - priv->padding = g_value_get_uint (value); - break; - case PROP_ESCAPE_EXITS: - priv->escape_exits = g_value_get_boolean (value); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtNewtFormPrivate *priv = NMT_NEWT_FORM_GET_PRIVATE(object); + int screen_width, screen_height; + + switch (prop_id) { + case PROP_TITLE: + if (g_value_get_string(value)) { + priv->title_lc = nmt_newt_locale_from_utf8(g_value_get_string(value)); + } else + priv->title_lc = NULL; + break; + case PROP_FULLSCREEN: + if (g_value_get_boolean(value)) { + newtGetScreenSize(&screen_width, &screen_height); + priv->x = priv->y = 2; + priv->fixed_x = priv->fixed_y = TRUE; + priv->width = screen_width - 4; + priv->height = screen_height - 4; + priv->fixed_width = priv->fixed_height = TRUE; + } + break; + case PROP_FULLSCREEN_VERTICAL: + if (g_value_get_boolean(value)) { + newtGetScreenSize(&screen_width, &screen_height); + priv->y = 2; + priv->fixed_y = TRUE; + priv->height = screen_height - 4; + priv->fixed_height = TRUE; + } + break; + case PROP_FULLSCREEN_HORIZONTAL: + if (g_value_get_boolean(value)) { + newtGetScreenSize(&screen_width, &screen_height); + priv->x = 2; + priv->fixed_x = TRUE; + priv->width = screen_width - 4; + priv->fixed_width = TRUE; + } + break; + case PROP_X: + if (g_value_get_uint(value)) { + priv->x = g_value_get_uint(value); + priv->fixed_x = TRUE; + } + break; + case PROP_Y: + if (g_value_get_uint(value)) { + priv->y = g_value_get_uint(value); + priv->fixed_y = TRUE; + } + break; + case PROP_WIDTH: + if (g_value_get_uint(value)) { + priv->width = g_value_get_uint(value); + priv->fixed_width = TRUE; + } + break; + case PROP_HEIGHT: + if (g_value_get_uint(value)) { + priv->height = g_value_get_uint(value); + priv->fixed_height = TRUE; + } + break; + case PROP_PADDING: + priv->padding = g_value_get_uint(value); + break; + case PROP_ESCAPE_EXITS: + priv->escape_exits = g_value_get_boolean(value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_newt_form_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) +nmt_newt_form_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - NmtNewtFormPrivate *priv = NMT_NEWT_FORM_GET_PRIVATE (object); - - switch (prop_id) { - case PROP_TITLE: - if (priv->title_lc) { - g_value_take_string (value, nmt_newt_locale_to_utf8 (priv->title_lc)); - } else - g_value_set_string (value, NULL); - break; - case PROP_X: - g_value_set_uint (value, priv->x); - break; - case PROP_Y: - g_value_set_uint (value, priv->y); - break; - case PROP_WIDTH: - g_value_set_uint (value, priv->width); - break; - case PROP_HEIGHT: - g_value_set_uint (value, priv->height); - break; - case PROP_PADDING: - g_value_set_uint (value, priv->padding); - break; - case PROP_ESCAPE_EXITS: - g_value_set_boolean (value, priv->escape_exits); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtNewtFormPrivate *priv = NMT_NEWT_FORM_GET_PRIVATE(object); + + switch (prop_id) { + case PROP_TITLE: + if (priv->title_lc) { + g_value_take_string(value, nmt_newt_locale_to_utf8(priv->title_lc)); + } else + g_value_set_string(value, NULL); + break; + case PROP_X: + g_value_set_uint(value, priv->x); + break; + case PROP_Y: + g_value_set_uint(value, priv->y); + break; + case PROP_WIDTH: + g_value_set_uint(value, priv->width); + break; + case PROP_HEIGHT: + g_value_set_uint(value, priv->height); + break; + case PROP_PADDING: + g_value_set_uint(value, priv->padding); + break; + case PROP_ESCAPE_EXITS: + g_value_set_boolean(value, priv->escape_exits); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_newt_form_class_init (NmtNewtFormClass *form_class) +nmt_newt_form_class_init(NmtNewtFormClass *form_class) { - GObjectClass *object_class = G_OBJECT_CLASS (form_class); - NmtNewtContainerClass *container_class = NMT_NEWT_CONTAINER_CLASS (form_class); - NmtNewtWidgetClass *widget_class = NMT_NEWT_WIDGET_CLASS (form_class); + GObjectClass * object_class = G_OBJECT_CLASS(form_class); + NmtNewtContainerClass *container_class = NMT_NEWT_CONTAINER_CLASS(form_class); + NmtNewtWidgetClass * widget_class = NMT_NEWT_WIDGET_CLASS(form_class); - g_type_class_add_private (form_class, sizeof (NmtNewtFormPrivate)); + g_type_class_add_private(form_class, sizeof(NmtNewtFormPrivate)); - /* virtual methods */ - object_class->set_property = nmt_newt_form_set_property; - object_class->get_property = nmt_newt_form_get_property; - object_class->finalize = nmt_newt_form_finalize; + /* virtual methods */ + object_class->set_property = nmt_newt_form_set_property; + object_class->get_property = nmt_newt_form_get_property; + object_class->finalize = nmt_newt_form_finalize; - widget_class->needs_rebuild = nmt_newt_form_needs_rebuild; + widget_class->needs_rebuild = nmt_newt_form_needs_rebuild; - container_class->remove = nmt_newt_form_remove; + container_class->remove = nmt_newt_form_remove; - form_class->show = nmt_newt_form_real_show; + form_class->show = nmt_newt_form_real_show; - /* signals */ + /* signals */ - /** + /** * NmtNewtForm::quit: * @form: the #NmtNewtForm * * Emitted when the form quits. */ - signals[QUIT] = - g_signal_new ("quit", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NmtNewtFormClass, quit), - NULL, NULL, NULL, - G_TYPE_NONE, 0); - - /** + signals[QUIT] = g_signal_new("quit", + G_OBJECT_CLASS_TYPE(object_class), + G_SIGNAL_RUN_FIRST, + G_STRUCT_OFFSET(NmtNewtFormClass, quit), + NULL, + NULL, + NULL, + G_TYPE_NONE, + 0); + + /** * NmtNewtForm:title: * * The form's title. If non-%NULL, this will be displayed above * the form in its border. */ - g_object_class_install_property - (object_class, PROP_TITLE, - g_param_spec_string ("title", "", "", - NULL, - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS | - G_PARAM_CONSTRUCT_ONLY)); - /** + g_object_class_install_property( + object_class, + PROP_TITLE, + g_param_spec_string("title", + "", + "", + NULL, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT_ONLY)); + /** * NmtNewtForm:fullscreen: * * If %TRUE, the form will fill the entire "screen" (ie, terminal * window). */ - g_object_class_install_property - (object_class, PROP_FULLSCREEN, - g_param_spec_boolean ("fullscreen", "", "", - FALSE, - G_PARAM_WRITABLE | - G_PARAM_STATIC_STRINGS | - G_PARAM_CONSTRUCT_ONLY)); - /** + g_object_class_install_property( + object_class, + PROP_FULLSCREEN, + g_param_spec_boolean("fullscreen", + "", + "", + FALSE, + G_PARAM_WRITABLE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT_ONLY)); + /** * NmtNewtForm:fullscreen-vertical: * * If %TRUE, the form will fill the entire "screen" (ie, terminal * window) vertically, but not necessarily horizontally. */ - g_object_class_install_property - (object_class, PROP_FULLSCREEN_VERTICAL, - g_param_spec_boolean ("fullscreen-vertical", "", "", - FALSE, - G_PARAM_WRITABLE | - G_PARAM_STATIC_STRINGS | - G_PARAM_CONSTRUCT_ONLY)); - /** + g_object_class_install_property( + object_class, + PROP_FULLSCREEN_VERTICAL, + g_param_spec_boolean("fullscreen-vertical", + "", + "", + FALSE, + G_PARAM_WRITABLE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT_ONLY)); + /** * NmtNewtForm:fullscreen-horizontal: * * If %TRUE, the form will fill the entire "screen" (ie, terminal * window) horizontally, but not necessarily vertically. */ - g_object_class_install_property - (object_class, PROP_FULLSCREEN_HORIZONTAL, - g_param_spec_boolean ("fullscreen-horizontal", "", "", - FALSE, - G_PARAM_WRITABLE | - G_PARAM_STATIC_STRINGS | - G_PARAM_CONSTRUCT_ONLY)); - /** + g_object_class_install_property( + object_class, + PROP_FULLSCREEN_HORIZONTAL, + g_param_spec_boolean("fullscreen-horizontal", + "", + "", + FALSE, + G_PARAM_WRITABLE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT_ONLY)); + /** * NmtNewtForm:x: * * The form's x coordinate. By default, the form will be centered * on the screen. */ - g_object_class_install_property - (object_class, PROP_X, - g_param_spec_uint ("x", "", "", - 0, G_MAXUINT, 0, - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS | - G_PARAM_CONSTRUCT_ONLY)); - /** + g_object_class_install_property( + object_class, + PROP_X, + g_param_spec_uint("x", + "", + "", + 0, + G_MAXUINT, + 0, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT_ONLY)); + /** * NmtNewtForm:y: * * The form's y coordinate. By default, the form will be centered * on the screen. */ - g_object_class_install_property - (object_class, PROP_Y, - g_param_spec_uint ("y", "", "", - 0, G_MAXUINT, 0, - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS | - G_PARAM_CONSTRUCT_ONLY)); - /** + g_object_class_install_property( + object_class, + PROP_Y, + g_param_spec_uint("y", + "", + "", + 0, + G_MAXUINT, + 0, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT_ONLY)); + /** * NmtNewtForm:width: * * The form's width. By default, this will be determined by the * width of the form's content. */ - g_object_class_install_property - (object_class, PROP_WIDTH, - g_param_spec_uint ("width", "", "", - 0, G_MAXUINT, 0, - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS | - G_PARAM_CONSTRUCT_ONLY)); - /** + g_object_class_install_property( + object_class, + PROP_WIDTH, + g_param_spec_uint("width", + "", + "", + 0, + G_MAXUINT, + 0, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT_ONLY)); + /** * NmtNewtForm:height: * * The form's height. By default, this will be determined by the * height of the form's content. */ - g_object_class_install_property - (object_class, PROP_HEIGHT, - g_param_spec_uint ("height", "", "", - 0, G_MAXUINT, 0, - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS | - G_PARAM_CONSTRUCT_ONLY)); - /** + g_object_class_install_property( + object_class, + PROP_HEIGHT, + g_param_spec_uint("height", + "", + "", + 0, + G_MAXUINT, + 0, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT_ONLY)); + /** * NmtNewtForm:padding: * * The padding between the form's content and its border. */ - g_object_class_install_property - (object_class, PROP_PADDING, - g_param_spec_uint ("padding", "", "", - 0, G_MAXUINT, 1, - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS | - G_PARAM_CONSTRUCT_ONLY)); - /** + g_object_class_install_property( + object_class, + PROP_PADDING, + g_param_spec_uint("padding", + "", + "", + 0, + G_MAXUINT, + 1, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT_ONLY)); + /** * NmtNewtForm:escape-exits: * * If %TRUE, then hitting the Escape key will cause the form to * exit. */ - g_object_class_install_property - (object_class, PROP_ESCAPE_EXITS, - g_param_spec_boolean ("escape-exits", "", "", - FALSE, - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS | - G_PARAM_CONSTRUCT_ONLY)); + g_object_class_install_property( + object_class, + PROP_ESCAPE_EXITS, + g_param_spec_boolean("escape-exits", + "", + "", + FALSE, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT_ONLY)); } diff --git a/clients/tui/newt/nmt-newt-form.h b/clients/tui/newt/nmt-newt-form.h index ed1b0b2efa..0e439f0be3 100644 --- a/clients/tui/newt/nmt-newt-form.h +++ b/clients/tui/newt/nmt-newt-form.h @@ -8,42 +8,41 @@ #include "nmt-newt-container.h" -#define NMT_TYPE_NEWT_FORM (nmt_newt_form_get_type ()) -#define NMT_NEWT_FORM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NMT_TYPE_NEWT_FORM, NmtNewtForm)) -#define NMT_NEWT_FORM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NMT_TYPE_NEWT_FORM, NmtNewtFormClass)) -#define NMT_IS_NEWT_FORM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NMT_TYPE_NEWT_FORM)) -#define NMT_IS_NEWT_FORM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NMT_TYPE_NEWT_FORM)) -#define NMT_NEWT_FORM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NMT_TYPE_NEWT_FORM, NmtNewtFormClass)) +#define NMT_TYPE_NEWT_FORM (nmt_newt_form_get_type()) +#define NMT_NEWT_FORM(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), NMT_TYPE_NEWT_FORM, NmtNewtForm)) +#define NMT_NEWT_FORM_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), NMT_TYPE_NEWT_FORM, NmtNewtFormClass)) +#define NMT_IS_NEWT_FORM(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), NMT_TYPE_NEWT_FORM)) +#define NMT_IS_NEWT_FORM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), NMT_TYPE_NEWT_FORM)) +#define NMT_NEWT_FORM_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), NMT_TYPE_NEWT_FORM, NmtNewtFormClass)) struct _NmtNewtForm { - NmtNewtContainer parent; - + NmtNewtContainer parent; }; typedef struct { - NmtNewtContainerClass parent; + NmtNewtContainerClass parent; - /* signals */ - void (*quit) (NmtNewtForm *form); + /* signals */ + void (*quit)(NmtNewtForm *form); - /* methods */ - void (*show) (NmtNewtForm *form); + /* methods */ + void (*show)(NmtNewtForm *form); } NmtNewtFormClass; -GType nmt_newt_form_get_type (void); +GType nmt_newt_form_get_type(void); -NmtNewtForm *nmt_newt_form_new (const char *title); -NmtNewtForm *nmt_newt_form_new_fullscreen (const char *title); +NmtNewtForm *nmt_newt_form_new(const char *title); +NmtNewtForm *nmt_newt_form_new_fullscreen(const char *title); -void nmt_newt_form_set_content (NmtNewtForm *form, - NmtNewtWidget *content); +void nmt_newt_form_set_content(NmtNewtForm *form, NmtNewtWidget *content); -void nmt_newt_form_show (NmtNewtForm *form); -NmtNewtWidget *nmt_newt_form_run_sync (NmtNewtForm *form); -void nmt_newt_form_quit (NmtNewtForm *form); +void nmt_newt_form_show(NmtNewtForm *form); +NmtNewtWidget *nmt_newt_form_run_sync(NmtNewtForm *form); +void nmt_newt_form_quit(NmtNewtForm *form); -void nmt_newt_form_set_focus (NmtNewtForm *form, - NmtNewtWidget *widget); +void nmt_newt_form_set_focus(NmtNewtForm *form, NmtNewtWidget *widget); #endif /* NMT_NEWT_FORM_H */ diff --git a/clients/tui/newt/nmt-newt-grid.c b/clients/tui/newt/nmt-newt-grid.c index ff41181288..89dec94c42 100644 --- a/clients/tui/newt/nmt-newt-grid.c +++ b/clients/tui/newt/nmt-newt-grid.c @@ -31,24 +31,25 @@ #include "nmt-newt-grid.h" -G_DEFINE_TYPE (NmtNewtGrid, nmt_newt_grid, NMT_TYPE_NEWT_CONTAINER) +G_DEFINE_TYPE(NmtNewtGrid, nmt_newt_grid, NMT_TYPE_NEWT_CONTAINER) -#define NMT_NEWT_GRID_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NMT_TYPE_NEWT_GRID, NmtNewtGridPrivate)) +#define NMT_NEWT_GRID_GET_PRIVATE(o) \ + (G_TYPE_INSTANCE_GET_PRIVATE((o), NMT_TYPE_NEWT_GRID, NmtNewtGridPrivate)) typedef struct { - NmtNewtWidget *widget; - int x, y; - NmtNewtGridFlags flags; - int req_height, req_width; + NmtNewtWidget * widget; + int x, y; + NmtNewtGridFlags flags; + int req_height, req_width; } NmtNewtGridChild; typedef struct { - GArray *children; - int max_x, max_y; - int *row_heights, *col_widths; - gboolean *expand_rows, *expand_cols; - int n_expand_rows, n_expand_cols; - int req_height, req_width; + GArray * children; + int max_x, max_y; + int * row_heights, *col_widths; + gboolean *expand_rows, *expand_cols; + int n_expand_rows, n_expand_cols; + int req_height, req_width; } NmtNewtGridPrivate; /** @@ -59,233 +60,224 @@ typedef struct { * Returns: a new #NmtNewtGrid */ NmtNewtWidget * -nmt_newt_grid_new (void) +nmt_newt_grid_new(void) { - return g_object_new (NMT_TYPE_NEWT_GRID, NULL); + return g_object_new(NMT_TYPE_NEWT_GRID, NULL); } static void -nmt_newt_grid_init (NmtNewtGrid *grid) +nmt_newt_grid_init(NmtNewtGrid *grid) { - NmtNewtGridPrivate *priv = NMT_NEWT_GRID_GET_PRIVATE (grid); + NmtNewtGridPrivate *priv = NMT_NEWT_GRID_GET_PRIVATE(grid); - priv->children = g_array_new (FALSE, FALSE, sizeof (NmtNewtGridChild)); + priv->children = g_array_new(FALSE, FALSE, sizeof(NmtNewtGridChild)); } static void -nmt_newt_grid_finalize (GObject *object) +nmt_newt_grid_finalize(GObject *object) { - NmtNewtGridPrivate *priv = NMT_NEWT_GRID_GET_PRIVATE (object); + NmtNewtGridPrivate *priv = NMT_NEWT_GRID_GET_PRIVATE(object); - g_array_unref (priv->children); - nm_clear_g_free (&priv->row_heights); - nm_clear_g_free (&priv->col_widths); - nm_clear_g_free (&priv->expand_rows); - nm_clear_g_free (&priv->expand_cols); + g_array_unref(priv->children); + nm_clear_g_free(&priv->row_heights); + nm_clear_g_free(&priv->col_widths); + nm_clear_g_free(&priv->expand_rows); + nm_clear_g_free(&priv->expand_cols); - G_OBJECT_CLASS (nmt_newt_grid_parent_class)->finalize (object); + G_OBJECT_CLASS(nmt_newt_grid_parent_class)->finalize(object); } static int -child_sort_func (gconstpointer a, - gconstpointer b) +child_sort_func(gconstpointer a, gconstpointer b) { - NmtNewtGridChild *child_a = (NmtNewtGridChild *)a; - NmtNewtGridChild *child_b = (NmtNewtGridChild *)b; + NmtNewtGridChild *child_a = (NmtNewtGridChild *) a; + NmtNewtGridChild *child_b = (NmtNewtGridChild *) b; - if (child_a->y != child_b->y) - return child_a->y - child_b->y; - else - return child_a->x - child_b->x; + if (child_a->y != child_b->y) + return child_a->y - child_b->y; + else + return child_a->x - child_b->x; } static newtComponent * -nmt_newt_grid_get_components (NmtNewtWidget *widget) +nmt_newt_grid_get_components(NmtNewtWidget *widget) { - NmtNewtGridPrivate *priv = NMT_NEWT_GRID_GET_PRIVATE (widget); - NmtNewtGridChild *children; - GPtrArray *cos; - newtComponent *child_cos; - int i, c; + NmtNewtGridPrivate *priv = NMT_NEWT_GRID_GET_PRIVATE(widget); + NmtNewtGridChild * children; + GPtrArray * cos; + newtComponent * child_cos; + int i, c; - g_array_sort (priv->children, child_sort_func); - children = (NmtNewtGridChild *)priv->children->data; + g_array_sort(priv->children, child_sort_func); + children = (NmtNewtGridChild *) priv->children->data; - cos = g_ptr_array_new (); + cos = g_ptr_array_new(); - for (i = 0; i < priv->children->len; i++) { - if (!nmt_newt_widget_get_visible (children[i].widget)) - continue; + for (i = 0; i < priv->children->len; i++) { + if (!nmt_newt_widget_get_visible(children[i].widget)) + continue; - child_cos = nmt_newt_widget_get_components (children[i].widget); - for (c = 0; child_cos[c]; c++) - g_ptr_array_add (cos, child_cos[c]); - g_free (child_cos); - } - g_ptr_array_add (cos, NULL); + child_cos = nmt_newt_widget_get_components(children[i].widget); + for (c = 0; child_cos[c]; c++) + g_ptr_array_add(cos, child_cos[c]); + g_free(child_cos); + } + g_ptr_array_add(cos, NULL); - return (newtComponent *) g_ptr_array_free (cos, FALSE); + return (newtComponent *) g_ptr_array_free(cos, FALSE); } static void -nmt_newt_grid_size_request (NmtNewtWidget *widget, - int *width, - int *height) +nmt_newt_grid_size_request(NmtNewtWidget *widget, int *width, int *height) { - NmtNewtGrid *grid = NMT_NEWT_GRID (widget); - NmtNewtGridPrivate *priv = NMT_NEWT_GRID_GET_PRIVATE (grid); - NmtNewtGridChild *children = (NmtNewtGridChild *)priv->children->data; - int row, col, i; - - g_free (priv->row_heights); - g_free (priv->col_widths); - g_free (priv->expand_rows); - g_free (priv->expand_cols); - - priv->row_heights = g_new0 (int, priv->max_y + 1); - priv->col_widths = g_new0 (int, priv->max_x + 1); - priv->expand_rows = g_new0 (gboolean, priv->max_y + 1); - priv->expand_cols = g_new0 (gboolean, priv->max_x + 1); - priv->n_expand_rows = priv->n_expand_cols = 0; - - for (row = 0; row < priv->max_y + 1; row++) { - for (col = 0; col < priv->max_x + 1; col++) { - for (i = 0; i < priv->children->len; i++) { - if (children[i].x != col || children[i].y != row) - continue; - if (!nmt_newt_widget_get_visible (children[i].widget)) - continue; - - nmt_newt_widget_size_request (children[i].widget, - &children[i].req_width, - &children[i].req_height); - if (children[i].req_height > priv->row_heights[row]) - priv->row_heights[row] = children[i].req_height; - if (children[i].req_width > priv->col_widths[col]) - priv->col_widths[col] = children[i].req_width; - - if ( (children[i].flags & NMT_NEWT_GRID_EXPAND_X) - && !priv->expand_cols[children[i].x]) { - priv->expand_cols[children[i].x] = TRUE; - priv->n_expand_cols++; - } - if ( (children[i].flags & NMT_NEWT_GRID_EXPAND_Y) - && !priv->expand_rows[children[i].y]) { - priv->expand_rows[children[i].y] = TRUE; - priv->n_expand_rows++; - } - } - } - } - - priv->req_height = priv->req_width = 0; - for (row = 0; row < priv->max_y + 1; row++) - priv->req_height += priv->row_heights[row]; - for (col = 0; col < priv->max_x + 1; col++) - priv->req_width += priv->col_widths[col]; - - *height = priv->req_height; - *width = priv->req_width; + NmtNewtGrid * grid = NMT_NEWT_GRID(widget); + NmtNewtGridPrivate *priv = NMT_NEWT_GRID_GET_PRIVATE(grid); + NmtNewtGridChild * children = (NmtNewtGridChild *) priv->children->data; + int row, col, i; + + g_free(priv->row_heights); + g_free(priv->col_widths); + g_free(priv->expand_rows); + g_free(priv->expand_cols); + + priv->row_heights = g_new0(int, priv->max_y + 1); + priv->col_widths = g_new0(int, priv->max_x + 1); + priv->expand_rows = g_new0(gboolean, priv->max_y + 1); + priv->expand_cols = g_new0(gboolean, priv->max_x + 1); + priv->n_expand_rows = priv->n_expand_cols = 0; + + for (row = 0; row < priv->max_y + 1; row++) { + for (col = 0; col < priv->max_x + 1; col++) { + for (i = 0; i < priv->children->len; i++) { + if (children[i].x != col || children[i].y != row) + continue; + if (!nmt_newt_widget_get_visible(children[i].widget)) + continue; + + nmt_newt_widget_size_request(children[i].widget, + &children[i].req_width, + &children[i].req_height); + if (children[i].req_height > priv->row_heights[row]) + priv->row_heights[row] = children[i].req_height; + if (children[i].req_width > priv->col_widths[col]) + priv->col_widths[col] = children[i].req_width; + + if ((children[i].flags & NMT_NEWT_GRID_EXPAND_X) + && !priv->expand_cols[children[i].x]) { + priv->expand_cols[children[i].x] = TRUE; + priv->n_expand_cols++; + } + if ((children[i].flags & NMT_NEWT_GRID_EXPAND_Y) + && !priv->expand_rows[children[i].y]) { + priv->expand_rows[children[i].y] = TRUE; + priv->n_expand_rows++; + } + } + } + } + + priv->req_height = priv->req_width = 0; + for (row = 0; row < priv->max_y + 1; row++) + priv->req_height += priv->row_heights[row]; + for (col = 0; col < priv->max_x + 1; col++) + priv->req_width += priv->col_widths[col]; + + *height = priv->req_height; + *width = priv->req_width; } static void -nmt_newt_grid_size_allocate (NmtNewtWidget *widget, - int x, - int y, - int width, - int height) +nmt_newt_grid_size_allocate(NmtNewtWidget *widget, int x, int y, int width, int height) { - NmtNewtGridPrivate *priv = NMT_NEWT_GRID_GET_PRIVATE (widget); - NmtNewtGridChild *children = (NmtNewtGridChild *)priv->children->data, *child; - int i, row, col; - int child_x, child_y, child_width, child_height; - int extra, extra_all, extra_some; - - extra = width - priv->req_width; - if (extra > 0 && priv->n_expand_cols) { - extra_all = extra / priv->n_expand_cols; - extra_some = extra % priv->n_expand_cols; - - for (col = 0; col < priv->max_x + 1; col++) { - if (!priv->expand_cols[col]) - continue; - priv->col_widths[col] += extra_all; - if (extra_some) { - priv->col_widths[col]++; - extra_some--; - } - } - } - - extra = height - priv->req_height; - if (extra > 0 && priv->n_expand_rows) { - extra_all = extra / priv->n_expand_rows; - extra_some = extra % priv->n_expand_rows; - - for (row = 0; row < priv->max_y + 1; row++) { - if (!priv->expand_rows[row]) - continue; - priv->row_heights[row] += extra_all; - if (extra_some) { - priv->row_heights[row]++; - extra_some--; - } - } - } - - for (i = 0; i < priv->children->len; i++) { - child = &children[i]; - if (!nmt_newt_widget_get_visible (child->widget)) - continue; - - child_x = x; - for (col = 0; col < child->x; col++) - child_x += priv->col_widths[col]; - - if ((child->flags & NMT_NEWT_GRID_FILL_X) == NMT_NEWT_GRID_FILL_X) { - child_width = priv->col_widths[child->x]; - } else { - child_width = child->req_width; - if (child->flags & NMT_NEWT_GRID_ANCHOR_RIGHT) - child_x += priv->col_widths[child->x] - child->req_width; - else if (!(child->flags & NMT_NEWT_GRID_ANCHOR_LEFT)) - child_x += (priv->col_widths[child->x] - child->req_width) / 2; - } - - child_y = y; - for (row = 0; row < child->y; row++) - child_y += priv->row_heights[row]; - - if ((child->flags & NMT_NEWT_GRID_FILL_Y) == NMT_NEWT_GRID_FILL_Y) { - child_height = priv->row_heights[child->y]; - } else { - child_height = child->req_height; - if (child->flags & NMT_NEWT_GRID_ANCHOR_BOTTOM) - child_y += priv->row_heights[child->y] - child->req_height; - else if (!(child->flags & NMT_NEWT_GRID_ANCHOR_TOP)) - child_y += (priv->row_heights[child->y] - child->req_height) / 2; - } - - nmt_newt_widget_size_allocate (child->widget, - child_x, child_y, - child_width, child_height); - } + NmtNewtGridPrivate *priv = NMT_NEWT_GRID_GET_PRIVATE(widget); + NmtNewtGridChild * children = (NmtNewtGridChild *) priv->children->data, *child; + int i, row, col; + int child_x, child_y, child_width, child_height; + int extra, extra_all, extra_some; + + extra = width - priv->req_width; + if (extra > 0 && priv->n_expand_cols) { + extra_all = extra / priv->n_expand_cols; + extra_some = extra % priv->n_expand_cols; + + for (col = 0; col < priv->max_x + 1; col++) { + if (!priv->expand_cols[col]) + continue; + priv->col_widths[col] += extra_all; + if (extra_some) { + priv->col_widths[col]++; + extra_some--; + } + } + } + + extra = height - priv->req_height; + if (extra > 0 && priv->n_expand_rows) { + extra_all = extra / priv->n_expand_rows; + extra_some = extra % priv->n_expand_rows; + + for (row = 0; row < priv->max_y + 1; row++) { + if (!priv->expand_rows[row]) + continue; + priv->row_heights[row] += extra_all; + if (extra_some) { + priv->row_heights[row]++; + extra_some--; + } + } + } + + for (i = 0; i < priv->children->len; i++) { + child = &children[i]; + if (!nmt_newt_widget_get_visible(child->widget)) + continue; + + child_x = x; + for (col = 0; col < child->x; col++) + child_x += priv->col_widths[col]; + + if ((child->flags & NMT_NEWT_GRID_FILL_X) == NMT_NEWT_GRID_FILL_X) { + child_width = priv->col_widths[child->x]; + } else { + child_width = child->req_width; + if (child->flags & NMT_NEWT_GRID_ANCHOR_RIGHT) + child_x += priv->col_widths[child->x] - child->req_width; + else if (!(child->flags & NMT_NEWT_GRID_ANCHOR_LEFT)) + child_x += (priv->col_widths[child->x] - child->req_width) / 2; + } + + child_y = y; + for (row = 0; row < child->y; row++) + child_y += priv->row_heights[row]; + + if ((child->flags & NMT_NEWT_GRID_FILL_Y) == NMT_NEWT_GRID_FILL_Y) { + child_height = priv->row_heights[child->y]; + } else { + child_height = child->req_height; + if (child->flags & NMT_NEWT_GRID_ANCHOR_BOTTOM) + child_y += priv->row_heights[child->y] - child->req_height; + else if (!(child->flags & NMT_NEWT_GRID_ANCHOR_TOP)) + child_y += (priv->row_heights[child->y] - child->req_height) / 2; + } + + nmt_newt_widget_size_allocate(child->widget, child_x, child_y, child_width, child_height); + } } static void -nmt_newt_grid_find_size (NmtNewtGrid *grid) +nmt_newt_grid_find_size(NmtNewtGrid *grid) { - NmtNewtGridPrivate *priv = NMT_NEWT_GRID_GET_PRIVATE (grid); - NmtNewtGridChild *children = (NmtNewtGridChild *)priv->children->data; - int i; - - priv->max_x = priv->max_y = 0; - for (i = 0; i < priv->children->len; i++) { - if (children[i].x > priv->max_x) - priv->max_x = children[i].x; - if (children[i].y > priv->max_y) - priv->max_y = children[i].y; - } + NmtNewtGridPrivate *priv = NMT_NEWT_GRID_GET_PRIVATE(grid); + NmtNewtGridChild * children = (NmtNewtGridChild *) priv->children->data; + int i; + + priv->max_x = priv->max_y = 0; + for (i = 0; i < priv->children->len; i++) { + if (children[i].x > priv->max_x) + priv->max_x = children[i].x; + if (children[i].y > priv->max_y) + priv->max_y = children[i].y; + } } /** @@ -299,60 +291,55 @@ nmt_newt_grid_find_size (NmtNewtGrid *grid) * details of exactly how this works. */ void -nmt_newt_grid_add (NmtNewtGrid *grid, - NmtNewtWidget *widget, - int x, - int y) +nmt_newt_grid_add(NmtNewtGrid *grid, NmtNewtWidget *widget, int x, int y) { - NmtNewtGridPrivate *priv = NMT_NEWT_GRID_GET_PRIVATE (grid); - NmtNewtGridChild child; - - NMT_NEWT_CONTAINER_CLASS (nmt_newt_grid_parent_class)->add (NMT_NEWT_CONTAINER (grid), widget); - - memset (&child, 0, sizeof (child)); - child.widget = widget; - child.x = x; - child.y = y; - child.flags = NMT_NEWT_GRID_FILL_X | NMT_NEWT_GRID_FILL_Y; - g_array_append_val (priv->children, child); - - if (x > priv->max_x) - priv->max_x = x; - if (y > priv->max_y) - priv->max_y = y; + NmtNewtGridPrivate *priv = NMT_NEWT_GRID_GET_PRIVATE(grid); + NmtNewtGridChild child; + + NMT_NEWT_CONTAINER_CLASS(nmt_newt_grid_parent_class)->add(NMT_NEWT_CONTAINER(grid), widget); + + memset(&child, 0, sizeof(child)); + child.widget = widget; + child.x = x; + child.y = y; + child.flags = NMT_NEWT_GRID_FILL_X | NMT_NEWT_GRID_FILL_Y; + g_array_append_val(priv->children, child); + + if (x > priv->max_x) + priv->max_x = x; + if (y > priv->max_y) + priv->max_y = y; } static int -find_child (NmtNewtGrid *grid, - NmtNewtWidget *widget) +find_child(NmtNewtGrid *grid, NmtNewtWidget *widget) { - NmtNewtGridPrivate *priv = NMT_NEWT_GRID_GET_PRIVATE (grid); - NmtNewtGridChild *children = (NmtNewtGridChild *)priv->children->data; - int i; + NmtNewtGridPrivate *priv = NMT_NEWT_GRID_GET_PRIVATE(grid); + NmtNewtGridChild * children = (NmtNewtGridChild *) priv->children->data; + int i; - for (i = 0; i < priv->children->len; i++) { - if (children[i].widget == widget) - return i; - } + for (i = 0; i < priv->children->len; i++) { + if (children[i].widget == widget) + return i; + } - return -1; + return -1; } static void -nmt_newt_grid_remove (NmtNewtContainer *container, - NmtNewtWidget *widget) +nmt_newt_grid_remove(NmtNewtContainer *container, NmtNewtWidget *widget) { - NmtNewtGrid *grid = NMT_NEWT_GRID (container); - NmtNewtGridPrivate *priv = NMT_NEWT_GRID_GET_PRIVATE (grid); - int i; + NmtNewtGrid * grid = NMT_NEWT_GRID(container); + NmtNewtGridPrivate *priv = NMT_NEWT_GRID_GET_PRIVATE(grid); + int i; - i = find_child (grid, widget); - if (i != -1) { - g_array_remove_index (priv->children, i); - nmt_newt_grid_find_size (grid); - } + i = find_child(grid, widget); + if (i != -1) { + g_array_remove_index(priv->children, i); + nmt_newt_grid_find_size(grid); + } - NMT_NEWT_CONTAINER_CLASS (nmt_newt_grid_parent_class)->remove (container, widget); + NMT_NEWT_CONTAINER_CLASS(nmt_newt_grid_parent_class)->remove(container, widget); } /** @@ -365,22 +352,19 @@ nmt_newt_grid_remove (NmtNewtContainer *container, * Moves @widget to the given new coordinates. */ void -nmt_newt_grid_move (NmtNewtGrid *grid, - NmtNewtWidget *widget, - int x, - int y) +nmt_newt_grid_move(NmtNewtGrid *grid, NmtNewtWidget *widget, int x, int y) { - NmtNewtGridPrivate *priv = NMT_NEWT_GRID_GET_PRIVATE (grid); - NmtNewtGridChild *children = (NmtNewtGridChild *)priv->children->data; - int i; - - i = find_child (grid, widget); - if (i != -1 && (children[i].x != x || children[i].y != y)) { - children[i].x = x; - children[i].y = y; - nmt_newt_grid_find_size (grid); - nmt_newt_widget_needs_rebuild (NMT_NEWT_WIDGET (grid)); - } + NmtNewtGridPrivate *priv = NMT_NEWT_GRID_GET_PRIVATE(grid); + NmtNewtGridChild * children = (NmtNewtGridChild *) priv->children->data; + int i; + + i = find_child(grid, widget); + if (i != -1 && (children[i].x != x || children[i].y != y)) { + children[i].x = x; + children[i].y = y; + nmt_newt_grid_find_size(grid); + nmt_newt_widget_needs_rebuild(NMT_NEWT_WIDGET(grid)); + } } /** @@ -424,34 +408,32 @@ nmt_newt_grid_move (NmtNewtGrid *grid, * Sets the #NmtNewtGridFlags on @widget */ void -nmt_newt_grid_set_flags (NmtNewtGrid *grid, - NmtNewtWidget *widget, - NmtNewtGridFlags flags) +nmt_newt_grid_set_flags(NmtNewtGrid *grid, NmtNewtWidget *widget, NmtNewtGridFlags flags) { - NmtNewtGridPrivate *priv = NMT_NEWT_GRID_GET_PRIVATE (grid); - NmtNewtGridChild *children = (NmtNewtGridChild *)priv->children->data; - int i; + NmtNewtGridPrivate *priv = NMT_NEWT_GRID_GET_PRIVATE(grid); + NmtNewtGridChild * children = (NmtNewtGridChild *) priv->children->data; + int i; - i = find_child (grid, widget); - if (i != -1) - children[i].flags = flags; + i = find_child(grid, widget); + if (i != -1) + children[i].flags = flags; } static void -nmt_newt_grid_class_init (NmtNewtGridClass *grid_class) +nmt_newt_grid_class_init(NmtNewtGridClass *grid_class) { - GObjectClass *object_class = G_OBJECT_CLASS (grid_class); - NmtNewtWidgetClass *widget_class = NMT_NEWT_WIDGET_CLASS (grid_class); - NmtNewtContainerClass *container_class = NMT_NEWT_CONTAINER_CLASS (grid_class); + GObjectClass * object_class = G_OBJECT_CLASS(grid_class); + NmtNewtWidgetClass * widget_class = NMT_NEWT_WIDGET_CLASS(grid_class); + NmtNewtContainerClass *container_class = NMT_NEWT_CONTAINER_CLASS(grid_class); - g_type_class_add_private (grid_class, sizeof (NmtNewtGridPrivate)); + g_type_class_add_private(grid_class, sizeof(NmtNewtGridPrivate)); - /* virtual methods */ - object_class->finalize = nmt_newt_grid_finalize; + /* virtual methods */ + object_class->finalize = nmt_newt_grid_finalize; - widget_class->get_components = nmt_newt_grid_get_components; - widget_class->size_request = nmt_newt_grid_size_request; - widget_class->size_allocate = nmt_newt_grid_size_allocate; + widget_class->get_components = nmt_newt_grid_get_components; + widget_class->size_request = nmt_newt_grid_size_request; + widget_class->size_allocate = nmt_newt_grid_size_allocate; - container_class->remove = nmt_newt_grid_remove; + container_class->remove = nmt_newt_grid_remove; } diff --git a/clients/tui/newt/nmt-newt-grid.h b/clients/tui/newt/nmt-newt-grid.h index 9a209dcc8c..9c787ed27c 100644 --- a/clients/tui/newt/nmt-newt-grid.h +++ b/clients/tui/newt/nmt-newt-grid.h @@ -8,48 +8,41 @@ #include "nmt-newt-container.h" -#define NMT_TYPE_NEWT_GRID (nmt_newt_grid_get_type ()) -#define NMT_NEWT_GRID(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NMT_TYPE_NEWT_GRID, NmtNewtGrid)) -#define NMT_NEWT_GRID_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NMT_TYPE_NEWT_GRID, NmtNewtGridClass)) -#define NMT_IS_NEWT_GRID(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NMT_TYPE_NEWT_GRID)) -#define NMT_IS_NEWT_GRID_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NMT_TYPE_NEWT_GRID)) -#define NMT_NEWT_GRID_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NMT_TYPE_NEWT_GRID, NmtNewtGridClass)) +#define NMT_TYPE_NEWT_GRID (nmt_newt_grid_get_type()) +#define NMT_NEWT_GRID(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), NMT_TYPE_NEWT_GRID, NmtNewtGrid)) +#define NMT_NEWT_GRID_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), NMT_TYPE_NEWT_GRID, NmtNewtGridClass)) +#define NMT_IS_NEWT_GRID(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), NMT_TYPE_NEWT_GRID)) +#define NMT_IS_NEWT_GRID_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), NMT_TYPE_NEWT_GRID)) +#define NMT_NEWT_GRID_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), NMT_TYPE_NEWT_GRID, NmtNewtGridClass)) struct _NmtNewtGrid { - NmtNewtContainer parent; - + NmtNewtContainer parent; }; typedef struct { - NmtNewtContainerClass parent; + NmtNewtContainerClass parent; } NmtNewtGridClass; -GType nmt_newt_grid_get_type (void); +GType nmt_newt_grid_get_type(void); typedef enum { - NMT_NEWT_GRID_EXPAND_X = (1 << 0), - NMT_NEWT_GRID_EXPAND_Y = (1 << 1), - NMT_NEWT_GRID_ANCHOR_LEFT = (1 << 2), - NMT_NEWT_GRID_ANCHOR_RIGHT = (1 << 3), - NMT_NEWT_GRID_FILL_X = NMT_NEWT_GRID_ANCHOR_LEFT | NMT_NEWT_GRID_ANCHOR_RIGHT, - NMT_NEWT_GRID_ANCHOR_TOP = (1 << 4), - NMT_NEWT_GRID_ANCHOR_BOTTOM = (1 << 5), - NMT_NEWT_GRID_FILL_Y = NMT_NEWT_GRID_ANCHOR_TOP | NMT_NEWT_GRID_ANCHOR_BOTTOM, + NMT_NEWT_GRID_EXPAND_X = (1 << 0), + NMT_NEWT_GRID_EXPAND_Y = (1 << 1), + NMT_NEWT_GRID_ANCHOR_LEFT = (1 << 2), + NMT_NEWT_GRID_ANCHOR_RIGHT = (1 << 3), + NMT_NEWT_GRID_FILL_X = NMT_NEWT_GRID_ANCHOR_LEFT | NMT_NEWT_GRID_ANCHOR_RIGHT, + NMT_NEWT_GRID_ANCHOR_TOP = (1 << 4), + NMT_NEWT_GRID_ANCHOR_BOTTOM = (1 << 5), + NMT_NEWT_GRID_FILL_Y = NMT_NEWT_GRID_ANCHOR_TOP | NMT_NEWT_GRID_ANCHOR_BOTTOM, } NmtNewtGridFlags; -NmtNewtWidget *nmt_newt_grid_new (void); - -void nmt_newt_grid_add (NmtNewtGrid *grid, - NmtNewtWidget *widget, - int x, - int y); -void nmt_newt_grid_move (NmtNewtGrid *grid, - NmtNewtWidget *widget, - int x, - int y); -void nmt_newt_grid_set_flags (NmtNewtGrid *grid, - NmtNewtWidget *widget, - NmtNewtGridFlags flags); +NmtNewtWidget *nmt_newt_grid_new(void); + +void nmt_newt_grid_add(NmtNewtGrid *grid, NmtNewtWidget *widget, int x, int y); +void nmt_newt_grid_move(NmtNewtGrid *grid, NmtNewtWidget *widget, int x, int y); +void nmt_newt_grid_set_flags(NmtNewtGrid *grid, NmtNewtWidget *widget, NmtNewtGridFlags flags); #endif /* NMT_NEWT_GRID_H */ diff --git a/clients/tui/newt/nmt-newt-hacks.c b/clients/tui/newt/nmt-newt-hacks.c index 9c93b4b5f6..4309896203 100644 --- a/clients/tui/newt/nmt-newt-hacks.c +++ b/clients/tui/newt/nmt-newt-hacks.c @@ -15,76 +15,71 @@ #include "nmt-newt-hacks.h" -#if !defined (HAVE_NEWTCOMPONENTGETSIZE) || !defined (HAVE_NEWTENTRYGETCURSORPOSITION) +#if !defined(HAVE_NEWTCOMPONENTGETSIZE) || !defined(HAVE_NEWTENTRYGETCURSORPOSITION) struct newtComponent_0_52_15_struct_hack { - int height, width; - int top, left; - int takesFocus; - int isMapped; + int height, width; + int top, left; + int takesFocus; + int isMapped; - struct componentOps *ops; + struct componentOps *ops; - newtCallback callback; - void *callbackData; + newtCallback callback; + void * callbackData; - newtCallback destroyCallback; - void *destroyCallbackData; + newtCallback destroyCallback; + void * destroyCallbackData; - void *data; + void *data; }; #endif #ifndef HAVE_NEWTCOMPONENTGETSIZE void -newtComponentGetSize (newtComponent component, - int *width, - int *height) +newtComponentGetSize(newtComponent component, int *width, int *height) { - struct newtComponent_0_52_15_struct_hack *hack = (void *) component; + struct newtComponent_0_52_15_struct_hack *hack = (void *) component; - *width = hack->width; - *height = hack->height; + *width = hack->width; + *height = hack->height; } void -newtComponentGetPosition (newtComponent component, - int *left, - int *top) +newtComponentGetPosition(newtComponent component, int *left, int *top) { - struct newtComponent_0_52_15_struct_hack *hack = (void *) component; + struct newtComponent_0_52_15_struct_hack *hack = (void *) component; - *left = hack->left; - *top = hack->top; + *left = hack->left; + *top = hack->top; } #endif #ifndef HAVE_NEWTENTRYGETCURSORPOSITION struct newtEntry_0_52_15_struct_hack { - int flags; - char *buf; - const char **resultPtr; - int bufAlloced; - int bufUsed; - int cursorPosition; - /* ... */ + int flags; + char * buf; + const char **resultPtr; + int bufAlloced; + int bufUsed; + int cursorPosition; + /* ... */ }; int -newtEntryGetCursorPosition (newtComponent component) +newtEntryGetCursorPosition(newtComponent component) { - struct newtComponent_0_52_15_struct_hack *co_hack = (void *) component; - struct newtEntry_0_52_15_struct_hack *entry_hack = co_hack->data; + struct newtComponent_0_52_15_struct_hack *co_hack = (void *) component; + struct newtEntry_0_52_15_struct_hack * entry_hack = co_hack->data; - return entry_hack->cursorPosition; + return entry_hack->cursorPosition; } void -newtEntrySetCursorPosition (newtComponent component, - int position) +newtEntrySetCursorPosition(newtComponent component, int position) { - struct newtComponent_0_52_15_struct_hack *co_hack = (void *) component; - struct newtEntry_0_52_15_struct_hack *entry_hack = co_hack->data; + struct newtComponent_0_52_15_struct_hack *co_hack = (void *) component; + struct newtEntry_0_52_15_struct_hack * entry_hack = co_hack->data; - entry_hack->cursorPosition = position; + entry_hack->cursorPosition = position; } #endif diff --git a/clients/tui/newt/nmt-newt-hacks.h b/clients/tui/newt/nmt-newt-hacks.h index 537d0d4576..5cfc422417 100644 --- a/clients/tui/newt/nmt-newt-hacks.h +++ b/clients/tui/newt/nmt-newt-hacks.h @@ -9,19 +9,14 @@ #include <newt.h> #ifndef HAVE_NEWTCOMPONENTGETSIZE -void newtComponentGetSize (newtComponent component, - int *width, - int *height); +void newtComponentGetSize(newtComponent component, int *width, int *height); -void newtComponentGetPosition (newtComponent component, - int *left, - int *top); +void newtComponentGetPosition(newtComponent component, int *left, int *top); #endif #ifndef HAVE_NEWTENTRYGETCURSORPOSITION -int newtEntryGetCursorPosition (newtComponent component); -void newtEntrySetCursorPosition (newtComponent component, - int position); +int newtEntryGetCursorPosition(newtComponent component); +void newtEntrySetCursorPosition(newtComponent component, int position); #endif #endif /* NMT_NEWT_HACKS_H */ diff --git a/clients/tui/newt/nmt-newt-label.c b/clients/tui/newt/nmt-newt-label.c index 4edd6f8fdb..08b31e9232 100644 --- a/clients/tui/newt/nmt-newt-label.c +++ b/clients/tui/newt/nmt-newt-label.c @@ -18,23 +18,24 @@ #include "nmt-newt-utils.h" -G_DEFINE_TYPE (NmtNewtLabel, nmt_newt_label, NMT_TYPE_NEWT_COMPONENT) +G_DEFINE_TYPE(NmtNewtLabel, nmt_newt_label, NMT_TYPE_NEWT_COMPONENT) -#define NMT_NEWT_LABEL_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NMT_TYPE_NEWT_LABEL, NmtNewtLabelPrivate)) +#define NMT_NEWT_LABEL_GET_PRIVATE(o) \ + (G_TYPE_INSTANCE_GET_PRIVATE((o), NMT_TYPE_NEWT_LABEL, NmtNewtLabelPrivate)) typedef struct { - char *text; - NmtNewtLabelStyle style; - gboolean highlight; + char * text; + NmtNewtLabelStyle style; + gboolean highlight; } NmtNewtLabelPrivate; enum { - PROP_0, - PROP_TEXT, - PROP_STYLE, - PROP_HIGHLIGHT, + PROP_0, + PROP_TEXT, + PROP_STYLE, + PROP_HIGHLIGHT, - LAST_PROP + LAST_PROP }; /** @@ -46,11 +47,9 @@ enum { * Returns: a new #NmtNewtLabel */ NmtNewtWidget * -nmt_newt_label_new (const char *text) +nmt_newt_label_new(const char *text) { - return g_object_new (NMT_TYPE_NEWT_LABEL, - "text", text, - NULL); + return g_object_new(NMT_TYPE_NEWT_LABEL, "text", text, NULL); } /** @@ -61,19 +60,18 @@ nmt_newt_label_new (const char *text) * Updates @label's text. */ void -nmt_newt_label_set_text (NmtNewtLabel *label, - const char *text) +nmt_newt_label_set_text(NmtNewtLabel *label, const char *text) { - NmtNewtLabelPrivate *priv = NMT_NEWT_LABEL_GET_PRIVATE (label); + NmtNewtLabelPrivate *priv = NMT_NEWT_LABEL_GET_PRIVATE(label); - if (!g_strcmp0 (priv->text, text)) - return; + if (!g_strcmp0(priv->text, text)) + return; - g_free (priv->text); - priv->text = g_strdup (text); + g_free(priv->text); + priv->text = g_strdup(text); - g_object_notify (G_OBJECT (label), "text"); - nmt_newt_widget_needs_rebuild (NMT_NEWT_WIDGET (label)); + g_object_notify(G_OBJECT(label), "text"); + nmt_newt_widget_needs_rebuild(NMT_NEWT_WIDGET(label)); } /** @@ -85,11 +83,11 @@ nmt_newt_label_set_text (NmtNewtLabel *label, * Returns: @label's text */ const char * -nmt_newt_label_get_text (NmtNewtLabel *label) +nmt_newt_label_get_text(NmtNewtLabel *label) { - NmtNewtLabelPrivate *priv = NMT_NEWT_LABEL_GET_PRIVATE (label); + NmtNewtLabelPrivate *priv = NMT_NEWT_LABEL_GET_PRIVATE(label); - return priv->text; + return priv->text; } /** @@ -110,17 +108,16 @@ nmt_newt_label_get_text (NmtNewtLabel *label) * Sets the style of @label */ void -nmt_newt_label_set_style (NmtNewtLabel *label, - NmtNewtLabelStyle style) +nmt_newt_label_set_style(NmtNewtLabel *label, NmtNewtLabelStyle style) { - NmtNewtLabelPrivate *priv = NMT_NEWT_LABEL_GET_PRIVATE (label); + NmtNewtLabelPrivate *priv = NMT_NEWT_LABEL_GET_PRIVATE(label); - if (priv->style == style) - return; + if (priv->style == style) + return; - priv->style = style; - g_object_notify (G_OBJECT (label), "style"); - nmt_newt_widget_needs_rebuild (NMT_NEWT_WIDGET (label)); + priv->style = style; + g_object_notify(G_OBJECT(label), "style"); + nmt_newt_widget_needs_rebuild(NMT_NEWT_WIDGET(label)); } /** @@ -132,11 +129,11 @@ nmt_newt_label_set_style (NmtNewtLabel *label, * Returns: the style of @label */ NmtNewtLabelStyle -nmt_newt_label_get_style (NmtNewtLabel *label) +nmt_newt_label_get_style(NmtNewtLabel *label) { - NmtNewtLabelPrivate *priv = NMT_NEWT_LABEL_GET_PRIVATE (label); + NmtNewtLabelPrivate *priv = NMT_NEWT_LABEL_GET_PRIVATE(label); - return priv->style; + return priv->style; } /** @@ -148,18 +145,17 @@ nmt_newt_label_get_style (NmtNewtLabel *label) * this is generally used to highlight invalid widgets. */ void -nmt_newt_label_set_highlight (NmtNewtLabel *label, - gboolean highlight) +nmt_newt_label_set_highlight(NmtNewtLabel *label, gboolean highlight) { - NmtNewtLabelPrivate *priv = NMT_NEWT_LABEL_GET_PRIVATE (label); + NmtNewtLabelPrivate *priv = NMT_NEWT_LABEL_GET_PRIVATE(label); - highlight = !!highlight; - if (priv->highlight == highlight) - return; + highlight = !!highlight; + if (priv->highlight == highlight) + return; - priv->highlight = highlight; - g_object_notify (G_OBJECT (label), "highlight"); - nmt_newt_widget_needs_rebuild (NMT_NEWT_WIDGET (label)); + priv->highlight = highlight; + g_object_notify(G_OBJECT(label), "highlight"); + nmt_newt_widget_needs_rebuild(NMT_NEWT_WIDGET(label)); } /** @@ -171,142 +167,137 @@ nmt_newt_label_set_highlight (NmtNewtLabel *label, * Returns: whether @label is highlighted. */ gboolean -nmt_newt_label_get_highlight (NmtNewtLabel *label) +nmt_newt_label_get_highlight(NmtNewtLabel *label) { - NmtNewtLabelPrivate *priv = NMT_NEWT_LABEL_GET_PRIVATE (label); + NmtNewtLabelPrivate *priv = NMT_NEWT_LABEL_GET_PRIVATE(label); - return priv->highlight; + return priv->highlight; } static void -nmt_newt_label_init (NmtNewtLabel *label) -{ -} +nmt_newt_label_init(NmtNewtLabel *label) +{} static void -nmt_newt_label_finalize (GObject *object) +nmt_newt_label_finalize(GObject *object) { - NmtNewtLabelPrivate *priv = NMT_NEWT_LABEL_GET_PRIVATE (object); + NmtNewtLabelPrivate *priv = NMT_NEWT_LABEL_GET_PRIVATE(object); - g_free (priv->text); + g_free(priv->text); - G_OBJECT_CLASS (nmt_newt_label_parent_class)->finalize (object); + G_OBJECT_CLASS(nmt_newt_label_parent_class)->finalize(object); } static newtComponent -nmt_newt_label_build_component (NmtNewtComponent *component, - gboolean sensitive) +nmt_newt_label_build_component(NmtNewtComponent *component, gboolean sensitive) { - NmtNewtLabelPrivate *priv = NMT_NEWT_LABEL_GET_PRIVATE (component); - newtComponent co; - char *text_lc; + NmtNewtLabelPrivate *priv = NMT_NEWT_LABEL_GET_PRIVATE(component); + newtComponent co; + char * text_lc; - text_lc = nmt_newt_locale_from_utf8 (priv->text); - co = newtLabel (-1, -1, text_lc); - g_free (text_lc); + text_lc = nmt_newt_locale_from_utf8(priv->text); + co = newtLabel(-1, -1, text_lc); + g_free(text_lc); - if (priv->highlight) - newtLabelSetColors (co, NMT_NEWT_COLORSET_BAD_LABEL); - else if (priv->style == NMT_NEWT_LABEL_PLAIN) - newtLabelSetColors (co, NMT_NEWT_COLORSET_PLAIN_LABEL); + if (priv->highlight) + newtLabelSetColors(co, NMT_NEWT_COLORSET_BAD_LABEL); + else if (priv->style == NMT_NEWT_LABEL_PLAIN) + newtLabelSetColors(co, NMT_NEWT_COLORSET_PLAIN_LABEL); - return co; + return co; } static void -nmt_newt_label_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) +nmt_newt_label_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { - NmtNewtLabel *label = NMT_NEWT_LABEL (object); - - switch (prop_id) { - case PROP_TEXT: - nmt_newt_label_set_text (label, g_value_get_string (value)); - break; - case PROP_STYLE: - nmt_newt_label_set_style (label, g_value_get_int (value)); - break; - case PROP_HIGHLIGHT: - nmt_newt_label_set_highlight (label, g_value_get_boolean (value)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtNewtLabel *label = NMT_NEWT_LABEL(object); + + switch (prop_id) { + case PROP_TEXT: + nmt_newt_label_set_text(label, g_value_get_string(value)); + break; + case PROP_STYLE: + nmt_newt_label_set_style(label, g_value_get_int(value)); + break; + case PROP_HIGHLIGHT: + nmt_newt_label_set_highlight(label, g_value_get_boolean(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_newt_label_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) +nmt_newt_label_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - NmtNewtLabelPrivate *priv = NMT_NEWT_LABEL_GET_PRIVATE (object); - - switch (prop_id) { - case PROP_TEXT: - g_value_set_string (value, priv->text); - break; - case PROP_STYLE: - g_value_set_int (value, priv->style); - break; - case PROP_HIGHLIGHT: - g_value_set_boolean (value, priv->highlight); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtNewtLabelPrivate *priv = NMT_NEWT_LABEL_GET_PRIVATE(object); + + switch (prop_id) { + case PROP_TEXT: + g_value_set_string(value, priv->text); + break; + case PROP_STYLE: + g_value_set_int(value, priv->style); + break; + case PROP_HIGHLIGHT: + g_value_set_boolean(value, priv->highlight); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_newt_label_class_init (NmtNewtLabelClass *label_class) +nmt_newt_label_class_init(NmtNewtLabelClass *label_class) { - GObjectClass *object_class = G_OBJECT_CLASS (label_class); - NmtNewtComponentClass *component_class = NMT_NEWT_COMPONENT_CLASS (label_class); + GObjectClass * object_class = G_OBJECT_CLASS(label_class); + NmtNewtComponentClass *component_class = NMT_NEWT_COMPONENT_CLASS(label_class); - g_type_class_add_private (label_class, sizeof (NmtNewtLabelPrivate)); + g_type_class_add_private(label_class, sizeof(NmtNewtLabelPrivate)); - /* virtual methods */ - object_class->set_property = nmt_newt_label_set_property; - object_class->get_property = nmt_newt_label_get_property; - object_class->finalize = nmt_newt_label_finalize; + /* virtual methods */ + object_class->set_property = nmt_newt_label_set_property; + object_class->get_property = nmt_newt_label_get_property; + object_class->finalize = nmt_newt_label_finalize; - component_class->build_component = nmt_newt_label_build_component; + component_class->build_component = nmt_newt_label_build_component; - /** + /** * NmtNewtLabel:text: * * The label's text */ - g_object_class_install_property - (object_class, PROP_TEXT, - g_param_spec_string ("text", "", "", - NULL, - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS)); - /** + g_object_class_install_property( + object_class, + PROP_TEXT, + g_param_spec_string("text", "", "", NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** * NmtNewtLabel:style: * * The label's #NmtNewtLabelStyle */ - g_object_class_install_property - (object_class, PROP_STYLE, - g_param_spec_int ("style", "", "", - 0, G_MAXINT, 0, - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS)); - /** + g_object_class_install_property(object_class, + PROP_STYLE, + g_param_spec_int("style", + "", + "", + 0, + G_MAXINT, + 0, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** * NmtNewtLabel:highlight: * * Whether the label is highlighted. */ - g_object_class_install_property - (object_class, PROP_HIGHLIGHT, - g_param_spec_boolean ("highlight", "", "", - FALSE, - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS)); + g_object_class_install_property( + object_class, + PROP_HIGHLIGHT, + g_param_spec_boolean("highlight", + "", + "", + FALSE, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); } diff --git a/clients/tui/newt/nmt-newt-label.h b/clients/tui/newt/nmt-newt-label.h index a997ef9ea1..3bc49a916c 100644 --- a/clients/tui/newt/nmt-newt-label.h +++ b/clients/tui/newt/nmt-newt-label.h @@ -8,42 +8,37 @@ #include "nmt-newt-component.h" -#define NMT_TYPE_NEWT_LABEL (nmt_newt_label_get_type ()) -#define NMT_NEWT_LABEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NMT_TYPE_NEWT_LABEL, NmtNewtLabel)) -#define NMT_NEWT_LABEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NMT_TYPE_NEWT_LABEL, NmtNewtLabelClass)) -#define NMT_IS_NEWT_LABEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NMT_TYPE_NEWT_LABEL)) -#define NMT_IS_NEWT_LABEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NMT_TYPE_NEWT_LABEL)) -#define NMT_NEWT_LABEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NMT_TYPE_NEWT_LABEL, NmtNewtLabelClass)) +#define NMT_TYPE_NEWT_LABEL (nmt_newt_label_get_type()) +#define NMT_NEWT_LABEL(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), NMT_TYPE_NEWT_LABEL, NmtNewtLabel)) +#define NMT_NEWT_LABEL_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), NMT_TYPE_NEWT_LABEL, NmtNewtLabelClass)) +#define NMT_IS_NEWT_LABEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), NMT_TYPE_NEWT_LABEL)) +#define NMT_IS_NEWT_LABEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), NMT_TYPE_NEWT_LABEL)) +#define NMT_NEWT_LABEL_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), NMT_TYPE_NEWT_LABEL, NmtNewtLabelClass)) struct _NmtNewtLabel { - NmtNewtComponent parent; - + NmtNewtComponent parent; }; typedef struct { - NmtNewtComponentClass parent; + NmtNewtComponentClass parent; } NmtNewtLabelClass; -GType nmt_newt_label_get_type (void); +GType nmt_newt_label_get_type(void); -typedef enum { - NMT_NEWT_LABEL_NORMAL, - NMT_NEWT_LABEL_PLAIN -} NmtNewtLabelStyle; +typedef enum { NMT_NEWT_LABEL_NORMAL, NMT_NEWT_LABEL_PLAIN } NmtNewtLabelStyle; -NmtNewtWidget *nmt_newt_label_new (const char *text); +NmtNewtWidget *nmt_newt_label_new(const char *text); -void nmt_newt_label_set_text (NmtNewtLabel *label, - const char *text); -const char *nmt_newt_label_get_text (NmtNewtLabel *label); +void nmt_newt_label_set_text(NmtNewtLabel *label, const char *text); +const char *nmt_newt_label_get_text(NmtNewtLabel *label); -void nmt_newt_label_set_style (NmtNewtLabel *label, - NmtNewtLabelStyle style); -NmtNewtLabelStyle nmt_newt_label_get_style (NmtNewtLabel *label); +void nmt_newt_label_set_style(NmtNewtLabel *label, NmtNewtLabelStyle style); +NmtNewtLabelStyle nmt_newt_label_get_style(NmtNewtLabel *label); -void nmt_newt_label_set_highlight (NmtNewtLabel *label, - gboolean highlight); -gboolean nmt_newt_label_get_highlight (NmtNewtLabel *label); +void nmt_newt_label_set_highlight(NmtNewtLabel *label, gboolean highlight); +gboolean nmt_newt_label_get_highlight(NmtNewtLabel *label); #endif /* NMT_NEWT_LABEL_H */ diff --git a/clients/tui/newt/nmt-newt-listbox.c b/clients/tui/newt/nmt-newt-listbox.c index 6d471dffe1..18da63d634 100644 --- a/clients/tui/newt/nmt-newt-listbox.c +++ b/clients/tui/newt/nmt-newt-listbox.c @@ -24,33 +24,34 @@ #include "nmt-newt-form.h" #include "nmt-newt-utils.h" -G_DEFINE_TYPE (NmtNewtListbox, nmt_newt_listbox, NMT_TYPE_NEWT_COMPONENT) +G_DEFINE_TYPE(NmtNewtListbox, nmt_newt_listbox, NMT_TYPE_NEWT_COMPONENT) -#define NMT_NEWT_LISTBOX_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NMT_TYPE_NEWT_LISTBOX, NmtNewtListboxPrivate)) +#define NMT_NEWT_LISTBOX_GET_PRIVATE(o) \ + (G_TYPE_INSTANCE_GET_PRIVATE((o), NMT_TYPE_NEWT_LISTBOX, NmtNewtListboxPrivate)) typedef struct { - int height, alloc_height, width; - gboolean fixed_height; - NmtNewtListboxFlags flags; + int height, alloc_height, width; + gboolean fixed_height; + NmtNewtListboxFlags flags; - GPtrArray *entries; - GPtrArray *keys; + GPtrArray *entries; + GPtrArray *keys; - int active; - gpointer active_key; - gboolean skip_null_keys; + int active; + gpointer active_key; + gboolean skip_null_keys; } NmtNewtListboxPrivate; enum { - PROP_0, - PROP_HEIGHT, - PROP_FLAGS, - PROP_ACTIVE, - PROP_ACTIVE_KEY, - PROP_SKIP_NULL_KEYS, - - LAST_PROP + PROP_0, + PROP_HEIGHT, + PROP_FLAGS, + PROP_ACTIVE, + PROP_ACTIVE_KEY, + PROP_SKIP_NULL_KEYS, + + LAST_PROP }; /** @@ -71,13 +72,9 @@ enum { * Returns: a new #NmtNewtListbox */ NmtNewtWidget * -nmt_newt_listbox_new (int height, - NmtNewtListboxFlags flags) +nmt_newt_listbox_new(int height, NmtNewtListboxFlags flags) { - return g_object_new (NMT_TYPE_NEWT_LISTBOX, - "height", height, - "flags", flags, - NULL); + return g_object_new(NMT_TYPE_NEWT_LISTBOX, "height", height, "flags", flags, NULL); } /** @@ -89,15 +86,13 @@ nmt_newt_listbox_new (int height, * Adds a row to @listbox. */ void -nmt_newt_listbox_append (NmtNewtListbox *listbox, - const char *entry, - gpointer key) +nmt_newt_listbox_append(NmtNewtListbox *listbox, const char *entry, gpointer key) { - NmtNewtListboxPrivate *priv = NMT_NEWT_LISTBOX_GET_PRIVATE (listbox); + NmtNewtListboxPrivate *priv = NMT_NEWT_LISTBOX_GET_PRIVATE(listbox); - g_ptr_array_add (priv->entries, nmt_newt_locale_from_utf8 (entry)); - g_ptr_array_add (priv->keys, key); - nmt_newt_widget_needs_rebuild (NMT_NEWT_WIDGET (listbox)); + g_ptr_array_add(priv->entries, nmt_newt_locale_from_utf8(entry)); + g_ptr_array_add(priv->keys, key); + nmt_newt_widget_needs_rebuild(NMT_NEWT_WIDGET(listbox)); } /** @@ -107,17 +102,17 @@ nmt_newt_listbox_append (NmtNewtListbox *listbox, * Clears the contents of @listbox. */ void -nmt_newt_listbox_clear (NmtNewtListbox *listbox) +nmt_newt_listbox_clear(NmtNewtListbox *listbox) { - NmtNewtListboxPrivate *priv = NMT_NEWT_LISTBOX_GET_PRIVATE (listbox); + NmtNewtListboxPrivate *priv = NMT_NEWT_LISTBOX_GET_PRIVATE(listbox); - g_ptr_array_set_size (priv->entries, 0); - g_ptr_array_set_size (priv->keys, 0); + g_ptr_array_set_size(priv->entries, 0); + g_ptr_array_set_size(priv->keys, 0); - priv->active = -1; - priv->active_key = NULL; + priv->active = -1; + priv->active_key = NULL; - nmt_newt_widget_needs_rebuild (NMT_NEWT_WIDGET (listbox)); + nmt_newt_widget_needs_rebuild(NMT_NEWT_WIDGET(listbox)); } /** @@ -129,22 +124,21 @@ nmt_newt_listbox_clear (NmtNewtListbox *listbox) * scrolling it into view if needed. */ void -nmt_newt_listbox_set_active (NmtNewtListbox *listbox, - int active) +nmt_newt_listbox_set_active(NmtNewtListbox *listbox, int active) { - NmtNewtListboxPrivate *priv = NMT_NEWT_LISTBOX_GET_PRIVATE (listbox); + NmtNewtListboxPrivate *priv = NMT_NEWT_LISTBOX_GET_PRIVATE(listbox); - if (active == priv->active) - return; + if (active == priv->active) + return; - g_return_if_fail (active >= 0 && active < priv->entries->len); - g_return_if_fail (!priv->skip_null_keys || priv->keys->pdata[active]); + g_return_if_fail(active >= 0 && active < priv->entries->len); + g_return_if_fail(!priv->skip_null_keys || priv->keys->pdata[active]); - priv->active = active; - priv->active_key = priv->keys->pdata[active]; + priv->active = active; + priv->active_key = priv->keys->pdata[active]; - g_object_notify (G_OBJECT (listbox), "active"); - g_object_notify (G_OBJECT (listbox), "active-key"); + g_object_notify(G_OBJECT(listbox), "active"); + g_object_notify(G_OBJECT(listbox), "active-key"); } /** @@ -156,27 +150,26 @@ nmt_newt_listbox_set_active (NmtNewtListbox *listbox, * scrolling it into view if needed. */ void -nmt_newt_listbox_set_active_key (NmtNewtListbox *listbox, - gpointer active_key) +nmt_newt_listbox_set_active_key(NmtNewtListbox *listbox, gpointer active_key) { - NmtNewtListboxPrivate *priv = NMT_NEWT_LISTBOX_GET_PRIVATE (listbox); - int i; + NmtNewtListboxPrivate *priv = NMT_NEWT_LISTBOX_GET_PRIVATE(listbox); + int i; - if (active_key == priv->active_key) - return; + if (active_key == priv->active_key) + return; - g_return_if_fail (!priv->skip_null_keys || active_key); + g_return_if_fail(!priv->skip_null_keys || active_key); - for (i = 0; i < priv->keys->len; i++) { - if (priv->keys->pdata[i] == active_key) { - priv->active = i; - priv->active_key = active_key; + for (i = 0; i < priv->keys->len; i++) { + if (priv->keys->pdata[i] == active_key) { + priv->active = i; + priv->active_key = active_key; - g_object_notify (G_OBJECT (listbox), "active"); - g_object_notify (G_OBJECT (listbox), "active-key"); - return; - } - } + g_object_notify(G_OBJECT(listbox), "active"); + g_object_notify(G_OBJECT(listbox), "active-key"); + return; + } + } } /** @@ -188,11 +181,11 @@ nmt_newt_listbox_set_active_key (NmtNewtListbox *listbox, * Returns: the currently-selected row in @listbox. */ int -nmt_newt_listbox_get_active (NmtNewtListbox *listbox) +nmt_newt_listbox_get_active(NmtNewtListbox *listbox) { - NmtNewtListboxPrivate *priv = NMT_NEWT_LISTBOX_GET_PRIVATE (listbox); + NmtNewtListboxPrivate *priv = NMT_NEWT_LISTBOX_GET_PRIVATE(listbox); - return priv->active; + return priv->active; } /** @@ -204,11 +197,11 @@ nmt_newt_listbox_get_active (NmtNewtListbox *listbox) * Returns: the key of the currently-selected row in @listbox. */ gpointer -nmt_newt_listbox_get_active_key (NmtNewtListbox *listbox) +nmt_newt_listbox_get_active_key(NmtNewtListbox *listbox) { - NmtNewtListboxPrivate *priv = NMT_NEWT_LISTBOX_GET_PRIVATE (listbox); + NmtNewtListboxPrivate *priv = NMT_NEWT_LISTBOX_GET_PRIVATE(listbox); - return priv->active_key; + return priv->active_key; } /** @@ -219,317 +212,307 @@ nmt_newt_listbox_get_active_key (NmtNewtListbox *listbox) * Updates @listbox's height. */ void -nmt_newt_listbox_set_height (NmtNewtListbox *listbox, - int height) +nmt_newt_listbox_set_height(NmtNewtListbox *listbox, int height) { - NmtNewtListboxPrivate *priv = NMT_NEWT_LISTBOX_GET_PRIVATE (listbox); + NmtNewtListboxPrivate *priv = NMT_NEWT_LISTBOX_GET_PRIVATE(listbox); - priv->height = height; - priv->fixed_height = priv->height != 0; - g_object_notify (G_OBJECT (listbox), "height"); + priv->height = height; + priv->fixed_height = priv->height != 0; + g_object_notify(G_OBJECT(listbox), "height"); } static void -nmt_newt_listbox_init (NmtNewtListbox *listbox) +nmt_newt_listbox_init(NmtNewtListbox *listbox) { - NmtNewtListboxPrivate *priv = NMT_NEWT_LISTBOX_GET_PRIVATE (listbox); + NmtNewtListboxPrivate *priv = NMT_NEWT_LISTBOX_GET_PRIVATE(listbox); - priv->entries = g_ptr_array_new_with_free_func (g_free); - priv->keys = g_ptr_array_new (); + priv->entries = g_ptr_array_new_with_free_func(g_free); + priv->keys = g_ptr_array_new(); - priv->active = -1; + priv->active = -1; } static void -nmt_newt_listbox_finalize (GObject *object) +nmt_newt_listbox_finalize(GObject *object) { - NmtNewtListboxPrivate *priv = NMT_NEWT_LISTBOX_GET_PRIVATE (object); + NmtNewtListboxPrivate *priv = NMT_NEWT_LISTBOX_GET_PRIVATE(object); - g_ptr_array_unref (priv->entries); - g_ptr_array_unref (priv->keys); + g_ptr_array_unref(priv->entries); + g_ptr_array_unref(priv->keys); - G_OBJECT_CLASS (nmt_newt_listbox_parent_class)->finalize (object); + G_OBJECT_CLASS(nmt_newt_listbox_parent_class)->finalize(object); } static void -nmt_newt_listbox_size_request (NmtNewtWidget *widget, - int *width, - int *height) +nmt_newt_listbox_size_request(NmtNewtWidget *widget, int *width, int *height) { - NmtNewtListboxPrivate *priv = NMT_NEWT_LISTBOX_GET_PRIVATE (widget); + NmtNewtListboxPrivate *priv = NMT_NEWT_LISTBOX_GET_PRIVATE(widget); - NMT_NEWT_WIDGET_CLASS (nmt_newt_listbox_parent_class)-> - size_request (widget, width, height); + NMT_NEWT_WIDGET_CLASS(nmt_newt_listbox_parent_class)->size_request(widget, width, height); - priv->alloc_height = -1; - if (!priv->fixed_height) - *height = 1; - priv->width = *width; + priv->alloc_height = -1; + if (!priv->fixed_height) + *height = 1; + priv->width = *width; } static void -nmt_newt_listbox_size_allocate (NmtNewtWidget *widget, - int x, - int y, - int width, - int height) +nmt_newt_listbox_size_allocate(NmtNewtWidget *widget, int x, int y, int width, int height) { - NmtNewtListboxPrivate *priv = NMT_NEWT_LISTBOX_GET_PRIVATE (widget); + NmtNewtListboxPrivate *priv = NMT_NEWT_LISTBOX_GET_PRIVATE(widget); - if (width > priv->width) { - newtListboxSetWidth (nmt_newt_component_get_component (NMT_NEWT_COMPONENT (widget)), - width); - } + if (width > priv->width) { + newtListboxSetWidth(nmt_newt_component_get_component(NMT_NEWT_COMPONENT(widget)), width); + } - NMT_NEWT_WIDGET_CLASS (nmt_newt_listbox_parent_class)-> - size_allocate (widget, x, y, width, height); + NMT_NEWT_WIDGET_CLASS(nmt_newt_listbox_parent_class) + ->size_allocate(widget, x, y, width, height); - priv->alloc_height = height; + priv->alloc_height = height; - if (!priv->fixed_height && height != priv->height) { - priv->height = height; - nmt_newt_widget_needs_rebuild (widget); - } + if (!priv->fixed_height && height != priv->height) { + priv->height = height; + nmt_newt_widget_needs_rebuild(widget); + } } static void -update_active_internal (NmtNewtListbox *listbox, - int new_active) +update_active_internal(NmtNewtListbox *listbox, int new_active) { - NmtNewtListboxPrivate *priv = NMT_NEWT_LISTBOX_GET_PRIVATE (listbox); - - if (priv->active == new_active) - return; - if (new_active >= priv->keys->len) - return; - - if (priv->skip_null_keys && !priv->keys->pdata[new_active]) { - if (new_active > priv->active) { - while ( new_active < priv->entries->len - && !priv->keys->pdata[new_active]) - new_active++; - } else { - while ( new_active >= 0 - && !priv->keys->pdata[new_active]) - new_active--; - } - - if ( new_active < 0 - || new_active >= priv->entries->len - || !priv->keys->pdata[new_active]) { - g_assert (priv->active >= 0 && priv->active < priv->entries->len); - return; - } - } - - nmt_newt_listbox_set_active (listbox, new_active); + NmtNewtListboxPrivate *priv = NMT_NEWT_LISTBOX_GET_PRIVATE(listbox); + + if (priv->active == new_active) + return; + if (new_active >= priv->keys->len) + return; + + if (priv->skip_null_keys && !priv->keys->pdata[new_active]) { + if (new_active > priv->active) { + while (new_active < priv->entries->len && !priv->keys->pdata[new_active]) + new_active++; + } else { + while (new_active >= 0 && !priv->keys->pdata[new_active]) + new_active--; + } + + if (new_active < 0 || new_active >= priv->entries->len || !priv->keys->pdata[new_active]) { + g_assert(priv->active >= 0 && priv->active < priv->entries->len); + return; + } + } + + nmt_newt_listbox_set_active(listbox, new_active); } static void -selection_changed_callback (newtComponent co, - void *user_data) +selection_changed_callback(newtComponent co, void *user_data) { - NmtNewtListbox *listbox = user_data; - NmtNewtListboxPrivate *priv = NMT_NEWT_LISTBOX_GET_PRIVATE (listbox); - int new_active; + NmtNewtListbox * listbox = user_data; + NmtNewtListboxPrivate *priv = NMT_NEWT_LISTBOX_GET_PRIVATE(listbox); + int new_active; - new_active = GPOINTER_TO_UINT (newtListboxGetCurrent (co)); - update_active_internal (listbox, new_active); + new_active = GPOINTER_TO_UINT(newtListboxGetCurrent(co)); + update_active_internal(listbox, new_active); - if (priv->active != new_active) - newtListboxSetCurrent (co, priv->active); + if (priv->active != new_active) + newtListboxSetCurrent(co, priv->active); } static guint -convert_flags (NmtNewtListboxFlags flags) +convert_flags(NmtNewtListboxFlags flags) { - guint newt_flags = NEWT_FLAG_RETURNEXIT; + guint newt_flags = NEWT_FLAG_RETURNEXIT; - if (flags & NMT_NEWT_LISTBOX_SCROLL) - newt_flags |= NEWT_FLAG_SCROLL; - if (flags & NMT_NEWT_LISTBOX_BORDER) - newt_flags |= NEWT_FLAG_BORDER; + if (flags & NMT_NEWT_LISTBOX_SCROLL) + newt_flags |= NEWT_FLAG_SCROLL; + if (flags & NMT_NEWT_LISTBOX_BORDER) + newt_flags |= NEWT_FLAG_BORDER; - return newt_flags; + return newt_flags; } static newtComponent -nmt_newt_listbox_build_component (NmtNewtComponent *component, - gboolean sensitive) +nmt_newt_listbox_build_component(NmtNewtComponent *component, gboolean sensitive) { - NmtNewtListboxPrivate *priv = NMT_NEWT_LISTBOX_GET_PRIVATE (component); - newtComponent co; - int i, active; + NmtNewtListboxPrivate *priv = NMT_NEWT_LISTBOX_GET_PRIVATE(component); + newtComponent co; + int i, active; - if (priv->active == -1) - update_active_internal (NMT_NEWT_LISTBOX (component), 0); - active = priv->active; + if (priv->active == -1) + update_active_internal(NMT_NEWT_LISTBOX(component), 0); + active = priv->active; - co = newtListbox (-1, -1, priv->height, convert_flags (priv->flags)); - newtComponentAddCallback (co, selection_changed_callback, component); + co = newtListbox(-1, -1, priv->height, convert_flags(priv->flags)); + newtComponentAddCallback(co, selection_changed_callback, component); - for (i = 0; i < priv->entries->len; i++) { - newtListboxAppendEntry (co, priv->entries->pdata[i], GUINT_TO_POINTER (i)); - if (active == -1 && priv->keys->pdata[i] == priv->active_key) - active = i; - } + for (i = 0; i < priv->entries->len; i++) { + newtListboxAppendEntry(co, priv->entries->pdata[i], GUINT_TO_POINTER(i)); + if (active == -1 && priv->keys->pdata[i] == priv->active_key) + active = i; + } - if (active != -1) - newtListboxSetCurrent (co, active); + if (active != -1) + newtListboxSetCurrent(co, active); - return co; + return co; } static void -nmt_newt_listbox_activated (NmtNewtWidget *widget) +nmt_newt_listbox_activated(NmtNewtWidget *widget) { - NmtNewtListbox *listbox = NMT_NEWT_LISTBOX (widget); - newtComponent co = nmt_newt_component_get_component (NMT_NEWT_COMPONENT (widget)); + NmtNewtListbox *listbox = NMT_NEWT_LISTBOX(widget); + newtComponent co = nmt_newt_component_get_component(NMT_NEWT_COMPONENT(widget)); - nmt_newt_listbox_set_active (listbox, GPOINTER_TO_UINT (newtListboxGetCurrent (co))); + nmt_newt_listbox_set_active(listbox, GPOINTER_TO_UINT(newtListboxGetCurrent(co))); - NMT_NEWT_WIDGET_CLASS (nmt_newt_listbox_parent_class)->activated (widget); + NMT_NEWT_WIDGET_CLASS(nmt_newt_listbox_parent_class)->activated(widget); } static void -nmt_newt_listbox_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) +nmt_newt_listbox_set_property(GObject * object, + guint prop_id, + const GValue *value, + GParamSpec * pspec) { - NmtNewtListbox *listbox = NMT_NEWT_LISTBOX (object); - NmtNewtListboxPrivate *priv = NMT_NEWT_LISTBOX_GET_PRIVATE (object); - - switch (prop_id) { - case PROP_HEIGHT: - priv->height = g_value_get_int (value); - priv->fixed_height = (priv->height != 0); - break; - case PROP_FLAGS: - priv->flags = g_value_get_uint (value); - break; - case PROP_ACTIVE: - nmt_newt_listbox_set_active (listbox, g_value_get_int (value)); - break; - case PROP_ACTIVE_KEY: - nmt_newt_listbox_set_active_key (listbox, g_value_get_pointer (value)); - break; - case PROP_SKIP_NULL_KEYS: - priv->skip_null_keys = g_value_get_boolean (value); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtNewtListbox * listbox = NMT_NEWT_LISTBOX(object); + NmtNewtListboxPrivate *priv = NMT_NEWT_LISTBOX_GET_PRIVATE(object); + + switch (prop_id) { + case PROP_HEIGHT: + priv->height = g_value_get_int(value); + priv->fixed_height = (priv->height != 0); + break; + case PROP_FLAGS: + priv->flags = g_value_get_uint(value); + break; + case PROP_ACTIVE: + nmt_newt_listbox_set_active(listbox, g_value_get_int(value)); + break; + case PROP_ACTIVE_KEY: + nmt_newt_listbox_set_active_key(listbox, g_value_get_pointer(value)); + break; + case PROP_SKIP_NULL_KEYS: + priv->skip_null_keys = g_value_get_boolean(value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_newt_listbox_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) +nmt_newt_listbox_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - NmtNewtListboxPrivate *priv = NMT_NEWT_LISTBOX_GET_PRIVATE (object); - - switch (prop_id) { - case PROP_HEIGHT: - g_value_set_int (value, priv->height); - break; - case PROP_FLAGS: - g_value_set_uint (value, priv->flags); - break; - case PROP_ACTIVE: - g_value_set_int (value, priv->active); - break; - case PROP_ACTIVE_KEY: - g_value_set_pointer (value, priv->active_key); - break; - case PROP_SKIP_NULL_KEYS: - g_value_set_boolean (value, priv->skip_null_keys); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtNewtListboxPrivate *priv = NMT_NEWT_LISTBOX_GET_PRIVATE(object); + + switch (prop_id) { + case PROP_HEIGHT: + g_value_set_int(value, priv->height); + break; + case PROP_FLAGS: + g_value_set_uint(value, priv->flags); + break; + case PROP_ACTIVE: + g_value_set_int(value, priv->active); + break; + case PROP_ACTIVE_KEY: + g_value_set_pointer(value, priv->active_key); + break; + case PROP_SKIP_NULL_KEYS: + g_value_set_boolean(value, priv->skip_null_keys); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_newt_listbox_class_init (NmtNewtListboxClass *listbox_class) +nmt_newt_listbox_class_init(NmtNewtListboxClass *listbox_class) { - GObjectClass *object_class = G_OBJECT_CLASS (listbox_class); - NmtNewtWidgetClass *widget_class = NMT_NEWT_WIDGET_CLASS (listbox_class); - NmtNewtComponentClass *component_class = NMT_NEWT_COMPONENT_CLASS (listbox_class); + GObjectClass * object_class = G_OBJECT_CLASS(listbox_class); + NmtNewtWidgetClass * widget_class = NMT_NEWT_WIDGET_CLASS(listbox_class); + NmtNewtComponentClass *component_class = NMT_NEWT_COMPONENT_CLASS(listbox_class); - g_type_class_add_private (listbox_class, sizeof (NmtNewtListboxPrivate)); + g_type_class_add_private(listbox_class, sizeof(NmtNewtListboxPrivate)); - /* virtual methods */ - object_class->set_property = nmt_newt_listbox_set_property; - object_class->get_property = nmt_newt_listbox_get_property; - object_class->finalize = nmt_newt_listbox_finalize; + /* virtual methods */ + object_class->set_property = nmt_newt_listbox_set_property; + object_class->get_property = nmt_newt_listbox_get_property; + object_class->finalize = nmt_newt_listbox_finalize; - widget_class->size_request = nmt_newt_listbox_size_request; - widget_class->size_allocate = nmt_newt_listbox_size_allocate; - widget_class->activated = nmt_newt_listbox_activated; + widget_class->size_request = nmt_newt_listbox_size_request; + widget_class->size_allocate = nmt_newt_listbox_size_allocate; + widget_class->activated = nmt_newt_listbox_activated; - component_class->build_component = nmt_newt_listbox_build_component; + component_class->build_component = nmt_newt_listbox_build_component; - /* properties */ + /* properties */ - /** + /** * NmtNewtListbox:height: * * The listbox's height, or -1 if it has no fixed height. */ - g_object_class_install_property - (object_class, PROP_HEIGHT, - g_param_spec_int ("height", "", "", - -1, 255, -1, - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS)); - /** + g_object_class_install_property(object_class, + PROP_HEIGHT, + g_param_spec_int("height", + "", + "", + -1, + 255, + -1, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** * NmtNewtListbox:flags: * * The listbox's #NmtNewtListboxFlags. */ - g_object_class_install_property - (object_class, PROP_FLAGS, - g_param_spec_uint ("flags", "", "", - 0, 0xFFFF, 0, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); - /** + g_object_class_install_property( + object_class, + PROP_FLAGS, + g_param_spec_uint("flags", + "", + "", + 0, + 0xFFFF, + 0, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); + /** * NmtNewtListbox:active: * * The currently-selected row. */ - g_object_class_install_property - (object_class, PROP_ACTIVE, - g_param_spec_int ("active", "", "", - 0, G_MAXINT, 0, - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS)); - /** + g_object_class_install_property(object_class, + PROP_ACTIVE, + g_param_spec_int("active", + "", + "", + 0, + G_MAXINT, + 0, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** * NmtNewtListbox:active-key: * * The key of the currently-selected row. */ - g_object_class_install_property - (object_class, PROP_ACTIVE_KEY, - g_param_spec_pointer ("active-key", "", "", - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS)); - /** + g_object_class_install_property( + object_class, + PROP_ACTIVE_KEY, + g_param_spec_pointer("active-key", "", "", G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** * NmtNewtListbox:skip-null-keys: * * If %TRUE, rows with %NULL key values will be skipped over when * navigating the list with the arrow keys. */ - g_object_class_install_property - (object_class, PROP_SKIP_NULL_KEYS, - g_param_spec_boolean ("skip-null-keys", "", "", - FALSE, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); + g_object_class_install_property( + object_class, + PROP_SKIP_NULL_KEYS, + g_param_spec_boolean("skip-null-keys", + "", + "", + FALSE, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); } diff --git a/clients/tui/newt/nmt-newt-listbox.h b/clients/tui/newt/nmt-newt-listbox.h index 4783eb96ff..2e2c47fb55 100644 --- a/clients/tui/newt/nmt-newt-listbox.h +++ b/clients/tui/newt/nmt-newt-listbox.h @@ -8,47 +8,43 @@ #include "nmt-newt-component.h" -#define NMT_TYPE_NEWT_LISTBOX (nmt_newt_listbox_get_type ()) -#define NMT_NEWT_LISTBOX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NMT_TYPE_NEWT_LISTBOX, NmtNewtListbox)) -#define NMT_NEWT_LISTBOX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NMT_TYPE_NEWT_LISTBOX, NmtNewtListboxClass)) -#define NMT_IS_NEWT_LISTBOX(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NMT_TYPE_NEWT_LISTBOX)) -#define NMT_IS_NEWT_LISTBOX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NMT_TYPE_NEWT_LISTBOX)) -#define NMT_NEWT_LISTBOX_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NMT_TYPE_NEWT_LISTBOX, NmtNewtListboxClass)) +#define NMT_TYPE_NEWT_LISTBOX (nmt_newt_listbox_get_type()) +#define NMT_NEWT_LISTBOX(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), NMT_TYPE_NEWT_LISTBOX, NmtNewtListbox)) +#define NMT_NEWT_LISTBOX_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), NMT_TYPE_NEWT_LISTBOX, NmtNewtListboxClass)) +#define NMT_IS_NEWT_LISTBOX(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), NMT_TYPE_NEWT_LISTBOX)) +#define NMT_IS_NEWT_LISTBOX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), NMT_TYPE_NEWT_LISTBOX)) +#define NMT_NEWT_LISTBOX_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), NMT_TYPE_NEWT_LISTBOX, NmtNewtListboxClass)) struct _NmtNewtListbox { - NmtNewtComponent parent; - + NmtNewtComponent parent; }; typedef struct { - NmtNewtComponentClass parent; + NmtNewtComponentClass parent; } NmtNewtListboxClass; -GType nmt_newt_listbox_get_type (void); +GType nmt_newt_listbox_get_type(void); typedef enum { - NMT_NEWT_LISTBOX_SCROLL = (1 << 0), - NMT_NEWT_LISTBOX_BORDER = (1 << 1) + NMT_NEWT_LISTBOX_SCROLL = (1 << 0), + NMT_NEWT_LISTBOX_BORDER = (1 << 1) } NmtNewtListboxFlags; -NmtNewtWidget *nmt_newt_listbox_new (int height, - NmtNewtListboxFlags flags); +NmtNewtWidget *nmt_newt_listbox_new(int height, NmtNewtListboxFlags flags); -void nmt_newt_listbox_set_height (NmtNewtListbox *listbox, - int height); +void nmt_newt_listbox_set_height(NmtNewtListbox *listbox, int height); -void nmt_newt_listbox_append (NmtNewtListbox *listbox, - const char *entry, - gpointer key); -void nmt_newt_listbox_clear (NmtNewtListbox *listbox); +void nmt_newt_listbox_append(NmtNewtListbox *listbox, const char *entry, gpointer key); +void nmt_newt_listbox_clear(NmtNewtListbox *listbox); -void nmt_newt_listbox_set_active (NmtNewtListbox *listbox, - int active); -void nmt_newt_listbox_set_active_key (NmtNewtListbox *listbox, - gpointer active_key); +void nmt_newt_listbox_set_active(NmtNewtListbox *listbox, int active); +void nmt_newt_listbox_set_active_key(NmtNewtListbox *listbox, gpointer active_key); -int nmt_newt_listbox_get_active (NmtNewtListbox *listbox); -gpointer nmt_newt_listbox_get_active_key (NmtNewtListbox *listbox); +int nmt_newt_listbox_get_active(NmtNewtListbox *listbox); +gpointer nmt_newt_listbox_get_active_key(NmtNewtListbox *listbox); #endif /* NMT_NEWT_LISTBOX_H */ diff --git a/clients/tui/newt/nmt-newt-popup.c b/clients/tui/newt/nmt-newt-popup.c index 08860aec14..1c1175fd2b 100644 --- a/clients/tui/newt/nmt-newt-popup.c +++ b/clients/tui/newt/nmt-newt-popup.c @@ -21,21 +21,22 @@ #include "nmt-newt-listbox.h" #include "nmt-newt-utils.h" -G_DEFINE_TYPE (NmtNewtPopup, nmt_newt_popup, NMT_TYPE_NEWT_BUTTON) +G_DEFINE_TYPE(NmtNewtPopup, nmt_newt_popup, NMT_TYPE_NEWT_BUTTON) -#define NMT_NEWT_POPUP_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NMT_TYPE_NEWT_POPUP, NmtNewtPopupPrivate)) +#define NMT_NEWT_POPUP_GET_PRIVATE(o) \ + (G_TYPE_INSTANCE_GET_PRIVATE((o), NMT_TYPE_NEWT_POPUP, NmtNewtPopupPrivate)) typedef struct { - GArray *entries; - int active; + GArray *entries; + int active; } NmtNewtPopupPrivate; enum { - PROP_0, - PROP_ACTIVE, - PROP_ACTIVE_ID, + PROP_0, + PROP_ACTIVE, + PROP_ACTIVE_ID, - LAST_PROP + LAST_PROP }; /** @@ -56,93 +57,89 @@ enum { * Returns: a new #NmtNewtPopup */ NmtNewtWidget * -nmt_newt_popup_new (NmtNewtPopupEntry *entries) +nmt_newt_popup_new(NmtNewtPopupEntry *entries) { - NmtNewtWidget *widget; - NmtNewtPopupPrivate *priv; - int i; + NmtNewtWidget * widget; + NmtNewtPopupPrivate *priv; + int i; - widget = g_object_new (NMT_TYPE_NEWT_POPUP, NULL); - priv = NMT_NEWT_POPUP_GET_PRIVATE (widget); + widget = g_object_new(NMT_TYPE_NEWT_POPUP, NULL); + priv = NMT_NEWT_POPUP_GET_PRIVATE(widget); - for (i = 0; entries[i].label; i++) { - NmtNewtPopupEntry entry; + for (i = 0; entries[i].label; i++) { + NmtNewtPopupEntry entry; - entry.label = nmt_newt_locale_from_utf8 (_(entries[i].label)); - entry.id = g_strdup (entries[i].id); - g_array_append_val (priv->entries, entry); - } + entry.label = nmt_newt_locale_from_utf8(_(entries[i].label)); + entry.id = g_strdup(entries[i].id); + g_array_append_val(priv->entries, entry); + } - return widget; + return widget; } static void -popup_entry_clear_func (NmtNewtPopupEntry *entry) +popup_entry_clear_func(NmtNewtPopupEntry *entry) { - g_free (entry->label); - g_free (entry->id); + g_free(entry->label); + g_free(entry->id); } static void -nmt_newt_popup_init (NmtNewtPopup *popup) +nmt_newt_popup_init(NmtNewtPopup *popup) { - NmtNewtPopupPrivate *priv = NMT_NEWT_POPUP_GET_PRIVATE (popup); + NmtNewtPopupPrivate *priv = NMT_NEWT_POPUP_GET_PRIVATE(popup); - priv->entries = g_array_sized_new (FALSE, FALSE, sizeof (NmtNewtPopupEntry), 10); - g_array_set_clear_func (priv->entries, (GDestroyNotify) popup_entry_clear_func); + priv->entries = g_array_sized_new(FALSE, FALSE, sizeof(NmtNewtPopupEntry), 10); + g_array_set_clear_func(priv->entries, (GDestroyNotify) popup_entry_clear_func); } static void -nmt_newt_popup_finalize (GObject *object) +nmt_newt_popup_finalize(GObject *object) { - NmtNewtPopupPrivate *priv = NMT_NEWT_POPUP_GET_PRIVATE (object); + NmtNewtPopupPrivate *priv = NMT_NEWT_POPUP_GET_PRIVATE(object); - g_array_unref (priv->entries); + g_array_unref(priv->entries); - G_OBJECT_CLASS (nmt_newt_popup_parent_class)->finalize (object); + G_OBJECT_CLASS(nmt_newt_popup_parent_class)->finalize(object); } static newtComponent -nmt_newt_popup_build_component (NmtNewtComponent *component, - gboolean sensitive) +nmt_newt_popup_build_component(NmtNewtComponent *component, gboolean sensitive) { - NmtNewtPopupPrivate *priv = NMT_NEWT_POPUP_GET_PRIVATE (component); - NmtNewtPopupEntry *entries = (NmtNewtPopupEntry *)priv->entries->data; + NmtNewtPopupPrivate *priv = NMT_NEWT_POPUP_GET_PRIVATE(component); + NmtNewtPopupEntry * entries = (NmtNewtPopupEntry *) priv->entries->data; - nmt_newt_button_set_label (NMT_NEWT_BUTTON (component), - entries[priv->active].label); - return NMT_NEWT_COMPONENT_CLASS (nmt_newt_popup_parent_class)-> - build_component (component, sensitive); + nmt_newt_button_set_label(NMT_NEWT_BUTTON(component), entries[priv->active].label); + return NMT_NEWT_COMPONENT_CLASS(nmt_newt_popup_parent_class) + ->build_component(component, sensitive); } static void -nmt_newt_popup_activated (NmtNewtWidget *widget) +nmt_newt_popup_activated(NmtNewtWidget *widget) { - NmtNewtPopupPrivate *priv = NMT_NEWT_POPUP_GET_PRIVATE (widget); - NmtNewtPopupEntry *entries = (NmtNewtPopupEntry *)priv->entries->data; - NmtNewtForm *form; - NmtNewtWidget *listbox, *ret; - int button_x, button_y; - int window_x, window_y; - int list_w, list_h; - int i, active; - - listbox = nmt_newt_listbox_new (priv->entries->len, 0); - nmt_newt_widget_set_exit_on_activate (listbox, TRUE); - for (i = 0; i < priv->entries->len; i++) - nmt_newt_listbox_append (NMT_NEWT_LISTBOX (listbox), entries[i].label, NULL); - nmt_newt_listbox_set_active (NMT_NEWT_LISTBOX (listbox), priv->active); - nmt_newt_widget_set_padding (listbox, 1, 0, 1, 0); - - nmt_newt_widget_size_request (listbox, &list_w, &list_h); - - g_object_get (nmt_newt_widget_get_form (widget), - "x", &window_x, - "y", &window_y, - NULL); - newtComponentGetPosition (nmt_newt_component_get_component (NMT_NEWT_COMPONENT (widget)), - &button_x, &button_y); - /* (window_x + button_x) is the screen X coordinate of the newtComponent. A + NmtNewtPopupPrivate *priv = NMT_NEWT_POPUP_GET_PRIVATE(widget); + NmtNewtPopupEntry * entries = (NmtNewtPopupEntry *) priv->entries->data; + NmtNewtForm * form; + NmtNewtWidget * listbox, *ret; + int button_x, button_y; + int window_x, window_y; + int list_w, list_h; + int i, active; + + listbox = nmt_newt_listbox_new(priv->entries->len, 0); + nmt_newt_widget_set_exit_on_activate(listbox, TRUE); + for (i = 0; i < priv->entries->len; i++) + nmt_newt_listbox_append(NMT_NEWT_LISTBOX(listbox), entries[i].label, NULL); + nmt_newt_listbox_set_active(NMT_NEWT_LISTBOX(listbox), priv->active); + nmt_newt_widget_set_padding(listbox, 1, 0, 1, 0); + + nmt_newt_widget_size_request(listbox, &list_w, &list_h); + + g_object_get(nmt_newt_widget_get_form(widget), "x", &window_x, "y", &window_y, NULL); + newtComponentGetPosition(nmt_newt_component_get_component(NMT_NEWT_COMPONENT(widget)), + &button_x, + &button_y); + /* (window_x + button_x) is the screen X coordinate of the newtComponent. A * newtButton labelled "Foo" is rendered as " <Foo>" (with a preceding * space), so the "F" is at (window_x + button_x + 2). We've added 1 column * of padding to the left of the listbox, so we need to position the popup @@ -151,35 +148,41 @@ nmt_newt_popup_activated (NmtNewtWidget *widget) * coordinates of the top left of the window content, ignoring the border * graphics.) */ - window_x += button_x + 1; - window_y += button_y - priv->active; - - form = g_object_new (NMT_TYPE_NEWT_FORM, - "x", window_x, - "y", window_y, - "width", list_w, - "height", list_h, - "padding", 0, - "escape-exits", TRUE, - NULL); - nmt_newt_form_set_content (form, listbox); - - ret = nmt_newt_form_run_sync (form); - if (ret == listbox) - active = nmt_newt_listbox_get_active (NMT_NEWT_LISTBOX (listbox)); - else - active = priv->active; - - g_object_unref (form); - - if (active != priv->active) { - priv->active = active; - g_object_notify (G_OBJECT (widget), "active"); - g_object_notify (G_OBJECT (widget), "active-id"); - nmt_newt_widget_needs_rebuild (widget); - } - - NMT_NEWT_WIDGET_CLASS (nmt_newt_popup_parent_class)->activated (widget); + window_x += button_x + 1; + window_y += button_y - priv->active; + + form = g_object_new(NMT_TYPE_NEWT_FORM, + "x", + window_x, + "y", + window_y, + "width", + list_w, + "height", + list_h, + "padding", + 0, + "escape-exits", + TRUE, + NULL); + nmt_newt_form_set_content(form, listbox); + + ret = nmt_newt_form_run_sync(form); + if (ret == listbox) + active = nmt_newt_listbox_get_active(NMT_NEWT_LISTBOX(listbox)); + else + active = priv->active; + + g_object_unref(form); + + if (active != priv->active) { + priv->active = active; + g_object_notify(G_OBJECT(widget), "active"); + g_object_notify(G_OBJECT(widget), "active-id"); + nmt_newt_widget_needs_rebuild(widget); + } + + NMT_NEWT_WIDGET_CLASS(nmt_newt_popup_parent_class)->activated(widget); } /** @@ -191,11 +194,11 @@ nmt_newt_popup_activated (NmtNewtWidget *widget) * Returns: the index of the active entry in @popup. */ int -nmt_newt_popup_get_active (NmtNewtPopup *popup) +nmt_newt_popup_get_active(NmtNewtPopup *popup) { - NmtNewtPopupPrivate *priv = NMT_NEWT_POPUP_GET_PRIVATE (popup); + NmtNewtPopupPrivate *priv = NMT_NEWT_POPUP_GET_PRIVATE(popup); - return priv->active; + return priv->active; } /** @@ -206,18 +209,17 @@ nmt_newt_popup_get_active (NmtNewtPopup *popup) * Sets the active entry in @popup. */ void -nmt_newt_popup_set_active (NmtNewtPopup *popup, - int active) +nmt_newt_popup_set_active(NmtNewtPopup *popup, int active) { - NmtNewtPopupPrivate *priv = NMT_NEWT_POPUP_GET_PRIVATE (popup); + NmtNewtPopupPrivate *priv = NMT_NEWT_POPUP_GET_PRIVATE(popup); - active = CLAMP (active, 0, priv->entries->len - 1); + active = CLAMP(active, 0, priv->entries->len - 1); - if (active != priv->active) { - priv->active = active; - g_object_notify (G_OBJECT (popup), "active"); - g_object_notify (G_OBJECT (popup), "active-id"); - } + if (active != priv->active) { + priv->active = active; + g_object_notify(G_OBJECT(popup), "active"); + g_object_notify(G_OBJECT(popup), "active-id"); + } } /** @@ -229,12 +231,12 @@ nmt_newt_popup_set_active (NmtNewtPopup *popup, * Returns: the ID of the active entry in @popup. */ const char * -nmt_newt_popup_get_active_id (NmtNewtPopup *popup) +nmt_newt_popup_get_active_id(NmtNewtPopup *popup) { - NmtNewtPopupPrivate *priv = NMT_NEWT_POPUP_GET_PRIVATE (popup); - NmtNewtPopupEntry *entries = (NmtNewtPopupEntry *)priv->entries->data; + NmtNewtPopupPrivate *priv = NMT_NEWT_POPUP_GET_PRIVATE(popup); + NmtNewtPopupEntry * entries = (NmtNewtPopupEntry *) priv->entries->data; - return entries[priv->active].id; + return entries[priv->active].id; } /** @@ -245,101 +247,95 @@ nmt_newt_popup_get_active_id (NmtNewtPopup *popup) * Sets the active entry in @popup. */ void -nmt_newt_popup_set_active_id (NmtNewtPopup *popup, - const char *active_id) +nmt_newt_popup_set_active_id(NmtNewtPopup *popup, const char *active_id) { - NmtNewtPopupPrivate *priv = NMT_NEWT_POPUP_GET_PRIVATE (popup); - NmtNewtPopupEntry *entries = (NmtNewtPopupEntry *)priv->entries->data; - int i; - - for (i = 0; i < priv->entries->len; i++) { - if (!g_strcmp0 (active_id, entries[i].id)) { - nmt_newt_popup_set_active (popup, i); - return; - } - } + NmtNewtPopupPrivate *priv = NMT_NEWT_POPUP_GET_PRIVATE(popup); + NmtNewtPopupEntry * entries = (NmtNewtPopupEntry *) priv->entries->data; + int i; + + for (i = 0; i < priv->entries->len; i++) { + if (!g_strcmp0(active_id, entries[i].id)) { + nmt_newt_popup_set_active(popup, i); + return; + } + } } static void -nmt_newt_popup_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) +nmt_newt_popup_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { - NmtNewtPopup *popup = NMT_NEWT_POPUP (object); - - switch (prop_id) { - case PROP_ACTIVE: - nmt_newt_popup_set_active (popup, g_value_get_uint (value)); - break; - case PROP_ACTIVE_ID: - nmt_newt_popup_set_active_id (popup, g_value_get_string (value)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtNewtPopup *popup = NMT_NEWT_POPUP(object); + + switch (prop_id) { + case PROP_ACTIVE: + nmt_newt_popup_set_active(popup, g_value_get_uint(value)); + break; + case PROP_ACTIVE_ID: + nmt_newt_popup_set_active_id(popup, g_value_get_string(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_newt_popup_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) +nmt_newt_popup_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - NmtNewtPopup *popup = NMT_NEWT_POPUP (object); - - switch (prop_id) { - case PROP_ACTIVE: - g_value_set_uint (value, nmt_newt_popup_get_active (popup)); - break; - case PROP_ACTIVE_ID: - g_value_set_string (value, nmt_newt_popup_get_active_id (popup)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtNewtPopup *popup = NMT_NEWT_POPUP(object); + + switch (prop_id) { + case PROP_ACTIVE: + g_value_set_uint(value, nmt_newt_popup_get_active(popup)); + break; + case PROP_ACTIVE_ID: + g_value_set_string(value, nmt_newt_popup_get_active_id(popup)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_newt_popup_class_init (NmtNewtPopupClass *popup_class) +nmt_newt_popup_class_init(NmtNewtPopupClass *popup_class) { - GObjectClass *object_class = G_OBJECT_CLASS (popup_class); - NmtNewtWidgetClass *widget_class = NMT_NEWT_WIDGET_CLASS (popup_class); - NmtNewtComponentClass *component_class = NMT_NEWT_COMPONENT_CLASS (popup_class); + GObjectClass * object_class = G_OBJECT_CLASS(popup_class); + NmtNewtWidgetClass * widget_class = NMT_NEWT_WIDGET_CLASS(popup_class); + NmtNewtComponentClass *component_class = NMT_NEWT_COMPONENT_CLASS(popup_class); - g_type_class_add_private (popup_class, sizeof (NmtNewtPopupPrivate)); + g_type_class_add_private(popup_class, sizeof(NmtNewtPopupPrivate)); - /* virtual methods */ - object_class->set_property = nmt_newt_popup_set_property; - object_class->get_property = nmt_newt_popup_get_property; - object_class->finalize = nmt_newt_popup_finalize; + /* virtual methods */ + object_class->set_property = nmt_newt_popup_set_property; + object_class->get_property = nmt_newt_popup_get_property; + object_class->finalize = nmt_newt_popup_finalize; - widget_class->activated = nmt_newt_popup_activated; + widget_class->activated = nmt_newt_popup_activated; - component_class->build_component = nmt_newt_popup_build_component; + component_class->build_component = nmt_newt_popup_build_component; - /** + /** * NmtNewtPopup:active: * * The index of the currently-active entry. */ - g_object_class_install_property - (object_class, PROP_ACTIVE, - g_param_spec_uint ("active", "", "", - 0, G_MAXUINT, 0, - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS)); - /** + g_object_class_install_property(object_class, + PROP_ACTIVE, + g_param_spec_uint("active", + "", + "", + 0, + G_MAXUINT, + 0, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** * NmtNewtPopup:active-id: * * The textual ID of the currently-active entry. */ - g_object_class_install_property - (object_class, PROP_ACTIVE_ID, - g_param_spec_string ("active-id", "", "", - NULL, - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS)); + g_object_class_install_property( + object_class, + PROP_ACTIVE_ID, + g_param_spec_string("active-id", "", "", NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); } diff --git a/clients/tui/newt/nmt-newt-popup.h b/clients/tui/newt/nmt-newt-popup.h index d9027b3fed..416c2441a5 100644 --- a/clients/tui/newt/nmt-newt-popup.h +++ b/clients/tui/newt/nmt-newt-popup.h @@ -8,38 +8,37 @@ #include "nmt-newt-button.h" -#define NMT_TYPE_NEWT_POPUP (nmt_newt_popup_get_type ()) -#define NMT_NEWT_POPUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NMT_TYPE_NEWT_POPUP, NmtNewtPopup)) -#define NMT_NEWT_POPUP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NMT_TYPE_NEWT_POPUP, NmtNewtPopupClass)) -#define NMT_IS_NEWT_POPUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NMT_TYPE_NEWT_POPUP)) -#define NMT_IS_NEWT_POPUP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NMT_TYPE_NEWT_POPUP)) -#define NMT_NEWT_POPUP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NMT_TYPE_NEWT_POPUP, NmtNewtPopupClass)) +#define NMT_TYPE_NEWT_POPUP (nmt_newt_popup_get_type()) +#define NMT_NEWT_POPUP(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), NMT_TYPE_NEWT_POPUP, NmtNewtPopup)) +#define NMT_NEWT_POPUP_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), NMT_TYPE_NEWT_POPUP, NmtNewtPopupClass)) +#define NMT_IS_NEWT_POPUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), NMT_TYPE_NEWT_POPUP)) +#define NMT_IS_NEWT_POPUP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), NMT_TYPE_NEWT_POPUP)) +#define NMT_NEWT_POPUP_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), NMT_TYPE_NEWT_POPUP, NmtNewtPopupClass)) struct _NmtNewtPopup { - NmtNewtButton parent; - + NmtNewtButton parent; }; typedef struct { - NmtNewtButtonClass parent; + NmtNewtButtonClass parent; } NmtNewtPopupClass; -GType nmt_newt_popup_get_type (void); +GType nmt_newt_popup_get_type(void); typedef struct { - char *label; - char *id; + char *label; + char *id; } NmtNewtPopupEntry; -NmtNewtWidget *nmt_newt_popup_new (NmtNewtPopupEntry *entries); +NmtNewtWidget *nmt_newt_popup_new(NmtNewtPopupEntry *entries); -int nmt_newt_popup_get_active (NmtNewtPopup *popup); -void nmt_newt_popup_set_active (NmtNewtPopup *popup, - int active); +int nmt_newt_popup_get_active(NmtNewtPopup *popup); +void nmt_newt_popup_set_active(NmtNewtPopup *popup, int active); -const char *nmt_newt_popup_get_active_id (NmtNewtPopup *popup); -void nmt_newt_popup_set_active_id (NmtNewtPopup *popup, - const char *active_id); +const char *nmt_newt_popup_get_active_id(NmtNewtPopup *popup); +void nmt_newt_popup_set_active_id(NmtNewtPopup *popup, const char *active_id); #endif /* NMT_NEWT_POPUP_H */ diff --git a/clients/tui/newt/nmt-newt-section.c b/clients/tui/newt/nmt-newt-section.c index 03261d505b..6f481a0679 100644 --- a/clients/tui/newt/nmt-newt-section.c +++ b/clients/tui/newt/nmt-newt-section.c @@ -30,36 +30,37 @@ #include "nmt-newt-label.h" #include "nmt-newt-utils.h" -G_DEFINE_TYPE (NmtNewtSection, nmt_newt_section, NMT_TYPE_NEWT_CONTAINER) +G_DEFINE_TYPE(NmtNewtSection, nmt_newt_section, NMT_TYPE_NEWT_CONTAINER) -#define NMT_NEWT_SECTION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NMT_TYPE_NEWT_SECTION, NmtNewtSectionPrivate)) +#define NMT_NEWT_SECTION_GET_PRIVATE(o) \ + (G_TYPE_INSTANCE_GET_PRIVATE((o), NMT_TYPE_NEWT_SECTION, NmtNewtSectionPrivate)) typedef struct { - NmtNewtWidget *header; - int hheight_req, hwidth_req; + NmtNewtWidget *header; + int hheight_req, hwidth_req; - NmtNewtWidget *body; - int bheight_req, bwidth_req; + NmtNewtWidget *body; + int bheight_req, bwidth_req; - gboolean show_border; - NmtNewtWidget *border_grid; - NmtNewtWidget *border_open_label; - NmtNewtWidget *border_closed_label; - NmtNewtWidget *border_end_label; - GPtrArray *border_line_labels; + gboolean show_border; + NmtNewtWidget *border_grid; + NmtNewtWidget *border_open_label; + NmtNewtWidget *border_closed_label; + NmtNewtWidget *border_end_label; + GPtrArray * border_line_labels; - gboolean open; + gboolean open; } NmtNewtSectionPrivate; static char *closed_glyph, *open_glyph, *line_glyph, *end_glyph; enum { - PROP_0, + PROP_0, - PROP_SHOW_BORDER, - PROP_OPEN, + PROP_SHOW_BORDER, + PROP_OPEN, - LAST_PROP + LAST_PROP }; /** @@ -71,46 +72,44 @@ enum { * Returns: a new #NmtNewtSection */ NmtNewtWidget * -nmt_newt_section_new (gboolean show_border) +nmt_newt_section_new(gboolean show_border) { - return g_object_new (NMT_TYPE_NEWT_SECTION, - "show-border", show_border, - NULL); + return g_object_new(NMT_TYPE_NEWT_SECTION, "show-border", show_border, NULL); } static void -nmt_newt_section_init (NmtNewtSection *section) +nmt_newt_section_init(NmtNewtSection *section) { - NmtNewtSectionPrivate *priv = NMT_NEWT_SECTION_GET_PRIVATE (section); - NmtNewtContainerClass *parent_class = NMT_NEWT_CONTAINER_CLASS (nmt_newt_section_parent_class); + NmtNewtSectionPrivate *priv = NMT_NEWT_SECTION_GET_PRIVATE(section); + NmtNewtContainerClass *parent_class = NMT_NEWT_CONTAINER_CLASS(nmt_newt_section_parent_class); - priv->show_border = TRUE; + priv->show_border = TRUE; - priv->border_grid = nmt_newt_grid_new (); - parent_class->add (NMT_NEWT_CONTAINER (section), priv->border_grid); + priv->border_grid = nmt_newt_grid_new(); + parent_class->add(NMT_NEWT_CONTAINER(section), priv->border_grid); - priv->border_open_label = nmt_newt_label_new (open_glyph); - nmt_newt_widget_set_visible (priv->border_open_label, FALSE); - nmt_newt_grid_add (NMT_NEWT_GRID (priv->border_grid), priv->border_open_label, 0, 0); + priv->border_open_label = nmt_newt_label_new(open_glyph); + nmt_newt_widget_set_visible(priv->border_open_label, FALSE); + nmt_newt_grid_add(NMT_NEWT_GRID(priv->border_grid), priv->border_open_label, 0, 0); - priv->border_closed_label = nmt_newt_label_new (closed_glyph); - nmt_newt_grid_add (NMT_NEWT_GRID (priv->border_grid), priv->border_closed_label, 0, 0); + priv->border_closed_label = nmt_newt_label_new(closed_glyph); + nmt_newt_grid_add(NMT_NEWT_GRID(priv->border_grid), priv->border_closed_label, 0, 0); - priv->border_end_label = nmt_newt_label_new (end_glyph); - nmt_newt_widget_set_visible (priv->border_open_label, FALSE); - nmt_newt_grid_add (NMT_NEWT_GRID (priv->border_grid), priv->border_end_label, 0, 1); + priv->border_end_label = nmt_newt_label_new(end_glyph); + nmt_newt_widget_set_visible(priv->border_open_label, FALSE); + nmt_newt_grid_add(NMT_NEWT_GRID(priv->border_grid), priv->border_end_label, 0, 1); - priv->border_line_labels = g_ptr_array_new (); + priv->border_line_labels = g_ptr_array_new(); } static void -nmt_newt_section_finalize (GObject *object) +nmt_newt_section_finalize(GObject *object) { - NmtNewtSectionPrivate *priv = NMT_NEWT_SECTION_GET_PRIVATE (object); + NmtNewtSectionPrivate *priv = NMT_NEWT_SECTION_GET_PRIVATE(object); - g_ptr_array_unref (priv->border_line_labels); + g_ptr_array_unref(priv->border_line_labels); - G_OBJECT_CLASS (nmt_newt_section_parent_class)->finalize (object); + G_OBJECT_CLASS(nmt_newt_section_parent_class)->finalize(object); } /** @@ -121,17 +120,16 @@ nmt_newt_section_finalize (GObject *object) * Sets @section's header widget. */ void -nmt_newt_section_set_header (NmtNewtSection *section, - NmtNewtWidget *header) +nmt_newt_section_set_header(NmtNewtSection *section, NmtNewtWidget *header) { - NmtNewtSectionPrivate *priv = NMT_NEWT_SECTION_GET_PRIVATE (section); - NmtNewtContainerClass *parent_class = NMT_NEWT_CONTAINER_CLASS (nmt_newt_section_parent_class); - NmtNewtContainer *container = NMT_NEWT_CONTAINER (section); - - if (priv->header) - parent_class->remove (container, priv->header); - priv->header = header; - parent_class->add (container, header); + NmtNewtSectionPrivate *priv = NMT_NEWT_SECTION_GET_PRIVATE(section); + NmtNewtContainerClass *parent_class = NMT_NEWT_CONTAINER_CLASS(nmt_newt_section_parent_class); + NmtNewtContainer * container = NMT_NEWT_CONTAINER(section); + + if (priv->header) + parent_class->remove(container, priv->header); + priv->header = header; + parent_class->add(container, header); } /** @@ -143,11 +141,11 @@ nmt_newt_section_set_header (NmtNewtSection *section, * Returns: @section's header widget. */ NmtNewtWidget * -nmt_newt_section_get_header (NmtNewtSection *section) +nmt_newt_section_get_header(NmtNewtSection *section) { - NmtNewtSectionPrivate *priv = NMT_NEWT_SECTION_GET_PRIVATE (section); + NmtNewtSectionPrivate *priv = NMT_NEWT_SECTION_GET_PRIVATE(section); - return priv->header; + return priv->header; } /** @@ -158,17 +156,16 @@ nmt_newt_section_get_header (NmtNewtSection *section) * Sets @section's body widget. */ void -nmt_newt_section_set_body (NmtNewtSection *section, - NmtNewtWidget *body) +nmt_newt_section_set_body(NmtNewtSection *section, NmtNewtWidget *body) { - NmtNewtSectionPrivate *priv = NMT_NEWT_SECTION_GET_PRIVATE (section); - NmtNewtContainerClass *parent_class = NMT_NEWT_CONTAINER_CLASS (nmt_newt_section_parent_class); - NmtNewtContainer *container = NMT_NEWT_CONTAINER (section); - - if (priv->body) - parent_class->remove (container, priv->body); - priv->body = body; - parent_class->add (container, body); + NmtNewtSectionPrivate *priv = NMT_NEWT_SECTION_GET_PRIVATE(section); + NmtNewtContainerClass *parent_class = NMT_NEWT_CONTAINER_CLASS(nmt_newt_section_parent_class); + NmtNewtContainer * container = NMT_NEWT_CONTAINER(section); + + if (priv->body) + parent_class->remove(container, priv->body); + priv->body = body; + parent_class->add(container, body); } /** @@ -180,254 +177,246 @@ nmt_newt_section_set_body (NmtNewtSection *section, * Returns: @section's body widget. */ NmtNewtWidget * -nmt_newt_section_get_body (NmtNewtSection *section) +nmt_newt_section_get_body(NmtNewtSection *section) { - NmtNewtSectionPrivate *priv = NMT_NEWT_SECTION_GET_PRIVATE (section); + NmtNewtSectionPrivate *priv = NMT_NEWT_SECTION_GET_PRIVATE(section); - return priv->body; + return priv->body; } static void -nmt_newt_section_remove (NmtNewtContainer *container, - NmtNewtWidget *widget) +nmt_newt_section_remove(NmtNewtContainer *container, NmtNewtWidget *widget) { - NmtNewtSection *section = NMT_NEWT_SECTION (container); - NmtNewtSectionPrivate *priv = NMT_NEWT_SECTION_GET_PRIVATE (section); - NmtNewtContainerClass *parent_class = NMT_NEWT_CONTAINER_CLASS (nmt_newt_section_parent_class); - - if (widget == priv->header) - priv->header = NULL; - else if (widget == priv->body) - priv->body = NULL; - else if (widget == priv->border_grid) - priv->border_grid = NULL; - - parent_class->remove (container, widget); + NmtNewtSection * section = NMT_NEWT_SECTION(container); + NmtNewtSectionPrivate *priv = NMT_NEWT_SECTION_GET_PRIVATE(section); + NmtNewtContainerClass *parent_class = NMT_NEWT_CONTAINER_CLASS(nmt_newt_section_parent_class); + + if (widget == priv->header) + priv->header = NULL; + else if (widget == priv->body) + priv->body = NULL; + else if (widget == priv->border_grid) + priv->border_grid = NULL; + + parent_class->remove(container, widget); } static newtComponent * -nmt_newt_section_get_components (NmtNewtWidget *widget) +nmt_newt_section_get_components(NmtNewtWidget *widget) { - NmtNewtSectionPrivate *priv = NMT_NEWT_SECTION_GET_PRIVATE (widget); - newtComponent *child_cos; - GPtrArray *cos; - int i; - - g_return_val_if_fail (priv->header != NULL && priv->body != NULL, NULL); - - cos = g_ptr_array_new (); - - if (priv->show_border) { - child_cos = nmt_newt_widget_get_components (priv->border_grid); - for (i = 0; child_cos[i]; i++) - g_ptr_array_add (cos, child_cos[i]); - g_free (child_cos); - } - - child_cos = nmt_newt_widget_get_components (priv->header); - for (i = 0; child_cos[i]; i++) - g_ptr_array_add (cos, child_cos[i]); - g_free (child_cos); - - if (priv->open) { - child_cos = nmt_newt_widget_get_components (priv->body); - for (i = 0; child_cos[i]; i++) - g_ptr_array_add (cos, child_cos[i]); - g_free (child_cos); - } - - g_ptr_array_add (cos, NULL); - return (newtComponent *) g_ptr_array_free (cos, FALSE); + NmtNewtSectionPrivate *priv = NMT_NEWT_SECTION_GET_PRIVATE(widget); + newtComponent * child_cos; + GPtrArray * cos; + int i; + + g_return_val_if_fail(priv->header != NULL && priv->body != NULL, NULL); + + cos = g_ptr_array_new(); + + if (priv->show_border) { + child_cos = nmt_newt_widget_get_components(priv->border_grid); + for (i = 0; child_cos[i]; i++) + g_ptr_array_add(cos, child_cos[i]); + g_free(child_cos); + } + + child_cos = nmt_newt_widget_get_components(priv->header); + for (i = 0; child_cos[i]; i++) + g_ptr_array_add(cos, child_cos[i]); + g_free(child_cos); + + if (priv->open) { + child_cos = nmt_newt_widget_get_components(priv->body); + for (i = 0; child_cos[i]; i++) + g_ptr_array_add(cos, child_cos[i]); + g_free(child_cos); + } + + g_ptr_array_add(cos, NULL); + return (newtComponent *) g_ptr_array_free(cos, FALSE); } static void -nmt_newt_section_size_request (NmtNewtWidget *widget, - int *width, - int *height) +nmt_newt_section_size_request(NmtNewtWidget *widget, int *width, int *height) { - NmtNewtSectionPrivate *priv = NMT_NEWT_SECTION_GET_PRIVATE (widget); - int w_ignore, h_ignore; + NmtNewtSectionPrivate *priv = NMT_NEWT_SECTION_GET_PRIVATE(widget); + int w_ignore, h_ignore; - g_return_if_fail (priv->header != NULL && priv->body != NULL); + g_return_if_fail(priv->header != NULL && priv->body != NULL); - if (priv->show_border) - nmt_newt_widget_size_request (priv->border_grid, &w_ignore, &h_ignore); - nmt_newt_widget_size_request (priv->header, &priv->hwidth_req, &priv->hheight_req); - nmt_newt_widget_size_request (priv->body, &priv->bwidth_req, &priv->bheight_req); + if (priv->show_border) + nmt_newt_widget_size_request(priv->border_grid, &w_ignore, &h_ignore); + nmt_newt_widget_size_request(priv->header, &priv->hwidth_req, &priv->hheight_req); + nmt_newt_widget_size_request(priv->body, &priv->bwidth_req, &priv->bheight_req); - *width = MAX (priv->hwidth_req, priv->bwidth_req) + 2; - if (priv->open) - *height = priv->hheight_req + priv->bheight_req + (priv->show_border ? 1 : 0); - else - *height = priv->hheight_req; + *width = MAX(priv->hwidth_req, priv->bwidth_req) + 2; + if (priv->open) + *height = priv->hheight_req + priv->bheight_req + (priv->show_border ? 1 : 0); + else + *height = priv->hheight_req; } static void -adjust_border_for_allocation (NmtNewtSectionPrivate *priv, - int height) +adjust_border_for_allocation(NmtNewtSectionPrivate *priv, int height) { - int i; + int i; - /* We have to use a series of one-line labels rather than a multi-line + /* We have to use a series of one-line labels rather than a multi-line * textbox, because newt will hide any component that's partially offscreen, * but we want the on-screen portion of the border to show even if part of * it is offscreen. */ - if (height == 1) { - nmt_newt_widget_set_visible (priv->border_closed_label, TRUE); - nmt_newt_widget_set_visible (priv->border_open_label, FALSE); - for (i = 0; i < priv->border_line_labels->len; i++) - nmt_newt_widget_set_visible (priv->border_line_labels->pdata[i], FALSE); - nmt_newt_widget_set_visible (priv->border_end_label, FALSE); - } else { - nmt_newt_widget_set_visible (priv->border_closed_label, FALSE); - nmt_newt_widget_set_visible (priv->border_open_label, TRUE); - for (i = 0; i < height - 2; i++) { - if (i >= priv->border_line_labels->len) { - NmtNewtWidget *label; - - label = nmt_newt_label_new (line_glyph); - g_ptr_array_add (priv->border_line_labels, label); - nmt_newt_grid_add (NMT_NEWT_GRID (priv->border_grid), label, 0, i + 1); - } else - nmt_newt_widget_set_visible (priv->border_line_labels->pdata[i], TRUE); - } - nmt_newt_widget_set_visible (priv->border_end_label, TRUE); - nmt_newt_grid_move (NMT_NEWT_GRID (priv->border_grid), priv->border_end_label, 0, height - 1); - } + if (height == 1) { + nmt_newt_widget_set_visible(priv->border_closed_label, TRUE); + nmt_newt_widget_set_visible(priv->border_open_label, FALSE); + for (i = 0; i < priv->border_line_labels->len; i++) + nmt_newt_widget_set_visible(priv->border_line_labels->pdata[i], FALSE); + nmt_newt_widget_set_visible(priv->border_end_label, FALSE); + } else { + nmt_newt_widget_set_visible(priv->border_closed_label, FALSE); + nmt_newt_widget_set_visible(priv->border_open_label, TRUE); + for (i = 0; i < height - 2; i++) { + if (i >= priv->border_line_labels->len) { + NmtNewtWidget *label; + + label = nmt_newt_label_new(line_glyph); + g_ptr_array_add(priv->border_line_labels, label); + nmt_newt_grid_add(NMT_NEWT_GRID(priv->border_grid), label, 0, i + 1); + } else + nmt_newt_widget_set_visible(priv->border_line_labels->pdata[i], TRUE); + } + nmt_newt_widget_set_visible(priv->border_end_label, TRUE); + nmt_newt_grid_move(NMT_NEWT_GRID(priv->border_grid), priv->border_end_label, 0, height - 1); + } } static void -nmt_newt_section_size_allocate (NmtNewtWidget *widget, - int x, - int y, - int width, - int height) +nmt_newt_section_size_allocate(NmtNewtWidget *widget, int x, int y, int width, int height) { - NmtNewtSectionPrivate *priv = NMT_NEWT_SECTION_GET_PRIVATE (widget); - - if (priv->show_border) { - int w_ignore, h_ignore; - - adjust_border_for_allocation (priv, height); - nmt_newt_widget_size_request (priv->border_grid, &w_ignore, &h_ignore); - nmt_newt_widget_size_allocate (priv->border_grid, x, y, 1, height); - nmt_newt_widget_size_allocate (priv->header, x + 2, y, width, priv->hheight_req); - } else - nmt_newt_widget_size_allocate (priv->header, x, y, width, priv->hheight_req); - - if (priv->open) { - nmt_newt_widget_size_allocate (priv->body, x + 2, y + priv->hheight_req, - width, height - priv->hheight_req); - } + NmtNewtSectionPrivate *priv = NMT_NEWT_SECTION_GET_PRIVATE(widget); + + if (priv->show_border) { + int w_ignore, h_ignore; + + adjust_border_for_allocation(priv, height); + nmt_newt_widget_size_request(priv->border_grid, &w_ignore, &h_ignore); + nmt_newt_widget_size_allocate(priv->border_grid, x, y, 1, height); + nmt_newt_widget_size_allocate(priv->header, x + 2, y, width, priv->hheight_req); + } else + nmt_newt_widget_size_allocate(priv->header, x, y, width, priv->hheight_req); + + if (priv->open) { + nmt_newt_widget_size_allocate(priv->body, + x + 2, + y + priv->hheight_req, + width, + height - priv->hheight_req); + } } static void -nmt_newt_section_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) +nmt_newt_section_set_property(GObject * object, + guint prop_id, + const GValue *value, + GParamSpec * pspec) { - NmtNewtSectionPrivate *priv = NMT_NEWT_SECTION_GET_PRIVATE (object); - - switch (prop_id) { - case PROP_SHOW_BORDER: - priv->show_border = g_value_get_boolean (value); - nmt_newt_widget_needs_rebuild (NMT_NEWT_WIDGET (object)); - break; - case PROP_OPEN: - priv->open = g_value_get_boolean (value); - nmt_newt_widget_needs_rebuild (NMT_NEWT_WIDGET (object)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtNewtSectionPrivate *priv = NMT_NEWT_SECTION_GET_PRIVATE(object); + + switch (prop_id) { + case PROP_SHOW_BORDER: + priv->show_border = g_value_get_boolean(value); + nmt_newt_widget_needs_rebuild(NMT_NEWT_WIDGET(object)); + break; + case PROP_OPEN: + priv->open = g_value_get_boolean(value); + nmt_newt_widget_needs_rebuild(NMT_NEWT_WIDGET(object)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_newt_section_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) +nmt_newt_section_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - NmtNewtSectionPrivate *priv = NMT_NEWT_SECTION_GET_PRIVATE (object); - - switch (prop_id) { - case PROP_SHOW_BORDER: - g_value_set_boolean (value, priv->show_border); - break; - case PROP_OPEN: - g_value_set_boolean (value, priv->open); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtNewtSectionPrivate *priv = NMT_NEWT_SECTION_GET_PRIVATE(object); + + switch (prop_id) { + case PROP_SHOW_BORDER: + g_value_set_boolean(value, priv->show_border); + break; + case PROP_OPEN: + g_value_set_boolean(value, priv->open); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_newt_section_class_init (NmtNewtSectionClass *section_class) +nmt_newt_section_class_init(NmtNewtSectionClass *section_class) { - GObjectClass *object_class = G_OBJECT_CLASS (section_class); - NmtNewtWidgetClass *widget_class = NMT_NEWT_WIDGET_CLASS (section_class); - NmtNewtContainerClass *container_class = NMT_NEWT_CONTAINER_CLASS (section_class); + GObjectClass * object_class = G_OBJECT_CLASS(section_class); + NmtNewtWidgetClass * widget_class = NMT_NEWT_WIDGET_CLASS(section_class); + NmtNewtContainerClass *container_class = NMT_NEWT_CONTAINER_CLASS(section_class); - g_type_class_add_private (section_class, sizeof (NmtNewtSectionPrivate)); + g_type_class_add_private(section_class, sizeof(NmtNewtSectionPrivate)); - /* virtual methods */ - object_class->set_property = nmt_newt_section_set_property; - object_class->get_property = nmt_newt_section_get_property; - object_class->finalize = nmt_newt_section_finalize; + /* virtual methods */ + object_class->set_property = nmt_newt_section_set_property; + object_class->get_property = nmt_newt_section_get_property; + object_class->finalize = nmt_newt_section_finalize; - widget_class->get_components = nmt_newt_section_get_components; - widget_class->size_request = nmt_newt_section_size_request; - widget_class->size_allocate = nmt_newt_section_size_allocate; + widget_class->get_components = nmt_newt_section_get_components; + widget_class->size_request = nmt_newt_section_size_request; + widget_class->size_allocate = nmt_newt_section_size_allocate; - container_class->remove = nmt_newt_section_remove; + container_class->remove = nmt_newt_section_remove; - /* properties */ + /* properties */ - /** + /** * NmtNewtSection:show-border: * * %TRUE if the section should show a border along the left side. */ - g_object_class_install_property - (object_class, PROP_SHOW_BORDER, - g_param_spec_boolean ("show-border", "", "", - TRUE, - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS)); - - /** + g_object_class_install_property( + object_class, + PROP_SHOW_BORDER, + g_param_spec_boolean("show-border", + "", + "", + TRUE, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + /** * NmtNewtSection:open: * * %TRUE if the section is open (ie, its body is visible), %FALSE * if not. */ - g_object_class_install_property - (object_class, PROP_OPEN, - g_param_spec_boolean ("open", "", "", - FALSE, - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS)); - - /* globals */ - closed_glyph = nmt_newt_locale_from_utf8 ("\342\225\220"); /* ═ */ - open_glyph = nmt_newt_locale_from_utf8 ("\342\225\244"); /* ╤ */ - line_glyph = nmt_newt_locale_from_utf8 ("\342\224\202"); /* │ */ - end_glyph = nmt_newt_locale_from_utf8 ("\342\224\224"); /* └ */ - if (!*closed_glyph || !*open_glyph || !*line_glyph || !*end_glyph) { - g_free (closed_glyph); - g_free (open_glyph); - g_free (line_glyph); - g_free (end_glyph); - - closed_glyph = g_strdup ("-"); - open_glyph = g_strdup ("+"); - line_glyph = g_strdup ("|"); - end_glyph = g_strdup ("\\"); - } + g_object_class_install_property( + object_class, + PROP_OPEN, + g_param_spec_boolean("open", "", "", FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + /* globals */ + closed_glyph = nmt_newt_locale_from_utf8("\342\225\220"); /* ═ */ + open_glyph = nmt_newt_locale_from_utf8("\342\225\244"); /* ╤ */ + line_glyph = nmt_newt_locale_from_utf8("\342\224\202"); /* │ */ + end_glyph = nmt_newt_locale_from_utf8("\342\224\224"); /* └ */ + if (!*closed_glyph || !*open_glyph || !*line_glyph || !*end_glyph) { + g_free(closed_glyph); + g_free(open_glyph); + g_free(line_glyph); + g_free(end_glyph); + + closed_glyph = g_strdup("-"); + open_glyph = g_strdup("+"); + line_glyph = g_strdup("|"); + end_glyph = g_strdup("\\"); + } } diff --git a/clients/tui/newt/nmt-newt-section.h b/clients/tui/newt/nmt-newt-section.h index c6e1cbfdc3..e66ac62997 100644 --- a/clients/tui/newt/nmt-newt-section.h +++ b/clients/tui/newt/nmt-newt-section.h @@ -8,33 +8,33 @@ #include "nmt-newt-container.h" -#define NMT_TYPE_NEWT_SECTION (nmt_newt_section_get_type ()) -#define NMT_NEWT_SECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NMT_TYPE_NEWT_SECTION, NmtNewtSection)) -#define NMT_NEWT_SECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NMT_TYPE_NEWT_SECTION, NmtNewtSectionClass)) -#define NMT_IS_NEWT_SECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NMT_TYPE_NEWT_SECTION)) -#define NMT_IS_NEWT_SECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NMT_TYPE_NEWT_SECTION)) -#define NMT_NEWT_SECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NMT_TYPE_NEWT_SECTION, NmtNewtSectionClass)) +#define NMT_TYPE_NEWT_SECTION (nmt_newt_section_get_type()) +#define NMT_NEWT_SECTION(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), NMT_TYPE_NEWT_SECTION, NmtNewtSection)) +#define NMT_NEWT_SECTION_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), NMT_TYPE_NEWT_SECTION, NmtNewtSectionClass)) +#define NMT_IS_NEWT_SECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), NMT_TYPE_NEWT_SECTION)) +#define NMT_IS_NEWT_SECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), NMT_TYPE_NEWT_SECTION)) +#define NMT_NEWT_SECTION_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), NMT_TYPE_NEWT_SECTION, NmtNewtSectionClass)) struct _NmtNewtSection { - NmtNewtContainer parent; - + NmtNewtContainer parent; }; typedef struct { - NmtNewtContainerClass parent; + NmtNewtContainerClass parent; } NmtNewtSectionClass; -GType nmt_newt_section_get_type (void); +GType nmt_newt_section_get_type(void); -NmtNewtWidget *nmt_newt_section_new (gboolean show_border); +NmtNewtWidget *nmt_newt_section_new(gboolean show_border); -void nmt_newt_section_set_header (NmtNewtSection *section, - NmtNewtWidget *header); -NmtNewtWidget *nmt_newt_section_get_header (NmtNewtSection *section); +void nmt_newt_section_set_header(NmtNewtSection *section, NmtNewtWidget *header); +NmtNewtWidget *nmt_newt_section_get_header(NmtNewtSection *section); -void nmt_newt_section_set_body (NmtNewtSection *section, - NmtNewtWidget *body); -NmtNewtWidget *nmt_newt_section_get_body (NmtNewtSection *section); +void nmt_newt_section_set_body(NmtNewtSection *section, NmtNewtWidget *body); +NmtNewtWidget *nmt_newt_section_get_body(NmtNewtSection *section); #endif /* NMT_NEWT_SECTION_H */ diff --git a/clients/tui/newt/nmt-newt-separator.c b/clients/tui/newt/nmt-newt-separator.c index 9ab1dc85f9..439133e39e 100644 --- a/clients/tui/newt/nmt-newt-separator.c +++ b/clients/tui/newt/nmt-newt-separator.c @@ -16,7 +16,7 @@ #include "nmt-newt-separator.h" -G_DEFINE_TYPE (NmtNewtSeparator, nmt_newt_separator, NMT_TYPE_NEWT_COMPONENT) +G_DEFINE_TYPE(NmtNewtSeparator, nmt_newt_separator, NMT_TYPE_NEWT_COMPONENT) /** * nmt_newt_separator_new: @@ -26,28 +26,26 @@ G_DEFINE_TYPE (NmtNewtSeparator, nmt_newt_separator, NMT_TYPE_NEWT_COMPONENT) * Returns: a new #NmtNewtSeparator */ NmtNewtWidget * -nmt_newt_separator_new (void) +nmt_newt_separator_new(void) { - return g_object_new (NMT_TYPE_NEWT_SEPARATOR, NULL); + return g_object_new(NMT_TYPE_NEWT_SEPARATOR, NULL); } static void -nmt_newt_separator_init (NmtNewtSeparator *separator) -{ -} +nmt_newt_separator_init(NmtNewtSeparator *separator) +{} static newtComponent -nmt_newt_separator_build_component (NmtNewtComponent *component, - gboolean sensitive) +nmt_newt_separator_build_component(NmtNewtComponent *component, gboolean sensitive) { - return newtLabel (-1, -1, " "); + return newtLabel(-1, -1, " "); } static void -nmt_newt_separator_class_init (NmtNewtSeparatorClass *separator_class) +nmt_newt_separator_class_init(NmtNewtSeparatorClass *separator_class) { - NmtNewtComponentClass *component_class = NMT_NEWT_COMPONENT_CLASS (separator_class); + NmtNewtComponentClass *component_class = NMT_NEWT_COMPONENT_CLASS(separator_class); - /* virtual methods */ - component_class->build_component = nmt_newt_separator_build_component; + /* virtual methods */ + component_class->build_component = nmt_newt_separator_build_component; } diff --git a/clients/tui/newt/nmt-newt-separator.h b/clients/tui/newt/nmt-newt-separator.h index 178222653d..4b6f90459e 100644 --- a/clients/tui/newt/nmt-newt-separator.h +++ b/clients/tui/newt/nmt-newt-separator.h @@ -8,25 +8,28 @@ #include "nmt-newt-component.h" -#define NMT_TYPE_NEWT_SEPARATOR (nmt_newt_separator_get_type ()) -#define NMT_NEWT_SEPARATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NMT_TYPE_NEWT_SEPARATOR, NmtNewtSeparator)) -#define NMT_NEWT_SEPARATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NMT_TYPE_NEWT_SEPARATOR, NmtNewtSeparatorClass)) -#define NMT_IS_NEWT_SEPARATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NMT_TYPE_NEWT_SEPARATOR)) -#define NMT_IS_NEWT_SEPARATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NMT_TYPE_NEWT_SEPARATOR)) -#define NMT_NEWT_SEPARATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NMT_TYPE_NEWT_SEPARATOR, NmtNewtSeparatorClass)) +#define NMT_TYPE_NEWT_SEPARATOR (nmt_newt_separator_get_type()) +#define NMT_NEWT_SEPARATOR(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), NMT_TYPE_NEWT_SEPARATOR, NmtNewtSeparator)) +#define NMT_NEWT_SEPARATOR_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), NMT_TYPE_NEWT_SEPARATOR, NmtNewtSeparatorClass)) +#define NMT_IS_NEWT_SEPARATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), NMT_TYPE_NEWT_SEPARATOR)) +#define NMT_IS_NEWT_SEPARATOR_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass), NMT_TYPE_NEWT_SEPARATOR)) +#define NMT_NEWT_SEPARATOR_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), NMT_TYPE_NEWT_SEPARATOR, NmtNewtSeparatorClass)) struct _NmtNewtSeparator { - NmtNewtComponent parent; - + NmtNewtComponent parent; }; typedef struct { - NmtNewtComponentClass parent; + NmtNewtComponentClass parent; } NmtNewtSeparatorClass; -GType nmt_newt_separator_get_type (void); +GType nmt_newt_separator_get_type(void); -NmtNewtWidget *nmt_newt_separator_new (void); +NmtNewtWidget *nmt_newt_separator_new(void); #endif /* NMT_NEWT_SEPARATOR_H */ diff --git a/clients/tui/newt/nmt-newt-stack.c b/clients/tui/newt/nmt-newt-stack.c index af0f85f38f..6f74976af9 100644 --- a/clients/tui/newt/nmt-newt-stack.c +++ b/clients/tui/newt/nmt-newt-stack.c @@ -20,23 +20,24 @@ #include "nmt-newt-stack.h" -G_DEFINE_TYPE (NmtNewtStack, nmt_newt_stack, NMT_TYPE_NEWT_CONTAINER) +G_DEFINE_TYPE(NmtNewtStack, nmt_newt_stack, NMT_TYPE_NEWT_CONTAINER) -#define NMT_NEWT_STACK_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NMT_TYPE_NEWT_STACK, NmtNewtStackPrivate)) +#define NMT_NEWT_STACK_GET_PRIVATE(o) \ + (G_TYPE_INSTANCE_GET_PRIVATE((o), NMT_TYPE_NEWT_STACK, NmtNewtStackPrivate)) typedef struct { - GPtrArray *children; - GPtrArray *ids; + GPtrArray *children; + GPtrArray *ids; - guint active; + guint active; } NmtNewtStackPrivate; enum { - PROP_0, - PROP_ACTIVE, - PROP_ACTIVE_ID, + PROP_0, + PROP_ACTIVE, + PROP_ACTIVE_ID, - LAST_PROP + LAST_PROP }; /** @@ -47,82 +48,76 @@ enum { * Returns: a new #NmtNewtStack */ NmtNewtWidget * -nmt_newt_stack_new (void) +nmt_newt_stack_new(void) { - return g_object_new (NMT_TYPE_NEWT_STACK, NULL); + return g_object_new(NMT_TYPE_NEWT_STACK, NULL); } static void -nmt_newt_stack_init (NmtNewtStack *stack) +nmt_newt_stack_init(NmtNewtStack *stack) { - NmtNewtStackPrivate *priv = NMT_NEWT_STACK_GET_PRIVATE (stack); + NmtNewtStackPrivate *priv = NMT_NEWT_STACK_GET_PRIVATE(stack); - priv->children = g_ptr_array_new (); - priv->ids = g_ptr_array_new_with_free_func (g_free); + priv->children = g_ptr_array_new(); + priv->ids = g_ptr_array_new_with_free_func(g_free); } static void -nmt_newt_stack_finalize (GObject *object) +nmt_newt_stack_finalize(GObject *object) { - NmtNewtStackPrivate *priv = NMT_NEWT_STACK_GET_PRIVATE (object); + NmtNewtStackPrivate *priv = NMT_NEWT_STACK_GET_PRIVATE(object); - g_ptr_array_unref (priv->children); - g_ptr_array_unref (priv->ids); + g_ptr_array_unref(priv->children); + g_ptr_array_unref(priv->ids); - G_OBJECT_CLASS (nmt_newt_stack_parent_class)->finalize (object); + G_OBJECT_CLASS(nmt_newt_stack_parent_class)->finalize(object); } static newtComponent * -nmt_newt_stack_get_components (NmtNewtWidget *widget) +nmt_newt_stack_get_components(NmtNewtWidget *widget) { - NmtNewtStackPrivate *priv = NMT_NEWT_STACK_GET_PRIVATE (widget); + NmtNewtStackPrivate *priv = NMT_NEWT_STACK_GET_PRIVATE(widget); - if (priv->active > priv->children->len) - return NULL; + if (priv->active > priv->children->len) + return NULL; - return nmt_newt_widget_get_components (priv->children->pdata[priv->active]); + return nmt_newt_widget_get_components(priv->children->pdata[priv->active]); } static void -nmt_newt_stack_size_request (NmtNewtWidget *widget, - int *width, - int *height) +nmt_newt_stack_size_request(NmtNewtWidget *widget, int *width, int *height) { - NmtNewtStack *stack = NMT_NEWT_STACK (widget); - NmtNewtStackPrivate *priv = NMT_NEWT_STACK_GET_PRIVATE (stack); - int i, child_width, child_height; + NmtNewtStack * stack = NMT_NEWT_STACK(widget); + NmtNewtStackPrivate *priv = NMT_NEWT_STACK_GET_PRIVATE(stack); + int i, child_width, child_height; - if (priv->active > priv->children->len) { - *width = *height = 0; - return; - } + if (priv->active > priv->children->len) { + *width = *height = 0; + return; + } - /* We size-request all pages so that embedded NmtPageGrids will + /* We size-request all pages so that embedded NmtPageGrids will * participate in their size-grouping (so that switching pages * won't result in the column widths changing). */ - for (i = 0; i < priv->children->len; i++) { - nmt_newt_widget_size_request (priv->children->pdata[i], &child_width, &child_height); - if (i == priv->active) { - *width = child_width; - *height = child_height; - } - } + for (i = 0; i < priv->children->len; i++) { + nmt_newt_widget_size_request(priv->children->pdata[i], &child_width, &child_height); + if (i == priv->active) { + *width = child_width; + *height = child_height; + } + } } static void -nmt_newt_stack_size_allocate (NmtNewtWidget *widget, - int x, - int y, - int width, - int height) +nmt_newt_stack_size_allocate(NmtNewtWidget *widget, int x, int y, int width, int height) { - NmtNewtStackPrivate *priv = NMT_NEWT_STACK_GET_PRIVATE (widget); + NmtNewtStackPrivate *priv = NMT_NEWT_STACK_GET_PRIVATE(widget); - if (priv->active > priv->children->len) - return; + if (priv->active > priv->children->len) + return; - nmt_newt_widget_size_allocate (priv->children->pdata[priv->active], x, y, width, height); + nmt_newt_widget_size_allocate(priv->children->pdata[priv->active], x, y, width, height); } /** @@ -134,50 +129,46 @@ nmt_newt_stack_size_allocate (NmtNewtWidget *widget, * Adds @widget to @stack with the given @id. */ void -nmt_newt_stack_add (NmtNewtStack *stack, - const char *id, - NmtNewtWidget *widget) +nmt_newt_stack_add(NmtNewtStack *stack, const char *id, NmtNewtWidget *widget) { - NmtNewtStackPrivate *priv = NMT_NEWT_STACK_GET_PRIVATE (stack); + NmtNewtStackPrivate *priv = NMT_NEWT_STACK_GET_PRIVATE(stack); - g_ptr_array_add (priv->children, widget); - g_ptr_array_add (priv->ids, g_strdup (id)); + g_ptr_array_add(priv->children, widget); + g_ptr_array_add(priv->ids, g_strdup(id)); - NMT_NEWT_CONTAINER_CLASS (nmt_newt_stack_parent_class)->add (NMT_NEWT_CONTAINER (stack), widget); + NMT_NEWT_CONTAINER_CLASS(nmt_newt_stack_parent_class)->add(NMT_NEWT_CONTAINER(stack), widget); } static void -nmt_newt_stack_remove (NmtNewtContainer *container, - NmtNewtWidget *widget) +nmt_newt_stack_remove(NmtNewtContainer *container, NmtNewtWidget *widget) { - NmtNewtStack *stack = NMT_NEWT_STACK (container); - NmtNewtStackPrivate *priv = NMT_NEWT_STACK_GET_PRIVATE (stack); - int i; - - NMT_NEWT_CONTAINER_CLASS (nmt_newt_stack_parent_class)->remove (container, widget); - - for (i = 0; i < priv->children->len; i++) { - if (priv->children->pdata[i] == widget) { - g_ptr_array_remove_index (priv->children, i); - g_ptr_array_remove_index (priv->ids, i); - return; - } - } + NmtNewtStack * stack = NMT_NEWT_STACK(container); + NmtNewtStackPrivate *priv = NMT_NEWT_STACK_GET_PRIVATE(stack); + int i; + + NMT_NEWT_CONTAINER_CLASS(nmt_newt_stack_parent_class)->remove(container, widget); + + for (i = 0; i < priv->children->len; i++) { + if (priv->children->pdata[i] == widget) { + g_ptr_array_remove_index(priv->children, i); + g_ptr_array_remove_index(priv->ids, i); + return; + } + } } static void -nmt_newt_stack_child_validity_changed (NmtNewtContainer *container, - NmtNewtWidget *widget) +nmt_newt_stack_child_validity_changed(NmtNewtContainer *container, NmtNewtWidget *widget) { - NmtNewtStackPrivate *priv = NMT_NEWT_STACK_GET_PRIVATE (container); + NmtNewtStackPrivate *priv = NMT_NEWT_STACK_GET_PRIVATE(container); - if (priv->active > priv->children->len) - return; + if (priv->active > priv->children->len) + return; - if (priv->children->pdata[priv->active] == (gpointer) widget) { - NMT_NEWT_CONTAINER_CLASS (nmt_newt_stack_parent_class)-> - child_validity_changed (container, widget); - } + if (priv->children->pdata[priv->active] == (gpointer) widget) { + NMT_NEWT_CONTAINER_CLASS(nmt_newt_stack_parent_class) + ->child_validity_changed(container, widget); + } } /** @@ -188,18 +179,17 @@ nmt_newt_stack_child_validity_changed (NmtNewtContainer *container, * Sets the active page on @stack to @active. */ void -nmt_newt_stack_set_active (NmtNewtStack *stack, - guint active) +nmt_newt_stack_set_active(NmtNewtStack *stack, guint active) { - NmtNewtStackPrivate *priv = NMT_NEWT_STACK_GET_PRIVATE (stack); + NmtNewtStackPrivate *priv = NMT_NEWT_STACK_GET_PRIVATE(stack); - if (priv->active == active) - return; + if (priv->active == active) + return; - priv->active = active; - g_object_notify (G_OBJECT (stack), "active"); - g_object_notify (G_OBJECT (stack), "active-id"); - nmt_newt_widget_needs_rebuild (NMT_NEWT_WIDGET (stack)); + priv->active = active; + g_object_notify(G_OBJECT(stack), "active"); + g_object_notify(G_OBJECT(stack), "active-id"); + nmt_newt_widget_needs_rebuild(NMT_NEWT_WIDGET(stack)); } /** @@ -211,11 +201,11 @@ nmt_newt_stack_set_active (NmtNewtStack *stack, * Returns: the index of the active page on @stack */ guint -nmt_newt_stack_get_active (NmtNewtStack *stack) +nmt_newt_stack_get_active(NmtNewtStack *stack) { - NmtNewtStackPrivate *priv = NMT_NEWT_STACK_GET_PRIVATE (stack); + NmtNewtStackPrivate *priv = NMT_NEWT_STACK_GET_PRIVATE(stack); - return priv->active; + return priv->active; } /** @@ -226,24 +216,23 @@ nmt_newt_stack_get_active (NmtNewtStack *stack) * Sets the active page on @stack to @active_id. */ void -nmt_newt_stack_set_active_id (NmtNewtStack *stack, - const char *id) +nmt_newt_stack_set_active_id(NmtNewtStack *stack, const char *id) { - NmtNewtStackPrivate *priv = NMT_NEWT_STACK_GET_PRIVATE (stack); - int i; - - if (!g_strcmp0 (priv->ids->pdata[priv->active], id)) - return; - - for (i = 0; i < priv->ids->len; i++) { - if (!g_strcmp0 (priv->ids->pdata[i], id)) { - priv->active = i; - g_object_notify (G_OBJECT (stack), "active"); - g_object_notify (G_OBJECT (stack), "active-id"); - nmt_newt_widget_needs_rebuild (NMT_NEWT_WIDGET (stack)); - return; - } - } + NmtNewtStackPrivate *priv = NMT_NEWT_STACK_GET_PRIVATE(stack); + int i; + + if (!g_strcmp0(priv->ids->pdata[priv->active], id)) + return; + + for (i = 0; i < priv->ids->len; i++) { + if (!g_strcmp0(priv->ids->pdata[i], id)) { + priv->active = i; + g_object_notify(G_OBJECT(stack), "active"); + g_object_notify(G_OBJECT(stack), "active-id"); + nmt_newt_widget_needs_rebuild(NMT_NEWT_WIDGET(stack)); + return; + } + } } /** @@ -255,99 +244,94 @@ nmt_newt_stack_set_active_id (NmtNewtStack *stack, * Returns: the ID of the active page on @stack */ const char * -nmt_newt_stack_get_active_id (NmtNewtStack *stack) +nmt_newt_stack_get_active_id(NmtNewtStack *stack) { - NmtNewtStackPrivate *priv = NMT_NEWT_STACK_GET_PRIVATE (stack); + NmtNewtStackPrivate *priv = NMT_NEWT_STACK_GET_PRIVATE(stack); - if (priv->active > priv->children->len) - return NULL; + if (priv->active > priv->children->len) + return NULL; - return priv->ids->pdata[priv->active]; + return priv->ids->pdata[priv->active]; } static void -nmt_newt_stack_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) +nmt_newt_stack_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { - NmtNewtStack *stack = NMT_NEWT_STACK (object); - - switch (prop_id) { - case PROP_ACTIVE: - nmt_newt_stack_set_active (stack, g_value_get_uint (value)); - break; - case PROP_ACTIVE_ID: - nmt_newt_stack_set_active_id (stack, g_value_get_string (value)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtNewtStack *stack = NMT_NEWT_STACK(object); + + switch (prop_id) { + case PROP_ACTIVE: + nmt_newt_stack_set_active(stack, g_value_get_uint(value)); + break; + case PROP_ACTIVE_ID: + nmt_newt_stack_set_active_id(stack, g_value_get_string(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_newt_stack_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) +nmt_newt_stack_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - NmtNewtStack *stack = NMT_NEWT_STACK (object); - - switch (prop_id) { - case PROP_ACTIVE: - g_value_set_uint (value, nmt_newt_stack_get_active (stack)); - break; - case PROP_ACTIVE_ID: - g_value_set_string (value, nmt_newt_stack_get_active_id (stack)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtNewtStack *stack = NMT_NEWT_STACK(object); + + switch (prop_id) { + case PROP_ACTIVE: + g_value_set_uint(value, nmt_newt_stack_get_active(stack)); + break; + case PROP_ACTIVE_ID: + g_value_set_string(value, nmt_newt_stack_get_active_id(stack)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_newt_stack_class_init (NmtNewtStackClass *stack_class) +nmt_newt_stack_class_init(NmtNewtStackClass *stack_class) { - GObjectClass *object_class = G_OBJECT_CLASS (stack_class); - NmtNewtWidgetClass *widget_class = NMT_NEWT_WIDGET_CLASS (stack_class); - NmtNewtContainerClass *container_class = NMT_NEWT_CONTAINER_CLASS (stack_class); + GObjectClass * object_class = G_OBJECT_CLASS(stack_class); + NmtNewtWidgetClass * widget_class = NMT_NEWT_WIDGET_CLASS(stack_class); + NmtNewtContainerClass *container_class = NMT_NEWT_CONTAINER_CLASS(stack_class); - g_type_class_add_private (stack_class, sizeof (NmtNewtStackPrivate)); + g_type_class_add_private(stack_class, sizeof(NmtNewtStackPrivate)); - /* virtual methods */ - object_class->set_property = nmt_newt_stack_set_property; - object_class->get_property = nmt_newt_stack_get_property; - object_class->finalize = nmt_newt_stack_finalize; + /* virtual methods */ + object_class->set_property = nmt_newt_stack_set_property; + object_class->get_property = nmt_newt_stack_get_property; + object_class->finalize = nmt_newt_stack_finalize; - widget_class->get_components = nmt_newt_stack_get_components; - widget_class->size_request = nmt_newt_stack_size_request; - widget_class->size_allocate = nmt_newt_stack_size_allocate; + widget_class->get_components = nmt_newt_stack_get_components; + widget_class->size_request = nmt_newt_stack_size_request; + widget_class->size_allocate = nmt_newt_stack_size_allocate; - container_class->remove = nmt_newt_stack_remove; - container_class->child_validity_changed = nmt_newt_stack_child_validity_changed; + container_class->remove = nmt_newt_stack_remove; + container_class->child_validity_changed = nmt_newt_stack_child_validity_changed; - /** + /** * NmtNewtStack:active: * * The index of the active page */ - g_object_class_install_property - (object_class, PROP_ACTIVE, - g_param_spec_uint ("active", "", "", - 0, G_MAXUINT, 0, - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS)); - /** + g_object_class_install_property(object_class, + PROP_ACTIVE, + g_param_spec_uint("active", + "", + "", + 0, + G_MAXUINT, + 0, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** * NmtNewtStack:active-id: * * The ID of the active page */ - g_object_class_install_property - (object_class, PROP_ACTIVE_ID, - g_param_spec_string ("active-id", "", "", - NULL, - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS)); + g_object_class_install_property( + object_class, + PROP_ACTIVE_ID, + g_param_spec_string("active-id", "", "", NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); } diff --git a/clients/tui/newt/nmt-newt-stack.h b/clients/tui/newt/nmt-newt-stack.h index 0db7eb11be..6f3df8730a 100644 --- a/clients/tui/newt/nmt-newt-stack.h +++ b/clients/tui/newt/nmt-newt-stack.h @@ -8,37 +8,34 @@ #include "nmt-newt-container.h" -#define NMT_TYPE_NEWT_STACK (nmt_newt_stack_get_type ()) -#define NMT_NEWT_STACK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NMT_TYPE_NEWT_STACK, NmtNewtStack)) -#define NMT_NEWT_STACK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NMT_TYPE_NEWT_STACK, NmtNewtStackClass)) -#define NMT_IS_NEWT_STACK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NMT_TYPE_NEWT_STACK)) -#define NMT_IS_NEWT_STACK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NMT_TYPE_NEWT_STACK)) -#define NMT_NEWT_STACK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NMT_TYPE_NEWT_STACK, NmtNewtStackClass)) +#define NMT_TYPE_NEWT_STACK (nmt_newt_stack_get_type()) +#define NMT_NEWT_STACK(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), NMT_TYPE_NEWT_STACK, NmtNewtStack)) +#define NMT_NEWT_STACK_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), NMT_TYPE_NEWT_STACK, NmtNewtStackClass)) +#define NMT_IS_NEWT_STACK(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), NMT_TYPE_NEWT_STACK)) +#define NMT_IS_NEWT_STACK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), NMT_TYPE_NEWT_STACK)) +#define NMT_NEWT_STACK_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), NMT_TYPE_NEWT_STACK, NmtNewtStackClass)) struct _NmtNewtStack { - NmtNewtContainer parent; - + NmtNewtContainer parent; }; typedef struct { - NmtNewtContainerClass parent; + NmtNewtContainerClass parent; } NmtNewtStackClass; -GType nmt_newt_stack_get_type (void); +GType nmt_newt_stack_get_type(void); -NmtNewtWidget *nmt_newt_stack_new (void); +NmtNewtWidget *nmt_newt_stack_new(void); -void nmt_newt_stack_add (NmtNewtStack *stack, - const char *id, - NmtNewtWidget *widget); +void nmt_newt_stack_add(NmtNewtStack *stack, const char *id, NmtNewtWidget *widget); -void nmt_newt_stack_set_active (NmtNewtStack *stack, - guint active); -guint nmt_newt_stack_get_active (NmtNewtStack *stack); +void nmt_newt_stack_set_active(NmtNewtStack *stack, guint active); +guint nmt_newt_stack_get_active(NmtNewtStack *stack); -void nmt_newt_stack_set_active_id (NmtNewtStack *stack, - const char *id); -const char * nmt_newt_stack_get_active_id (NmtNewtStack *stack); +void nmt_newt_stack_set_active_id(NmtNewtStack *stack, const char *id); +const char *nmt_newt_stack_get_active_id(NmtNewtStack *stack); #endif /* NMT_NEWT_STACK_H */ diff --git a/clients/tui/newt/nmt-newt-textbox.c b/clients/tui/newt/nmt-newt-textbox.c index edcf7f82bd..b5de5dc1d7 100644 --- a/clients/tui/newt/nmt-newt-textbox.c +++ b/clients/tui/newt/nmt-newt-textbox.c @@ -17,25 +17,26 @@ #include "nmt-newt-utils.h" -G_DEFINE_TYPE (NmtNewtTextbox, nmt_newt_textbox, NMT_TYPE_NEWT_COMPONENT) +G_DEFINE_TYPE(NmtNewtTextbox, nmt_newt_textbox, NMT_TYPE_NEWT_COMPONENT) -#define NMT_NEWT_TEXTBOX_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NMT_TYPE_NEWT_TEXTBOX, NmtNewtTextboxPrivate)) +#define NMT_NEWT_TEXTBOX_GET_PRIVATE(o) \ + (G_TYPE_INSTANCE_GET_PRIVATE((o), NMT_TYPE_NEWT_TEXTBOX, NmtNewtTextboxPrivate)) typedef struct { - int wrap_width; - NmtNewtTextboxFlags flags; + int wrap_width; + NmtNewtTextboxFlags flags; - char *text; - int width, height; + char *text; + int width, height; } NmtNewtTextboxPrivate; enum { - PROP_0, - PROP_TEXT, - PROP_FLAGS, - PROP_WRAP_WIDTH, + PROP_0, + PROP_TEXT, + PROP_FLAGS, + PROP_WRAP_WIDTH, - LAST_PROP + LAST_PROP }; /** @@ -58,13 +59,9 @@ enum { * Returns: a new #NmtNewtTextbox */ NmtNewtWidget * -nmt_newt_textbox_new (NmtNewtTextboxFlags flags, - int wrap_width) +nmt_newt_textbox_new(NmtNewtTextboxFlags flags, int wrap_width) { - return g_object_new (NMT_TYPE_NEWT_TEXTBOX, - "flags", flags, - "wrap-width", wrap_width, - NULL); + return g_object_new(NMT_TYPE_NEWT_TEXTBOX, "flags", flags, "wrap-width", wrap_width, NULL); } /** @@ -76,33 +73,32 @@ nmt_newt_textbox_new (NmtNewtTextboxFlags flags, * Returns: @textbox's text */ void -nmt_newt_textbox_set_text (NmtNewtTextbox *textbox, - const char *text) +nmt_newt_textbox_set_text(NmtNewtTextbox *textbox, const char *text) { - NmtNewtTextboxPrivate *priv = NMT_NEWT_TEXTBOX_GET_PRIVATE (textbox); - char **lines; - int i, width; - - if (!text) - text = ""; - if (!strcmp (priv->text, text)) - return; - - g_free (priv->text); - priv->text = g_strdup (text); - - priv->width = priv->height = 0; - lines = g_strsplit (priv->text, "\n", -1); - for (i = 0; lines[i]; i++) { - width = nmt_newt_text_width (lines[i]); - if (width > priv->width) - priv->width = width; - } - g_free (lines); - priv->height = MIN (i, 1); - - g_object_notify (G_OBJECT (textbox), "text"); - nmt_newt_widget_needs_rebuild (NMT_NEWT_WIDGET (textbox)); + NmtNewtTextboxPrivate *priv = NMT_NEWT_TEXTBOX_GET_PRIVATE(textbox); + char ** lines; + int i, width; + + if (!text) + text = ""; + if (!strcmp(priv->text, text)) + return; + + g_free(priv->text); + priv->text = g_strdup(text); + + priv->width = priv->height = 0; + lines = g_strsplit(priv->text, "\n", -1); + for (i = 0; lines[i]; i++) { + width = nmt_newt_text_width(lines[i]); + if (width > priv->width) + priv->width = width; + } + g_free(lines); + priv->height = MIN(i, 1); + + g_object_notify(G_OBJECT(textbox), "text"); + nmt_newt_widget_needs_rebuild(NMT_NEWT_WIDGET(textbox)); } /** @@ -114,168 +110,170 @@ nmt_newt_textbox_set_text (NmtNewtTextbox *textbox, * Returns: @textbox's text */ const char * -nmt_newt_textbox_get_text (NmtNewtTextbox *textbox) +nmt_newt_textbox_get_text(NmtNewtTextbox *textbox) { - NmtNewtTextboxPrivate *priv = NMT_NEWT_TEXTBOX_GET_PRIVATE (textbox); + NmtNewtTextboxPrivate *priv = NMT_NEWT_TEXTBOX_GET_PRIVATE(textbox); - return priv->text; + return priv->text; } static void -nmt_newt_textbox_init (NmtNewtTextbox *textbox) +nmt_newt_textbox_init(NmtNewtTextbox *textbox) { - NmtNewtTextboxPrivate *priv = NMT_NEWT_TEXTBOX_GET_PRIVATE (textbox); + NmtNewtTextboxPrivate *priv = NMT_NEWT_TEXTBOX_GET_PRIVATE(textbox); - priv->text = g_strdup (""); + priv->text = g_strdup(""); } static void -nmt_newt_textbox_finalize (GObject *object) +nmt_newt_textbox_finalize(GObject *object) { - NmtNewtTextboxPrivate *priv = NMT_NEWT_TEXTBOX_GET_PRIVATE (object); + NmtNewtTextboxPrivate *priv = NMT_NEWT_TEXTBOX_GET_PRIVATE(object); - g_free (priv->text); + g_free(priv->text); - G_OBJECT_CLASS (nmt_newt_textbox_parent_class)->finalize (object); + G_OBJECT_CLASS(nmt_newt_textbox_parent_class)->finalize(object); } static guint -convert_flags (NmtNewtTextboxFlags flags) +convert_flags(NmtNewtTextboxFlags flags) { - guint newt_flags = 0; + guint newt_flags = 0; - if (flags & NMT_NEWT_TEXTBOX_SCROLLABLE) - newt_flags |= NEWT_FLAG_SCROLL; + if (flags & NMT_NEWT_TEXTBOX_SCROLLABLE) + newt_flags |= NEWT_FLAG_SCROLL; - return newt_flags; + return newt_flags; } static newtComponent -nmt_newt_textbox_build_component (NmtNewtComponent *component, - gboolean sensitive) +nmt_newt_textbox_build_component(NmtNewtComponent *component, gboolean sensitive) { - NmtNewtTextboxPrivate *priv = NMT_NEWT_TEXTBOX_GET_PRIVATE (component); - newtComponent co; - const char *text; - char *text_lc; - - text = priv->text; - if (!*text) - text = "\n"; - - text_lc = nmt_newt_locale_from_utf8 (text); - if (priv->wrap_width > 0) { - co = newtTextboxReflowed (-1, -1, text_lc, priv->wrap_width, 0, 0, 0); - } else { - co = newtTextbox (-1, -1, priv->width, priv->height, convert_flags (priv->flags)); - newtTextboxSetText (co, text_lc); - } - g_free (text_lc); - - if (priv->flags & NMT_NEWT_TEXTBOX_SET_BACKGROUND) - newtTextboxSetColors (co, NMT_NEWT_COLORSET_TEXTBOX_WITH_BACKGROUND, NEWT_COLORSET_ACTTEXTBOX); - - return co; + NmtNewtTextboxPrivate *priv = NMT_NEWT_TEXTBOX_GET_PRIVATE(component); + newtComponent co; + const char * text; + char * text_lc; + + text = priv->text; + if (!*text) + text = "\n"; + + text_lc = nmt_newt_locale_from_utf8(text); + if (priv->wrap_width > 0) { + co = newtTextboxReflowed(-1, -1, text_lc, priv->wrap_width, 0, 0, 0); + } else { + co = newtTextbox(-1, -1, priv->width, priv->height, convert_flags(priv->flags)); + newtTextboxSetText(co, text_lc); + } + g_free(text_lc); + + if (priv->flags & NMT_NEWT_TEXTBOX_SET_BACKGROUND) + newtTextboxSetColors(co, + NMT_NEWT_COLORSET_TEXTBOX_WITH_BACKGROUND, + NEWT_COLORSET_ACTTEXTBOX); + + return co; } static void -nmt_newt_textbox_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) +nmt_newt_textbox_set_property(GObject * object, + guint prop_id, + const GValue *value, + GParamSpec * pspec) { - NmtNewtTextbox *textbox = NMT_NEWT_TEXTBOX (object); - NmtNewtTextboxPrivate *priv = NMT_NEWT_TEXTBOX_GET_PRIVATE (textbox); - - switch (prop_id) { - case PROP_TEXT: - nmt_newt_textbox_set_text (textbox, g_value_get_string (value)); - break; - case PROP_FLAGS: - priv->flags = g_value_get_uint (value); - break; - case PROP_WRAP_WIDTH: - priv->wrap_width = g_value_get_int (value); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtNewtTextbox * textbox = NMT_NEWT_TEXTBOX(object); + NmtNewtTextboxPrivate *priv = NMT_NEWT_TEXTBOX_GET_PRIVATE(textbox); + + switch (prop_id) { + case PROP_TEXT: + nmt_newt_textbox_set_text(textbox, g_value_get_string(value)); + break; + case PROP_FLAGS: + priv->flags = g_value_get_uint(value); + break; + case PROP_WRAP_WIDTH: + priv->wrap_width = g_value_get_int(value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_newt_textbox_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) +nmt_newt_textbox_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - NmtNewtTextboxPrivate *priv = NMT_NEWT_TEXTBOX_GET_PRIVATE (object); - - switch (prop_id) { - case PROP_TEXT: - g_value_set_string (value, priv->text); - break; - case PROP_FLAGS: - g_value_set_uint (value, priv->flags); - break; - case PROP_WRAP_WIDTH: - g_value_set_int (value, priv->wrap_width); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtNewtTextboxPrivate *priv = NMT_NEWT_TEXTBOX_GET_PRIVATE(object); + + switch (prop_id) { + case PROP_TEXT: + g_value_set_string(value, priv->text); + break; + case PROP_FLAGS: + g_value_set_uint(value, priv->flags); + break; + case PROP_WRAP_WIDTH: + g_value_set_int(value, priv->wrap_width); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_newt_textbox_class_init (NmtNewtTextboxClass *textbox_class) +nmt_newt_textbox_class_init(NmtNewtTextboxClass *textbox_class) { - GObjectClass *object_class = G_OBJECT_CLASS (textbox_class); - NmtNewtComponentClass *component_class = NMT_NEWT_COMPONENT_CLASS (textbox_class); + GObjectClass * object_class = G_OBJECT_CLASS(textbox_class); + NmtNewtComponentClass *component_class = NMT_NEWT_COMPONENT_CLASS(textbox_class); - g_type_class_add_private (textbox_class, sizeof (NmtNewtTextboxPrivate)); + g_type_class_add_private(textbox_class, sizeof(NmtNewtTextboxPrivate)); - /* virtual methods */ - object_class->set_property = nmt_newt_textbox_set_property; - object_class->get_property = nmt_newt_textbox_get_property; - object_class->finalize = nmt_newt_textbox_finalize; + /* virtual methods */ + object_class->set_property = nmt_newt_textbox_set_property; + object_class->get_property = nmt_newt_textbox_get_property; + object_class->finalize = nmt_newt_textbox_finalize; - component_class->build_component = nmt_newt_textbox_build_component; + component_class->build_component = nmt_newt_textbox_build_component; - /** + /** * NmtNewtTextbox:text: * * The textbox's text */ - g_object_class_install_property - (object_class, PROP_TEXT, - g_param_spec_string ("text", "", "", - "", - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS)); - /** + g_object_class_install_property( + object_class, + PROP_TEXT, + g_param_spec_string("text", "", "", "", G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** * NmtNewtTextbox:flags: * * The textbox's flags */ - g_object_class_install_property - (object_class, PROP_FLAGS, - g_param_spec_uint ("flags", "", "", - 0, G_MAXUINT, 0, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); - /** + g_object_class_install_property( + object_class, + PROP_FLAGS, + g_param_spec_uint("flags", + "", + "", + 0, + G_MAXUINT, + 0, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); + /** * NmtNewtTextbox:wrap-width: * * The width in characters at which the textbox's text * will wrap, or 0 if it does not wrap. */ - g_object_class_install_property - (object_class, PROP_WRAP_WIDTH, - g_param_spec_int ("wrap-width", "", "", - 0, G_MAXINT, 0, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); + g_object_class_install_property( + object_class, + PROP_WRAP_WIDTH, + g_param_spec_int("wrap-width", + "", + "", + 0, + G_MAXINT, + 0, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); } diff --git a/clients/tui/newt/nmt-newt-textbox.h b/clients/tui/newt/nmt-newt-textbox.h index d1710d3268..3f72b83a30 100644 --- a/clients/tui/newt/nmt-newt-textbox.h +++ b/clients/tui/newt/nmt-newt-textbox.h @@ -8,35 +8,35 @@ #include "nmt-newt-component.h" -#define NMT_TYPE_NEWT_TEXTBOX (nmt_newt_textbox_get_type ()) -#define NMT_NEWT_TEXTBOX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NMT_TYPE_NEWT_TEXTBOX, NmtNewtTextbox)) -#define NMT_NEWT_TEXTBOX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NMT_TYPE_NEWT_TEXTBOX, NmtNewtTextboxClass)) -#define NMT_IS_NEWT_TEXTBOX(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NMT_TYPE_NEWT_TEXTBOX)) -#define NMT_IS_NEWT_TEXTBOX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NMT_TYPE_NEWT_TEXTBOX)) -#define NMT_NEWT_TEXTBOX_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NMT_TYPE_NEWT_TEXTBOX, NmtNewtTextboxClass)) +#define NMT_TYPE_NEWT_TEXTBOX (nmt_newt_textbox_get_type()) +#define NMT_NEWT_TEXTBOX(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), NMT_TYPE_NEWT_TEXTBOX, NmtNewtTextbox)) +#define NMT_NEWT_TEXTBOX_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), NMT_TYPE_NEWT_TEXTBOX, NmtNewtTextboxClass)) +#define NMT_IS_NEWT_TEXTBOX(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), NMT_TYPE_NEWT_TEXTBOX)) +#define NMT_IS_NEWT_TEXTBOX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), NMT_TYPE_NEWT_TEXTBOX)) +#define NMT_NEWT_TEXTBOX_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), NMT_TYPE_NEWT_TEXTBOX, NmtNewtTextboxClass)) struct _NmtNewtTextbox { - NmtNewtComponent parent; - + NmtNewtComponent parent; }; typedef struct { - NmtNewtComponentClass parent; + NmtNewtComponentClass parent; } NmtNewtTextboxClass; -GType nmt_newt_textbox_get_type (void); +GType nmt_newt_textbox_get_type(void); typedef enum { - NMT_NEWT_TEXTBOX_SCROLLABLE = (1 << 0), - NMT_NEWT_TEXTBOX_SET_BACKGROUND = (1 << 1) + NMT_NEWT_TEXTBOX_SCROLLABLE = (1 << 0), + NMT_NEWT_TEXTBOX_SET_BACKGROUND = (1 << 1) } NmtNewtTextboxFlags; -NmtNewtWidget *nmt_newt_textbox_new (NmtNewtTextboxFlags flags, - int wrap_width); +NmtNewtWidget *nmt_newt_textbox_new(NmtNewtTextboxFlags flags, int wrap_width); -void nmt_newt_textbox_set_text (NmtNewtTextbox *textbox, - const char *text); -const char *nmt_newt_textbox_get_text (NmtNewtTextbox *textbox); +void nmt_newt_textbox_set_text(NmtNewtTextbox *textbox, const char *text); +const char *nmt_newt_textbox_get_text(NmtNewtTextbox *textbox); #endif /* NMT_NEWT_TEXTBOX_H */ diff --git a/clients/tui/newt/nmt-newt-toggle-button.c b/clients/tui/newt/nmt-newt-toggle-button.c index e780499cef..60fdd98414 100644 --- a/clients/tui/newt/nmt-newt-toggle-button.c +++ b/clients/tui/newt/nmt-newt-toggle-button.c @@ -14,22 +14,23 @@ #include "nmt-newt-toggle-button.h" -G_DEFINE_TYPE (NmtNewtToggleButton, nmt_newt_toggle_button, NMT_TYPE_NEWT_BUTTON) +G_DEFINE_TYPE(NmtNewtToggleButton, nmt_newt_toggle_button, NMT_TYPE_NEWT_BUTTON) -#define NMT_NEWT_TOGGLE_BUTTON_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NMT_TYPE_NEWT_TOGGLE_BUTTON, NmtNewtToggleButtonPrivate)) +#define NMT_NEWT_TOGGLE_BUTTON_GET_PRIVATE(o) \ + (G_TYPE_INSTANCE_GET_PRIVATE((o), NMT_TYPE_NEWT_TOGGLE_BUTTON, NmtNewtToggleButtonPrivate)) typedef struct { - char *on_label, *off_label; - gboolean active; + char * on_label, *off_label; + gboolean active; } NmtNewtToggleButtonPrivate; enum { - PROP_0, - PROP_ON_LABEL, - PROP_OFF_LABEL, - PROP_ACTIVE, + PROP_0, + PROP_ON_LABEL, + PROP_OFF_LABEL, + PROP_ACTIVE, - LAST_PROP + LAST_PROP }; /** @@ -42,13 +43,14 @@ enum { * Returns: a new #NmtNewtToggleButton */ NmtNewtWidget * -nmt_newt_toggle_button_new (const char *on_label, - const char *off_label) +nmt_newt_toggle_button_new(const char *on_label, const char *off_label) { - return g_object_new (NMT_TYPE_NEWT_TOGGLE_BUTTON, - "on-label", on_label, - "off-label", off_label, - NULL); + return g_object_new(NMT_TYPE_NEWT_TOGGLE_BUTTON, + "on-label", + on_label, + "off-label", + off_label, + NULL); } /** @@ -60,11 +62,11 @@ nmt_newt_toggle_button_new (const char *on_label, * Returns: whether @button is currently "on" (%TRUE) or "off" (%FALSE) */ gboolean -nmt_newt_toggle_button_get_active (NmtNewtToggleButton *button) +nmt_newt_toggle_button_get_active(NmtNewtToggleButton *button) { - NmtNewtToggleButtonPrivate *priv = NMT_NEWT_TOGGLE_BUTTON_GET_PRIVATE (button); + NmtNewtToggleButtonPrivate *priv = NMT_NEWT_TOGGLE_BUTTON_GET_PRIVATE(button); - return priv->active; + return priv->active; } /** @@ -75,150 +77,138 @@ nmt_newt_toggle_button_get_active (NmtNewtToggleButton *button) * Sets whether @button is currently "on" or "off" */ void -nmt_newt_toggle_button_set_active (NmtNewtToggleButton *button, - gboolean active) +nmt_newt_toggle_button_set_active(NmtNewtToggleButton *button, gboolean active) { - NmtNewtToggleButtonPrivate *priv = NMT_NEWT_TOGGLE_BUTTON_GET_PRIVATE (button); + NmtNewtToggleButtonPrivate *priv = NMT_NEWT_TOGGLE_BUTTON_GET_PRIVATE(button); - if (priv->active == active) - return; + if (priv->active == active) + return; - priv->active = active; - g_object_set (G_OBJECT (button), - "label", active ? priv->on_label : priv->off_label, - NULL); - g_object_notify (G_OBJECT (button), "active"); + priv->active = active; + g_object_set(G_OBJECT(button), "label", active ? priv->on_label : priv->off_label, NULL); + g_object_notify(G_OBJECT(button), "active"); } static void -nmt_newt_toggle_button_init (NmtNewtToggleButton *button) -{ -} +nmt_newt_toggle_button_init(NmtNewtToggleButton *button) +{} static void -nmt_newt_toggle_button_finalize (GObject *object) +nmt_newt_toggle_button_finalize(GObject *object) { - NmtNewtToggleButtonPrivate *priv = NMT_NEWT_TOGGLE_BUTTON_GET_PRIVATE (object); + NmtNewtToggleButtonPrivate *priv = NMT_NEWT_TOGGLE_BUTTON_GET_PRIVATE(object); - g_free (priv->on_label); - g_free (priv->off_label); + g_free(priv->on_label); + g_free(priv->off_label); - G_OBJECT_CLASS (nmt_newt_toggle_button_parent_class)->finalize (object); + G_OBJECT_CLASS(nmt_newt_toggle_button_parent_class)->finalize(object); } static void -nmt_newt_toggle_button_activated (NmtNewtWidget *widget) +nmt_newt_toggle_button_activated(NmtNewtWidget *widget) { - NmtNewtToggleButton *button = NMT_NEWT_TOGGLE_BUTTON (widget); + NmtNewtToggleButton *button = NMT_NEWT_TOGGLE_BUTTON(widget); - nmt_newt_toggle_button_set_active (button, !nmt_newt_toggle_button_get_active (button)); + nmt_newt_toggle_button_set_active(button, !nmt_newt_toggle_button_get_active(button)); - NMT_NEWT_WIDGET_CLASS (nmt_newt_toggle_button_parent_class)->activated (widget); + NMT_NEWT_WIDGET_CLASS(nmt_newt_toggle_button_parent_class)->activated(widget); } static void -nmt_newt_toggle_button_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) +nmt_newt_toggle_button_set_property(GObject * object, + guint prop_id, + const GValue *value, + GParamSpec * pspec) { - NmtNewtToggleButtonPrivate *priv = NMT_NEWT_TOGGLE_BUTTON_GET_PRIVATE (object); - - switch (prop_id) { - case PROP_ON_LABEL: - g_free (priv->on_label); - priv->on_label = g_value_dup_string (value); - if (priv->active) - g_object_set (object, "label", priv->on_label, NULL); - break; - case PROP_OFF_LABEL: - g_free (priv->off_label); - priv->off_label = g_value_dup_string (value); - if (!priv->active) - g_object_set (object, "label", priv->off_label, NULL); - break; - case PROP_ACTIVE: - priv->active = g_value_get_boolean (value); - g_object_set (object, - "label", priv->active ? priv->on_label : priv->off_label, - NULL); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtNewtToggleButtonPrivate *priv = NMT_NEWT_TOGGLE_BUTTON_GET_PRIVATE(object); + + switch (prop_id) { + case PROP_ON_LABEL: + g_free(priv->on_label); + priv->on_label = g_value_dup_string(value); + if (priv->active) + g_object_set(object, "label", priv->on_label, NULL); + break; + case PROP_OFF_LABEL: + g_free(priv->off_label); + priv->off_label = g_value_dup_string(value); + if (!priv->active) + g_object_set(object, "label", priv->off_label, NULL); + break; + case PROP_ACTIVE: + priv->active = g_value_get_boolean(value); + g_object_set(object, "label", priv->active ? priv->on_label : priv->off_label, NULL); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_newt_toggle_button_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) +nmt_newt_toggle_button_get_property(GObject * object, + guint prop_id, + GValue * value, + GParamSpec *pspec) { - NmtNewtToggleButtonPrivate *priv = NMT_NEWT_TOGGLE_BUTTON_GET_PRIVATE (object); - - switch (prop_id) { - case PROP_ON_LABEL: - g_value_set_string (value, priv->on_label); - break; - case PROP_OFF_LABEL: - g_value_set_string (value, priv->off_label); - break; - case PROP_ACTIVE: - g_value_set_boolean (value, priv->active); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtNewtToggleButtonPrivate *priv = NMT_NEWT_TOGGLE_BUTTON_GET_PRIVATE(object); + + switch (prop_id) { + case PROP_ON_LABEL: + g_value_set_string(value, priv->on_label); + break; + case PROP_OFF_LABEL: + g_value_set_string(value, priv->off_label); + break; + case PROP_ACTIVE: + g_value_set_boolean(value, priv->active); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_newt_toggle_button_class_init (NmtNewtToggleButtonClass *button_class) +nmt_newt_toggle_button_class_init(NmtNewtToggleButtonClass *button_class) { - GObjectClass *object_class = G_OBJECT_CLASS (button_class); - NmtNewtWidgetClass *widget_class = NMT_NEWT_WIDGET_CLASS (button_class); + GObjectClass * object_class = G_OBJECT_CLASS(button_class); + NmtNewtWidgetClass *widget_class = NMT_NEWT_WIDGET_CLASS(button_class); - g_type_class_add_private (button_class, sizeof (NmtNewtToggleButtonPrivate)); + g_type_class_add_private(button_class, sizeof(NmtNewtToggleButtonPrivate)); - /* virtual methods */ - object_class->set_property = nmt_newt_toggle_button_set_property; - object_class->get_property = nmt_newt_toggle_button_get_property; - object_class->finalize = nmt_newt_toggle_button_finalize; + /* virtual methods */ + object_class->set_property = nmt_newt_toggle_button_set_property; + object_class->get_property = nmt_newt_toggle_button_get_property; + object_class->finalize = nmt_newt_toggle_button_finalize; - widget_class->activated = nmt_newt_toggle_button_activated; + widget_class->activated = nmt_newt_toggle_button_activated; - /** + /** * NmtNewtToggleButton:on-label: * * The label the button displays when it is "on". */ - g_object_class_install_property - (object_class, PROP_ON_LABEL, - g_param_spec_string ("on-label", "", "", - NULL, - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS)); - /** + g_object_class_install_property( + object_class, + PROP_ON_LABEL, + g_param_spec_string("on-label", "", "", NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** * NmtNewtToggleButton:off-label: * * The label the button displays when it is "off". */ - g_object_class_install_property - (object_class, PROP_OFF_LABEL, - g_param_spec_string ("off-label", "", "", - NULL, - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS)); - /** + g_object_class_install_property( + object_class, + PROP_OFF_LABEL, + g_param_spec_string("off-label", "", "", NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** * NmtNewtToggleButton:active: * * Whether the button is currently "on" (%TRUE) or "off" (%FALSE) */ - g_object_class_install_property - (object_class, PROP_ACTIVE, - g_param_spec_boolean ("active", "", "", - FALSE, - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS)); + g_object_class_install_property( + object_class, + PROP_ACTIVE, + g_param_spec_boolean("active", "", "", FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); } diff --git a/clients/tui/newt/nmt-newt-toggle-button.h b/clients/tui/newt/nmt-newt-toggle-button.h index 8f5dbaa08d..c99bd146d5 100644 --- a/clients/tui/newt/nmt-newt-toggle-button.h +++ b/clients/tui/newt/nmt-newt-toggle-button.h @@ -8,30 +8,32 @@ #include "nmt-newt-button.h" -#define NMT_TYPE_NEWT_TOGGLE_BUTTON (nmt_newt_toggle_button_get_type ()) -#define NMT_NEWT_TOGGLE_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NMT_TYPE_NEWT_TOGGLE_BUTTON, NmtNewtToggleButton)) -#define NMT_NEWT_TOGGLE_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NMT_TYPE_NEWT_TOGGLE_BUTTON, NmtNewtToggleButtonClass)) -#define NMT_IS_NEWT_TOGGLE_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NMT_TYPE_NEWT_TOGGLE_BUTTON)) -#define NMT_IS_NEWT_TOGGLE_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NMT_TYPE_NEWT_TOGGLE_BUTTON)) -#define NMT_NEWT_TOGGLE_BUTTON_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NMT_TYPE_NEWT_TOGGLE_BUTTON, NmtNewtToggleButtonClass)) +#define NMT_TYPE_NEWT_TOGGLE_BUTTON (nmt_newt_toggle_button_get_type()) +#define NMT_NEWT_TOGGLE_BUTTON(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), NMT_TYPE_NEWT_TOGGLE_BUTTON, NmtNewtToggleButton)) +#define NMT_NEWT_TOGGLE_BUTTON_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), NMT_TYPE_NEWT_TOGGLE_BUTTON, NmtNewtToggleButtonClass)) +#define NMT_IS_NEWT_TOGGLE_BUTTON(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj), NMT_TYPE_NEWT_TOGGLE_BUTTON)) +#define NMT_IS_NEWT_TOGGLE_BUTTON_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass), NMT_TYPE_NEWT_TOGGLE_BUTTON)) +#define NMT_NEWT_TOGGLE_BUTTON_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), NMT_TYPE_NEWT_TOGGLE_BUTTON, NmtNewtToggleButtonClass)) struct _NmtNewtToggleButton { - NmtNewtButton parent; - + NmtNewtButton parent; }; typedef struct { - NmtNewtButtonClass parent; + NmtNewtButtonClass parent; } NmtNewtToggleButtonClass; -GType nmt_newt_toggle_button_get_type (void); +GType nmt_newt_toggle_button_get_type(void); -NmtNewtWidget *nmt_newt_toggle_button_new (const char *on_label, - const char *off_label); +NmtNewtWidget *nmt_newt_toggle_button_new(const char *on_label, const char *off_label); -gboolean nmt_newt_toggle_button_get_active (NmtNewtToggleButton *button); -void nmt_newt_toggle_button_set_active (NmtNewtToggleButton *button, - gboolean active); +gboolean nmt_newt_toggle_button_get_active(NmtNewtToggleButton *button); +void nmt_newt_toggle_button_set_active(NmtNewtToggleButton *button, gboolean active); #endif /* NMT_NEWT_TOGGLE_BUTTON_H */ diff --git a/clients/tui/newt/nmt-newt-utils.c b/clients/tui/newt/nmt-newt-utils.c index d0ad60e1db..9c6bb9b4e3 100644 --- a/clients/tui/newt/nmt-newt-utils.c +++ b/clients/tui/newt/nmt-newt-utils.c @@ -17,89 +17,88 @@ #include "nmt-newt-utils.h" static void -nmt_newt_dialog_g_log_handler (const char *log_domain, - GLogLevelFlags log_level, - const char *message, - gpointer user_data) +nmt_newt_dialog_g_log_handler(const char * log_domain, + GLogLevelFlags log_level, + const char * message, + gpointer user_data) { - const char *level_name; - char *full_message; - int screen_width, screen_height; - newtComponent text, ok, form; - newtGrid grid; - - g_assert (!(log_level & G_LOG_FLAG_RECURSION)); - - if (log_level & G_LOG_LEVEL_DEBUG) - return; - - switch (log_level & G_LOG_LEVEL_MASK) { - case G_LOG_LEVEL_ERROR: - level_name = "ERROR"; - break; - case G_LOG_LEVEL_CRITICAL: - level_name = "CRITICAL"; - break; - case G_LOG_LEVEL_WARNING: - level_name = "WARNING"; - break; - case G_LOG_LEVEL_MESSAGE: - level_name = "Message"; - break; - default: - level_name = NULL; - } - - full_message = g_strdup_printf ("%s%s%s%s%s", - log_domain ?: "", - log_domain && level_name ? " " : "", - level_name ?: "", - log_domain || level_name ? ": " : "", - message); - - /* newtWinMessage() wraps the window too narrowly by default, so + const char * level_name; + char * full_message; + int screen_width, screen_height; + newtComponent text, ok, form; + newtGrid grid; + + g_assert(!(log_level & G_LOG_FLAG_RECURSION)); + + if (log_level & G_LOG_LEVEL_DEBUG) + return; + + switch (log_level & G_LOG_LEVEL_MASK) { + case G_LOG_LEVEL_ERROR: + level_name = "ERROR"; + break; + case G_LOG_LEVEL_CRITICAL: + level_name = "CRITICAL"; + break; + case G_LOG_LEVEL_WARNING: + level_name = "WARNING"; + break; + case G_LOG_LEVEL_MESSAGE: + level_name = "Message"; + break; + default: + level_name = NULL; + } + + full_message = g_strdup_printf("%s%s%s%s%s", + log_domain ?: "", + log_domain && level_name ? " " : "", + level_name ?: "", + log_domain || level_name ? ": " : "", + message); + + /* newtWinMessage() wraps the window too narrowly by default, so * we don't want to use that. But we intentionally avoid using any * NmtNewt classes, to avoid possible error recursion. */ - newtGetScreenSize (&screen_width, &screen_height); - text = newtTextboxReflowed (-1, -1, full_message, MAX (70, screen_width - 10), 0, 0, 0); - g_free (full_message); + newtGetScreenSize(&screen_width, &screen_height); + text = newtTextboxReflowed(-1, -1, full_message, MAX(70, screen_width - 10), 0, 0, 0); + g_free(full_message); - ok = newtButton (-1, -1, "OK"); + ok = newtButton(-1, -1, "OK"); - grid = newtCreateGrid (1, 2); - newtGridSetField (grid, 0, 0, NEWT_GRID_COMPONENT, text, 0, 0, 0, 0, 0, 0); - newtGridSetField (grid, 0, 1, NEWT_GRID_COMPONENT, ok, 0, 1, 0, 0, - NEWT_ANCHOR_RIGHT, 0); + grid = newtCreateGrid(1, 2); + newtGridSetField(grid, 0, 0, NEWT_GRID_COMPONENT, text, 0, 0, 0, 0, 0, 0); + newtGridSetField(grid, 0, 1, NEWT_GRID_COMPONENT, ok, 0, 1, 0, 0, NEWT_ANCHOR_RIGHT, 0); - newtGridWrappedWindow (grid, (char *) (level_name ?: "")); - newtGridFree (grid, TRUE); + newtGridWrappedWindow(grid, (char *) (level_name ?: "")); + newtGridFree(grid, TRUE); - form = newtForm (NULL, NULL, 0); - newtFormAddComponents (form, text, ok, NULL); - newtRunForm (form); - newtFormDestroy (form); - newtPopWindow (); + form = newtForm(NULL, NULL, 0); + newtFormAddComponents(form, text, ok, NULL); + newtRunForm(form); + newtFormDestroy(form); + newtPopWindow(); } static void -nmt_newt_basic_g_log_handler (const char *log_domain, - GLogLevelFlags log_level, - const char *message, - gpointer user_data) +nmt_newt_basic_g_log_handler(const char * log_domain, + GLogLevelFlags log_level, + const char * message, + gpointer user_data) { - newtSuspend (); - g_log_default_handler (log_domain, log_level, message, NULL); - newtResume (); + newtSuspend(); + g_log_default_handler(log_domain, log_level, message, NULL); + newtResume(); } static void -nmt_newt_suspend_callback (gpointer user_data) +nmt_newt_suspend_callback(gpointer user_data) { - newtSuspend (); - kill (getpid (), SIGTSTP); - newtResume (); + newtSuspend(); + kill(getpid(), SIGTSTP); + newtResume(); } /** @@ -109,23 +108,23 @@ nmt_newt_suspend_callback (gpointer user_data) * This should be called once, before any other nmt-newt functions. */ void -nmt_newt_init (void) +nmt_newt_init(void) { - newtInit (); - newtCls (); + newtInit(); + newtCls(); - newtSetColor (NEWT_COLORSET_CHECKBOX, "black", "lightgray"); - newtSetColor (NMT_NEWT_COLORSET_BAD_LABEL, "red", "lightgray"); - newtSetColor (NMT_NEWT_COLORSET_PLAIN_LABEL, "black", "lightgray"); - newtSetColor (NMT_NEWT_COLORSET_DISABLED_BUTTON, "blue", "lightgray"); - newtSetColor (NMT_NEWT_COLORSET_TEXTBOX_WITH_BACKGROUND, "black", "white"); + newtSetColor(NEWT_COLORSET_CHECKBOX, "black", "lightgray"); + newtSetColor(NMT_NEWT_COLORSET_BAD_LABEL, "red", "lightgray"); + newtSetColor(NMT_NEWT_COLORSET_PLAIN_LABEL, "black", "lightgray"); + newtSetColor(NMT_NEWT_COLORSET_DISABLED_BUTTON, "blue", "lightgray"); + newtSetColor(NMT_NEWT_COLORSET_TEXTBOX_WITH_BACKGROUND, "black", "white"); - if (g_getenv ("NMTUI_DEBUG")) - g_log_set_default_handler (nmt_newt_dialog_g_log_handler, NULL); - else - g_log_set_default_handler (nmt_newt_basic_g_log_handler, NULL); + if (g_getenv("NMTUI_DEBUG")) + g_log_set_default_handler(nmt_newt_dialog_g_log_handler, NULL); + else + g_log_set_default_handler(nmt_newt_basic_g_log_handler, NULL); - newtSetSuspendCallback (nmt_newt_suspend_callback, NULL); + newtSetSuspendCallback(nmt_newt_suspend_callback, NULL); } /** @@ -134,10 +133,10 @@ nmt_newt_init (void) * Wrapper for newtFinished(). Should be called at the end of the program. */ void -nmt_newt_finished (void) +nmt_newt_finished(void) { - newtFinished (); - g_log_set_default_handler (g_log_default_handler, NULL); + newtFinished(); + g_log_set_default_handler(g_log_default_handler, NULL); } /** @@ -149,23 +148,22 @@ nmt_newt_finished (void) * button, and returns after the user clicks "OK". */ void -nmt_newt_message_dialog (const char *message, - ...) +nmt_newt_message_dialog(const char *message, ...) { - va_list ap; - char *msg, *msg_lc, *ok_lc; + va_list ap; + char * msg, *msg_lc, *ok_lc; - va_start (ap, message); - msg = g_strdup_vprintf (message, ap); - va_end (ap); + va_start(ap, message); + msg = g_strdup_vprintf(message, ap); + va_end(ap); - msg_lc = nmt_newt_locale_from_utf8 (msg); - ok_lc = nmt_newt_locale_from_utf8 (_("OK")); - newtWinMessage (NULL, ok_lc, "%s", msg_lc); + msg_lc = nmt_newt_locale_from_utf8(msg); + ok_lc = nmt_newt_locale_from_utf8(_("OK")); + newtWinMessage(NULL, ok_lc, "%s", msg_lc); - g_free (ok_lc); - g_free (msg_lc); - g_free (msg); + g_free(ok_lc); + g_free(msg_lc); + g_free(msg); } /** @@ -181,30 +179,27 @@ nmt_newt_message_dialog (const char *message, * Returns: which button was clicked: 0 for @button1 or 1 for @button2 */ int -nmt_newt_choice_dialog (const char *button1, - const char *button2, - const char *message, - ...) +nmt_newt_choice_dialog(const char *button1, const char *button2, const char *message, ...) { - va_list ap; - char *msg, *msg_lc, *button1_lc, *button2_lc; - int choice; + va_list ap; + char * msg, *msg_lc, *button1_lc, *button2_lc; + int choice; - va_start (ap, message); - msg = g_strdup_vprintf (message, ap); - va_end (ap); + va_start(ap, message); + msg = g_strdup_vprintf(message, ap); + va_end(ap); - msg_lc = nmt_newt_locale_from_utf8 (msg); - button1_lc = nmt_newt_locale_from_utf8 (button1); - button2_lc = nmt_newt_locale_from_utf8 (button2); - choice = newtWinChoice (NULL, button1_lc, button2_lc, "%s", msg_lc); + msg_lc = nmt_newt_locale_from_utf8(msg); + button1_lc = nmt_newt_locale_from_utf8(button1); + button2_lc = nmt_newt_locale_from_utf8(button2); + choice = newtWinChoice(NULL, button1_lc, button2_lc, "%s", msg_lc); - g_free (button1_lc); - g_free (button2_lc); - g_free (msg_lc); - g_free (msg); + g_free(button1_lc); + g_free(button2_lc); + g_free(msg_lc); + g_free(msg); - return choice; + return choice; } /** @@ -221,14 +216,14 @@ nmt_newt_choice_dialog (const char *button1, * Returns: @str_lc, converted to UTF-8. */ char * -nmt_newt_locale_to_utf8 (const char *str_lc) +nmt_newt_locale_to_utf8(const char *str_lc) { - char *str_utf8; + char *str_utf8; - str_utf8 = g_locale_to_utf8 (str_lc, -1, NULL, NULL, NULL); - if (!str_utf8) - str_utf8 = g_strdup (""); - return str_utf8; + str_utf8 = g_locale_to_utf8(str_lc, -1, NULL, NULL, NULL); + if (!str_utf8) + str_utf8 = g_strdup(""); + return str_utf8; } /** @@ -244,14 +239,14 @@ nmt_newt_locale_to_utf8 (const char *str_lc) * Returns: @str_utf8, converted to the user's locale encoding. */ char * -nmt_newt_locale_from_utf8 (const char *str_utf8) +nmt_newt_locale_from_utf8(const char *str_utf8) { - char *str_lc; + char *str_lc; - str_lc = g_locale_from_utf8 (str_utf8, -1, NULL, NULL, NULL); - if (!str_lc) - str_lc = g_strdup (""); - return str_lc; + str_lc = g_locale_from_utf8(str_utf8, -1, NULL, NULL, NULL); + if (!str_lc) + str_lc = g_strdup(""); + return str_lc; } /** @@ -263,26 +258,26 @@ nmt_newt_locale_from_utf8 (const char *str_utf8) * Returns: the width of @str */ int -nmt_newt_text_width (const char *str) +nmt_newt_text_width(const char *str) { - int width; - gunichar ch; - - for (width = 0; *str; str = g_utf8_next_char (str)) { - ch = g_utf8_get_char (str); - - /* Based on _vte_iso2022_unichar_width */ - if (G_LIKELY (ch < 0x80)) - width += 1; - else if (G_UNLIKELY (g_unichar_iszerowidth (ch))) - width += 0; - else if (G_UNLIKELY (g_unichar_iswide (ch))) - width += 2; - else - width += 1; - } - - return width; + int width; + gunichar ch; + + for (width = 0; *str; str = g_utf8_next_char(str)) { + ch = g_utf8_get_char(str); + + /* Based on _vte_iso2022_unichar_width */ + if (G_LIKELY(ch < 0x80)) + width += 1; + else if (G_UNLIKELY(g_unichar_iszerowidth(ch))) + width += 0; + else if (G_UNLIKELY(g_unichar_iswide(ch))) + width += 2; + else + width += 1; + } + + return width; } /** @@ -298,69 +293,74 @@ nmt_newt_text_width (const char *str) * Returns: the edited data, or %NULL if an error occurred. */ char * -nmt_newt_edit_string (const char *data) +nmt_newt_edit_string(const char *data) { - gssize len, nwrote; - char *filename, *argv[3]; - GError *error = NULL; - int fd, status; - char *new_data = NULL; - - fd = g_file_open_tmp ("XXXXXX.json", &filename, &error); - if (fd == -1) { - nmt_newt_message_dialog (_("Could not create temporary file: %s"), error->message); - g_error_free (error); - return NULL; - } - - len = data ? strlen (data) : 0; - while (len) { - do - nwrote = write (fd, data, len); - while (nwrote == -1 && errno == EINTR); - - len -= nwrote; - data += nwrote; - } - nm_close (fd); - - argv[0] = (char *) g_getenv ("VISUAL"); - if (!argv[0]) - argv[0] = (char *) g_getenv ("EDITOR"); - if (!argv[0]) - argv[0] = (char *) "vi"; - argv[1] = filename; - argv[2] = NULL; - - newtSuspend (); - g_spawn_sync (NULL, argv, NULL, - G_SPAWN_SEARCH_PATH | G_SPAWN_CHILD_INHERITS_STDIN, - NULL, NULL, NULL, NULL, - &status, &error); - newtResume (); - - if (error) { - nmt_newt_message_dialog (_("Could not create temporary file: %s"), error->message); - g_error_free (error); - goto done; - } - - if (!g_spawn_check_exit_status (status, &error)) { - nmt_newt_message_dialog (_("Editor failed: %s"), error->message); - g_error_free (error); - goto done; - } - - if (!g_file_get_contents (filename, &new_data, NULL, &error)) { - nmt_newt_message_dialog (_("Could not re-read file: %s"), error->message); - g_error_free (error); - goto done; - } - - done: - unlink (filename); - g_free (filename); - - return new_data; + gssize len, nwrote; + char * filename, *argv[3]; + GError *error = NULL; + int fd, status; + char * new_data = NULL; + + fd = g_file_open_tmp("XXXXXX.json", &filename, &error); + if (fd == -1) { + nmt_newt_message_dialog(_("Could not create temporary file: %s"), error->message); + g_error_free(error); + return NULL; + } + + len = data ? strlen(data) : 0; + while (len) { + do + nwrote = write(fd, data, len); + while (nwrote == -1 && errno == EINTR); + + len -= nwrote; + data += nwrote; + } + nm_close(fd); + + argv[0] = (char *) g_getenv("VISUAL"); + if (!argv[0]) + argv[0] = (char *) g_getenv("EDITOR"); + if (!argv[0]) + argv[0] = (char *) "vi"; + argv[1] = filename; + argv[2] = NULL; + + newtSuspend(); + g_spawn_sync(NULL, + argv, + NULL, + G_SPAWN_SEARCH_PATH | G_SPAWN_CHILD_INHERITS_STDIN, + NULL, + NULL, + NULL, + NULL, + &status, + &error); + newtResume(); + + if (error) { + nmt_newt_message_dialog(_("Could not create temporary file: %s"), error->message); + g_error_free(error); + goto done; + } + + if (!g_spawn_check_exit_status(status, &error)) { + nmt_newt_message_dialog(_("Editor failed: %s"), error->message); + g_error_free(error); + goto done; + } + + if (!g_file_get_contents(filename, &new_data, NULL, &error)) { + nmt_newt_message_dialog(_("Could not re-read file: %s"), error->message); + g_error_free(error); + goto done; + } + +done: + unlink(filename); + g_free(filename); + + return new_data; } - diff --git a/clients/tui/newt/nmt-newt-utils.h b/clients/tui/newt/nmt-newt-utils.h index 423a475554..c4d4aed018 100644 --- a/clients/tui/newt/nmt-newt-utils.h +++ b/clients/tui/newt/nmt-newt-utils.h @@ -8,28 +8,25 @@ #include <newt.h> -void nmt_newt_init (void); -void nmt_newt_finished (void); +void nmt_newt_init(void); +void nmt_newt_finished(void); typedef enum { - NMT_NEWT_COLORSET_BAD_LABEL = NEWT_COLORSET_CUSTOM (0), - NMT_NEWT_COLORSET_PLAIN_LABEL, - NMT_NEWT_COLORSET_DISABLED_BUTTON, - NMT_NEWT_COLORSET_TEXTBOX_WITH_BACKGROUND + NMT_NEWT_COLORSET_BAD_LABEL = NEWT_COLORSET_CUSTOM(0), + NMT_NEWT_COLORSET_PLAIN_LABEL, + NMT_NEWT_COLORSET_DISABLED_BUTTON, + NMT_NEWT_COLORSET_TEXTBOX_WITH_BACKGROUND } NmtNewtColorsets; -char *nmt_newt_locale_to_utf8 (const char *str_lc); -char *nmt_newt_locale_from_utf8 (const char *str_utf8); +char *nmt_newt_locale_to_utf8(const char *str_lc); +char *nmt_newt_locale_from_utf8(const char *str_utf8); -int nmt_newt_text_width (const char *str); +int nmt_newt_text_width(const char *str); -void nmt_newt_message_dialog (const char *message, - ...) _nm_printf (1, 2); -int nmt_newt_choice_dialog (const char *button1, - const char *button2, - const char *message, - ...) _nm_printf (3, 4); +void nmt_newt_message_dialog(const char *message, ...) _nm_printf(1, 2); +int nmt_newt_choice_dialog(const char *button1, const char *button2, const char *message, ...) + _nm_printf(3, 4); -char *nmt_newt_edit_string (const char *data); +char *nmt_newt_edit_string(const char *data); #endif /* NMT_NEWT_UTILS_H */ diff --git a/clients/tui/newt/nmt-newt-widget.c b/clients/tui/newt/nmt-newt-widget.c index da4f55328b..1a5ac0ff24 100644 --- a/clients/tui/newt/nmt-newt-widget.c +++ b/clients/tui/newt/nmt-newt-widget.c @@ -26,56 +26,57 @@ #include "nmt-newt-widget.h" #include "nmt-newt-form.h" -G_DEFINE_ABSTRACT_TYPE (NmtNewtWidget, nmt_newt_widget, G_TYPE_INITIALLY_UNOWNED) +G_DEFINE_ABSTRACT_TYPE(NmtNewtWidget, nmt_newt_widget, G_TYPE_INITIALLY_UNOWNED) -#define NMT_NEWT_WIDGET_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NMT_TYPE_NEWT_WIDGET, NmtNewtWidgetPrivate)) +#define NMT_NEWT_WIDGET_GET_PRIVATE(o) \ + (G_TYPE_INSTANCE_GET_PRIVATE((o), NMT_TYPE_NEWT_WIDGET, NmtNewtWidgetPrivate)) typedef struct { - NmtNewtWidget *parent; - gboolean visible, realized, valid; - gboolean exit_on_activate; + NmtNewtWidget *parent; + gboolean visible, realized, valid; + gboolean exit_on_activate; - int pad_left, pad_top, pad_right, pad_bottom; + int pad_left, pad_top, pad_right, pad_bottom; } NmtNewtWidgetPrivate; enum { - PROP_0, + PROP_0, - PROP_PARENT, - PROP_VISIBLE, - PROP_VALID, - PROP_EXIT_ON_ACTIVATE, + PROP_PARENT, + PROP_VISIBLE, + PROP_VALID, + PROP_EXIT_ON_ACTIVATE, - LAST_PROP + LAST_PROP }; enum { - NEEDS_REBUILD, - ACTIVATED, + NEEDS_REBUILD, + ACTIVATED, - LAST_SIGNAL + LAST_SIGNAL }; -static guint signals[LAST_SIGNAL] = { 0 }; +static guint signals[LAST_SIGNAL] = {0}; static void -nmt_newt_widget_init (NmtNewtWidget *widget) +nmt_newt_widget_init(NmtNewtWidget *widget) { - NmtNewtWidgetPrivate *priv = NMT_NEWT_WIDGET_GET_PRIVATE (widget); + NmtNewtWidgetPrivate *priv = NMT_NEWT_WIDGET_GET_PRIVATE(widget); - priv->visible = TRUE; - priv->valid = TRUE; + priv->visible = TRUE; + priv->valid = TRUE; } static void -nmt_newt_widget_finalize (GObject *object) +nmt_newt_widget_finalize(GObject *object) { - NmtNewtWidgetPrivate *priv = NMT_NEWT_WIDGET_GET_PRIVATE (object); + NmtNewtWidgetPrivate *priv = NMT_NEWT_WIDGET_GET_PRIVATE(object); - nmt_newt_widget_unrealize (NMT_NEWT_WIDGET (object)); - g_clear_object (&priv->parent); + nmt_newt_widget_unrealize(NMT_NEWT_WIDGET(object)); + g_clear_object(&priv->parent); - G_OBJECT_CLASS (nmt_newt_widget_parent_class)->finalize (object); + G_OBJECT_CLASS(nmt_newt_widget_parent_class)->finalize(object); } /** @@ -89,14 +90,14 @@ nmt_newt_widget_finalize (GObject *object) * cause its children to be realized and unrealized as needed. */ void -nmt_newt_widget_realize (NmtNewtWidget *widget) +nmt_newt_widget_realize(NmtNewtWidget *widget) { - NmtNewtWidgetPrivate *priv = NMT_NEWT_WIDGET_GET_PRIVATE (widget); + NmtNewtWidgetPrivate *priv = NMT_NEWT_WIDGET_GET_PRIVATE(widget); - if (!priv->realized) { - NMT_NEWT_WIDGET_GET_CLASS (widget)->realize (widget); - priv->realized = TRUE; - } + if (!priv->realized) { + NMT_NEWT_WIDGET_GET_CLASS(widget)->realize(widget); + priv->realized = TRUE; + } } /** @@ -109,14 +110,14 @@ nmt_newt_widget_realize (NmtNewtWidget *widget) * cause its children to be realized and unrealized as needed. */ void -nmt_newt_widget_unrealize (NmtNewtWidget *widget) +nmt_newt_widget_unrealize(NmtNewtWidget *widget) { - NmtNewtWidgetPrivate *priv = NMT_NEWT_WIDGET_GET_PRIVATE (widget); + NmtNewtWidgetPrivate *priv = NMT_NEWT_WIDGET_GET_PRIVATE(widget); - if (priv->realized) { - NMT_NEWT_WIDGET_GET_CLASS (widget)->unrealize (widget); - priv->realized = FALSE; - } + if (priv->realized) { + NMT_NEWT_WIDGET_GET_CLASS(widget)->unrealize(widget); + priv->realized = FALSE; + } } /** @@ -128,11 +129,11 @@ nmt_newt_widget_unrealize (NmtNewtWidget *widget) * Returns: whether @widget is realized. */ gboolean -nmt_newt_widget_get_realized (NmtNewtWidget *widget) +nmt_newt_widget_get_realized(NmtNewtWidget *widget) { - NmtNewtWidgetPrivate *priv = NMT_NEWT_WIDGET_GET_PRIVATE (widget); + NmtNewtWidgetPrivate *priv = NMT_NEWT_WIDGET_GET_PRIVATE(widget); - return priv->realized; + return priv->realized; } /** @@ -154,13 +155,13 @@ nmt_newt_widget_get_realized (NmtNewtWidget *widget) * with it. */ newtComponent * -nmt_newt_widget_get_components (NmtNewtWidget *widget) +nmt_newt_widget_get_components(NmtNewtWidget *widget) { - if (nmt_newt_widget_get_visible (widget)) { - nmt_newt_widget_realize (widget); - return NMT_NEWT_WIDGET_GET_CLASS (widget)->get_components (widget); - } else - return NULL; + if (nmt_newt_widget_get_visible(widget)) { + nmt_newt_widget_realize(widget); + return NMT_NEWT_WIDGET_GET_CLASS(widget)->get_components(widget); + } else + return NULL; } /** @@ -173,10 +174,9 @@ nmt_newt_widget_get_components (NmtNewtWidget *widget) * Return value: @co's owner, or %NULL if it was not found. */ NmtNewtWidget * -nmt_newt_widget_find_component (NmtNewtWidget *widget, - newtComponent co) +nmt_newt_widget_find_component(NmtNewtWidget *widget, newtComponent co) { - return NMT_NEWT_WIDGET_GET_CLASS (widget)->find_component (widget, co); + return NMT_NEWT_WIDGET_GET_CLASS(widget)->find_component(widget, co); } /** @@ -190,18 +190,18 @@ nmt_newt_widget_find_component (NmtNewtWidget *widget, * Sets the padding on @widget. */ void -nmt_newt_widget_set_padding (NmtNewtWidget *widget, - int pad_left, - int pad_top, - int pad_right, - int pad_bottom) +nmt_newt_widget_set_padding(NmtNewtWidget *widget, + int pad_left, + int pad_top, + int pad_right, + int pad_bottom) { - NmtNewtWidgetPrivate *priv = NMT_NEWT_WIDGET_GET_PRIVATE (widget); + NmtNewtWidgetPrivate *priv = NMT_NEWT_WIDGET_GET_PRIVATE(widget); - priv->pad_left = pad_left; - priv->pad_top = pad_top; - priv->pad_right = pad_right; - priv->pad_bottom = pad_bottom; + priv->pad_left = pad_left; + priv->pad_top = pad_top; + priv->pad_right = pad_right; + priv->pad_bottom = pad_bottom; } /** @@ -215,20 +215,18 @@ nmt_newt_widget_set_padding (NmtNewtWidget *widget, * will be realized first. */ void -nmt_newt_widget_size_request (NmtNewtWidget *widget, - int *width, - int *height) +nmt_newt_widget_size_request(NmtNewtWidget *widget, int *width, int *height) { - if (nmt_newt_widget_get_visible (widget)) { - NmtNewtWidgetPrivate *priv = NMT_NEWT_WIDGET_GET_PRIVATE (widget); + if (nmt_newt_widget_get_visible(widget)) { + NmtNewtWidgetPrivate *priv = NMT_NEWT_WIDGET_GET_PRIVATE(widget); - nmt_newt_widget_realize (widget); - NMT_NEWT_WIDGET_GET_CLASS (widget)->size_request (widget, width, height); + nmt_newt_widget_realize(widget); + NMT_NEWT_WIDGET_GET_CLASS(widget)->size_request(widget, width, height); - *width += priv->pad_left + priv->pad_right; - *height += priv->pad_top + priv->pad_bottom; - } else - *width = *height = 0; + *width += priv->pad_left + priv->pad_right; + *height += priv->pad_top + priv->pad_bottom; + } else + *width = *height = 0; } /** @@ -253,23 +251,19 @@ nmt_newt_widget_size_request (NmtNewtWidget *widget, * fit. */ void -nmt_newt_widget_size_allocate (NmtNewtWidget *widget, - int x, - int y, - int width, - int height) +nmt_newt_widget_size_allocate(NmtNewtWidget *widget, int x, int y, int width, int height) { - if (nmt_newt_widget_get_visible (widget)) { - NmtNewtWidgetPrivate *priv = NMT_NEWT_WIDGET_GET_PRIVATE (widget); + if (nmt_newt_widget_get_visible(widget)) { + NmtNewtWidgetPrivate *priv = NMT_NEWT_WIDGET_GET_PRIVATE(widget); - nmt_newt_widget_realize (widget); - x += priv->pad_left; - y += priv->pad_top; - width -= priv->pad_left + priv->pad_right; - height -= priv->pad_top + priv->pad_bottom; + nmt_newt_widget_realize(widget); + x += priv->pad_left; + y += priv->pad_top; + width -= priv->pad_left + priv->pad_right; + height -= priv->pad_top + priv->pad_bottom; - NMT_NEWT_WIDGET_GET_CLASS (widget)->size_allocate (widget, x, y, width, height); - } + NMT_NEWT_WIDGET_GET_CLASS(widget)->size_allocate(widget, x, y, width, height); + } } /** @@ -283,21 +277,21 @@ nmt_newt_widget_size_allocate (NmtNewtWidget *widget, * take the focus. */ newtComponent -nmt_newt_widget_get_focus_component (NmtNewtWidget *widget) +nmt_newt_widget_get_focus_component(NmtNewtWidget *widget) { - if (!NMT_NEWT_WIDGET_GET_CLASS (widget)->get_focus_component) - return NULL; + if (!NMT_NEWT_WIDGET_GET_CLASS(widget)->get_focus_component) + return NULL; - return NMT_NEWT_WIDGET_GET_CLASS (widget)->get_focus_component (widget); + return NMT_NEWT_WIDGET_GET_CLASS(widget)->get_focus_component(widget); } static void -nmt_newt_widget_real_activated (NmtNewtWidget *widget) +nmt_newt_widget_real_activated(NmtNewtWidget *widget) { - NmtNewtWidgetPrivate *priv = NMT_NEWT_WIDGET_GET_PRIVATE (widget); + NmtNewtWidgetPrivate *priv = NMT_NEWT_WIDGET_GET_PRIVATE(widget); - if (priv->exit_on_activate) - nmt_newt_form_quit (nmt_newt_widget_get_form (widget)); + if (priv->exit_on_activate) + nmt_newt_form_quit(nmt_newt_widget_get_form(widget)); } /** @@ -311,9 +305,9 @@ nmt_newt_widget_real_activated (NmtNewtWidget *widget) * will call nmt_newt_form_quit() on the widget's form. */ void -nmt_newt_widget_activated (NmtNewtWidget *widget) +nmt_newt_widget_activated(NmtNewtWidget *widget) { - g_signal_emit (widget, signals[ACTIVATED], 0); + g_signal_emit(widget, signals[ACTIVATED], 0); } /** @@ -325,11 +319,11 @@ nmt_newt_widget_activated (NmtNewtWidget *widget) * Returns: @widget's #NmtNewtWidget:exit-on-activate flag */ gboolean -nmt_newt_widget_get_exit_on_activate (NmtNewtWidget *widget) +nmt_newt_widget_get_exit_on_activate(NmtNewtWidget *widget) { - NmtNewtWidgetPrivate *priv = NMT_NEWT_WIDGET_GET_PRIVATE (widget); + NmtNewtWidgetPrivate *priv = NMT_NEWT_WIDGET_GET_PRIVATE(widget); - return priv->exit_on_activate; + return priv->exit_on_activate; } /** @@ -340,16 +334,15 @@ nmt_newt_widget_get_exit_on_activate (NmtNewtWidget *widget) * Sets @widget's #NmtNewtWidget:exit-on-activate flag, qv. */ void -nmt_newt_widget_set_exit_on_activate (NmtNewtWidget *widget, - gboolean exit_on_activate) +nmt_newt_widget_set_exit_on_activate(NmtNewtWidget *widget, gboolean exit_on_activate) { - NmtNewtWidgetPrivate *priv = NMT_NEWT_WIDGET_GET_PRIVATE (widget); + NmtNewtWidgetPrivate *priv = NMT_NEWT_WIDGET_GET_PRIVATE(widget); - exit_on_activate = !!exit_on_activate; - if (priv->exit_on_activate != exit_on_activate) { - priv->exit_on_activate = exit_on_activate; - g_object_notify (G_OBJECT (widget), "exit-on-activate"); - } + exit_on_activate = !!exit_on_activate; + if (priv->exit_on_activate != exit_on_activate) { + priv->exit_on_activate = exit_on_activate; + g_object_notify(G_OBJECT(widget), "exit-on-activate"); + } } /** @@ -361,11 +354,11 @@ nmt_newt_widget_set_exit_on_activate (NmtNewtWidget *widget, * Returns: @widget's #NmtNewtWidget:visible flag */ gboolean -nmt_newt_widget_get_visible (NmtNewtWidget *widget) +nmt_newt_widget_get_visible(NmtNewtWidget *widget) { - NmtNewtWidgetPrivate *priv = NMT_NEWT_WIDGET_GET_PRIVATE (widget); + NmtNewtWidgetPrivate *priv = NMT_NEWT_WIDGET_GET_PRIVATE(widget); - return priv->visible; + return priv->visible; } /** @@ -376,17 +369,16 @@ nmt_newt_widget_get_visible (NmtNewtWidget *widget) * Sets @widget's #NmtNewtWidget:visible flag, qv. */ void -nmt_newt_widget_set_visible (NmtNewtWidget *widget, - gboolean visible) +nmt_newt_widget_set_visible(NmtNewtWidget *widget, gboolean visible) { - NmtNewtWidgetPrivate *priv = NMT_NEWT_WIDGET_GET_PRIVATE (widget); - - visible = !!visible; - if (priv->visible != visible) { - priv->visible = visible; - g_object_notify (G_OBJECT (widget), "visible"); - nmt_newt_widget_needs_rebuild (widget); - } + NmtNewtWidgetPrivate *priv = NMT_NEWT_WIDGET_GET_PRIVATE(widget); + + visible = !!visible; + if (priv->visible != visible) { + priv->visible = visible; + g_object_notify(G_OBJECT(widget), "visible"); + nmt_newt_widget_needs_rebuild(widget); + } } /** @@ -399,14 +391,13 @@ nmt_newt_widget_set_visible (NmtNewtWidget *widget, * container-specific method to actually add a widget to a container. */ void -nmt_newt_widget_set_parent (NmtNewtWidget *widget, - NmtNewtWidget *parent) +nmt_newt_widget_set_parent(NmtNewtWidget *widget, NmtNewtWidget *parent) { - NmtNewtWidgetPrivate *priv = NMT_NEWT_WIDGET_GET_PRIVATE (widget); + NmtNewtWidgetPrivate *priv = NMT_NEWT_WIDGET_GET_PRIVATE(widget); - g_clear_object (&priv->parent); - priv->parent = parent ? g_object_ref (parent) : NULL; - g_object_notify (G_OBJECT (widget), "parent"); + g_clear_object(&priv->parent); + priv->parent = parent ? g_object_ref(parent) : NULL; + g_object_notify(G_OBJECT(widget), "parent"); } /** @@ -418,11 +409,11 @@ nmt_newt_widget_set_parent (NmtNewtWidget *widget, * Returns: @widget's parent */ NmtNewtWidget * -nmt_newt_widget_get_parent (NmtNewtWidget *widget) +nmt_newt_widget_get_parent(NmtNewtWidget *widget) { - NmtNewtWidgetPrivate *priv = NMT_NEWT_WIDGET_GET_PRIVATE (widget); + NmtNewtWidgetPrivate *priv = NMT_NEWT_WIDGET_GET_PRIVATE(widget); - return priv->parent; + return priv->parent; } /** @@ -434,15 +425,15 @@ nmt_newt_widget_get_parent (NmtNewtWidget *widget) * Returns: @widget's #NmtNewtForm */ NmtNewtForm * -nmt_newt_widget_get_form (NmtNewtWidget *widget) +nmt_newt_widget_get_form(NmtNewtWidget *widget) { - while (widget) { - if (NMT_IS_NEWT_FORM (widget)) - return NMT_NEWT_FORM (widget); - widget = nmt_newt_widget_get_parent (widget); - } + while (widget) { + if (NMT_IS_NEWT_FORM(widget)) + return NMT_NEWT_FORM(widget); + widget = nmt_newt_widget_get_parent(widget); + } - return NULL; + return NULL; } /** @@ -455,11 +446,11 @@ nmt_newt_widget_get_form (NmtNewtWidget *widget) * Returns: @widget's #NmtNewtWidget:valid flag */ gboolean -nmt_newt_widget_get_valid (NmtNewtWidget *widget) +nmt_newt_widget_get_valid(NmtNewtWidget *widget) { - NmtNewtWidgetPrivate *priv = NMT_NEWT_WIDGET_GET_PRIVATE (widget); + NmtNewtWidgetPrivate *priv = NMT_NEWT_WIDGET_GET_PRIVATE(widget); - return priv->valid; + return priv->valid; } /** @@ -475,17 +466,16 @@ nmt_newt_widget_get_valid (NmtNewtWidget *widget) * point. */ void -nmt_newt_widget_set_valid (NmtNewtWidget *widget, - gboolean valid) +nmt_newt_widget_set_valid(NmtNewtWidget *widget, gboolean valid) { - NmtNewtWidgetPrivate *priv = NMT_NEWT_WIDGET_GET_PRIVATE (widget); + NmtNewtWidgetPrivate *priv = NMT_NEWT_WIDGET_GET_PRIVATE(widget); - valid = !!valid; - if (priv->valid == valid) - return; + valid = !!valid; + if (priv->valid == valid) + return; - priv->valid = valid; - g_object_notify (G_OBJECT (widget), "valid"); + priv->valid = valid; + g_object_notify(G_OBJECT(widget), "valid"); } /** @@ -500,79 +490,73 @@ nmt_newt_widget_set_valid (NmtNewtWidget *widget, * creating a new one. */ void -nmt_newt_widget_needs_rebuild (NmtNewtWidget *widget) +nmt_newt_widget_needs_rebuild(NmtNewtWidget *widget) { - g_signal_emit (widget, signals[NEEDS_REBUILD], 0); + g_signal_emit(widget, signals[NEEDS_REBUILD], 0); } static void -nmt_newt_widget_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) +nmt_newt_widget_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { - NmtNewtWidget *widget = NMT_NEWT_WIDGET (object); - - switch (prop_id) { - case PROP_PARENT: - nmt_newt_widget_set_parent (widget, g_value_get_object (value)); - break; - case PROP_VISIBLE: - nmt_newt_widget_set_visible (widget, g_value_get_boolean (value)); - break; - case PROP_EXIT_ON_ACTIVATE: - nmt_newt_widget_set_exit_on_activate (widget, g_value_get_boolean (value)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtNewtWidget *widget = NMT_NEWT_WIDGET(object); + + switch (prop_id) { + case PROP_PARENT: + nmt_newt_widget_set_parent(widget, g_value_get_object(value)); + break; + case PROP_VISIBLE: + nmt_newt_widget_set_visible(widget, g_value_get_boolean(value)); + break; + case PROP_EXIT_ON_ACTIVATE: + nmt_newt_widget_set_exit_on_activate(widget, g_value_get_boolean(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_newt_widget_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) +nmt_newt_widget_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - NmtNewtWidgetPrivate *priv = NMT_NEWT_WIDGET_GET_PRIVATE (object); - - switch (prop_id) { - case PROP_PARENT: - g_value_set_object (value, priv->parent); - break; - case PROP_VISIBLE: - g_value_set_boolean (value, priv->visible); - break; - case PROP_VALID: - g_value_set_boolean (value, priv->valid); - break; - case PROP_EXIT_ON_ACTIVATE: - g_value_set_boolean (value, priv->exit_on_activate); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtNewtWidgetPrivate *priv = NMT_NEWT_WIDGET_GET_PRIVATE(object); + + switch (prop_id) { + case PROP_PARENT: + g_value_set_object(value, priv->parent); + break; + case PROP_VISIBLE: + g_value_set_boolean(value, priv->visible); + break; + case PROP_VALID: + g_value_set_boolean(value, priv->valid); + break; + case PROP_EXIT_ON_ACTIVATE: + g_value_set_boolean(value, priv->exit_on_activate); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_newt_widget_class_init (NmtNewtWidgetClass *widget_class) +nmt_newt_widget_class_init(NmtNewtWidgetClass *widget_class) { - GObjectClass *object_class = G_OBJECT_CLASS (widget_class); + GObjectClass *object_class = G_OBJECT_CLASS(widget_class); - g_type_class_add_private (widget_class, sizeof (NmtNewtWidgetPrivate)); + g_type_class_add_private(widget_class, sizeof(NmtNewtWidgetPrivate)); - /* virtual methods */ - object_class->set_property = nmt_newt_widget_set_property; - object_class->get_property = nmt_newt_widget_get_property; - object_class->finalize = nmt_newt_widget_finalize; + /* virtual methods */ + object_class->set_property = nmt_newt_widget_set_property; + object_class->get_property = nmt_newt_widget_get_property; + object_class->finalize = nmt_newt_widget_finalize; - widget_class->activated = nmt_newt_widget_real_activated; + widget_class->activated = nmt_newt_widget_real_activated; - /* signals */ + /* signals */ - /** + /** * NmtNewtWidget::needs-rebuild: * @widget: the #NmtNewtWidget * @@ -580,76 +564,79 @@ nmt_newt_widget_class_init (NmtNewtWidgetClass *widget_class) * or any of its children. This signal propagates up the container * hierarchy, eventually reaching the top-level #NmtNewtForm. */ - signals[NEEDS_REBUILD] = - g_signal_new ("needs-rebuild", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NmtNewtWidgetClass, needs_rebuild), - NULL, NULL, NULL, - G_TYPE_NONE, 0); - - /** + signals[NEEDS_REBUILD] = g_signal_new("needs-rebuild", + G_OBJECT_CLASS_TYPE(object_class), + G_SIGNAL_RUN_FIRST, + G_STRUCT_OFFSET(NmtNewtWidgetClass, needs_rebuild), + NULL, + NULL, + NULL, + G_TYPE_NONE, + 0); + + /** * NmtNewtWidget::activated: * @widget: the #NmtNewtWidget * * Emitted when the widget's #newtComponent is activated. */ - signals[ACTIVATED] = - g_signal_new ("activated", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NmtNewtWidgetClass, activated), - NULL, NULL, NULL, - G_TYPE_NONE, 0); - - /* properties */ - - /** + signals[ACTIVATED] = g_signal_new("activated", + G_OBJECT_CLASS_TYPE(object_class), + G_SIGNAL_RUN_FIRST, + G_STRUCT_OFFSET(NmtNewtWidgetClass, activated), + NULL, + NULL, + NULL, + G_TYPE_NONE, + 0); + + /* properties */ + + /** * NmtNewtWidget:parent: * * The widget's parent widget, or %NULL if it has no parent. */ - g_object_class_install_property - (object_class, PROP_PARENT, - g_param_spec_object ("parent", "", "", - NMT_TYPE_NEWT_WIDGET, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - /** + g_object_class_install_property(object_class, + PROP_PARENT, + g_param_spec_object("parent", + "", + "", + NMT_TYPE_NEWT_WIDGET, + G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); + /** * NmtNewtWidget:visible: * * Whether the widget is visible. Invisible widgets do not get * realized or sized. */ - g_object_class_install_property - (object_class, PROP_VISIBLE, - g_param_spec_boolean ("visible", "", "", - TRUE, - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS)); - /** + g_object_class_install_property( + object_class, + PROP_VISIBLE, + g_param_spec_boolean("visible", "", "", TRUE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** * NmtNewtWidget:valid: * * Whether the widget's content is considered valid. Components * determine their own validity. A container, by default, is * considered valid if all of its children are valid. */ - g_object_class_install_property - (object_class, PROP_VALID, - g_param_spec_boolean ("valid", "", "", - TRUE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - /** + g_object_class_install_property( + object_class, + PROP_VALID, + g_param_spec_boolean("valid", "", "", TRUE, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); + /** * NmtNewtWidget:exit-on-activate: * * If %TRUE, the widget will call nmt_newt_form_quit() on its form * when it is activated. */ - g_object_class_install_property - (object_class, PROP_EXIT_ON_ACTIVATE, - g_param_spec_boolean ("exit-on-activate", "", "", - FALSE, - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS)); + g_object_class_install_property( + object_class, + PROP_EXIT_ON_ACTIVATE, + g_param_spec_boolean("exit-on-activate", + "", + "", + FALSE, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); } diff --git a/clients/tui/newt/nmt-newt-widget.h b/clients/tui/newt/nmt-newt-widget.h index ededee9dbf..bdc1409f15 100644 --- a/clients/tui/newt/nmt-newt-widget.h +++ b/clients/tui/newt/nmt-newt-widget.h @@ -8,94 +8,78 @@ #include "nmt-newt-types.h" -#define NMT_TYPE_NEWT_WIDGET (nmt_newt_widget_get_type ()) -#define NMT_NEWT_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NMT_TYPE_NEWT_WIDGET, NmtNewtWidget)) -#define NMT_NEWT_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NMT_TYPE_NEWT_WIDGET, NmtNewtWidgetClass)) -#define NMT_IS_NEWT_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NMT_TYPE_NEWT_WIDGET)) -#define NMT_IS_NEWT_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NMT_TYPE_NEWT_WIDGET)) -#define NMT_NEWT_WIDGET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NMT_TYPE_NEWT_WIDGET, NmtNewtWidgetClass)) +#define NMT_TYPE_NEWT_WIDGET (nmt_newt_widget_get_type()) +#define NMT_NEWT_WIDGET(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), NMT_TYPE_NEWT_WIDGET, NmtNewtWidget)) +#define NMT_NEWT_WIDGET_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), NMT_TYPE_NEWT_WIDGET, NmtNewtWidgetClass)) +#define NMT_IS_NEWT_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), NMT_TYPE_NEWT_WIDGET)) +#define NMT_IS_NEWT_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), NMT_TYPE_NEWT_WIDGET)) +#define NMT_NEWT_WIDGET_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), NMT_TYPE_NEWT_WIDGET, NmtNewtWidgetClass)) struct _NmtNewtWidget { - GInitiallyUnowned parent; - + GInitiallyUnowned parent; }; typedef struct { - GInitiallyUnownedClass parent; + GInitiallyUnownedClass parent; - /* signals */ - void (*needs_rebuild) (NmtNewtWidget *widget); - void (*activated) (NmtNewtWidget *widget); + /* signals */ + void (*needs_rebuild)(NmtNewtWidget *widget); + void (*activated)(NmtNewtWidget *widget); - /* methods */ - void (*realize) (NmtNewtWidget *widget); - void (*unrealize) (NmtNewtWidget *widget); + /* methods */ + void (*realize)(NmtNewtWidget *widget); + void (*unrealize)(NmtNewtWidget *widget); - newtComponent * (*get_components) (NmtNewtWidget *widget); - NmtNewtWidget * (*find_component) (NmtNewtWidget *widget, - newtComponent co); + newtComponent *(*get_components)(NmtNewtWidget *widget); + NmtNewtWidget *(*find_component)(NmtNewtWidget *widget, newtComponent co); - void (*size_request) (NmtNewtWidget *widget, - int *width, - int *height); - void (*size_allocate) (NmtNewtWidget *widget, - int x, - int y, - int width, - int height); + void (*size_request)(NmtNewtWidget *widget, int *width, int *height); + void (*size_allocate)(NmtNewtWidget *widget, int x, int y, int width, int height); - newtComponent (*get_focus_component) (NmtNewtWidget *widget); + newtComponent (*get_focus_component)(NmtNewtWidget *widget); } NmtNewtWidgetClass; -GType nmt_newt_widget_get_type (void); +GType nmt_newt_widget_get_type(void); -void nmt_newt_widget_realize (NmtNewtWidget *widget); -void nmt_newt_widget_unrealize (NmtNewtWidget *widget); -gboolean nmt_newt_widget_get_realized (NmtNewtWidget *widget); +void nmt_newt_widget_realize(NmtNewtWidget *widget); +void nmt_newt_widget_unrealize(NmtNewtWidget *widget); +gboolean nmt_newt_widget_get_realized(NmtNewtWidget *widget); -newtComponent *nmt_newt_widget_get_components (NmtNewtWidget *widget); +newtComponent *nmt_newt_widget_get_components(NmtNewtWidget *widget); -void nmt_newt_widget_set_padding (NmtNewtWidget *widget, - int pad_left, - int pad_top, - int pad_right, - int pad_bottom); +void nmt_newt_widget_set_padding(NmtNewtWidget *widget, + int pad_left, + int pad_top, + int pad_right, + int pad_bottom); -void nmt_newt_widget_size_request (NmtNewtWidget *widget, - int *width, - int *height); -void nmt_newt_widget_size_allocate (NmtNewtWidget *widget, - int x, - int y, - int width, - int height); +void nmt_newt_widget_size_request(NmtNewtWidget *widget, int *width, int *height); +void nmt_newt_widget_size_allocate(NmtNewtWidget *widget, int x, int y, int width, int height); -void nmt_newt_widget_set_parent (NmtNewtWidget *widget, - NmtNewtWidget *parent); -NmtNewtWidget *nmt_newt_widget_get_parent (NmtNewtWidget *widget); +void nmt_newt_widget_set_parent(NmtNewtWidget *widget, NmtNewtWidget *parent); +NmtNewtWidget *nmt_newt_widget_get_parent(NmtNewtWidget *widget); -NmtNewtForm *nmt_newt_widget_get_form (NmtNewtWidget *widget); +NmtNewtForm *nmt_newt_widget_get_form(NmtNewtWidget *widget); -gboolean nmt_newt_widget_get_visible (NmtNewtWidget *widget); -void nmt_newt_widget_set_visible (NmtNewtWidget *widget, - gboolean visible); +gboolean nmt_newt_widget_get_visible(NmtNewtWidget *widget); +void nmt_newt_widget_set_visible(NmtNewtWidget *widget, gboolean visible); -newtComponent nmt_newt_widget_get_focus_component (NmtNewtWidget *widget); +newtComponent nmt_newt_widget_get_focus_component(NmtNewtWidget *widget); -void nmt_newt_widget_activated (NmtNewtWidget *widget); -gboolean nmt_newt_widget_get_exit_on_activate (NmtNewtWidget *widget); -void nmt_newt_widget_set_exit_on_activate (NmtNewtWidget *widget, - gboolean exit_on_activate); +void nmt_newt_widget_activated(NmtNewtWidget *widget); +gboolean nmt_newt_widget_get_exit_on_activate(NmtNewtWidget *widget); +void nmt_newt_widget_set_exit_on_activate(NmtNewtWidget *widget, gboolean exit_on_activate); -gboolean nmt_newt_widget_get_valid (NmtNewtWidget *widget); +gboolean nmt_newt_widget_get_valid(NmtNewtWidget *widget); -NmtNewtWidget *nmt_newt_widget_find_component (NmtNewtWidget *widget, - newtComponent co); +NmtNewtWidget *nmt_newt_widget_find_component(NmtNewtWidget *widget, newtComponent co); /* protected */ -void nmt_newt_widget_needs_rebuild (NmtNewtWidget *widget); -void nmt_newt_widget_set_valid (NmtNewtWidget *widget, - gboolean valid); +void nmt_newt_widget_needs_rebuild(NmtNewtWidget *widget); +void nmt_newt_widget_set_valid(NmtNewtWidget *widget, gboolean valid); #endif /* NMT_NEWT_WIDGET_H */ diff --git a/clients/tui/nm-editor-bindings.c b/clients/tui/nm-editor-bindings.c index c5606f11ef..442d0355f9 100644 --- a/clients/tui/nm-editor-bindings.c +++ b/clients/tui/nm-editor-bindings.c @@ -21,128 +21,127 @@ #include <stdlib.h> static void -value_transform_string_int (const GValue *src_value, - GValue *dest_value) +value_transform_string_int(const GValue *src_value, GValue *dest_value) { - long val; - char *end; + long val; + char *end; - val = strtol (g_value_get_string (src_value), &end, 10); - if (val < G_MININT || val > G_MAXINT || *end) - return; + val = strtol(g_value_get_string(src_value), &end, 10); + if (val < G_MININT || val > G_MAXINT || *end) + return; - g_value_set_int (dest_value, (int) val); + g_value_set_int(dest_value, (int) val); } static void -value_transform_string_uint (const GValue *src_value, - GValue *dest_value) +value_transform_string_uint(const GValue *src_value, GValue *dest_value) { - long val; - char *end; + long val; + char *end; - val = strtol (g_value_get_string (src_value), &end, 10); - if (val < 0 || val > G_MAXUINT || *end) - return; + val = strtol(g_value_get_string(src_value), &end, 10); + if (val < 0 || val > G_MAXUINT || *end) + return; - g_value_set_uint (dest_value, (int) val); + g_value_set_uint(dest_value, (int) val); } void -nm_editor_bindings_init (void) +nm_editor_bindings_init(void) { - /* glib registers number -> string, but not string -> number */ - g_value_register_transform_func (G_TYPE_STRING, G_TYPE_INT, value_transform_string_int); - g_value_register_transform_func (G_TYPE_STRING, G_TYPE_UINT, value_transform_string_uint); + /* glib registers number -> string, but not string -> number */ + g_value_register_transform_func(G_TYPE_STRING, G_TYPE_INT, value_transform_string_int); + g_value_register_transform_func(G_TYPE_STRING, G_TYPE_UINT, value_transform_string_uint); } static gboolean -ip_addresses_with_prefix_to_strv (GBinding *binding, - const GValue *source_value, - GValue *target_value, - gpointer user_data) +ip_addresses_with_prefix_to_strv(GBinding * binding, + const GValue *source_value, + GValue * target_value, + gpointer user_data) { - GPtrArray *addrs; - NMIPAddress *addr; - const char *addrstr; - guint32 prefix; - char **strings; - int i; - - addrs = g_value_get_boxed (source_value); - strings = g_new0 (char *, addrs->len + 1); - - for (i = 0; i < addrs->len; i++) { - addr = addrs->pdata[i]; - addrstr = nm_ip_address_get_address (addr); - prefix = nm_ip_address_get_prefix (addr); - - if (addrstr) - strings[i] = g_strdup_printf ("%s/%d", addrstr, (int) prefix); - else - strings[i] = g_strdup (""); - } - - g_value_take_boxed (target_value, strings); - return TRUE; + GPtrArray * addrs; + NMIPAddress *addr; + const char * addrstr; + guint32 prefix; + char ** strings; + int i; + + addrs = g_value_get_boxed(source_value); + strings = g_new0(char *, addrs->len + 1); + + for (i = 0; i < addrs->len; i++) { + addr = addrs->pdata[i]; + addrstr = nm_ip_address_get_address(addr); + prefix = nm_ip_address_get_prefix(addr); + + if (addrstr) + strings[i] = g_strdup_printf("%s/%d", addrstr, (int) prefix); + else + strings[i] = g_strdup(""); + } + + g_value_take_boxed(target_value, strings); + return TRUE; } static gboolean -ip_addresses_with_prefix_from_strv (GBinding *binding, - const GValue *source_value, - GValue *target_value, - gpointer user_data) +ip_addresses_with_prefix_from_strv(GBinding * binding, + const GValue *source_value, + GValue * target_value, + gpointer user_data) { - int addr_family = GPOINTER_TO_INT (user_data); - char **strings; - GPtrArray *addrs; - NMIPAddress *addr; - char *addrstr; - int prefix; - int i; - - strings = g_value_get_boxed (source_value); - /* Fetch the original property value, so as to preserve their extra attributes */ - g_object_get (g_binding_get_source (binding), - g_binding_get_source_property (binding), &addrs, - NULL); - - for (i = 0; strings[i]; i++) { - if (i >= addrs->len) { - if (addr_family == AF_INET) - addr = nm_ip_address_new (AF_INET, "0.0.0.0", 32, NULL); - else - addr = nm_ip_address_new (AF_INET6, "::", 128, NULL); - g_ptr_array_add (addrs, addr); - } else - addr = addrs->pdata[i]; - - if (!nm_utils_parse_inaddr_prefix (addr_family, strings[i], &addrstr, &prefix)) { - g_ptr_array_unref (addrs); - return FALSE; - } - - if (prefix == -1) { - if (addr_family == AF_INET) { - in_addr_t v4; - - inet_pton (addr_family, addrstr, &v4); - if (nm_utils_ip_is_site_local (AF_INET, &v4)) - prefix = nm_utils_ip4_get_default_prefix (v4); - else - prefix = 32; - } else - prefix = 64; - } - - nm_ip_address_set_address (addr, addrstr); - nm_ip_address_set_prefix (addr, prefix); - g_free (addrstr); - } - - g_ptr_array_set_size (addrs, i); - g_value_take_boxed (target_value, addrs); - return TRUE; + int addr_family = GPOINTER_TO_INT(user_data); + char ** strings; + GPtrArray * addrs; + NMIPAddress *addr; + char * addrstr; + int prefix; + int i; + + strings = g_value_get_boxed(source_value); + /* Fetch the original property value, so as to preserve their extra attributes */ + g_object_get(g_binding_get_source(binding), + g_binding_get_source_property(binding), + &addrs, + NULL); + + for (i = 0; strings[i]; i++) { + if (i >= addrs->len) { + if (addr_family == AF_INET) + addr = nm_ip_address_new(AF_INET, "0.0.0.0", 32, NULL); + else + addr = nm_ip_address_new(AF_INET6, "::", 128, NULL); + g_ptr_array_add(addrs, addr); + } else + addr = addrs->pdata[i]; + + if (!nm_utils_parse_inaddr_prefix(addr_family, strings[i], &addrstr, &prefix)) { + g_ptr_array_unref(addrs); + return FALSE; + } + + if (prefix == -1) { + if (addr_family == AF_INET) { + in_addr_t v4; + + inet_pton(addr_family, addrstr, &v4); + if (nm_utils_ip_is_site_local(AF_INET, &v4)) + prefix = nm_utils_ip4_get_default_prefix(v4); + else + prefix = 32; + } else + prefix = 64; + } + + nm_ip_address_set_address(addr, addrstr); + nm_ip_address_set_prefix(addr, prefix); + g_free(addrstr); + } + + g_ptr_array_set_size(addrs, i); + g_value_take_boxed(target_value, addrs); + return TRUE; } /** @@ -164,40 +163,43 @@ ip_addresses_with_prefix_from_strv (GBinding *binding, * vice versa if %G_BINDING_BIDIRECTIONAL) is specified. */ void -nm_editor_bind_ip_addresses_with_prefix_to_strv (int addr_family, - gpointer source, - const char *source_property, - gpointer target, - const char *target_property, - GBindingFlags flags) +nm_editor_bind_ip_addresses_with_prefix_to_strv(int addr_family, + gpointer source, + const char * source_property, + gpointer target, + const char * target_property, + GBindingFlags flags) { - g_object_bind_property_full (source, source_property, - target, target_property, - flags, - ip_addresses_with_prefix_to_strv, - ip_addresses_with_prefix_from_strv, - GINT_TO_POINTER (addr_family), NULL); + g_object_bind_property_full(source, + source_property, + target, + target_property, + flags, + ip_addresses_with_prefix_to_strv, + ip_addresses_with_prefix_from_strv, + GINT_TO_POINTER(addr_family), + NULL); } static gboolean -ip_addresses_check_and_copy (GBinding *binding, - const GValue *source_value, - GValue *target_value, - gpointer user_data) +ip_addresses_check_and_copy(GBinding * binding, + const GValue *source_value, + GValue * target_value, + gpointer user_data) { - int addr_family = GPOINTER_TO_INT (user_data); - char **strings; - int i; + int addr_family = GPOINTER_TO_INT(user_data); + char **strings; + int i; - strings = g_value_get_boxed (source_value); + strings = g_value_get_boxed(source_value); - for (i = 0; strings[i]; i++) { - if (!nm_utils_ipaddr_is_valid (addr_family, strings[i])) - return FALSE; - } + for (i = 0; strings[i]; i++) { + if (!nm_utils_ipaddr_is_valid(addr_family, strings[i])) + return FALSE; + } - g_value_set_boxed (target_value, strings); - return TRUE; + g_value_set_boxed(target_value, strings); + return TRUE; } /** @@ -216,75 +218,78 @@ ip_addresses_check_and_copy (GBinding *binding, * each string is a valid address of type @addr_family when copying. */ void -nm_editor_bind_ip_addresses_to_strv (int addr_family, - gpointer source, - const char *source_property, - gpointer target, - const char *target_property, - GBindingFlags flags) +nm_editor_bind_ip_addresses_to_strv(int addr_family, + gpointer source, + const char * source_property, + gpointer target, + const char * target_property, + GBindingFlags flags) { - g_object_bind_property_full (source, source_property, - target, target_property, - flags, - ip_addresses_check_and_copy, - ip_addresses_check_and_copy, - GINT_TO_POINTER (addr_family), NULL); + g_object_bind_property_full(source, + source_property, + target, + target_property, + flags, + ip_addresses_check_and_copy, + ip_addresses_check_and_copy, + GINT_TO_POINTER(addr_family), + NULL); } static gboolean -ip_gateway_to_string (GBinding *binding, - const GValue *source_value, - GValue *target_value, - gpointer user_data) +ip_gateway_to_string(GBinding * binding, + const GValue *source_value, + GValue * target_value, + gpointer user_data) { - g_value_set_string (target_value, g_value_get_string (source_value)); - return TRUE; + g_value_set_string(target_value, g_value_get_string(source_value)); + return TRUE; } static gboolean -ip_gateway_from_string (GBinding *binding, - const GValue *source_value, - GValue *target_value, - gpointer user_data) +ip_gateway_from_string(GBinding * binding, + const GValue *source_value, + GValue * target_value, + gpointer user_data) { - int addr_family = GPOINTER_TO_INT (user_data); - const char *gateway; + int addr_family = GPOINTER_TO_INT(user_data); + const char *gateway; - gateway = g_value_get_string (source_value); - if (gateway && !nm_utils_ipaddr_is_valid (addr_family, gateway)) - gateway = NULL; + gateway = g_value_get_string(source_value); + if (gateway && !nm_utils_ipaddr_is_valid(addr_family, gateway)) + gateway = NULL; - g_value_set_string (target_value, gateway); - return TRUE; + g_value_set_string(target_value, gateway); + return TRUE; } static gboolean -ip_addresses_to_gateway (GBinding *binding, - const GValue *source_value, - GValue *target_value, - gpointer user_data) +ip_addresses_to_gateway(GBinding * binding, + const GValue *source_value, + GValue * target_value, + gpointer user_data) { - GPtrArray *addrs; - - addrs = g_value_get_boxed (source_value); - if (addrs->len == 0) { - g_value_set_string (target_value, NULL); - return TRUE; - } else - return FALSE; + GPtrArray *addrs; + + addrs = g_value_get_boxed(source_value); + if (addrs->len == 0) { + g_value_set_string(target_value, NULL); + return TRUE; + } else + return FALSE; } static gboolean -ip_addresses_to_sensitivity (GBinding *binding, - const GValue *source_value, - GValue *target_value, - gpointer user_data) +ip_addresses_to_sensitivity(GBinding * binding, + const GValue *source_value, + GValue * target_value, + gpointer user_data) { - GPtrArray *addrs; + GPtrArray *addrs; - addrs = g_value_get_boxed (source_value); - g_value_set_boolean (target_value, addrs->len != 0); - return TRUE; + addrs = g_value_get_boxed(source_value); + g_value_set_boolean(target_value, addrs->len != 0); + return TRUE; } /** @@ -311,190 +316,202 @@ ip_addresses_to_sensitivity (GBinding *binding, * address. */ void -nm_editor_bind_ip_gateway_to_string (int addr_family, - NMSettingIPConfig *source, - gpointer target, - const char *target_property, - const char *target_sensitive_property, - GBindingFlags flags) +nm_editor_bind_ip_gateway_to_string(int addr_family, + NMSettingIPConfig *source, + gpointer target, + const char * target_property, + const char * target_sensitive_property, + GBindingFlags flags) { - g_object_bind_property_full (source, "gateway", - target, target_property, - flags, - ip_gateway_to_string, - ip_gateway_from_string, - GINT_TO_POINTER (addr_family), NULL); - g_object_bind_property_full (source, "addresses", - source, "gateway", - (flags & G_BINDING_SYNC_CREATE), - ip_addresses_to_gateway, - NULL, - NULL, NULL); - g_object_bind_property_full (source, "addresses", - target, target_sensitive_property, - (flags & G_BINDING_SYNC_CREATE), - ip_addresses_to_sensitivity, - NULL, - NULL, NULL); + g_object_bind_property_full(source, + "gateway", + target, + target_property, + flags, + ip_gateway_to_string, + ip_gateway_from_string, + GINT_TO_POINTER(addr_family), + NULL); + g_object_bind_property_full(source, + "addresses", + source, + "gateway", + (flags & G_BINDING_SYNC_CREATE), + ip_addresses_to_gateway, + NULL, + NULL, + NULL); + g_object_bind_property_full(source, + "addresses", + target, + target_sensitive_property, + (flags & G_BINDING_SYNC_CREATE), + ip_addresses_to_sensitivity, + NULL, + NULL, + NULL); } static gboolean -ip_route_transform_to_dest_string (GBinding *binding, - const GValue *source_value, - GValue *target_value, - gpointer user_data) +ip_route_transform_to_dest_string(GBinding * binding, + const GValue *source_value, + GValue * target_value, + gpointer user_data) { - NMIPRoute *route; - const char *addrstr; - char *string; - - route = g_value_get_boxed (source_value); - if (route) - addrstr = nm_ip_route_get_dest (route); - else - addrstr = NULL; - - if (addrstr) { - string = g_strdup_printf ("%s/%d", addrstr, (int) nm_ip_route_get_prefix (route)); - g_value_take_string (target_value, string); - } else - g_value_set_string (target_value, ""); - return TRUE; + NMIPRoute * route; + const char *addrstr; + char * string; + + route = g_value_get_boxed(source_value); + if (route) + addrstr = nm_ip_route_get_dest(route); + else + addrstr = NULL; + + if (addrstr) { + string = g_strdup_printf("%s/%d", addrstr, (int) nm_ip_route_get_prefix(route)); + g_value_take_string(target_value, string); + } else + g_value_set_string(target_value, ""); + return TRUE; } static gboolean -ip_route_transform_to_next_hop_string (GBinding *binding, - const GValue *source_value, - GValue *target_value, - gpointer user_data) +ip_route_transform_to_next_hop_string(GBinding * binding, + const GValue *source_value, + GValue * target_value, + gpointer user_data) { - NMIPRoute *route; - const char *addrstr; - - route = g_value_get_boxed (source_value); - if (route) { - addrstr = nm_ip_route_get_next_hop (route); - if (!addrstr) - addrstr = ""; - } else - addrstr = ""; - - g_value_set_string (target_value, addrstr); - return TRUE; + NMIPRoute * route; + const char *addrstr; + + route = g_value_get_boxed(source_value); + if (route) { + addrstr = nm_ip_route_get_next_hop(route); + if (!addrstr) + addrstr = ""; + } else + addrstr = ""; + + g_value_set_string(target_value, addrstr); + return TRUE; } static gboolean -ip_route_transform_to_metric_string (GBinding *binding, - const GValue *source_value, - GValue *target_value, - gpointer user_data) +ip_route_transform_to_metric_string(GBinding * binding, + const GValue *source_value, + GValue * target_value, + gpointer user_data) { - NMIPRoute *route; - char *string; - - route = g_value_get_boxed (source_value); - if (route && nm_ip_route_get_dest (route) && nm_ip_route_get_metric (route) != -1) { - string = g_strdup_printf ("%lu", (gulong) nm_ip_route_get_metric (route)); - g_value_take_string (target_value, string); - } else - g_value_set_string (target_value, ""); - return TRUE; + NMIPRoute *route; + char * string; + + route = g_value_get_boxed(source_value); + if (route && nm_ip_route_get_dest(route) && nm_ip_route_get_metric(route) != -1) { + string = g_strdup_printf("%lu", (gulong) nm_ip_route_get_metric(route)); + g_value_take_string(target_value, string); + } else + g_value_set_string(target_value, ""); + return TRUE; } static gboolean -ip_route_transform_from_dest_string (GBinding *binding, - const GValue *source_value, - GValue *target_value, - gpointer user_data) +ip_route_transform_from_dest_string(GBinding * binding, + const GValue *source_value, + GValue * target_value, + gpointer user_data) { - int addr_family = GPOINTER_TO_INT (user_data); - NMIPRoute *route; - const char *text; - char *addrstr; - int prefix; - - text = g_value_get_string (source_value); - if (!nm_utils_parse_inaddr_prefix (addr_family, text, &addrstr, &prefix)) - return FALSE; - - /* Fetch the original property value */ - g_object_get (g_binding_get_source (binding), - g_binding_get_source_property (binding), &route, - NULL); - - if (prefix == -1) { - if (addr_family == AF_INET) { - in_addr_t v4; - - inet_pton (addr_family, addrstr, &v4); - if (nm_utils_ip_is_site_local (AF_INET, &v4)) { - prefix = nm_utils_ip4_get_default_prefix (v4); - if (v4 & (~nm_utils_ip4_prefix_to_netmask (prefix))) - prefix = 32; - } else - prefix = 32; - } else - prefix = 64; - } - - nm_ip_route_set_dest (route, addrstr); - nm_ip_route_set_prefix (route, prefix); - g_free (addrstr); - - g_value_take_boxed (target_value, route); - return TRUE; + int addr_family = GPOINTER_TO_INT(user_data); + NMIPRoute * route; + const char *text; + char * addrstr; + int prefix; + + text = g_value_get_string(source_value); + if (!nm_utils_parse_inaddr_prefix(addr_family, text, &addrstr, &prefix)) + return FALSE; + + /* Fetch the original property value */ + g_object_get(g_binding_get_source(binding), + g_binding_get_source_property(binding), + &route, + NULL); + + if (prefix == -1) { + if (addr_family == AF_INET) { + in_addr_t v4; + + inet_pton(addr_family, addrstr, &v4); + if (nm_utils_ip_is_site_local(AF_INET, &v4)) { + prefix = nm_utils_ip4_get_default_prefix(v4); + if (v4 & (~nm_utils_ip4_prefix_to_netmask(prefix))) + prefix = 32; + } else + prefix = 32; + } else + prefix = 64; + } + + nm_ip_route_set_dest(route, addrstr); + nm_ip_route_set_prefix(route, prefix); + g_free(addrstr); + + g_value_take_boxed(target_value, route); + return TRUE; } static gboolean -ip_route_transform_from_next_hop_string (GBinding *binding, - const GValue *source_value, - GValue *target_value, - gpointer user_data) +ip_route_transform_from_next_hop_string(GBinding * binding, + const GValue *source_value, + GValue * target_value, + gpointer user_data) { - int addr_family = GPOINTER_TO_INT (user_data); - NMIPRoute *route; - const char *text; - - text = g_value_get_string (source_value); - if (*text) { - if (!nm_utils_ipaddr_is_valid (addr_family, text)) - return FALSE; - } else - text = NULL; - - /* Fetch the original property value */ - g_object_get (g_binding_get_source (binding), - g_binding_get_source_property (binding), &route, - NULL); - - nm_ip_route_set_next_hop (route, text); - - g_value_take_boxed (target_value, route); - return TRUE; + int addr_family = GPOINTER_TO_INT(user_data); + NMIPRoute * route; + const char *text; + + text = g_value_get_string(source_value); + if (*text) { + if (!nm_utils_ipaddr_is_valid(addr_family, text)) + return FALSE; + } else + text = NULL; + + /* Fetch the original property value */ + g_object_get(g_binding_get_source(binding), + g_binding_get_source_property(binding), + &route, + NULL); + + nm_ip_route_set_next_hop(route, text); + + g_value_take_boxed(target_value, route); + return TRUE; } static gboolean -ip_route_transform_from_metric_string (GBinding *binding, - const GValue *source_value, - GValue *target_value, - gpointer user_data) +ip_route_transform_from_metric_string(GBinding * binding, + const GValue *source_value, + GValue * target_value, + gpointer user_data) { - NMIPRoute *route; - const char *text; - gint64 metric; + NMIPRoute * route; + const char *text; + gint64 metric; - text = g_value_get_string (source_value); - metric = _nm_utils_ascii_str_to_int64 (text, 10, 0, G_MAXUINT32, -1); + text = g_value_get_string(source_value); + metric = _nm_utils_ascii_str_to_int64(text, 10, 0, G_MAXUINT32, -1); - /* Fetch the original property value */ - g_object_get (g_binding_get_source (binding), - g_binding_get_source_property (binding), &route, - NULL); + /* Fetch the original property value */ + g_object_get(g_binding_get_source(binding), + g_binding_get_source_property(binding), + &route, + NULL); - nm_ip_route_set_metric (route, metric); + nm_ip_route_set_metric(route, metric); - g_value_take_boxed (target_value, route); - return TRUE; + g_value_take_boxed(target_value, route); + return TRUE; } /** @@ -519,226 +536,250 @@ ip_route_transform_from_metric_string (GBinding *binding, * is a plain IP address, and @metric_target_property is a number. */ void -nm_editor_bind_ip_route_to_strings (int addr_family, - gpointer source, - const char *source_property, - gpointer dest_target, - const char *dest_target_property, - gpointer next_hop_target, - const char *next_hop_target_property, - gpointer metric_target, - const char *metric_target_property, - GBindingFlags flags) +nm_editor_bind_ip_route_to_strings(int addr_family, + gpointer source, + const char * source_property, + gpointer dest_target, + const char * dest_target_property, + gpointer next_hop_target, + const char * next_hop_target_property, + gpointer metric_target, + const char * metric_target_property, + GBindingFlags flags) { - g_object_bind_property_full (source, source_property, - dest_target, dest_target_property, - flags, - ip_route_transform_to_dest_string, - ip_route_transform_from_dest_string, - GINT_TO_POINTER (addr_family), NULL); - g_object_bind_property_full (source, source_property, - next_hop_target, next_hop_target_property, - flags, - ip_route_transform_to_next_hop_string, - ip_route_transform_from_next_hop_string, - GINT_TO_POINTER (addr_family), NULL); - g_object_bind_property_full (source, source_property, - metric_target, metric_target_property, - flags, - ip_route_transform_to_metric_string, - ip_route_transform_from_metric_string, - GINT_TO_POINTER (addr_family), NULL); + g_object_bind_property_full(source, + source_property, + dest_target, + dest_target_property, + flags, + ip_route_transform_to_dest_string, + ip_route_transform_from_dest_string, + GINT_TO_POINTER(addr_family), + NULL); + g_object_bind_property_full(source, + source_property, + next_hop_target, + next_hop_target_property, + flags, + ip_route_transform_to_next_hop_string, + ip_route_transform_from_next_hop_string, + GINT_TO_POINTER(addr_family), + NULL); + g_object_bind_property_full(source, + source_property, + metric_target, + metric_target_property, + flags, + ip_route_transform_to_metric_string, + ip_route_transform_from_metric_string, + GINT_TO_POINTER(addr_family), + NULL); } /* Wireless security method binding */ typedef struct { - NMConnection *connection; - NMSettingWirelessSecurity *s_wsec; - gboolean s_wsec_in_use; + NMConnection * connection; + NMSettingWirelessSecurity *s_wsec; + gboolean s_wsec_in_use; - GObject *target; - char *target_property; + GObject *target; + char * target_property; - gboolean updating; + gboolean updating; } NMEditorWirelessSecurityMethodBinding; static const char * -get_security_type (NMEditorWirelessSecurityMethodBinding *binding) +get_security_type(NMEditorWirelessSecurityMethodBinding *binding) { - const char *key_mgmt, *auth_alg; + const char *key_mgmt, *auth_alg; - if (!binding->s_wsec_in_use) - return "none"; + if (!binding->s_wsec_in_use) + return "none"; - key_mgmt = nm_setting_wireless_security_get_key_mgmt (binding->s_wsec); - auth_alg = nm_setting_wireless_security_get_auth_alg (binding->s_wsec); + key_mgmt = nm_setting_wireless_security_get_key_mgmt(binding->s_wsec); + auth_alg = nm_setting_wireless_security_get_auth_alg(binding->s_wsec); - /* No IEEE 802.1x */ - if (!strcmp (key_mgmt, "none")) { - NMWepKeyType wep_type = nm_setting_wireless_security_get_wep_key_type (binding->s_wsec); + /* No IEEE 802.1x */ + if (!strcmp(key_mgmt, "none")) { + NMWepKeyType wep_type = nm_setting_wireless_security_get_wep_key_type(binding->s_wsec); - if (wep_type == NM_WEP_KEY_TYPE_KEY) - return "wep-key"; - else - return "wep-passphrase"; - } + if (wep_type == NM_WEP_KEY_TYPE_KEY) + return "wep-key"; + else + return "wep-passphrase"; + } - if (!strcmp (key_mgmt, "ieee8021x")) { - if (auth_alg && !strcmp (auth_alg, "leap")) - return "leap"; - return "dynamic-wep"; - } + if (!strcmp(key_mgmt, "ieee8021x")) { + if (auth_alg && !strcmp(auth_alg, "leap")) + return "leap"; + return "dynamic-wep"; + } - if (!strcmp (key_mgmt, "wpa-psk")) - return "wpa-personal"; + if (!strcmp(key_mgmt, "wpa-psk")) + return "wpa-personal"; - if (!strcmp (key_mgmt, "sae")) - return "wpa3-personal"; + if (!strcmp(key_mgmt, "sae")) + return "wpa3-personal"; - if (!strcmp (key_mgmt, "owe")) - return "owe"; + if (!strcmp(key_mgmt, "owe")) + return "owe"; - if (!strcmp (key_mgmt, "wpa-eap")) - return "wpa-enterprise"; + if (!strcmp(key_mgmt, "wpa-eap")) + return "wpa-enterprise"; - return NULL; + return NULL; } static void -wireless_security_changed (GObject *object, - GParamSpec *pspec, - gpointer user_data) +wireless_security_changed(GObject *object, GParamSpec *pspec, gpointer user_data) { - NMEditorWirelessSecurityMethodBinding *binding = user_data; + NMEditorWirelessSecurityMethodBinding *binding = user_data; - if (binding->updating) - return; + if (binding->updating) + return; - binding->updating = TRUE; - g_object_set (binding->target, - binding->target_property, get_security_type (binding), - NULL); - binding->updating = FALSE; + binding->updating = TRUE; + g_object_set(binding->target, binding->target_property, get_security_type(binding), NULL); + binding->updating = FALSE; } static void -wireless_connection_changed (NMConnection *connection, - gpointer user_data) +wireless_connection_changed(NMConnection *connection, gpointer user_data) { - NMEditorWirelessSecurityMethodBinding *binding = user_data; - NMSettingWirelessSecurity *s_wsec; + NMEditorWirelessSecurityMethodBinding *binding = user_data; + NMSettingWirelessSecurity * s_wsec; - if (binding->updating) - return; + if (binding->updating) + return; - s_wsec = nm_connection_get_setting_wireless_security (connection); - if ( (s_wsec && binding->s_wsec_in_use) - || (!s_wsec && !binding->s_wsec_in_use)) - return; + s_wsec = nm_connection_get_setting_wireless_security(connection); + if ((s_wsec && binding->s_wsec_in_use) || (!s_wsec && !binding->s_wsec_in_use)) + return; - binding->s_wsec_in_use = !binding->s_wsec_in_use; - wireless_security_changed (NULL, NULL, binding); + binding->s_wsec_in_use = !binding->s_wsec_in_use; + wireless_security_changed(NULL, NULL, binding); } static void -wireless_security_target_changed (GObject *object, - GParamSpec *pspec, - gpointer user_data) +wireless_security_target_changed(GObject *object, GParamSpec *pspec, gpointer user_data) { - NMEditorWirelessSecurityMethodBinding *binding = user_data; - char *method; - - if (binding->updating) - return; - - g_object_get (binding->target, - binding->target_property, &method, - NULL); - - binding->updating = TRUE; - - if (!strcmp (method, "none")) { - if (!binding->s_wsec_in_use) - return; - binding->s_wsec_in_use = FALSE; - nm_connection_remove_setting (binding->connection, NM_TYPE_SETTING_WIRELESS_SECURITY); - - binding->updating = FALSE; - return; - } - - if (!binding->s_wsec_in_use) { - binding->s_wsec_in_use = TRUE; - nm_connection_add_setting (binding->connection, NM_SETTING (binding->s_wsec)); - } - - if (!strcmp (method, "wep-key")) { - g_object_set (binding->s_wsec, - NM_SETTING_WIRELESS_SECURITY_KEY_MGMT, "none", - NM_SETTING_WIRELESS_SECURITY_AUTH_ALG, "open", - NM_SETTING_WIRELESS_SECURITY_WEP_KEY_TYPE, NM_WEP_KEY_TYPE_KEY, - NULL); - } else if (!strcmp (method, "wep-passphrase")) { - g_object_set (binding->s_wsec, - NM_SETTING_WIRELESS_SECURITY_KEY_MGMT, "none", - NM_SETTING_WIRELESS_SECURITY_AUTH_ALG, "open", - NM_SETTING_WIRELESS_SECURITY_WEP_KEY_TYPE, NM_WEP_KEY_TYPE_PASSPHRASE, - NULL); - } else if (!strcmp (method, "leap")) { - g_object_set (binding->s_wsec, - NM_SETTING_WIRELESS_SECURITY_KEY_MGMT, "ieee8021x", - NM_SETTING_WIRELESS_SECURITY_AUTH_ALG, "leap", - NM_SETTING_WIRELESS_SECURITY_WEP_KEY_TYPE, NM_WEP_KEY_TYPE_UNKNOWN, - NULL); - } else if (!strcmp (method, "dynamic-wep")) { - g_object_set (binding->s_wsec, - NM_SETTING_WIRELESS_SECURITY_KEY_MGMT, "ieee8021x", - NM_SETTING_WIRELESS_SECURITY_AUTH_ALG, "open", - NM_SETTING_WIRELESS_SECURITY_WEP_KEY_TYPE, NM_WEP_KEY_TYPE_UNKNOWN, - NULL); - } else if (!strcmp (method, "wpa-personal")) { - g_object_set (binding->s_wsec, - NM_SETTING_WIRELESS_SECURITY_KEY_MGMT, "wpa-psk", - NM_SETTING_WIRELESS_SECURITY_AUTH_ALG, NULL, - NM_SETTING_WIRELESS_SECURITY_WEP_KEY_TYPE, NM_WEP_KEY_TYPE_UNKNOWN, - NULL); - } else if (!strcmp (method, "wpa3-personal")) { - g_object_set (binding->s_wsec, - NM_SETTING_WIRELESS_SECURITY_KEY_MGMT, "sae", - NM_SETTING_WIRELESS_SECURITY_AUTH_ALG, NULL, - NM_SETTING_WIRELESS_SECURITY_WEP_KEY_TYPE, NM_WEP_KEY_TYPE_UNKNOWN, - NULL); - } else if (!strcmp (method, "owe")) { - g_object_set (binding->s_wsec, - NM_SETTING_WIRELESS_SECURITY_KEY_MGMT, "owe", - NM_SETTING_WIRELESS_SECURITY_AUTH_ALG, NULL, - NM_SETTING_WIRELESS_SECURITY_WEP_KEY_TYPE, NM_WEP_KEY_TYPE_UNKNOWN, - NULL); - } else if (!strcmp (method, "wpa-enterprise")) { - g_object_set (binding->s_wsec, - NM_SETTING_WIRELESS_SECURITY_KEY_MGMT, "wpa-eap", - NM_SETTING_WIRELESS_SECURITY_AUTH_ALG, NULL, - NM_SETTING_WIRELESS_SECURITY_WEP_KEY_TYPE, NM_WEP_KEY_TYPE_UNKNOWN, - NULL); - } else - g_warn_if_reached (); - - binding->updating = FALSE; + NMEditorWirelessSecurityMethodBinding *binding = user_data; + char * method; + + if (binding->updating) + return; + + g_object_get(binding->target, binding->target_property, &method, NULL); + + binding->updating = TRUE; + + if (!strcmp(method, "none")) { + if (!binding->s_wsec_in_use) + return; + binding->s_wsec_in_use = FALSE; + nm_connection_remove_setting(binding->connection, NM_TYPE_SETTING_WIRELESS_SECURITY); + + binding->updating = FALSE; + return; + } + + if (!binding->s_wsec_in_use) { + binding->s_wsec_in_use = TRUE; + nm_connection_add_setting(binding->connection, NM_SETTING(binding->s_wsec)); + } + + if (!strcmp(method, "wep-key")) { + g_object_set(binding->s_wsec, + NM_SETTING_WIRELESS_SECURITY_KEY_MGMT, + "none", + NM_SETTING_WIRELESS_SECURITY_AUTH_ALG, + "open", + NM_SETTING_WIRELESS_SECURITY_WEP_KEY_TYPE, + NM_WEP_KEY_TYPE_KEY, + NULL); + } else if (!strcmp(method, "wep-passphrase")) { + g_object_set(binding->s_wsec, + NM_SETTING_WIRELESS_SECURITY_KEY_MGMT, + "none", + NM_SETTING_WIRELESS_SECURITY_AUTH_ALG, + "open", + NM_SETTING_WIRELESS_SECURITY_WEP_KEY_TYPE, + NM_WEP_KEY_TYPE_PASSPHRASE, + NULL); + } else if (!strcmp(method, "leap")) { + g_object_set(binding->s_wsec, + NM_SETTING_WIRELESS_SECURITY_KEY_MGMT, + "ieee8021x", + NM_SETTING_WIRELESS_SECURITY_AUTH_ALG, + "leap", + NM_SETTING_WIRELESS_SECURITY_WEP_KEY_TYPE, + NM_WEP_KEY_TYPE_UNKNOWN, + NULL); + } else if (!strcmp(method, "dynamic-wep")) { + g_object_set(binding->s_wsec, + NM_SETTING_WIRELESS_SECURITY_KEY_MGMT, + "ieee8021x", + NM_SETTING_WIRELESS_SECURITY_AUTH_ALG, + "open", + NM_SETTING_WIRELESS_SECURITY_WEP_KEY_TYPE, + NM_WEP_KEY_TYPE_UNKNOWN, + NULL); + } else if (!strcmp(method, "wpa-personal")) { + g_object_set(binding->s_wsec, + NM_SETTING_WIRELESS_SECURITY_KEY_MGMT, + "wpa-psk", + NM_SETTING_WIRELESS_SECURITY_AUTH_ALG, + NULL, + NM_SETTING_WIRELESS_SECURITY_WEP_KEY_TYPE, + NM_WEP_KEY_TYPE_UNKNOWN, + NULL); + } else if (!strcmp(method, "wpa3-personal")) { + g_object_set(binding->s_wsec, + NM_SETTING_WIRELESS_SECURITY_KEY_MGMT, + "sae", + NM_SETTING_WIRELESS_SECURITY_AUTH_ALG, + NULL, + NM_SETTING_WIRELESS_SECURITY_WEP_KEY_TYPE, + NM_WEP_KEY_TYPE_UNKNOWN, + NULL); + } else if (!strcmp(method, "owe")) { + g_object_set(binding->s_wsec, + NM_SETTING_WIRELESS_SECURITY_KEY_MGMT, + "owe", + NM_SETTING_WIRELESS_SECURITY_AUTH_ALG, + NULL, + NM_SETTING_WIRELESS_SECURITY_WEP_KEY_TYPE, + NM_WEP_KEY_TYPE_UNKNOWN, + NULL); + } else if (!strcmp(method, "wpa-enterprise")) { + g_object_set(binding->s_wsec, + NM_SETTING_WIRELESS_SECURITY_KEY_MGMT, + "wpa-eap", + NM_SETTING_WIRELESS_SECURITY_AUTH_ALG, + NULL, + NM_SETTING_WIRELESS_SECURITY_WEP_KEY_TYPE, + NM_WEP_KEY_TYPE_UNKNOWN, + NULL); + } else + g_warn_if_reached(); + + binding->updating = FALSE; } static void -wireless_security_target_destroyed (gpointer user_data, - GObject *ex_target) +wireless_security_target_destroyed(gpointer user_data, GObject *ex_target) { - NMEditorWirelessSecurityMethodBinding *binding = user_data; + NMEditorWirelessSecurityMethodBinding *binding = user_data; - g_signal_handlers_disconnect_by_func (binding->s_wsec, G_CALLBACK (wireless_security_changed), binding); - g_object_unref (binding->s_wsec); - g_object_unref (binding->connection); + g_signal_handlers_disconnect_by_func(binding->s_wsec, + G_CALLBACK(wireless_security_changed), + binding); + g_object_unref(binding->s_wsec); + g_object_unref(binding->connection); - g_free (binding->target_property); + g_free(binding->target_property); - g_slice_free (NMEditorWirelessSecurityMethodBinding, binding); + g_slice_free(NMEditorWirelessSecurityMethodBinding, binding); } /** @@ -762,131 +803,137 @@ wireless_security_target_destroyed (gpointer user_data, * changes. */ void -nm_editor_bind_wireless_security_method (NMConnection *connection, - NMSettingWirelessSecurity *s_wsec, - gpointer target, - const char *target_property, - GBindingFlags flags) +nm_editor_bind_wireless_security_method(NMConnection * connection, + NMSettingWirelessSecurity *s_wsec, + gpointer target, + const char * target_property, + GBindingFlags flags) { - NMEditorWirelessSecurityMethodBinding *binding; - char *notify; - - binding = g_slice_new0 (NMEditorWirelessSecurityMethodBinding); - - binding->target = target; - binding->target_property = g_strdup (target_property); - if (flags & G_BINDING_BIDIRECTIONAL) { - notify = g_strdup_printf ("notify::%s", target_property); - g_signal_connect (target, notify, G_CALLBACK (wireless_security_target_changed), binding); - g_free (notify); - } - g_object_weak_ref (target, wireless_security_target_destroyed, binding); - - binding->connection = g_object_ref (connection); - g_signal_connect (connection, NM_CONNECTION_CHANGED, - G_CALLBACK (wireless_connection_changed), binding); - binding->s_wsec_in_use = (nm_connection_get_setting_wireless_security (connection) != NULL); - - binding->s_wsec = g_object_ref (s_wsec); - g_signal_connect (s_wsec, "notify::" NM_SETTING_WIRELESS_SECURITY_KEY_MGMT, - G_CALLBACK (wireless_security_changed), binding); - g_signal_connect (s_wsec, "notify::" NM_SETTING_WIRELESS_SECURITY_AUTH_ALG, - G_CALLBACK (wireless_security_changed), binding); - g_signal_connect (s_wsec, "notify::" NM_SETTING_WIRELESS_SECURITY_WEP_KEY_TYPE, - G_CALLBACK (wireless_security_changed), binding); - - if (flags & G_BINDING_SYNC_CREATE) - wireless_security_changed (NULL, NULL, binding); + NMEditorWirelessSecurityMethodBinding *binding; + char * notify; + + binding = g_slice_new0(NMEditorWirelessSecurityMethodBinding); + + binding->target = target; + binding->target_property = g_strdup(target_property); + if (flags & G_BINDING_BIDIRECTIONAL) { + notify = g_strdup_printf("notify::%s", target_property); + g_signal_connect(target, notify, G_CALLBACK(wireless_security_target_changed), binding); + g_free(notify); + } + g_object_weak_ref(target, wireless_security_target_destroyed, binding); + + binding->connection = g_object_ref(connection); + g_signal_connect(connection, + NM_CONNECTION_CHANGED, + G_CALLBACK(wireless_connection_changed), + binding); + binding->s_wsec_in_use = (nm_connection_get_setting_wireless_security(connection) != NULL); + + binding->s_wsec = g_object_ref(s_wsec); + g_signal_connect(s_wsec, + "notify::" NM_SETTING_WIRELESS_SECURITY_KEY_MGMT, + G_CALLBACK(wireless_security_changed), + binding); + g_signal_connect(s_wsec, + "notify::" NM_SETTING_WIRELESS_SECURITY_AUTH_ALG, + G_CALLBACK(wireless_security_changed), + binding); + g_signal_connect(s_wsec, + "notify::" NM_SETTING_WIRELESS_SECURITY_WEP_KEY_TYPE, + G_CALLBACK(wireless_security_changed), + binding); + + if (flags & G_BINDING_SYNC_CREATE) + wireless_security_changed(NULL, NULL, binding); } /* WEP key binding */ typedef struct { - NMSettingWirelessSecurity *s_wsec; - GObject *entry, *key_selector; - char *entry_property, *key_selector_property; + NMSettingWirelessSecurity *s_wsec; + GObject * entry, *key_selector; + char * entry_property, *key_selector_property; - gboolean updating; + gboolean updating; } NMEditorWepKeyBinding; static void -wep_key_setting_changed (GObject *object, - GParamSpec *pspec, - gpointer user_data) +wep_key_setting_changed(GObject *object, GParamSpec *pspec, gpointer user_data) { - NMEditorWepKeyBinding *binding = user_data; - const char *key; - int index; - - if (binding->updating) - return; - - index = nm_setting_wireless_security_get_wep_tx_keyidx (binding->s_wsec); - key = nm_setting_wireless_security_get_wep_key (binding->s_wsec, index); - - binding->updating = TRUE; - g_object_set (binding->key_selector, - binding->key_selector_property, index, - NULL); - g_object_set (binding->entry, - binding->entry_property, key, - NULL); - binding->updating = FALSE; + NMEditorWepKeyBinding *binding = user_data; + const char * key; + int index; + + if (binding->updating) + return; + + index = nm_setting_wireless_security_get_wep_tx_keyidx(binding->s_wsec); + key = nm_setting_wireless_security_get_wep_key(binding->s_wsec, index); + + binding->updating = TRUE; + g_object_set(binding->key_selector, binding->key_selector_property, index, NULL); + g_object_set(binding->entry, binding->entry_property, key, NULL); + binding->updating = FALSE; } static void -wep_key_ui_changed (GObject *object, - GParamSpec *pspec, - gpointer user_data) +wep_key_ui_changed(GObject *object, GParamSpec *pspec, gpointer user_data) { - NMEditorWepKeyBinding *binding = user_data; - char *key; - int index; - - if (binding->updating) - return; - - g_object_get (binding->key_selector, - binding->key_selector_property, &index, - NULL); - g_object_get (binding->entry, - binding->entry_property, &key, - NULL); - - binding->updating = TRUE; - g_object_set (binding->s_wsec, - NM_SETTING_WIRELESS_SECURITY_WEP_TX_KEYIDX, index, - NM_SETTING_WIRELESS_SECURITY_WEP_KEY0, index == 0 ? key : NULL, - NM_SETTING_WIRELESS_SECURITY_WEP_KEY1, index == 1 ? key : NULL, - NM_SETTING_WIRELESS_SECURITY_WEP_KEY2, index == 2 ? key : NULL, - NM_SETTING_WIRELESS_SECURITY_WEP_KEY3, index == 3 ? key : NULL, - NULL); - binding->updating = FALSE; - - g_free (key); + NMEditorWepKeyBinding *binding = user_data; + char * key; + int index; + + if (binding->updating) + return; + + g_object_get(binding->key_selector, binding->key_selector_property, &index, NULL); + g_object_get(binding->entry, binding->entry_property, &key, NULL); + + binding->updating = TRUE; + g_object_set(binding->s_wsec, + NM_SETTING_WIRELESS_SECURITY_WEP_TX_KEYIDX, + index, + NM_SETTING_WIRELESS_SECURITY_WEP_KEY0, + index == 0 ? key : NULL, + NM_SETTING_WIRELESS_SECURITY_WEP_KEY1, + index == 1 ? key : NULL, + NM_SETTING_WIRELESS_SECURITY_WEP_KEY2, + index == 2 ? key : NULL, + NM_SETTING_WIRELESS_SECURITY_WEP_KEY3, + index == 3 ? key : NULL, + NULL); + binding->updating = FALSE; + + g_free(key); } static void -wep_key_target_destroyed (gpointer user_data, - GObject *ex_target) +wep_key_target_destroyed(gpointer user_data, GObject *ex_target) { - NMEditorWepKeyBinding *binding = user_data; - - g_signal_handlers_disconnect_by_func (binding->s_wsec, G_CALLBACK (wep_key_setting_changed), binding); - - if (ex_target != binding->entry) { - g_signal_handlers_disconnect_by_func (binding->entry, G_CALLBACK (wep_key_ui_changed), binding); - g_object_weak_unref (binding->entry, wep_key_target_destroyed, binding); - } else { - g_signal_handlers_disconnect_by_func (binding->key_selector, G_CALLBACK (wep_key_ui_changed), binding); - g_object_weak_unref (binding->key_selector, wep_key_target_destroyed, binding); - } - - g_object_unref (binding->s_wsec); - g_free (binding->entry_property); - g_free (binding->key_selector_property); - - g_slice_free (NMEditorWepKeyBinding, binding); + NMEditorWepKeyBinding *binding = user_data; + + g_signal_handlers_disconnect_by_func(binding->s_wsec, + G_CALLBACK(wep_key_setting_changed), + binding); + + if (ex_target != binding->entry) { + g_signal_handlers_disconnect_by_func(binding->entry, + G_CALLBACK(wep_key_ui_changed), + binding); + g_object_weak_unref(binding->entry, wep_key_target_destroyed, binding); + } else { + g_signal_handlers_disconnect_by_func(binding->key_selector, + G_CALLBACK(wep_key_ui_changed), + binding); + g_object_weak_unref(binding->key_selector, wep_key_target_destroyed, binding); + } + + g_object_unref(binding->s_wsec); + g_free(binding->entry_property); + g_free(binding->key_selector_property); + + g_slice_free(NMEditorWepKeyBinding, binding); } /** @@ -905,154 +952,153 @@ wep_key_target_destroyed (gpointer user_data, * %G_BINDING_BIDIRECTIONAL). */ void -nm_editor_bind_wireless_security_wep_key (NMSettingWirelessSecurity *s_wsec, - gpointer entry, - const char *entry_property, - gpointer key_selector, - const char *key_selector_property, - GBindingFlags flags) +nm_editor_bind_wireless_security_wep_key(NMSettingWirelessSecurity *s_wsec, + gpointer entry, + const char * entry_property, + gpointer key_selector, + const char * key_selector_property, + GBindingFlags flags) { - NMEditorWepKeyBinding *binding; - char *notify; - - binding = g_slice_new0 (NMEditorWepKeyBinding); - binding->s_wsec = g_object_ref (s_wsec); - binding->entry = entry; - binding->entry_property = g_strdup (entry_property); - binding->key_selector = key_selector; - binding->key_selector_property = g_strdup (key_selector_property); - - g_signal_connect (s_wsec, "notify::" NM_SETTING_WIRELESS_SECURITY_WEP_KEY0, - G_CALLBACK (wep_key_setting_changed), binding); - g_signal_connect (s_wsec, "notify::" NM_SETTING_WIRELESS_SECURITY_WEP_KEY1, - G_CALLBACK (wep_key_setting_changed), binding); - g_signal_connect (s_wsec, "notify::" NM_SETTING_WIRELESS_SECURITY_WEP_KEY2, - G_CALLBACK (wep_key_setting_changed), binding); - g_signal_connect (s_wsec, "notify::" NM_SETTING_WIRELESS_SECURITY_WEP_KEY3, - G_CALLBACK (wep_key_setting_changed), binding); - - g_signal_connect (s_wsec, "notify::" NM_SETTING_WIRELESS_SECURITY_WEP_TX_KEYIDX, - G_CALLBACK (wep_key_setting_changed), binding); - - if (flags & G_BINDING_BIDIRECTIONAL) { - notify = g_strdup_printf ("notify::%s", entry_property); - g_signal_connect (entry, notify, G_CALLBACK (wep_key_ui_changed), binding); - g_free (notify); - - notify = g_strdup_printf ("notify::%s", key_selector_property); - g_signal_connect (key_selector, notify, G_CALLBACK (wep_key_ui_changed), binding); - g_free (notify); - } - - g_object_weak_ref (entry, wep_key_target_destroyed, binding); - g_object_weak_ref (key_selector, wep_key_target_destroyed, binding); - - if (flags & G_BINDING_SYNC_CREATE) - wep_key_setting_changed (NULL, NULL, binding); + NMEditorWepKeyBinding *binding; + char * notify; + + binding = g_slice_new0(NMEditorWepKeyBinding); + binding->s_wsec = g_object_ref(s_wsec); + binding->entry = entry; + binding->entry_property = g_strdup(entry_property); + binding->key_selector = key_selector; + binding->key_selector_property = g_strdup(key_selector_property); + + g_signal_connect(s_wsec, + "notify::" NM_SETTING_WIRELESS_SECURITY_WEP_KEY0, + G_CALLBACK(wep_key_setting_changed), + binding); + g_signal_connect(s_wsec, + "notify::" NM_SETTING_WIRELESS_SECURITY_WEP_KEY1, + G_CALLBACK(wep_key_setting_changed), + binding); + g_signal_connect(s_wsec, + "notify::" NM_SETTING_WIRELESS_SECURITY_WEP_KEY2, + G_CALLBACK(wep_key_setting_changed), + binding); + g_signal_connect(s_wsec, + "notify::" NM_SETTING_WIRELESS_SECURITY_WEP_KEY3, + G_CALLBACK(wep_key_setting_changed), + binding); + + g_signal_connect(s_wsec, + "notify::" NM_SETTING_WIRELESS_SECURITY_WEP_TX_KEYIDX, + G_CALLBACK(wep_key_setting_changed), + binding); + + if (flags & G_BINDING_BIDIRECTIONAL) { + notify = g_strdup_printf("notify::%s", entry_property); + g_signal_connect(entry, notify, G_CALLBACK(wep_key_ui_changed), binding); + g_free(notify); + + notify = g_strdup_printf("notify::%s", key_selector_property); + g_signal_connect(key_selector, notify, G_CALLBACK(wep_key_ui_changed), binding); + g_free(notify); + } + + g_object_weak_ref(entry, wep_key_target_destroyed, binding); + g_object_weak_ref(key_selector, wep_key_target_destroyed, binding); + + if (flags & G_BINDING_SYNC_CREATE) + wep_key_setting_changed(NULL, NULL, binding); } /* VLAN binding */ typedef struct { - NMSettingVlan *s_vlan; - NMSettingConnection *s_con; + NMSettingVlan * s_vlan; + NMSettingConnection *s_con; - char *last_ifname_parent; - int last_ifname_id; + char *last_ifname_parent; + int last_ifname_id; - gboolean updating; + gboolean updating; } NMEditorVlanWidgetBinding; static gboolean -parse_interface_name (const char *ifname, - char **parent_ifname, - int *id) +parse_interface_name(const char *ifname, char **parent_ifname, int *id) { - const char *ifname_end; - char *end; - - if (!ifname || !*ifname) - return FALSE; - - if (g_str_has_prefix (ifname, "vlan")) { - ifname_end = ifname + 4; - *id = strtoul (ifname_end, &end, 10); - if (*end || end == (char *)ifname_end || *id < 0) - return FALSE; - *parent_ifname = NULL; - return TRUE; - } - - ifname_end = strchr (ifname, '.'); - if (ifname_end) { - *id = strtoul (ifname_end + 1, &end, 10); - if (*end || end == (char *)ifname_end + 1 || *id < 0) - return FALSE; - *parent_ifname = g_strndup (ifname, ifname_end - ifname); - return TRUE; - } - - return FALSE; + const char *ifname_end; + char * end; + + if (!ifname || !*ifname) + return FALSE; + + if (g_str_has_prefix(ifname, "vlan")) { + ifname_end = ifname + 4; + *id = strtoul(ifname_end, &end, 10); + if (*end || end == (char *) ifname_end || *id < 0) + return FALSE; + *parent_ifname = NULL; + return TRUE; + } + + ifname_end = strchr(ifname, '.'); + if (ifname_end) { + *id = strtoul(ifname_end + 1, &end, 10); + if (*end || end == (char *) ifname_end + 1 || *id < 0) + return FALSE; + *parent_ifname = g_strndup(ifname, ifname_end - ifname); + return TRUE; + } + + return FALSE; } static void -vlan_settings_changed (GObject *object, - GParamSpec *pspec, - gpointer user_data) +vlan_settings_changed(GObject *object, GParamSpec *pspec, gpointer user_data) { - NMEditorVlanWidgetBinding *binding = user_data; - const char *ifname, *parent; - char *ifname_parent; - int ifname_id, id; + NMEditorVlanWidgetBinding *binding = user_data; + const char * ifname, *parent; + char * ifname_parent; + int ifname_id, id; - if (binding->updating) - return; + if (binding->updating) + return; - ifname = nm_setting_connection_get_interface_name (binding->s_con); - parent = nm_setting_vlan_get_parent (binding->s_vlan); - id = nm_setting_vlan_get_id (binding->s_vlan); + ifname = nm_setting_connection_get_interface_name(binding->s_con); + parent = nm_setting_vlan_get_parent(binding->s_vlan); + id = nm_setting_vlan_get_id(binding->s_vlan); - if (!parse_interface_name (ifname, &ifname_parent, &ifname_id)) - return; + if (!parse_interface_name(ifname, &ifname_parent, &ifname_id)) + return; - /* If the id in INTERFACE_NAME changed, and ID is either unset, or was previously + /* If the id in INTERFACE_NAME changed, and ID is either unset, or was previously * in sync with INTERFACE_NAME, then update ID. */ - if ( id != ifname_id - && (id == binding->last_ifname_id || id == 0)) { - binding->updating = TRUE; - g_object_set (G_OBJECT (binding->s_vlan), - NM_SETTING_VLAN_ID, ifname_id, - NULL); - binding->updating = FALSE; - } - - /* If the PARENT in INTERFACE_NAME changed, and PARENT is either unset, or was + if (id != ifname_id && (id == binding->last_ifname_id || id == 0)) { + binding->updating = TRUE; + g_object_set(G_OBJECT(binding->s_vlan), NM_SETTING_VLAN_ID, ifname_id, NULL); + binding->updating = FALSE; + } + + /* If the PARENT in INTERFACE_NAME changed, and PARENT is either unset, or was * previously in sync with INTERFACE_NAME, then update PARENT. */ - if ( g_strcmp0 (parent, ifname_parent) != 0 - && ( g_strcmp0 (parent, binding->last_ifname_parent) == 0 - || !parent || !*parent)) { - binding->updating = TRUE; - g_object_set (G_OBJECT (binding->s_vlan), - NM_SETTING_VLAN_PARENT, ifname_parent, - NULL); - binding->updating = FALSE; - } - - g_free (binding->last_ifname_parent); - binding->last_ifname_parent = ifname_parent; - binding->last_ifname_id = ifname_id; + if (g_strcmp0(parent, ifname_parent) != 0 + && (g_strcmp0(parent, binding->last_ifname_parent) == 0 || !parent || !*parent)) { + binding->updating = TRUE; + g_object_set(G_OBJECT(binding->s_vlan), NM_SETTING_VLAN_PARENT, ifname_parent, NULL); + binding->updating = FALSE; + } + + g_free(binding->last_ifname_parent); + binding->last_ifname_parent = ifname_parent; + binding->last_ifname_id = ifname_id; } static void -vlan_target_destroyed (gpointer user_data, - GObject *ex_target) +vlan_target_destroyed(gpointer user_data, GObject *ex_target) { - NMEditorVlanWidgetBinding *binding = user_data; + NMEditorVlanWidgetBinding *binding = user_data; - g_free (binding->last_ifname_parent); - g_slice_free (NMEditorVlanWidgetBinding, binding); + g_free(binding->last_ifname_parent); + g_slice_free(NMEditorVlanWidgetBinding, binding); } /** @@ -1066,24 +1112,25 @@ vlan_target_destroyed (gpointer user_data, * two properties automatically. */ void -nm_editor_bind_vlan_name (NMSettingVlan *s_vlan, - NMSettingConnection *s_con) +nm_editor_bind_vlan_name(NMSettingVlan *s_vlan, NMSettingConnection *s_con) { - NMEditorVlanWidgetBinding *binding; - const char *ifname; + NMEditorVlanWidgetBinding *binding; + const char * ifname; - binding = g_slice_new0 (NMEditorVlanWidgetBinding); - binding->s_vlan = s_vlan; - binding->s_con = s_con; + binding = g_slice_new0(NMEditorVlanWidgetBinding); + binding->s_vlan = s_vlan; + binding->s_con = s_con; - g_signal_connect (s_con, "notify::" NM_SETTING_CONNECTION_INTERFACE_NAME, - G_CALLBACK (vlan_settings_changed), binding); + g_signal_connect(s_con, + "notify::" NM_SETTING_CONNECTION_INTERFACE_NAME, + G_CALLBACK(vlan_settings_changed), + binding); - g_object_weak_ref (G_OBJECT (s_vlan), vlan_target_destroyed, binding); + g_object_weak_ref(G_OBJECT(s_vlan), vlan_target_destroyed, binding); - ifname = nm_setting_connection_get_interface_name (s_con); - if (!parse_interface_name (ifname, &binding->last_ifname_parent, &binding->last_ifname_id)) { - binding->last_ifname_parent = NULL; - binding->last_ifname_id = 0; - } + ifname = nm_setting_connection_get_interface_name(s_con); + if (!parse_interface_name(ifname, &binding->last_ifname_parent, &binding->last_ifname_id)) { + binding->last_ifname_parent = NULL; + binding->last_ifname_id = 0; + } } diff --git a/clients/tui/nm-editor-bindings.h b/clients/tui/nm-editor-bindings.h index 2301963c73..d09637687e 100644 --- a/clients/tui/nm-editor-bindings.h +++ b/clients/tui/nm-editor-bindings.h @@ -6,52 +6,51 @@ #ifndef NM_EDITOR_BINDINGS_H #define NM_EDITOR_BINDINGS_H -void nm_editor_bindings_init (void); - -void nm_editor_bind_ip_addresses_with_prefix_to_strv (int family, - gpointer source, - const char *source_property, - gpointer target, - const char *target_property, - GBindingFlags flags); -void nm_editor_bind_ip_addresses_to_strv (int family, - gpointer source, - const char *source_property, - gpointer target, - const char *target_property, - GBindingFlags flags); - -void nm_editor_bind_ip_gateway_to_string (int family, - NMSettingIPConfig *source, - gpointer target, - const char *target_property, - const char *target_sensitive_property, - GBindingFlags flags); - -void nm_editor_bind_ip_route_to_strings (int family, - gpointer source, - const char *source_property, - gpointer dest_target, - const char *dest_target_property, - gpointer next_hop_target, - const char *next_hop_target_property, - gpointer metric_target, - const char *metric_target_property, - GBindingFlags flags); - -void nm_editor_bind_wireless_security_method (NMConnection *connection, - NMSettingWirelessSecurity *s_wsec, - gpointer target, - const char *target_property, - GBindingFlags flags); -void nm_editor_bind_wireless_security_wep_key (NMSettingWirelessSecurity *s_wsec, - gpointer entry, - const char *entry_property, - gpointer key_selector, - const char *key_selector_property, - GBindingFlags flags); - -void nm_editor_bind_vlan_name (NMSettingVlan *s_vlan, - NMSettingConnection *s_con); +void nm_editor_bindings_init(void); + +void nm_editor_bind_ip_addresses_with_prefix_to_strv(int family, + gpointer source, + const char * source_property, + gpointer target, + const char * target_property, + GBindingFlags flags); +void nm_editor_bind_ip_addresses_to_strv(int family, + gpointer source, + const char * source_property, + gpointer target, + const char * target_property, + GBindingFlags flags); + +void nm_editor_bind_ip_gateway_to_string(int family, + NMSettingIPConfig *source, + gpointer target, + const char * target_property, + const char * target_sensitive_property, + GBindingFlags flags); + +void nm_editor_bind_ip_route_to_strings(int family, + gpointer source, + const char * source_property, + gpointer dest_target, + const char * dest_target_property, + gpointer next_hop_target, + const char * next_hop_target_property, + gpointer metric_target, + const char * metric_target_property, + GBindingFlags flags); + +void nm_editor_bind_wireless_security_method(NMConnection * connection, + NMSettingWirelessSecurity *s_wsec, + gpointer target, + const char * target_property, + GBindingFlags flags); +void nm_editor_bind_wireless_security_wep_key(NMSettingWirelessSecurity *s_wsec, + gpointer entry, + const char * entry_property, + gpointer key_selector, + const char * key_selector_property, + GBindingFlags flags); + +void nm_editor_bind_vlan_name(NMSettingVlan *s_vlan, NMSettingConnection *s_con); #endif /* NM_EDITOR_BINDINGS_H */ diff --git a/clients/tui/nm-editor-utils.c b/clients/tui/nm-editor-utils.c index 4201936170..c1e988b71a 100644 --- a/clients/tui/nm-editor-utils.c +++ b/clients/tui/nm-editor-utils.c @@ -16,7 +16,7 @@ #include "nm-editor-utils.h" #if 0 -#include "nm-vpn-helpers.h" + #include "nm-vpn-helpers.h" static GSList *vpn_plugins; @@ -41,68 +41,61 @@ sort_vpn_plugins (gconstpointer a, gconstpointer b) #endif static void -wifi_connection_setup_func (NMConnection *connection, - NMSettingConnection *s_con, - NMSetting *s_hw) +wifi_connection_setup_func(NMConnection *connection, NMSettingConnection *s_con, NMSetting *s_hw) { - g_object_set (G_OBJECT (s_hw), - NM_SETTING_WIRELESS_MODE, NM_SETTING_WIRELESS_MODE_INFRA, - NULL); + g_object_set(G_OBJECT(s_hw), NM_SETTING_WIRELESS_MODE, NM_SETTING_WIRELESS_MODE_INFRA, NULL); } static void -bond_connection_setup_func (NMConnection *connection, - NMSettingConnection *s_con, - NMSetting *s_hw) +bond_connection_setup_func(NMConnection *connection, NMSettingConnection *s_con, NMSetting *s_hw) { - NMSettingBond *s_bond = NM_SETTING_BOND (s_hw); - guint i; - const char *value; - static const char *const options[] = { - NM_SETTING_BOND_OPTION_MODE, - NM_SETTING_BOND_OPTION_MIIMON, - NM_SETTING_BOND_OPTION_DOWNDELAY, - NM_SETTING_BOND_OPTION_UPDELAY, - }; - - for (i = 0; i < G_N_ELEMENTS (options); i++) { - value = nm_setting_bond_get_option_default (s_bond, options[i]); - if (value) - nm_setting_bond_add_option (s_bond, options[i], value); - } + NMSettingBond * s_bond = NM_SETTING_BOND(s_hw); + guint i; + const char * value; + static const char *const options[] = { + NM_SETTING_BOND_OPTION_MODE, + NM_SETTING_BOND_OPTION_MIIMON, + NM_SETTING_BOND_OPTION_DOWNDELAY, + NM_SETTING_BOND_OPTION_UPDELAY, + }; + + for (i = 0; i < G_N_ELEMENTS(options); i++) { + value = nm_setting_bond_get_option_default(s_bond, options[i]); + if (value) + nm_setting_bond_add_option(s_bond, options[i], value); + } } -typedef void (*NMEditorNewConnectionSetupFunc) (NMConnection *connection, - NMSettingConnection *s_con, - NMSetting *s_hw); +typedef void (*NMEditorNewConnectionSetupFunc)(NMConnection * connection, + NMSettingConnection *s_con, + NMSetting * s_hw); typedef struct { - NMEditorConnectionTypeData data; + NMEditorConnectionTypeData data; - const char *id_format; - NMEditorNewConnectionSetupFunc connection_setup_func; - gboolean no_autoconnect; + const char * id_format; + NMEditorNewConnectionSetupFunc connection_setup_func; + gboolean no_autoconnect; } NMEditorConnectionTypeDataReal; static int -sort_types (gconstpointer a, gconstpointer b) +sort_types(gconstpointer a, gconstpointer b) { - NMEditorConnectionTypeData *typea = *(NMEditorConnectionTypeData **)a; - NMEditorConnectionTypeData *typeb = *(NMEditorConnectionTypeData **)b; - - if (typea->virtual && !typeb->virtual) - return 1; - else if (typeb->virtual && !typea->virtual) - return -1; - - if (typea->setting_type == NM_TYPE_SETTING_VPN && - typeb->setting_type != NM_TYPE_SETTING_VPN) - return 1; - else if (typeb->setting_type == NM_TYPE_SETTING_VPN && - typea->setting_type != NM_TYPE_SETTING_VPN) - return -1; - - return g_utf8_collate (typea->name, typeb->name); + NMEditorConnectionTypeData *typea = *(NMEditorConnectionTypeData **) a; + NMEditorConnectionTypeData *typeb = *(NMEditorConnectionTypeData **) b; + + if (typea->virtual && !typeb->virtual) + return 1; + else if (typeb->virtual && !typea->virtual) + return -1; + + if (typea->setting_type == NM_TYPE_SETTING_VPN && typeb->setting_type != NM_TYPE_SETTING_VPN) + return 1; + else if (typeb->setting_type == NM_TYPE_SETTING_VPN + && typea->setting_type != NM_TYPE_SETTING_VPN) + return -1; + + return g_utf8_collate(typea->name, typeb->name); } /** @@ -116,45 +109,45 @@ sort_types (gconstpointer a, gconstpointer b) * Returns: the array of connection type information */ NMEditorConnectionTypeData ** -nm_editor_utils_get_connection_type_list (void) +nm_editor_utils_get_connection_type_list(void) { - GPtrArray *array; - NMEditorConnectionTypeDataReal *item; - static NMEditorConnectionTypeData **list; + GPtrArray * array; + NMEditorConnectionTypeDataReal * item; + static NMEditorConnectionTypeData **list; #if 0 GHashTable *vpn_plugins_hash; gboolean have_vpn_plugins; #endif - if (list) - return list; - - array = g_ptr_array_new (); - - item = g_new0 (NMEditorConnectionTypeDataReal, 1); - item->data.name = _("Ethernet"); - item->data.setting_type = NM_TYPE_SETTING_WIRED; - item->data.device_type = NM_TYPE_DEVICE_ETHERNET; - item->data.virtual = FALSE; - item->id_format = _("Ethernet connection %d"); - g_ptr_array_add (array, item); - - item = g_new0 (NMEditorConnectionTypeDataReal, 1); - item->data.name = _("Wi-Fi"); - item->data.setting_type = NM_TYPE_SETTING_WIRELESS; - item->data.device_type = NM_TYPE_DEVICE_WIFI; - item->data.virtual = FALSE; - item->id_format = _("Wi-Fi connection %d"); - item->connection_setup_func = wifi_connection_setup_func; - g_ptr_array_add (array, item); - - item = g_new0 (NMEditorConnectionTypeDataReal, 1); - item->data.name = _("InfiniBand"); - item->data.setting_type = NM_TYPE_SETTING_INFINIBAND; - item->data.device_type = NM_TYPE_DEVICE_INFINIBAND; - item->data.virtual = FALSE; - item->id_format = _("InfiniBand connection %d"); - g_ptr_array_add (array, item); + if (list) + return list; + + array = g_ptr_array_new(); + + item = g_new0(NMEditorConnectionTypeDataReal, 1); + item->data.name = _("Ethernet"); + item->data.setting_type = NM_TYPE_SETTING_WIRED; + item->data.device_type = NM_TYPE_DEVICE_ETHERNET; + item->data.virtual = FALSE; + item->id_format = _("Ethernet connection %d"); + g_ptr_array_add(array, item); + + item = g_new0(NMEditorConnectionTypeDataReal, 1); + item->data.name = _("Wi-Fi"); + item->data.setting_type = NM_TYPE_SETTING_WIRELESS; + item->data.device_type = NM_TYPE_DEVICE_WIFI; + item->data.virtual = FALSE; + item->id_format = _("Wi-Fi connection %d"); + item->connection_setup_func = wifi_connection_setup_func; + g_ptr_array_add(array, item); + + item = g_new0(NMEditorConnectionTypeDataReal, 1); + item->data.name = _("InfiniBand"); + item->data.setting_type = NM_TYPE_SETTING_INFINIBAND; + item->data.device_type = NM_TYPE_DEVICE_INFINIBAND; + item->data.virtual = FALSE; + item->id_format = _("InfiniBand connection %d"); + g_ptr_array_add(array, item); #if 0 item = g_new0 (NMEditorConnectionTypeDataReal, 1); @@ -166,57 +159,57 @@ nm_editor_utils_get_connection_type_list (void) g_ptr_array_add (array, item); #endif - item = g_new0 (NMEditorConnectionTypeDataReal, 1); - item->data.name = _("DSL"); - item->data.setting_type = NM_TYPE_SETTING_PPPOE; - item->data.device_type = NM_TYPE_DEVICE_ETHERNET; - item->data.virtual = FALSE; - item->id_format = _("DSL connection %d"); - item->no_autoconnect = TRUE; - g_ptr_array_add (array, item); - - item = g_new0 (NMEditorConnectionTypeDataReal, 1); - item->data.name = _("Bond"); - item->data.setting_type = NM_TYPE_SETTING_BOND; - item->data.device_type = NM_TYPE_DEVICE_BOND; - item->data.virtual = TRUE; - item->id_format = _("Bond connection %d"); - item->connection_setup_func = bond_connection_setup_func; - g_ptr_array_add (array, item); - - item = g_new0 (NMEditorConnectionTypeDataReal, 1); - item->data.name = _("Bridge"); - item->data.setting_type = NM_TYPE_SETTING_BRIDGE; - item->data.slave_setting_type = NM_TYPE_SETTING_BRIDGE_PORT; - item->data.device_type = NM_TYPE_DEVICE_BRIDGE; - item->data.virtual = TRUE; - item->id_format = _("Bridge connection %d"); - g_ptr_array_add (array, item); - - item = g_new0 (NMEditorConnectionTypeDataReal, 1); - item->data.name = _("Team"); - item->data.setting_type = NM_TYPE_SETTING_TEAM; - item->data.slave_setting_type = NM_TYPE_SETTING_TEAM_PORT; - item->data.device_type = NM_TYPE_DEVICE_TEAM; - item->data.virtual = TRUE; - item->id_format = _("Team connection %d"); - g_ptr_array_add (array, item); - - item = g_new0 (NMEditorConnectionTypeDataReal, 1); - item->data.name = _("VLAN"); - item->data.setting_type = NM_TYPE_SETTING_VLAN; - item->data.device_type = NM_TYPE_DEVICE_VLAN; - item->data.virtual = TRUE; - item->id_format = _("VLAN connection %d"); - g_ptr_array_add (array, item); - - item = g_new0 (NMEditorConnectionTypeDataReal, 1); - item->data.name = _("IP tunnel"); - item->data.setting_type = NM_TYPE_SETTING_IP_TUNNEL; - item->data.device_type = NM_TYPE_DEVICE_IP_TUNNEL; - item->data.virtual = TRUE; - item->id_format = _("IP tunnel connection %d"); - g_ptr_array_add (array, item); + item = g_new0(NMEditorConnectionTypeDataReal, 1); + item->data.name = _("DSL"); + item->data.setting_type = NM_TYPE_SETTING_PPPOE; + item->data.device_type = NM_TYPE_DEVICE_ETHERNET; + item->data.virtual = FALSE; + item->id_format = _("DSL connection %d"); + item->no_autoconnect = TRUE; + g_ptr_array_add(array, item); + + item = g_new0(NMEditorConnectionTypeDataReal, 1); + item->data.name = _("Bond"); + item->data.setting_type = NM_TYPE_SETTING_BOND; + item->data.device_type = NM_TYPE_DEVICE_BOND; + item->data.virtual = TRUE; + item->id_format = _("Bond connection %d"); + item->connection_setup_func = bond_connection_setup_func; + g_ptr_array_add(array, item); + + item = g_new0(NMEditorConnectionTypeDataReal, 1); + item->data.name = _("Bridge"); + item->data.setting_type = NM_TYPE_SETTING_BRIDGE; + item->data.slave_setting_type = NM_TYPE_SETTING_BRIDGE_PORT; + item->data.device_type = NM_TYPE_DEVICE_BRIDGE; + item->data.virtual = TRUE; + item->id_format = _("Bridge connection %d"); + g_ptr_array_add(array, item); + + item = g_new0(NMEditorConnectionTypeDataReal, 1); + item->data.name = _("Team"); + item->data.setting_type = NM_TYPE_SETTING_TEAM; + item->data.slave_setting_type = NM_TYPE_SETTING_TEAM_PORT; + item->data.device_type = NM_TYPE_DEVICE_TEAM; + item->data.virtual = TRUE; + item->id_format = _("Team connection %d"); + g_ptr_array_add(array, item); + + item = g_new0(NMEditorConnectionTypeDataReal, 1); + item->data.name = _("VLAN"); + item->data.setting_type = NM_TYPE_SETTING_VLAN; + item->data.device_type = NM_TYPE_DEVICE_VLAN; + item->data.virtual = TRUE; + item->id_format = _("VLAN connection %d"); + g_ptr_array_add(array, item); + + item = g_new0(NMEditorConnectionTypeDataReal, 1); + item->data.name = _("IP tunnel"); + item->data.setting_type = NM_TYPE_SETTING_IP_TUNNEL; + item->data.device_type = NM_TYPE_DEVICE_IP_TUNNEL; + item->data.virtual = TRUE; + item->id_format = _("IP tunnel connection %d"); + g_ptr_array_add(array, item); #if 0 /* Add "VPN" only if there are plugins */ @@ -242,94 +235,92 @@ nm_editor_utils_get_connection_type_list (void) } #endif - g_ptr_array_sort (array, sort_types); - g_ptr_array_add (array, NULL); + g_ptr_array_sort(array, sort_types); + g_ptr_array_add(array, NULL); - list = (NMEditorConnectionTypeData **)g_ptr_array_free (array, FALSE); - return list; + list = (NMEditorConnectionTypeData **) g_ptr_array_free(array, FALSE); + return list; } static gboolean -_assert_format_int (const char *format) +_assert_format_int(const char *format) { - g_assert (format); - format = strchr (format, '%'); - g_assert (format); - format++; - g_assert (!strchr (format, '%')); - g_assert (format[0] == 'd'); - return TRUE; + g_assert(format); + format = strchr(format, '%'); + g_assert(format); + format++; + g_assert(!strchr(format, '%')); + g_assert(format[0] == 'd'); + return TRUE; } static char * -get_available_connection_name (const char *format, - NMClient *client) +get_available_connection_name(const char *format, NMClient *client) { - const GPtrArray *conns; - GSList *names = NULL, *iter; - char *cname = NULL; - int i = 0; - - nm_assert (_assert_format_int (format)); - - conns = nm_client_get_connections (client); - for (i = 0; i < conns->len; i++) { - const char *id; - - id = nm_connection_get_id (NM_CONNECTION (conns->pdata[i])); - g_assert (id); - names = g_slist_append (names, (gpointer) id); - } - - /* Find the next available unique connection name */ - for (i = 1; !cname && i < 10000; i++) { - char *temp; - gboolean found = FALSE; - - NM_PRAGMA_WARNING_DISABLE("-Wformat-nonliteral") - temp = g_strdup_printf (format, i); - NM_PRAGMA_WARNING_REENABLE - for (iter = names; iter; iter = g_slist_next (iter)) { - if (!strcmp (iter->data, temp)) { - found = TRUE; - break; - } - } - if (!found) - cname = temp; - else - g_free (temp); - } - - g_slist_free (names); - return cname; + const GPtrArray *conns; + GSList * names = NULL, *iter; + char * cname = NULL; + int i = 0; + + nm_assert(_assert_format_int(format)); + + conns = nm_client_get_connections(client); + for (i = 0; i < conns->len; i++) { + const char *id; + + id = nm_connection_get_id(NM_CONNECTION(conns->pdata[i])); + g_assert(id); + names = g_slist_append(names, (gpointer) id); + } + + /* Find the next available unique connection name */ + for (i = 1; !cname && i < 10000; i++) { + char * temp; + gboolean found = FALSE; + + NM_PRAGMA_WARNING_DISABLE("-Wformat-nonliteral") + temp = g_strdup_printf(format, i); + NM_PRAGMA_WARNING_REENABLE + for (iter = names; iter; iter = g_slist_next(iter)) { + if (!strcmp(iter->data, temp)) { + found = TRUE; + break; + } + } + if (!found) + cname = temp; + else + g_free(temp); + } + + g_slist_free(names); + return cname; } static char * -get_available_iface_name (const char *try_name, - NMClient *client) +get_available_iface_name(const char *try_name, NMClient *client) { - const GPtrArray *connections; - NMConnection *connection; - char *new_name; - unsigned num = 1; - int i = 0; - const char *ifname = NULL; - - connections = nm_client_get_connections (client); - - new_name = g_strdup (try_name); - while (i < connections->len) { - connection = NM_CONNECTION (connections->pdata[i]); - ifname = nm_connection_get_interface_name (connection); - if (g_strcmp0 (new_name, ifname) == 0) { - g_free (new_name); - new_name = g_strdup_printf ("%s%d", try_name, num++); - i = 0; - } else - i++; - } - return new_name; + const GPtrArray *connections; + NMConnection * connection; + char * new_name; + unsigned num = 1; + int i = 0; + const char * ifname = NULL; + + connections = nm_client_get_connections(client); + + new_name = g_strdup(try_name); + while (i < connections->len) { + connection = NM_CONNECTION(connections->pdata[i]); + ifname = nm_connection_get_interface_name(connection); + if (g_strcmp0(new_name, ifname) == 0) { + g_free(new_name); + new_name = g_strdup_printf("%s%d", try_name, num++); + i = 0; + } else + i++; + } + return new_name; } /** @@ -348,85 +339,89 @@ get_available_iface_name (const char *try_name, * Returns: a new #NMConnection */ NMConnection * -nm_editor_utils_create_connection (GType type, - NMConnection *master, - NMClient *client) +nm_editor_utils_create_connection(GType type, NMConnection *master, NMClient *client) { - NMEditorConnectionTypeData **types; - NMEditorConnectionTypeDataReal *type_data = NULL; - const char *master_setting_type = NULL, *master_uuid = NULL; - GType master_type = G_TYPE_INVALID, slave_setting_type = G_TYPE_INVALID; - NMConnection *connection; - NMSettingConnection *s_con; - NMSetting *s_hw, *s_slave; - char *uuid, *id, *ifname; - int i; - - if (master) { - NMSettingConnection *master_s_con; - - master_s_con = nm_connection_get_setting_connection (master); - master_setting_type = nm_setting_connection_get_connection_type (master_s_con); - master_uuid = nm_setting_connection_get_uuid (master_s_con); - master_type = nm_setting_lookup_type (master_setting_type); - } - - types = nm_editor_utils_get_connection_type_list (); - for (i = 0; types[i]; i++) { - if (types[i]->setting_type == type) - type_data = (NMEditorConnectionTypeDataReal *)types[i]; - if (types[i]->setting_type == master_type) - slave_setting_type = types[i]->slave_setting_type; - - } - if (!type_data) { - g_return_val_if_reached (NULL); - return NULL; - } - - connection = nm_simple_connection_new (); - - s_con = NM_SETTING_CONNECTION (nm_setting_connection_new ()); - nm_connection_add_setting (connection, NM_SETTING (s_con)); - - s_hw = g_object_new (type, NULL); - nm_connection_add_setting (connection, s_hw); - - if (type == NM_TYPE_SETTING_BOND) - ifname = get_available_iface_name ("nm-bond", client); - else if (type == NM_TYPE_SETTING_TEAM) - ifname = get_available_iface_name ("nm-team", client); - else if (type == NM_TYPE_SETTING_BRIDGE) - ifname = get_available_iface_name ("nm-bridge", client); - else - ifname = NULL; - - if (slave_setting_type != G_TYPE_INVALID) { - s_slave = g_object_new (slave_setting_type, NULL); - nm_connection_add_setting (connection, s_slave); - } - - uuid = nm_utils_uuid_generate (); - id = get_available_connection_name (type_data->id_format, client); - - g_object_set (s_con, - NM_SETTING_CONNECTION_UUID, uuid, - NM_SETTING_CONNECTION_ID, id, - NM_SETTING_CONNECTION_TYPE, nm_setting_get_name (s_hw), - NM_SETTING_CONNECTION_AUTOCONNECT, !type_data->no_autoconnect, - NM_SETTING_CONNECTION_MASTER, master_uuid, - NM_SETTING_CONNECTION_SLAVE_TYPE, master_setting_type, - NM_SETTING_CONNECTION_INTERFACE_NAME, ifname, - NULL); - - g_free (uuid); - g_free (id); - g_free (ifname); - - if (type_data->connection_setup_func) - type_data->connection_setup_func (connection, s_con, s_hw); - - return connection; + NMEditorConnectionTypeData ** types; + NMEditorConnectionTypeDataReal *type_data = NULL; + const char * master_setting_type = NULL, *master_uuid = NULL; + GType master_type = G_TYPE_INVALID, slave_setting_type = G_TYPE_INVALID; + NMConnection * connection; + NMSettingConnection *s_con; + NMSetting * s_hw, *s_slave; + char * uuid, *id, *ifname; + int i; + + if (master) { + NMSettingConnection *master_s_con; + + master_s_con = nm_connection_get_setting_connection(master); + master_setting_type = nm_setting_connection_get_connection_type(master_s_con); + master_uuid = nm_setting_connection_get_uuid(master_s_con); + master_type = nm_setting_lookup_type(master_setting_type); + } + + types = nm_editor_utils_get_connection_type_list(); + for (i = 0; types[i]; i++) { + if (types[i]->setting_type == type) + type_data = (NMEditorConnectionTypeDataReal *) types[i]; + if (types[i]->setting_type == master_type) + slave_setting_type = types[i]->slave_setting_type; + } + if (!type_data) { + g_return_val_if_reached(NULL); + return NULL; + } + + connection = nm_simple_connection_new(); + + s_con = NM_SETTING_CONNECTION(nm_setting_connection_new()); + nm_connection_add_setting(connection, NM_SETTING(s_con)); + + s_hw = g_object_new(type, NULL); + nm_connection_add_setting(connection, s_hw); + + if (type == NM_TYPE_SETTING_BOND) + ifname = get_available_iface_name("nm-bond", client); + else if (type == NM_TYPE_SETTING_TEAM) + ifname = get_available_iface_name("nm-team", client); + else if (type == NM_TYPE_SETTING_BRIDGE) + ifname = get_available_iface_name("nm-bridge", client); + else + ifname = NULL; + + if (slave_setting_type != G_TYPE_INVALID) { + s_slave = g_object_new(slave_setting_type, NULL); + nm_connection_add_setting(connection, s_slave); + } + + uuid = nm_utils_uuid_generate(); + id = get_available_connection_name(type_data->id_format, client); + + g_object_set(s_con, + NM_SETTING_CONNECTION_UUID, + uuid, + NM_SETTING_CONNECTION_ID, + id, + NM_SETTING_CONNECTION_TYPE, + nm_setting_get_name(s_hw), + NM_SETTING_CONNECTION_AUTOCONNECT, + !type_data->no_autoconnect, + NM_SETTING_CONNECTION_MASTER, + master_uuid, + NM_SETTING_CONNECTION_SLAVE_TYPE, + master_setting_type, + NM_SETTING_CONNECTION_INTERFACE_NAME, + ifname, + NULL); + + g_free(uuid); + g_free(id); + g_free(ifname); + + if (type_data->connection_setup_func) + type_data->connection_setup_func(connection, s_con, s_hw); + + return connection; } /** @@ -439,26 +434,26 @@ nm_editor_utils_create_connection (GType type, * Returns: the #NMEditorConnectionTypeData */ NMEditorConnectionTypeData * -nm_editor_utils_get_connection_type_data (NMConnection *conn) +nm_editor_utils_get_connection_type_data(NMConnection *conn) { - NMSettingConnection *s_con; - const char *conn_type; - GType conn_gtype; - NMEditorConnectionTypeData **types; - int i; - - s_con = nm_connection_get_setting_connection (conn); - g_return_val_if_fail (s_con != NULL, NULL); - - conn_type = nm_setting_connection_get_connection_type (s_con); - conn_gtype = nm_setting_lookup_type (conn_type); - g_return_val_if_fail (conn_gtype != G_TYPE_INVALID, NULL); - - types = nm_editor_utils_get_connection_type_list (); - for (i = 0; types[i]; i++) { - if (types[i]->setting_type == conn_gtype) - return types[i]; - } - - return NULL; + NMSettingConnection * s_con; + const char * conn_type; + GType conn_gtype; + NMEditorConnectionTypeData **types; + int i; + + s_con = nm_connection_get_setting_connection(conn); + g_return_val_if_fail(s_con != NULL, NULL); + + conn_type = nm_setting_connection_get_connection_type(s_con); + conn_gtype = nm_setting_lookup_type(conn_type); + g_return_val_if_fail(conn_gtype != G_TYPE_INVALID, NULL); + + types = nm_editor_utils_get_connection_type_list(); + for (i = 0; types[i]; i++) { + if (types[i]->setting_type == conn_gtype) + return types[i]; + } + + return NULL; } diff --git a/clients/tui/nm-editor-utils.h b/clients/tui/nm-editor-utils.h index 015170afd5..b6ff62a680 100644 --- a/clients/tui/nm-editor-utils.h +++ b/clients/tui/nm-editor-utils.h @@ -7,18 +7,16 @@ #define NM_EDITOR_UTILS_H typedef struct { - const char *name; - GType setting_type; - GType slave_setting_type; - GType device_type; - gboolean virtual; + const char *name; + GType setting_type; + GType slave_setting_type; + GType device_type; + gboolean virtual; } NMEditorConnectionTypeData; -NMEditorConnectionTypeData **nm_editor_utils_get_connection_type_list (void); -NMEditorConnectionTypeData *nm_editor_utils_get_connection_type_data (NMConnection *conn); +NMEditorConnectionTypeData **nm_editor_utils_get_connection_type_list(void); +NMEditorConnectionTypeData * nm_editor_utils_get_connection_type_data(NMConnection *conn); -NMConnection *nm_editor_utils_create_connection (GType type, - NMConnection *master, - NMClient *client); +NMConnection *nm_editor_utils_create_connection(GType type, NMConnection *master, NMClient *client); #endif /* NM_EDITOR_UTILS_H */ diff --git a/clients/tui/nmt-address-list.c b/clients/tui/nmt-address-list.c index fc400cdca5..f859b7ef7f 100644 --- a/clients/tui/nmt-address-list.c +++ b/clients/tui/nmt-address-list.c @@ -25,21 +25,22 @@ #include "nmt-ip-entry.h" -G_DEFINE_TYPE (NmtAddressList, nmt_address_list, NMT_TYPE_WIDGET_LIST) +G_DEFINE_TYPE(NmtAddressList, nmt_address_list, NMT_TYPE_WIDGET_LIST) -#define NMT_ADDRESS_LIST_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NMT_TYPE_ADDRESS_LIST, NmtAddressListPrivate)) +#define NMT_ADDRESS_LIST_GET_PRIVATE(o) \ + (G_TYPE_INSTANCE_GET_PRIVATE((o), NMT_TYPE_ADDRESS_LIST, NmtAddressListPrivate)) typedef struct { - NmtAddressListType list_type; - char **strings; + NmtAddressListType list_type; + char ** strings; } NmtAddressListPrivate; enum { - PROP_0, - PROP_LIST_TYPE, - PROP_STRINGS, + PROP_0, + PROP_LIST_TYPE, + PROP_STRINGS, - LAST_PROP + LAST_PROP }; /** @@ -62,209 +63,204 @@ enum { * Returns: a new #NmtAddressList */ NmtNewtWidget * -nmt_address_list_new (NmtAddressListType list_type) +nmt_address_list_new(NmtAddressListType list_type) { - return g_object_new (NMT_TYPE_ADDRESS_LIST, - "list-type", list_type, - NULL); + return g_object_new(NMT_TYPE_ADDRESS_LIST, "list-type", list_type, NULL); } static void -nmt_address_list_init (NmtAddressList *list) -{ -} +nmt_address_list_init(NmtAddressList *list) +{} static gboolean -strings_transform_to_entry (GBinding *binding, - const GValue *source_value, - GValue *target_value, - gpointer user_data) +strings_transform_to_entry(GBinding * binding, + const GValue *source_value, + GValue * target_value, + gpointer user_data) { - int n = GPOINTER_TO_INT (user_data); - char **strings; + int n = GPOINTER_TO_INT(user_data); + char **strings; - strings = g_value_get_boxed (source_value); - if (n >= g_strv_length (strings)) - return FALSE; + strings = g_value_get_boxed(source_value); + if (n >= g_strv_length(strings)) + return FALSE; - g_value_set_string (target_value, strings[n]); - return TRUE; + g_value_set_string(target_value, strings[n]); + return TRUE; } static gboolean -strings_transform_from_entry (GBinding *binding, - const GValue *source_value, - GValue *target_value, - gpointer user_data) +strings_transform_from_entry(GBinding * binding, + const GValue *source_value, + GValue * target_value, + gpointer user_data) { - NmtAddressList *list = NMT_ADDRESS_LIST (g_binding_get_source (binding)); - NmtAddressListPrivate *priv = NMT_ADDRESS_LIST_GET_PRIVATE (list); - int n = GPOINTER_TO_INT (user_data); + NmtAddressList * list = NMT_ADDRESS_LIST(g_binding_get_source(binding)); + NmtAddressListPrivate *priv = NMT_ADDRESS_LIST_GET_PRIVATE(list); + int n = GPOINTER_TO_INT(user_data); - if (n >= g_strv_length (priv->strings)) - return FALSE; + if (n >= g_strv_length(priv->strings)) + return FALSE; - g_free (priv->strings[n]); - priv->strings[n] = g_value_dup_string (source_value); + g_free(priv->strings[n]); + priv->strings[n] = g_value_dup_string(source_value); - g_value_set_boxed (target_value, priv->strings); - return TRUE; + g_value_set_boxed(target_value, priv->strings); + return TRUE; } static gboolean -hostname_filter (NmtNewtEntry *entry, - const char *text, - int ch, - int position, - gpointer user_data) +hostname_filter(NmtNewtEntry *entry, const char *text, int ch, int position, gpointer user_data) { - return g_ascii_isalnum (ch) || ch == '.' || ch == '-'; + return g_ascii_isalnum(ch) || ch == '.' || ch == '-'; } static NmtNewtWidget * -nmt_address_list_create_widget (NmtWidgetList *list, - int num) +nmt_address_list_create_widget(NmtWidgetList *list, int num) { - NmtAddressListPrivate *priv = NMT_ADDRESS_LIST_GET_PRIVATE (list); - NmtNewtWidget *entry; - - if (priv->list_type == NMT_ADDRESS_LIST_IP4_WITH_PREFIX) - entry = nmt_ip_entry_new (25, AF_INET, TRUE, FALSE); - else if (priv->list_type == NMT_ADDRESS_LIST_IP4) - entry = nmt_ip_entry_new (25, AF_INET, FALSE, FALSE); - else if (priv->list_type == NMT_ADDRESS_LIST_IP6_WITH_PREFIX) - entry = nmt_ip_entry_new (25, AF_INET6, TRUE, FALSE); - else if (priv->list_type == NMT_ADDRESS_LIST_IP6) - entry = nmt_ip_entry_new (25, AF_INET6, FALSE, FALSE); - else if (priv->list_type == NMT_ADDRESS_LIST_HOSTNAME) { - entry = nmt_newt_entry_new (25, NMT_NEWT_ENTRY_NONEMPTY); - nmt_newt_entry_set_filter (NMT_NEWT_ENTRY (entry), hostname_filter, list); - } else - g_assert_not_reached (); - - g_object_bind_property_full (list, "strings", entry, "text", - G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE, - strings_transform_to_entry, - strings_transform_from_entry, - GINT_TO_POINTER (num), NULL); - - return entry; + NmtAddressListPrivate *priv = NMT_ADDRESS_LIST_GET_PRIVATE(list); + NmtNewtWidget * entry; + + if (priv->list_type == NMT_ADDRESS_LIST_IP4_WITH_PREFIX) + entry = nmt_ip_entry_new(25, AF_INET, TRUE, FALSE); + else if (priv->list_type == NMT_ADDRESS_LIST_IP4) + entry = nmt_ip_entry_new(25, AF_INET, FALSE, FALSE); + else if (priv->list_type == NMT_ADDRESS_LIST_IP6_WITH_PREFIX) + entry = nmt_ip_entry_new(25, AF_INET6, TRUE, FALSE); + else if (priv->list_type == NMT_ADDRESS_LIST_IP6) + entry = nmt_ip_entry_new(25, AF_INET6, FALSE, FALSE); + else if (priv->list_type == NMT_ADDRESS_LIST_HOSTNAME) { + entry = nmt_newt_entry_new(25, NMT_NEWT_ENTRY_NONEMPTY); + nmt_newt_entry_set_filter(NMT_NEWT_ENTRY(entry), hostname_filter, list); + } else + g_assert_not_reached(); + + g_object_bind_property_full(list, + "strings", + entry, + "text", + G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE, + strings_transform_to_entry, + strings_transform_from_entry, + GINT_TO_POINTER(num), + NULL); + + return entry; } static void -nmt_address_list_add_clicked (NmtWidgetList *list) +nmt_address_list_add_clicked(NmtWidgetList *list) { - NmtAddressListPrivate *priv = NMT_ADDRESS_LIST_GET_PRIVATE (list); - int len; + NmtAddressListPrivate *priv = NMT_ADDRESS_LIST_GET_PRIVATE(list); + int len; - len = priv->strings ? g_strv_length (priv->strings) : 0; - priv->strings = g_renew (char *, priv->strings, len + 2); - priv->strings[len] = g_strdup (""); - priv->strings[len + 1] = NULL; + len = priv->strings ? g_strv_length(priv->strings) : 0; + priv->strings = g_renew(char *, priv->strings, len + 2); + priv->strings[len] = g_strdup(""); + priv->strings[len + 1] = NULL; - nmt_widget_list_set_length (list, len + 1); - g_object_notify (G_OBJECT (list), "strings"); + nmt_widget_list_set_length(list, len + 1); + g_object_notify(G_OBJECT(list), "strings"); } static void -nmt_address_list_remove_clicked (NmtWidgetList *list, - int num) +nmt_address_list_remove_clicked(NmtWidgetList *list, int num) { - NmtAddressListPrivate *priv = NMT_ADDRESS_LIST_GET_PRIVATE (list); - int len; + NmtAddressListPrivate *priv = NMT_ADDRESS_LIST_GET_PRIVATE(list); + int len; - len = g_strv_length (priv->strings); - g_free (priv->strings[num]); - memmove (priv->strings + num, priv->strings + num + 1, (len - num) * sizeof (char *)); + len = g_strv_length(priv->strings); + g_free(priv->strings[num]); + memmove(priv->strings + num, priv->strings + num + 1, (len - num) * sizeof(char *)); - nmt_widget_list_set_length (list, len - 1); - g_object_notify (G_OBJECT (list), "strings"); + nmt_widget_list_set_length(list, len - 1); + g_object_notify(G_OBJECT(list), "strings"); } static void -nmt_address_list_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) +nmt_address_list_set_property(GObject * object, + guint prop_id, + const GValue *value, + GParamSpec * pspec) { - NmtAddressListPrivate *priv = NMT_ADDRESS_LIST_GET_PRIVATE (object); - - switch (prop_id) { - case PROP_LIST_TYPE: - priv->list_type = g_value_get_uint (value); - break; - case PROP_STRINGS: - g_strfreev (priv->strings); - priv->strings = g_value_dup_boxed (value); - if (!priv->strings) - priv->strings = g_new0 (char *, 1); - nmt_widget_list_set_length (NMT_WIDGET_LIST (object), - g_strv_length (priv->strings)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtAddressListPrivate *priv = NMT_ADDRESS_LIST_GET_PRIVATE(object); + + switch (prop_id) { + case PROP_LIST_TYPE: + priv->list_type = g_value_get_uint(value); + break; + case PROP_STRINGS: + g_strfreev(priv->strings); + priv->strings = g_value_dup_boxed(value); + if (!priv->strings) + priv->strings = g_new0(char *, 1); + nmt_widget_list_set_length(NMT_WIDGET_LIST(object), g_strv_length(priv->strings)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_address_list_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) +nmt_address_list_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - NmtAddressListPrivate *priv = NMT_ADDRESS_LIST_GET_PRIVATE (object); - - switch (prop_id) { - case PROP_LIST_TYPE: - g_value_set_uint (value, priv->list_type); - break; - case PROP_STRINGS: - g_value_set_boxed (value, priv->strings); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtAddressListPrivate *priv = NMT_ADDRESS_LIST_GET_PRIVATE(object); + + switch (prop_id) { + case PROP_LIST_TYPE: + g_value_set_uint(value, priv->list_type); + break; + case PROP_STRINGS: + g_value_set_boxed(value, priv->strings); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_address_list_class_init (NmtAddressListClass *list_class) +nmt_address_list_class_init(NmtAddressListClass *list_class) { - GObjectClass *object_class = G_OBJECT_CLASS (list_class); - NmtWidgetListClass *widget_list_class = NMT_WIDGET_LIST_CLASS (list_class); + GObjectClass * object_class = G_OBJECT_CLASS(list_class); + NmtWidgetListClass *widget_list_class = NMT_WIDGET_LIST_CLASS(list_class); - g_type_class_add_private (list_class, sizeof (NmtAddressListPrivate)); + g_type_class_add_private(list_class, sizeof(NmtAddressListPrivate)); - /* virtual methods */ - object_class->set_property = nmt_address_list_set_property; - object_class->get_property = nmt_address_list_get_property; + /* virtual methods */ + object_class->set_property = nmt_address_list_set_property; + object_class->get_property = nmt_address_list_get_property; - widget_list_class->create_widget = nmt_address_list_create_widget; - widget_list_class->add_clicked = nmt_address_list_add_clicked; - widget_list_class->remove_clicked = nmt_address_list_remove_clicked; + widget_list_class->create_widget = nmt_address_list_create_widget; + widget_list_class->add_clicked = nmt_address_list_add_clicked; + widget_list_class->remove_clicked = nmt_address_list_remove_clicked; - /** + /** * NmtAddressList:list-type: * * The type of address the list holds. */ - g_object_class_install_property - (object_class, PROP_LIST_TYPE, - g_param_spec_uint ("list-type", "", "", - 0, G_MAXUINT, 0, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); - /** + g_object_class_install_property( + object_class, + PROP_LIST_TYPE, + g_param_spec_uint("list-type", + "", + "", + 0, + G_MAXUINT, + 0, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); + /** * NmtAddressList:strings: * * The strings in the list's entries. */ - g_object_class_install_property - (object_class, PROP_STRINGS, - g_param_spec_boxed ("strings", "", "", - G_TYPE_STRV, - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS)); + g_object_class_install_property(object_class, + PROP_STRINGS, + g_param_spec_boxed("strings", + "", + "", + G_TYPE_STRV, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); } diff --git a/clients/tui/nmt-address-list.h b/clients/tui/nmt-address-list.h index 77d276cdff..a282fdc77a 100644 --- a/clients/tui/nmt-address-list.h +++ b/clients/tui/nmt-address-list.h @@ -8,33 +8,36 @@ #include "nmt-widget-list.h" -#define NMT_TYPE_ADDRESS_LIST (nmt_address_list_get_type ()) -#define NMT_ADDRESS_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NMT_TYPE_ADDRESS_LIST, NmtAddressList)) -#define NMT_ADDRESS_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NMT_TYPE_ADDRESS_LIST, NmtAddressListClass)) -#define NMT_IS_ADDRESS_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NMT_TYPE_ADDRESS_LIST)) -#define NMT_IS_ADDRESS_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NMT_TYPE_ADDRESS_LIST)) -#define NMT_ADDRESS_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NMT_TYPE_ADDRESS_LIST, NmtAddressListClass)) +#define NMT_TYPE_ADDRESS_LIST (nmt_address_list_get_type()) +#define NMT_ADDRESS_LIST(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), NMT_TYPE_ADDRESS_LIST, NmtAddressList)) +#define NMT_ADDRESS_LIST_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), NMT_TYPE_ADDRESS_LIST, NmtAddressListClass)) +#define NMT_IS_ADDRESS_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), NMT_TYPE_ADDRESS_LIST)) +#define NMT_IS_ADDRESS_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), NMT_TYPE_ADDRESS_LIST)) +#define NMT_ADDRESS_LIST_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), NMT_TYPE_ADDRESS_LIST, NmtAddressListClass)) typedef struct { - NmtWidgetList parent; + NmtWidgetList parent; } NmtAddressList; typedef struct { - NmtWidgetListClass parent; + NmtWidgetListClass parent; } NmtAddressListClass; -GType nmt_address_list_get_type (void); +GType nmt_address_list_get_type(void); typedef enum { - NMT_ADDRESS_LIST_IP4_WITH_PREFIX, - NMT_ADDRESS_LIST_IP4, - NMT_ADDRESS_LIST_IP6_WITH_PREFIX, - NMT_ADDRESS_LIST_IP6, - NMT_ADDRESS_LIST_HOSTNAME + NMT_ADDRESS_LIST_IP4_WITH_PREFIX, + NMT_ADDRESS_LIST_IP4, + NMT_ADDRESS_LIST_IP6_WITH_PREFIX, + NMT_ADDRESS_LIST_IP6, + NMT_ADDRESS_LIST_HOSTNAME } NmtAddressListType; -NmtNewtWidget *nmt_address_list_new (NmtAddressListType list_type); +NmtNewtWidget *nmt_address_list_new(NmtAddressListType list_type); #endif /* NMT_ADDRESS_LIST_H */ diff --git a/clients/tui/nmt-connect-connection-list.c b/clients/tui/nmt-connect-connection-list.c index 411c2c00db..f651c7cfc5 100644 --- a/clients/tui/nmt-connect-connection-list.c +++ b/clients/tui/nmt-connect-connection-list.c @@ -19,31 +19,34 @@ #include "nmt-connect-connection-list.h" #include "nm-client-utils.h" -G_DEFINE_TYPE (NmtConnectConnectionList, nmt_connect_connection_list, NMT_TYPE_NEWT_LISTBOX) +G_DEFINE_TYPE(NmtConnectConnectionList, nmt_connect_connection_list, NMT_TYPE_NEWT_LISTBOX) -#define NMT_CONNECT_CONNECTION_LIST_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NMT_TYPE_CONNECT_CONNECTION_LIST, NmtConnectConnectionListPrivate)) +#define NMT_CONNECT_CONNECTION_LIST_GET_PRIVATE(o) \ + (G_TYPE_INSTANCE_GET_PRIVATE((o), \ + NMT_TYPE_CONNECT_CONNECTION_LIST, \ + NmtConnectConnectionListPrivate)) typedef struct { - char *name; - NMDevice *device; + char * name; + NMDevice *device; - int sort_order; + int sort_order; - GSList *conns; + GSList *conns; } NmtConnectDevice; typedef struct { - const char *name; - char *ssid; + const char *name; + char * ssid; - NMConnection *conn; - NMAccessPoint *ap; - NMDevice *device; - NMActiveConnection *active; + NMConnection * conn; + NMAccessPoint * ap; + NMDevice * device; + NMActiveConnection *active; } NmtConnectConnection; typedef struct { - GSList *nmt_devices; + GSList *nmt_devices; } NmtConnectConnectionListPrivate; /** @@ -54,532 +57,528 @@ typedef struct { * Returns: a new #NmtConnectConnectionList */ NmtNewtWidget * -nmt_connect_connection_list_new (void) +nmt_connect_connection_list_new(void) { - return g_object_new (NMT_TYPE_CONNECT_CONNECTION_LIST, - "flags", NMT_NEWT_LISTBOX_SCROLL | NMT_NEWT_LISTBOX_BORDER, - "skip-null-keys", TRUE, - NULL); + return g_object_new(NMT_TYPE_CONNECT_CONNECTION_LIST, + "flags", + NMT_NEWT_LISTBOX_SCROLL | NMT_NEWT_LISTBOX_BORDER, + "skip-null-keys", + TRUE, + NULL); } static void -nmt_connect_connection_list_init (NmtConnectConnectionList *list) -{ -} +nmt_connect_connection_list_init(NmtConnectConnectionList *list) +{} static void -nmt_connect_connection_free (NmtConnectConnection *nmtconn) +nmt_connect_connection_free(NmtConnectConnection *nmtconn) { - g_clear_object (&nmtconn->conn); - g_clear_object (&nmtconn->ap); - g_clear_object (&nmtconn->active); - g_free (nmtconn->ssid); - g_slice_free (NmtConnectConnection, nmtconn); + g_clear_object(&nmtconn->conn); + g_clear_object(&nmtconn->ap); + g_clear_object(&nmtconn->active); + g_free(nmtconn->ssid); + g_slice_free(NmtConnectConnection, nmtconn); } static void -nmt_connect_device_free (NmtConnectDevice *nmtdev) +nmt_connect_device_free(NmtConnectDevice *nmtdev) { - nm_clear_g_free (&nmtdev->name); - g_clear_object (&nmtdev->device); + nm_clear_g_free(&nmtdev->name); + g_clear_object(&nmtdev->device); - g_slist_free_full (nmtdev->conns, (GDestroyNotify) nmt_connect_connection_free); - g_slice_free (NmtConnectDevice, nmtdev); + g_slist_free_full(nmtdev->conns, (GDestroyNotify) nmt_connect_connection_free); + g_slice_free(NmtConnectDevice, nmtdev); } -static const char *device_sort_order[] = { - "NMDeviceEthernet", - "NMDeviceInfiniband", - "NMDeviceWifi", - NM_SETTING_VLAN_SETTING_NAME, - NM_SETTING_BOND_SETTING_NAME, - NM_SETTING_TEAM_SETTING_NAME, - NM_SETTING_BRIDGE_SETTING_NAME, - NM_SETTING_IP_TUNNEL_SETTING_NAME, - "NMDeviceModem", - "NMDeviceBt" -}; -static const int device_sort_order_len = G_N_ELEMENTS (device_sort_order); +static const char *device_sort_order[] = {"NMDeviceEthernet", + "NMDeviceInfiniband", + "NMDeviceWifi", + NM_SETTING_VLAN_SETTING_NAME, + NM_SETTING_BOND_SETTING_NAME, + NM_SETTING_TEAM_SETTING_NAME, + NM_SETTING_BRIDGE_SETTING_NAME, + NM_SETTING_IP_TUNNEL_SETTING_NAME, + "NMDeviceModem", + "NMDeviceBt"}; +static const int device_sort_order_len = G_N_ELEMENTS(device_sort_order); static int -get_sort_order_for_device (NMDevice *device) +get_sort_order_for_device(NMDevice *device) { - const char *type; - int i; + const char *type; + int i; - type = G_OBJECT_TYPE_NAME (device); - for (i = 0; i < device_sort_order_len; i++) { - if (!strcmp (type, device_sort_order[i])) - return i; - } + type = G_OBJECT_TYPE_NAME(device); + for (i = 0; i < device_sort_order_len; i++) { + if (!strcmp(type, device_sort_order[i])) + return i; + } - return -1; + return -1; } static int -get_sort_order_for_connection (NMConnection *conn) +get_sort_order_for_connection(NMConnection *conn) { - NMSettingConnection *s_con; - const char *type; - int i; + NMSettingConnection *s_con; + const char * type; + int i; - s_con = nm_connection_get_setting_connection (conn); - type = nm_setting_connection_get_connection_type (s_con); + s_con = nm_connection_get_setting_connection(conn); + type = nm_setting_connection_get_connection_type(s_con); - for (i = 0; i < device_sort_order_len; i++) { - if (!strcmp (type, device_sort_order[i])) - return i; - } + for (i = 0; i < device_sort_order_len; i++) { + if (!strcmp(type, device_sort_order[i])) + return i; + } - return -1; + return -1; } static int -sort_connections (gconstpointer a, - gconstpointer b) +sort_connections(gconstpointer a, gconstpointer b) { - NmtConnectConnection *nmta = (NmtConnectConnection *)a; - NmtConnectConnection *nmtb = (NmtConnectConnection *)b; + NmtConnectConnection *nmta = (NmtConnectConnection *) a; + NmtConnectConnection *nmtb = (NmtConnectConnection *) b; - /* If nmta and nmtb both have NMConnections, sort them by timestamp */ - if (nmta->conn && nmtb->conn) { - NMSettingConnection *s_con_a, *s_con_b; - guint64 time_a, time_b; + /* If nmta and nmtb both have NMConnections, sort them by timestamp */ + if (nmta->conn && nmtb->conn) { + NMSettingConnection *s_con_a, *s_con_b; + guint64 time_a, time_b; - s_con_a = nm_connection_get_setting_connection (nmta->conn); - s_con_b = nm_connection_get_setting_connection (nmtb->conn); + s_con_a = nm_connection_get_setting_connection(nmta->conn); + s_con_b = nm_connection_get_setting_connection(nmtb->conn); - time_a = nm_setting_connection_get_timestamp (s_con_a); - time_b = nm_setting_connection_get_timestamp (s_con_b); + time_a = nm_setting_connection_get_timestamp(s_con_a); + time_b = nm_setting_connection_get_timestamp(s_con_b); - return (int) (time_b - time_a); - } + return (int) (time_b - time_a); + } - /* If one is an NMConnection and the other is an NMAccessPoint, the + /* If one is an NMConnection and the other is an NMAccessPoint, the * connection comes first. */ - if (nmta->conn) - return -1; - else if (nmtb->conn) - return 1; + if (nmta->conn) + return -1; + else if (nmtb->conn) + return 1; - g_return_val_if_fail (nmta->ap && nmtb->ap, 0); + g_return_val_if_fail(nmta->ap && nmtb->ap, 0); - /* If both are access points, then sort by strength */ - return nm_access_point_get_strength (nmtb->ap) - nm_access_point_get_strength (nmta->ap); + /* If both are access points, then sort by strength */ + return nm_access_point_get_strength(nmtb->ap) - nm_access_point_get_strength(nmta->ap); } static void -add_connections_for_device (NmtConnectDevice *nmtdev, - const GPtrArray *connections) +add_connections_for_device(NmtConnectDevice *nmtdev, const GPtrArray *connections) { - int i; + int i; - for (i = 0; i < connections->len; i++) { - NMConnection *conn = connections->pdata[i]; - NMSettingConnection *s_con; + for (i = 0; i < connections->len; i++) { + NMConnection * conn = connections->pdata[i]; + NMSettingConnection *s_con; - s_con = nm_connection_get_setting_connection (conn); - if (nm_setting_connection_get_master (s_con)) - continue; + s_con = nm_connection_get_setting_connection(conn); + if (nm_setting_connection_get_master(s_con)) + continue; - if (nm_device_connection_valid (nmtdev->device, conn)) { - NmtConnectConnection *nmtconn = g_slice_new0 (NmtConnectConnection); + if (nm_device_connection_valid(nmtdev->device, conn)) { + NmtConnectConnection *nmtconn = g_slice_new0(NmtConnectConnection); - nmtconn->name = nm_connection_get_id (conn); - nmtconn->device = nmtdev->device; - nmtconn->conn = g_object_ref (conn); - nmtdev->conns = g_slist_prepend (nmtdev->conns, nmtconn); - } - } + nmtconn->name = nm_connection_get_id(conn); + nmtconn->device = nmtdev->device; + nmtconn->conn = g_object_ref(conn); + nmtdev->conns = g_slist_prepend(nmtdev->conns, nmtconn); + } + } } /* stolen from nm-applet */ static char * -hash_ap (NMAccessPoint *ap) +hash_ap(NMAccessPoint *ap) { - unsigned char input[66]; - GBytes *ssid; - NM80211Mode mode; - guint32 flags; - guint32 wpa_flags; - guint32 rsn_flags; - - memset (&input[0], 0, sizeof (input)); - - ssid = nm_access_point_get_ssid (ap); - if (ssid) - memcpy (input, g_bytes_get_data (ssid, NULL), g_bytes_get_size (ssid)); - - mode = nm_access_point_get_mode (ap); - if (mode == NM_802_11_MODE_INFRA) - input[32] |= (1 << 0); - else if (mode == NM_802_11_MODE_ADHOC) - input[32] |= (1 << 1); - else - input[32] |= (1 << 2); - - /* Separate out no encryption, WEP-only, and WPA-capable */ - flags = nm_access_point_get_flags (ap); - wpa_flags = nm_access_point_get_wpa_flags (ap); - rsn_flags = nm_access_point_get_rsn_flags (ap); - if ( !(flags & NM_802_11_AP_FLAGS_PRIVACY) - && (wpa_flags == NM_802_11_AP_SEC_NONE) - && (rsn_flags == NM_802_11_AP_SEC_NONE)) - input[32] |= (1 << 3); - else if ( (flags & NM_802_11_AP_FLAGS_PRIVACY) - && (wpa_flags == NM_802_11_AP_SEC_NONE) - && (rsn_flags == NM_802_11_AP_SEC_NONE)) - input[32] |= (1 << 4); - else if ( !(flags & NM_802_11_AP_FLAGS_PRIVACY) - && (wpa_flags != NM_802_11_AP_SEC_NONE) - && (rsn_flags != NM_802_11_AP_SEC_NONE)) - input[32] |= (1 << 5); - else - input[32] |= (1 << 6); - - /* duplicate it */ - memcpy (&input[33], &input[0], 32); - return g_compute_checksum_for_data (G_CHECKSUM_MD5, input, sizeof (input)); + unsigned char input[66]; + GBytes * ssid; + NM80211Mode mode; + guint32 flags; + guint32 wpa_flags; + guint32 rsn_flags; + + memset(&input[0], 0, sizeof(input)); + + ssid = nm_access_point_get_ssid(ap); + if (ssid) + memcpy(input, g_bytes_get_data(ssid, NULL), g_bytes_get_size(ssid)); + + mode = nm_access_point_get_mode(ap); + if (mode == NM_802_11_MODE_INFRA) + input[32] |= (1 << 0); + else if (mode == NM_802_11_MODE_ADHOC) + input[32] |= (1 << 1); + else + input[32] |= (1 << 2); + + /* Separate out no encryption, WEP-only, and WPA-capable */ + flags = nm_access_point_get_flags(ap); + wpa_flags = nm_access_point_get_wpa_flags(ap); + rsn_flags = nm_access_point_get_rsn_flags(ap); + if (!(flags & NM_802_11_AP_FLAGS_PRIVACY) && (wpa_flags == NM_802_11_AP_SEC_NONE) + && (rsn_flags == NM_802_11_AP_SEC_NONE)) + input[32] |= (1 << 3); + else if ((flags & NM_802_11_AP_FLAGS_PRIVACY) && (wpa_flags == NM_802_11_AP_SEC_NONE) + && (rsn_flags == NM_802_11_AP_SEC_NONE)) + input[32] |= (1 << 4); + else if (!(flags & NM_802_11_AP_FLAGS_PRIVACY) && (wpa_flags != NM_802_11_AP_SEC_NONE) + && (rsn_flags != NM_802_11_AP_SEC_NONE)) + input[32] |= (1 << 5); + else + input[32] |= (1 << 6); + + /* duplicate it */ + memcpy(&input[33], &input[0], 32); + return g_compute_checksum_for_data(G_CHECKSUM_MD5, input, sizeof(input)); } static void -add_connections_for_aps (NmtConnectDevice *nmtdev, - const GPtrArray *connections) +add_connections_for_aps(NmtConnectDevice *nmtdev, const GPtrArray *connections) { - NmtConnectConnection *nmtconn; - NMConnection *conn; - NMAccessPoint *ap; - const GPtrArray *aps; - GHashTable *seen_ssids; - GBytes *ssid; - char *ap_hash; - int i, c; - - aps = nm_device_wifi_get_access_points (NM_DEVICE_WIFI (nmtdev->device)); - if (!aps->len) - return; - - seen_ssids = g_hash_table_new_full (nm_str_hash, g_str_equal, g_free, NULL); - - for (i = 0; i < aps->len; i++) { - ap = aps->pdata[i]; - - if (!nm_access_point_get_ssid (ap)) - continue; - - ap_hash = hash_ap (ap); - if (g_hash_table_contains (seen_ssids, ap_hash)) { - g_free (ap_hash); - continue; - } - g_hash_table_add (seen_ssids, ap_hash); - - nmtconn = g_slice_new0 (NmtConnectConnection); - nmtconn->device = nmtdev->device; - nmtconn->ap = g_object_ref (ap); - ssid = nm_access_point_get_ssid (ap); - if (ssid) - nmtconn->ssid = nm_utils_ssid_to_utf8 (g_bytes_get_data (ssid, NULL), - g_bytes_get_size (ssid)); - - for (c = 0; c < connections->len; c++) { - conn = connections->pdata[c]; - if ( nm_device_connection_valid (nmtdev->device, conn) - && nm_access_point_connection_valid (ap, conn)) { - nmtconn->name = nm_connection_get_id (conn); - nmtconn->conn = g_object_ref (conn); - break; - } - } - - if (!nmtconn->name) - nmtconn->name = nmtconn->ssid ?: "<unknown>"; - - nmtdev->conns = g_slist_prepend (nmtdev->conns, nmtconn); - } - - g_hash_table_unref (seen_ssids); + NmtConnectConnection *nmtconn; + NMConnection * conn; + NMAccessPoint * ap; + const GPtrArray * aps; + GHashTable * seen_ssids; + GBytes * ssid; + char * ap_hash; + int i, c; + + aps = nm_device_wifi_get_access_points(NM_DEVICE_WIFI(nmtdev->device)); + if (!aps->len) + return; + + seen_ssids = g_hash_table_new_full(nm_str_hash, g_str_equal, g_free, NULL); + + for (i = 0; i < aps->len; i++) { + ap = aps->pdata[i]; + + if (!nm_access_point_get_ssid(ap)) + continue; + + ap_hash = hash_ap(ap); + if (g_hash_table_contains(seen_ssids, ap_hash)) { + g_free(ap_hash); + continue; + } + g_hash_table_add(seen_ssids, ap_hash); + + nmtconn = g_slice_new0(NmtConnectConnection); + nmtconn->device = nmtdev->device; + nmtconn->ap = g_object_ref(ap); + ssid = nm_access_point_get_ssid(ap); + if (ssid) + nmtconn->ssid = + nm_utils_ssid_to_utf8(g_bytes_get_data(ssid, NULL), g_bytes_get_size(ssid)); + + for (c = 0; c < connections->len; c++) { + conn = connections->pdata[c]; + if (nm_device_connection_valid(nmtdev->device, conn) + && nm_access_point_connection_valid(ap, conn)) { + nmtconn->name = nm_connection_get_id(conn); + nmtconn->conn = g_object_ref(conn); + break; + } + } + + if (!nmtconn->name) + nmtconn->name = nmtconn->ssid ?: "<unknown>"; + + nmtdev->conns = g_slist_prepend(nmtdev->conns, nmtconn); + } + + g_hash_table_unref(seen_ssids); } static GSList * -append_nmt_devices_for_devices (GSList *nmt_devices, - const GPtrArray *devices, - char **names, - const GPtrArray *connections) +append_nmt_devices_for_devices(GSList * nmt_devices, + const GPtrArray *devices, + char ** names, + const GPtrArray *connections) { - NmtConnectDevice *nmtdev; - NMDevice *device; - int i, sort_order; + NmtConnectDevice *nmtdev; + NMDevice * device; + int i, sort_order; - for (i = 0; i < devices->len; i++) { - device = devices->pdata[i]; + for (i = 0; i < devices->len; i++) { + device = devices->pdata[i]; - sort_order = get_sort_order_for_device (device); - if (sort_order == -1) - continue; + sort_order = get_sort_order_for_device(device); + if (sort_order == -1) + continue; - nmtdev = g_slice_new0 (NmtConnectDevice); - nmtdev->name = g_strdup (names[i]); - nmtdev->device = g_object_ref (device); - nmtdev->sort_order = sort_order; + nmtdev = g_slice_new0(NmtConnectDevice); + nmtdev->name = g_strdup(names[i]); + nmtdev->device = g_object_ref(device); + nmtdev->sort_order = sort_order; - if (NM_IS_DEVICE_WIFI (device)) - add_connections_for_aps (nmtdev, connections); - else - add_connections_for_device (nmtdev, connections); - nmtdev->conns = g_slist_sort (nmtdev->conns, sort_connections); + if (NM_IS_DEVICE_WIFI(device)) + add_connections_for_aps(nmtdev, connections); + else + add_connections_for_device(nmtdev, connections); + nmtdev->conns = g_slist_sort(nmtdev->conns, sort_connections); - nmt_devices = g_slist_prepend (nmt_devices, nmtdev); - } + nmt_devices = g_slist_prepend(nmt_devices, nmtdev); + } - return nmt_devices; + return nmt_devices; } static GSList * -append_nmt_devices_for_virtual_devices (GSList *nmt_devices, - const GPtrArray *connections) +append_nmt_devices_for_virtual_devices(GSList *nmt_devices, const GPtrArray *connections) { - NmtConnectDevice *nmtdev = NULL; - int i; - GHashTable *devices_by_name; - char *name; - NMConnection *conn; - NmtConnectConnection *nmtconn; - int sort_order; - - devices_by_name = g_hash_table_new (nm_str_hash, g_str_equal); - - for (i = 0; i < connections->len; i++) { - conn = connections->pdata[i]; - sort_order = get_sort_order_for_connection (conn); - if (sort_order == -1) - continue; - - name = nm_connection_get_virtual_device_description (conn); - if (name) - nmtdev = g_hash_table_lookup (devices_by_name, name); - if (nmtdev) - g_free (name); - else { - nmtdev = g_slice_new0 (NmtConnectDevice); - nmtdev->name = name ?: g_strdup("Unknown"); - nmtdev->sort_order = sort_order; - - g_hash_table_insert (devices_by_name, nmtdev->name, nmtdev); - nmt_devices = g_slist_prepend (nmt_devices, nmtdev); - } - - nmtconn = g_slice_new0 (NmtConnectConnection); - nmtconn->name = nm_connection_get_id (conn); - nmtconn->conn = g_object_ref (conn); - - nmtdev->conns = g_slist_insert_sorted (nmtdev->conns, nmtconn, sort_connections); - } - - g_hash_table_destroy (devices_by_name); - return nmt_devices; + NmtConnectDevice * nmtdev = NULL; + int i; + GHashTable * devices_by_name; + char * name; + NMConnection * conn; + NmtConnectConnection *nmtconn; + int sort_order; + + devices_by_name = g_hash_table_new(nm_str_hash, g_str_equal); + + for (i = 0; i < connections->len; i++) { + conn = connections->pdata[i]; + sort_order = get_sort_order_for_connection(conn); + if (sort_order == -1) + continue; + + name = nm_connection_get_virtual_device_description(conn); + if (name) + nmtdev = g_hash_table_lookup(devices_by_name, name); + if (nmtdev) + g_free(name); + else { + nmtdev = g_slice_new0(NmtConnectDevice); + nmtdev->name = name ?: g_strdup("Unknown"); + nmtdev->sort_order = sort_order; + + g_hash_table_insert(devices_by_name, nmtdev->name, nmtdev); + nmt_devices = g_slist_prepend(nmt_devices, nmtdev); + } + + nmtconn = g_slice_new0(NmtConnectConnection); + nmtconn->name = nm_connection_get_id(conn); + nmtconn->conn = g_object_ref(conn); + + nmtdev->conns = g_slist_insert_sorted(nmtdev->conns, nmtconn, sort_connections); + } + + g_hash_table_destroy(devices_by_name); + return nmt_devices; } static GSList * -append_nmt_devices_for_vpns (GSList *nmt_devices, - const GPtrArray *connections) +append_nmt_devices_for_vpns(GSList *nmt_devices, const GPtrArray *connections) { - NmtConnectDevice *nmtdev; - int i; - NMConnection *conn; - NmtConnectConnection *nmtconn; + NmtConnectDevice * nmtdev; + int i; + NMConnection * conn; + NmtConnectConnection *nmtconn; - nmtdev = g_slice_new0 (NmtConnectDevice); - nmtdev->name = g_strdup (_("VPN")); - nmtdev->sort_order = 100; + nmtdev = g_slice_new0(NmtConnectDevice); + nmtdev->name = g_strdup(_("VPN")); + nmtdev->sort_order = 100; - for (i = 0; i < connections->len; i++) { - conn = connections->pdata[i]; - if (!nm_connection_is_type (conn, NM_SETTING_VPN_SETTING_NAME)) - continue; + for (i = 0; i < connections->len; i++) { + conn = connections->pdata[i]; + if (!nm_connection_is_type(conn, NM_SETTING_VPN_SETTING_NAME)) + continue; - nmtconn = g_slice_new0 (NmtConnectConnection); - nmtconn->name = nm_connection_get_id (conn); - nmtconn->conn = g_object_ref (conn); + nmtconn = g_slice_new0(NmtConnectConnection); + nmtconn->name = nm_connection_get_id(conn); + nmtconn->conn = g_object_ref(conn); - nmtdev->conns = g_slist_insert_sorted (nmtdev->conns, nmtconn, sort_connections); - } + nmtdev->conns = g_slist_insert_sorted(nmtdev->conns, nmtconn, sort_connections); + } - if (nmtdev->conns) - nmt_devices = g_slist_prepend (nmt_devices, nmtdev); - else - nmt_connect_device_free (nmtdev); + if (nmtdev->conns) + nmt_devices = g_slist_prepend(nmt_devices, nmtdev); + else + nmt_connect_device_free(nmtdev); - return nmt_devices; + return nmt_devices; } static int -sort_nmt_devices (gconstpointer a, - gconstpointer b) +sort_nmt_devices(gconstpointer a, gconstpointer b) { - NmtConnectDevice *nmta = (NmtConnectDevice *)a; - NmtConnectDevice *nmtb = (NmtConnectDevice *)b; + NmtConnectDevice *nmta = (NmtConnectDevice *) a; + NmtConnectDevice *nmtb = (NmtConnectDevice *) b; - if (nmta->sort_order != nmtb->sort_order) - return nmta->sort_order - nmtb->sort_order; + if (nmta->sort_order != nmtb->sort_order) + return nmta->sort_order - nmtb->sort_order; - return strcmp (nmta->name, nmtb->name); + return strcmp(nmta->name, nmtb->name); } static NMActiveConnection * -connection_find_ac (NMConnection *conn, - const GPtrArray *acs) +connection_find_ac(NMConnection *conn, const GPtrArray *acs) { - NMActiveConnection *ac; - NMRemoteConnection *ac_conn; - int i; + NMActiveConnection *ac; + NMRemoteConnection *ac_conn; + int i; - for (i = 0; i < acs->len; i++) { - ac = acs->pdata[i]; - ac_conn = nm_active_connection_get_connection (ac); + for (i = 0; i < acs->len; i++) { + ac = acs->pdata[i]; + ac_conn = nm_active_connection_get_connection(ac); - if (conn == NM_CONNECTION (ac_conn)) - return ac; - } + if (conn == NM_CONNECTION(ac_conn)) + return ac; + } - return NULL; + return NULL; } static void -nmt_connect_connection_list_rebuild (NmtConnectConnectionList *list) +nmt_connect_connection_list_rebuild(NmtConnectConnectionList *list) { - NmtConnectConnectionListPrivate *priv = NMT_CONNECT_CONNECTION_LIST_GET_PRIVATE (list); - NmtNewtListbox *listbox = NMT_NEWT_LISTBOX (list); - const GPtrArray *devices, *acs, *connections; - int max_width; - char **names, *row, active_col; - const char *strength_col; - GSList *nmt_devices, *diter, *citer; - NmtConnectDevice *nmtdev; - NmtConnectConnection *nmtconn; - - g_slist_free_full (priv->nmt_devices, (GDestroyNotify) nmt_connect_device_free); - priv->nmt_devices = NULL; - nmt_newt_listbox_clear (listbox); - - devices = nm_client_get_devices (nm_client); - acs = nm_client_get_active_connections (nm_client); - connections = nm_client_get_connections (nm_client); - - nmt_devices = NULL; - - names = nm_device_disambiguate_names ((NMDevice **) devices->pdata, devices->len); - nmt_devices = append_nmt_devices_for_devices (nmt_devices, devices, names, connections); - g_strfreev (names); - - nmt_devices = append_nmt_devices_for_virtual_devices (nmt_devices, connections); - nmt_devices = append_nmt_devices_for_vpns (nmt_devices, connections); - - nmt_devices = g_slist_sort (nmt_devices, sort_nmt_devices); - - max_width = 0; - for (diter = nmt_devices; diter; diter = diter->next) { - nmtdev = diter->data; - for (citer = nmtdev->conns; citer; citer = citer->next) { - nmtconn = citer->data; - - max_width = MAX (max_width, nmt_newt_text_width (nmtconn->name)); - } - } - - for (diter = nmt_devices; diter; diter = diter->next) { - nmtdev = diter->data; - - if (nmtdev->conns) { - if (diter != nmt_devices) - nmt_newt_listbox_append (listbox, "", NULL); - nmt_newt_listbox_append (listbox, nmtdev->name, NULL); - } - - for (citer = nmtdev->conns; citer; citer = citer->next) { - nmtconn = citer->data; - - if (nmtconn->conn) - nmtconn->active = connection_find_ac (nmtconn->conn, acs); - if (nmtconn->active) { - g_object_ref (nmtconn->active); - active_col = '*'; - } else - active_col = ' '; - - if (nmtconn->ap) { - guint8 strength = nm_access_point_get_strength (nmtconn->ap); - - strength_col = nmc_wifi_strength_bars (strength); - } else - strength_col = NULL; - - row = g_strdup_printf ("%c %s%-*s%s%s", - active_col, - nmtconn->name, - (int)(max_width - nmt_newt_text_width (nmtconn->name)), "", - strength_col ? " " : "", - strength_col ?: ""); - - nmt_newt_listbox_append (listbox, row, nmtconn); - g_free (row); - } - } - - priv->nmt_devices = nmt_devices; - - g_object_notify (G_OBJECT (listbox), "active"); - g_object_notify (G_OBJECT (listbox), "active-key"); + NmtConnectConnectionListPrivate *priv = NMT_CONNECT_CONNECTION_LIST_GET_PRIVATE(list); + NmtNewtListbox * listbox = NMT_NEWT_LISTBOX(list); + const GPtrArray * devices, *acs, *connections; + int max_width; + char ** names, *row, active_col; + const char * strength_col; + GSList * nmt_devices, *diter, *citer; + NmtConnectDevice * nmtdev; + NmtConnectConnection * nmtconn; + + g_slist_free_full(priv->nmt_devices, (GDestroyNotify) nmt_connect_device_free); + priv->nmt_devices = NULL; + nmt_newt_listbox_clear(listbox); + + devices = nm_client_get_devices(nm_client); + acs = nm_client_get_active_connections(nm_client); + connections = nm_client_get_connections(nm_client); + + nmt_devices = NULL; + + names = nm_device_disambiguate_names((NMDevice **) devices->pdata, devices->len); + nmt_devices = append_nmt_devices_for_devices(nmt_devices, devices, names, connections); + g_strfreev(names); + + nmt_devices = append_nmt_devices_for_virtual_devices(nmt_devices, connections); + nmt_devices = append_nmt_devices_for_vpns(nmt_devices, connections); + + nmt_devices = g_slist_sort(nmt_devices, sort_nmt_devices); + + max_width = 0; + for (diter = nmt_devices; diter; diter = diter->next) { + nmtdev = diter->data; + for (citer = nmtdev->conns; citer; citer = citer->next) { + nmtconn = citer->data; + + max_width = MAX(max_width, nmt_newt_text_width(nmtconn->name)); + } + } + + for (diter = nmt_devices; diter; diter = diter->next) { + nmtdev = diter->data; + + if (nmtdev->conns) { + if (diter != nmt_devices) + nmt_newt_listbox_append(listbox, "", NULL); + nmt_newt_listbox_append(listbox, nmtdev->name, NULL); + } + + for (citer = nmtdev->conns; citer; citer = citer->next) { + nmtconn = citer->data; + + if (nmtconn->conn) + nmtconn->active = connection_find_ac(nmtconn->conn, acs); + if (nmtconn->active) { + g_object_ref(nmtconn->active); + active_col = '*'; + } else + active_col = ' '; + + if (nmtconn->ap) { + guint8 strength = nm_access_point_get_strength(nmtconn->ap); + + strength_col = nmc_wifi_strength_bars(strength); + } else + strength_col = NULL; + + row = g_strdup_printf("%c %s%-*s%s%s", + active_col, + nmtconn->name, + (int) (max_width - nmt_newt_text_width(nmtconn->name)), + "", + strength_col ? " " : "", + strength_col ?: ""); + + nmt_newt_listbox_append(listbox, row, nmtconn); + g_free(row); + } + } + + priv->nmt_devices = nmt_devices; + + g_object_notify(G_OBJECT(listbox), "active"); + g_object_notify(G_OBJECT(listbox), "active-key"); } static void -rebuild_on_property_changed (GObject *object, - GParamSpec *spec, - gpointer list) +rebuild_on_property_changed(GObject *object, GParamSpec *spec, gpointer list) { - nmt_connect_connection_list_rebuild (list); + nmt_connect_connection_list_rebuild(list); } static void -nmt_connect_connection_list_constructed (GObject *object) +nmt_connect_connection_list_constructed(GObject *object) { - NmtConnectConnectionList *list = NMT_CONNECT_CONNECTION_LIST (object); - - g_signal_connect (nm_client, "notify::" NM_CLIENT_ACTIVE_CONNECTIONS, - G_CALLBACK (rebuild_on_property_changed), list); - g_signal_connect (nm_client, "notify::" NM_CLIENT_CONNECTIONS, - G_CALLBACK (rebuild_on_property_changed), list); - g_signal_connect (nm_client, "notify::" NM_CLIENT_DEVICES, - G_CALLBACK (rebuild_on_property_changed), list); - - nmt_connect_connection_list_rebuild (list); - - G_OBJECT_CLASS (nmt_connect_connection_list_parent_class)->constructed (object); + NmtConnectConnectionList *list = NMT_CONNECT_CONNECTION_LIST(object); + + g_signal_connect(nm_client, + "notify::" NM_CLIENT_ACTIVE_CONNECTIONS, + G_CALLBACK(rebuild_on_property_changed), + list); + g_signal_connect(nm_client, + "notify::" NM_CLIENT_CONNECTIONS, + G_CALLBACK(rebuild_on_property_changed), + list); + g_signal_connect(nm_client, + "notify::" NM_CLIENT_DEVICES, + G_CALLBACK(rebuild_on_property_changed), + list); + + nmt_connect_connection_list_rebuild(list); + + G_OBJECT_CLASS(nmt_connect_connection_list_parent_class)->constructed(object); } static void -nmt_connect_connection_list_finalize (GObject *object) +nmt_connect_connection_list_finalize(GObject *object) { - NmtConnectConnectionListPrivate *priv = NMT_CONNECT_CONNECTION_LIST_GET_PRIVATE (object); + NmtConnectConnectionListPrivate *priv = NMT_CONNECT_CONNECTION_LIST_GET_PRIVATE(object); - g_slist_free_full (priv->nmt_devices, (GDestroyNotify) nmt_connect_device_free); + g_slist_free_full(priv->nmt_devices, (GDestroyNotify) nmt_connect_device_free); - g_signal_handlers_disconnect_by_func (nm_client, G_CALLBACK (rebuild_on_property_changed), object); + g_signal_handlers_disconnect_by_func(nm_client, + G_CALLBACK(rebuild_on_property_changed), + object); - G_OBJECT_CLASS (nmt_connect_connection_list_parent_class)->finalize (object); + G_OBJECT_CLASS(nmt_connect_connection_list_parent_class)->finalize(object); } static void -nmt_connect_connection_list_class_init (NmtConnectConnectionListClass *list_class) +nmt_connect_connection_list_class_init(NmtConnectConnectionListClass *list_class) { - GObjectClass *object_class = G_OBJECT_CLASS (list_class); + GObjectClass *object_class = G_OBJECT_CLASS(list_class); - g_type_class_add_private (list_class, sizeof (NmtConnectConnectionListPrivate)); + g_type_class_add_private(list_class, sizeof(NmtConnectConnectionListPrivate)); - /* virtual methods */ - object_class->constructed = nmt_connect_connection_list_constructed; - object_class->finalize = nmt_connect_connection_list_finalize; + /* virtual methods */ + object_class->constructed = nmt_connect_connection_list_constructed; + object_class->finalize = nmt_connect_connection_list_finalize; } /** @@ -597,61 +596,60 @@ nmt_connect_connection_list_class_init (NmtConnectConnectionListClass *list_clas * Returns: %TRUE if there was a match, %FALSE if not. */ gboolean -nmt_connect_connection_list_get_connection (NmtConnectConnectionList *list, - const char *identifier, - NMConnection **connection, - NMDevice **device, - NMObject **specific_object, - NMActiveConnection **active) +nmt_connect_connection_list_get_connection(NmtConnectConnectionList *list, + const char * identifier, + NMConnection ** connection, + NMDevice ** device, + NMObject ** specific_object, + NMActiveConnection ** active) { - NmtConnectConnectionListPrivate *priv = NMT_CONNECT_CONNECTION_LIST_GET_PRIVATE (list); - GSList *diter, *citer; - NmtConnectDevice *nmtdev; - NmtConnectConnection *nmtconn = NULL; - NMConnection *conn = NULL; - - g_return_val_if_fail (identifier, FALSE); - - if (nm_utils_is_uuid (identifier)) - conn = NM_CONNECTION (nm_client_get_connection_by_uuid (nm_client, identifier)); - if (!conn) - conn = NM_CONNECTION (nm_client_get_connection_by_id (nm_client, identifier)); - - for (diter = priv->nmt_devices; diter; diter = diter->next) { - nmtdev = diter->data; - if (!nmtdev->conns) - continue; - - for (citer = nmtdev->conns; citer; citer = citer->next) { - nmtconn = citer->data; - if (conn) { - if (conn == nmtconn->conn) - goto found; - } else if (nm_streq0 (identifier, nmtconn->ssid)) - goto found; - } - - if ( !conn - && nmtdev->device - && nm_streq0 (identifier, nm_device_get_ip_iface (nmtdev->device))) { - nmtconn = nmtdev->conns->data; - goto found; - } - } - - return FALSE; + NmtConnectConnectionListPrivate *priv = NMT_CONNECT_CONNECTION_LIST_GET_PRIVATE(list); + GSList * diter, *citer; + NmtConnectDevice * nmtdev; + NmtConnectConnection * nmtconn = NULL; + NMConnection * conn = NULL; + + g_return_val_if_fail(identifier, FALSE); + + if (nm_utils_is_uuid(identifier)) + conn = NM_CONNECTION(nm_client_get_connection_by_uuid(nm_client, identifier)); + if (!conn) + conn = NM_CONNECTION(nm_client_get_connection_by_id(nm_client, identifier)); + + for (diter = priv->nmt_devices; diter; diter = diter->next) { + nmtdev = diter->data; + if (!nmtdev->conns) + continue; + + for (citer = nmtdev->conns; citer; citer = citer->next) { + nmtconn = citer->data; + if (conn) { + if (conn == nmtconn->conn) + goto found; + } else if (nm_streq0(identifier, nmtconn->ssid)) + goto found; + } + + if (!conn && nmtdev->device + && nm_streq0(identifier, nm_device_get_ip_iface(nmtdev->device))) { + nmtconn = nmtdev->conns->data; + goto found; + } + } + + return FALSE; found: - if (connection) - *connection = nmtconn->conn; - if (device) - *device = nmtconn->device; - if (specific_object) - *specific_object = NM_OBJECT (nmtconn->ap); - if (active) - *active = nmtconn->active; - - return TRUE; + if (connection) + *connection = nmtconn->conn; + if (device) + *device = nmtconn->device; + if (specific_object) + *specific_object = NM_OBJECT(nmtconn->ap); + if (active) + *active = nmtconn->active; + + return TRUE; } /** @@ -668,26 +666,26 @@ found: * Returns: %TRUE if there is a selection, %FALSE if not. */ gboolean -nmt_connect_connection_list_get_selection (NmtConnectConnectionList *list, - NMConnection **connection, - NMDevice **device, - NMObject **specific_object, - NMActiveConnection **active) +nmt_connect_connection_list_get_selection(NmtConnectConnectionList *list, + NMConnection ** connection, + NMDevice ** device, + NMObject ** specific_object, + NMActiveConnection ** active) { - NmtConnectConnection *nmtconn; - - nmtconn = nmt_newt_listbox_get_active_key (NMT_NEWT_LISTBOX (list)); - if (!nmtconn) - return FALSE; - - if (connection) - *connection = nmtconn->conn; - if (device) - *device = nmtconn->device; - if (specific_object) - *specific_object = NM_OBJECT (nmtconn->ap); - if (active) - *active = nmtconn->active; - - return TRUE; + NmtConnectConnection *nmtconn; + + nmtconn = nmt_newt_listbox_get_active_key(NMT_NEWT_LISTBOX(list)); + if (!nmtconn) + return FALSE; + + if (connection) + *connection = nmtconn->conn; + if (device) + *device = nmtconn->device; + if (specific_object) + *specific_object = NM_OBJECT(nmtconn->ap); + if (active) + *active = nmtconn->active; + + return TRUE; } diff --git a/clients/tui/nmt-connect-connection-list.h b/clients/tui/nmt-connect-connection-list.h index e0ba0b05f9..b91b3e4bcb 100644 --- a/clients/tui/nmt-connect-connection-list.h +++ b/clients/tui/nmt-connect-connection-list.h @@ -8,37 +8,46 @@ #include "nmt-newt.h" -#define NMT_TYPE_CONNECT_CONNECTION_LIST (nmt_connect_connection_list_get_type ()) -#define NMT_CONNECT_CONNECTION_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NMT_TYPE_CONNECT_CONNECTION_LIST, NmtConnectConnectionList)) -#define NMT_CONNECT_CONNECTION_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NMT_TYPE_CONNECT_CONNECTION_LIST, NmtConnectConnectionListClass)) -#define NMT_IS_CONNECT_CONNECTION_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NMT_TYPE_CONNECT_CONNECTION_LIST)) -#define NMT_IS_CONNECT_CONNECTION_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NMT_TYPE_CONNECT_CONNECTION_LIST)) -#define NMT_CONNECT_CONNECTION_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NMT_TYPE_CONNECT_CONNECTION_LIST, NmtConnectConnectionListClass)) +#define NMT_TYPE_CONNECT_CONNECTION_LIST (nmt_connect_connection_list_get_type()) +#define NMT_CONNECT_CONNECTION_LIST(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), NMT_TYPE_CONNECT_CONNECTION_LIST, NmtConnectConnectionList)) +#define NMT_CONNECT_CONNECTION_LIST_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), \ + NMT_TYPE_CONNECT_CONNECTION_LIST, \ + NmtConnectConnectionListClass)) +#define NMT_IS_CONNECT_CONNECTION_LIST(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj), NMT_TYPE_CONNECT_CONNECTION_LIST)) +#define NMT_IS_CONNECT_CONNECTION_LIST_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass), NMT_TYPE_CONNECT_CONNECTION_LIST)) +#define NMT_CONNECT_CONNECTION_LIST_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), \ + NMT_TYPE_CONNECT_CONNECTION_LIST, \ + NmtConnectConnectionListClass)) typedef struct { - NmtNewtListbox parent; + NmtNewtListbox parent; } NmtConnectConnectionList; typedef struct { - NmtNewtListboxClass parent; + NmtNewtListboxClass parent; } NmtConnectConnectionListClass; -GType nmt_connect_connection_list_get_type (void); - -NmtNewtWidget *nmt_connect_connection_list_new (void); - -gboolean nmt_connect_connection_list_get_connection (NmtConnectConnectionList *list, - const char *identifier, - NMConnection **connection, - NMDevice **device, - NMObject **specific_object, - NMActiveConnection **active); -gboolean nmt_connect_connection_list_get_selection (NmtConnectConnectionList *list, - NMConnection **connection, - NMDevice **device, - NMObject **specific_object, - NMActiveConnection **active); +GType nmt_connect_connection_list_get_type(void); + +NmtNewtWidget *nmt_connect_connection_list_new(void); + +gboolean nmt_connect_connection_list_get_connection(NmtConnectConnectionList *list, + const char * identifier, + NMConnection ** connection, + NMDevice ** device, + NMObject ** specific_object, + NMActiveConnection ** active); +gboolean nmt_connect_connection_list_get_selection(NmtConnectConnectionList *list, + NMConnection ** connection, + NMDevice ** device, + NMObject ** specific_object, + NMActiveConnection ** active); #endif /* NMT_CONNECT_CONNECTION_LIST_H */ diff --git a/clients/tui/nmt-device-entry.c b/clients/tui/nmt-device-entry.c index 264bd59d0b..04a2bb4f3e 100644 --- a/clients/tui/nmt-device-entry.c +++ b/clients/tui/nmt-device-entry.c @@ -30,35 +30,36 @@ #include "nmtui.h" -G_DEFINE_TYPE (NmtDeviceEntry, nmt_device_entry, NMT_TYPE_EDITOR_GRID) +G_DEFINE_TYPE(NmtDeviceEntry, nmt_device_entry, NMT_TYPE_EDITOR_GRID) -#define NMT_DEVICE_ENTRY_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NMT_TYPE_DEVICE_ENTRY, NmtDeviceEntryPrivate)) +#define NMT_DEVICE_ENTRY_GET_PRIVATE(o) \ + (G_TYPE_INSTANCE_GET_PRIVATE((o), NMT_TYPE_DEVICE_ENTRY, NmtDeviceEntryPrivate)) typedef struct { - GType hardware_type; - NmtDeviceEntryDeviceFilter device_filter; - gpointer device_filter_data; - int arptype; + GType hardware_type; + NmtDeviceEntryDeviceFilter device_filter; + gpointer device_filter_data; + int arptype; - char *interface_name; - char *mac_address; + char *interface_name; + char *mac_address; - char *label; - NmtNewtEntry *entry; - NmtNewtWidget *button; + char * label; + NmtNewtEntry * entry; + NmtNewtWidget *button; - gboolean updating; + gboolean updating; } NmtDeviceEntryPrivate; enum { - PROP_0, - PROP_LABEL, - PROP_WIDTH, - PROP_HARDWARE_TYPE, - PROP_INTERFACE_NAME, - PROP_MAC_ADDRESS, - - LAST_PROP + PROP_0, + PROP_LABEL, + PROP_WIDTH, + PROP_HARDWARE_TYPE, + PROP_INTERFACE_NAME, + PROP_MAC_ADDRESS, + + LAST_PROP }; /** @@ -76,280 +77,272 @@ enum { * Returns: a new #NmtDeviceEntry. */ NmtNewtWidget * -nmt_device_entry_new (const char *label, - int width, - GType hardware_type) +nmt_device_entry_new(const char *label, int width, GType hardware_type) { - return g_object_new (NMT_TYPE_DEVICE_ENTRY, - "label", label, - "width", width, - "hardware-type", hardware_type, - NULL); + return g_object_new(NMT_TYPE_DEVICE_ENTRY, + "label", + label, + "width", + width, + "hardware-type", + hardware_type, + NULL); } static gboolean -device_entry_parse (NmtDeviceEntry *deventry, - const char *text, - char **interface_name, - char **mac_address) +device_entry_parse(NmtDeviceEntry *deventry, + const char * text, + char ** interface_name, + char ** mac_address) { - NmtDeviceEntryPrivate *priv = NMT_DEVICE_ENTRY_GET_PRIVATE (deventry); - guint8 buf[NM_UTILS_HWADDR_LEN_MAX]; - char **words; - int len; - - *interface_name = *mac_address = NULL; - if (!*text) - return TRUE; - - if (priv->hardware_type == G_TYPE_NONE && !priv->device_filter) { - if (nm_utils_ifname_valid_kernel (text, NULL)) { - *interface_name = g_strdup (text); - return TRUE; - } else - return FALSE; - } - - words = g_strsplit (text, " ", -1); - if (g_strv_length (words) > 2) { - g_strfreev (words); - return FALSE; - } - - if (words[1]) { - len = strlen (words[1]); - if (len < 3 || words[1][0] != '(' || words[1][len - 1] != ')') - goto fail; - - memmove (words[1], words[1] + 1, len - 2); - words[1][len - 2] = '\0'; - } - - len = nm_utils_hwaddr_len (priv->arptype); - if ( nm_utils_hwaddr_aton (words[0], buf, len) - && (!words[1] || nm_utils_ifname_valid_kernel (words[1], NULL))) { - *mac_address = words[0]; - *interface_name = NULL; - g_free (words); - return TRUE; - } else if ( nm_utils_ifname_valid_kernel (words[0], NULL) - && (!words[1] || nm_utils_hwaddr_aton (words[1], buf, len))) { - *interface_name = words[0]; - *mac_address = NULL; - g_free (words); - return TRUE; - } - - fail: - g_strfreev (words); - return FALSE; + NmtDeviceEntryPrivate *priv = NMT_DEVICE_ENTRY_GET_PRIVATE(deventry); + guint8 buf[NM_UTILS_HWADDR_LEN_MAX]; + char ** words; + int len; + + *interface_name = *mac_address = NULL; + if (!*text) + return TRUE; + + if (priv->hardware_type == G_TYPE_NONE && !priv->device_filter) { + if (nm_utils_ifname_valid_kernel(text, NULL)) { + *interface_name = g_strdup(text); + return TRUE; + } else + return FALSE; + } + + words = g_strsplit(text, " ", -1); + if (g_strv_length(words) > 2) { + g_strfreev(words); + return FALSE; + } + + if (words[1]) { + len = strlen(words[1]); + if (len < 3 || words[1][0] != '(' || words[1][len - 1] != ')') + goto fail; + + memmove(words[1], words[1] + 1, len - 2); + words[1][len - 2] = '\0'; + } + + len = nm_utils_hwaddr_len(priv->arptype); + if (nm_utils_hwaddr_aton(words[0], buf, len) + && (!words[1] || nm_utils_ifname_valid_kernel(words[1], NULL))) { + *mac_address = words[0]; + *interface_name = NULL; + g_free(words); + return TRUE; + } else if (nm_utils_ifname_valid_kernel(words[0], NULL) + && (!words[1] || nm_utils_hwaddr_aton(words[1], buf, len))) { + *interface_name = words[0]; + *mac_address = NULL; + g_free(words); + return TRUE; + } + +fail: + g_strfreev(words); + return FALSE; } static gboolean -device_entry_validate (NmtNewtEntry *entry, - const char *text, - gpointer user_data) +device_entry_validate(NmtNewtEntry *entry, const char *text, gpointer user_data) { - NmtDeviceEntry *deventry = user_data; - char *ifname, *mac; + NmtDeviceEntry *deventry = user_data; + char * ifname, *mac; - if (!device_entry_parse (deventry, text, &ifname, &mac)) - return FALSE; + if (!device_entry_parse(deventry, text, &ifname, &mac)) + return FALSE; - g_free (ifname); - g_free (mac); - return TRUE; + g_free(ifname); + g_free(mac); + return TRUE; } static NMDevice * -find_device_by_interface_name (NmtDeviceEntry *deventry, - const char *interface_name) +find_device_by_interface_name(NmtDeviceEntry *deventry, const char *interface_name) { - NmtDeviceEntryPrivate *priv = NMT_DEVICE_ENTRY_GET_PRIVATE (deventry); - const GPtrArray *devices; - NMDevice *device = NULL; - int i; + NmtDeviceEntryPrivate *priv = NMT_DEVICE_ENTRY_GET_PRIVATE(deventry); + const GPtrArray * devices; + NMDevice * device = NULL; + int i; - devices = nm_client_get_devices (nm_client); - for (i = 0; i < devices->len && !device; i++) { - NMDevice *candidate = devices->pdata[i]; + devices = nm_client_get_devices(nm_client); + for (i = 0; i < devices->len && !device; i++) { + NMDevice *candidate = devices->pdata[i]; - if ( priv->hardware_type != G_TYPE_NONE - && !G_TYPE_CHECK_INSTANCE_TYPE (candidate, priv->hardware_type)) - continue; + if (priv->hardware_type != G_TYPE_NONE + && !G_TYPE_CHECK_INSTANCE_TYPE(candidate, priv->hardware_type)) + continue; - if ( priv->device_filter - && !priv->device_filter (deventry, candidate, priv->device_filter_data)) - continue; + if (priv->device_filter + && !priv->device_filter(deventry, candidate, priv->device_filter_data)) + continue; - if (!g_strcmp0 (interface_name, nm_device_get_iface (candidate))) - device = candidate; - } + if (!g_strcmp0(interface_name, nm_device_get_iface(candidate))) + device = candidate; + } - return device; + return device; } static NMDevice * -find_device_by_mac_address (NmtDeviceEntry *deventry, - const char *mac_address) +find_device_by_mac_address(NmtDeviceEntry *deventry, const char *mac_address) { - NmtDeviceEntryPrivate *priv = NMT_DEVICE_ENTRY_GET_PRIVATE (deventry); - const GPtrArray *devices; - NMDevice *device = NULL; - int i; - - devices = nm_client_get_devices (nm_client); - for (i = 0; i < devices->len && !device; i++) { - NMDevice *candidate = devices->pdata[i]; - char *hwaddr; - - if ( priv->hardware_type != G_TYPE_NONE - && !G_TYPE_CHECK_INSTANCE_TYPE (candidate, priv->hardware_type)) - continue; - - if ( priv->device_filter - && !priv->device_filter (deventry, candidate, priv->device_filter_data)) - continue; - - g_object_get (G_OBJECT (candidate), "hw-address", &hwaddr, NULL); - if (hwaddr && !g_ascii_strcasecmp (mac_address, hwaddr)) - device = candidate; - g_free (hwaddr); - } - - return device; + NmtDeviceEntryPrivate *priv = NMT_DEVICE_ENTRY_GET_PRIVATE(deventry); + const GPtrArray * devices; + NMDevice * device = NULL; + int i; + + devices = nm_client_get_devices(nm_client); + for (i = 0; i < devices->len && !device; i++) { + NMDevice *candidate = devices->pdata[i]; + char * hwaddr; + + if (priv->hardware_type != G_TYPE_NONE + && !G_TYPE_CHECK_INSTANCE_TYPE(candidate, priv->hardware_type)) + continue; + + if (priv->device_filter + && !priv->device_filter(deventry, candidate, priv->device_filter_data)) + continue; + + g_object_get(G_OBJECT(candidate), "hw-address", &hwaddr, NULL); + if (hwaddr && !g_ascii_strcasecmp(mac_address, hwaddr)) + device = candidate; + g_free(hwaddr); + } + + return device; } static void -update_entry (NmtDeviceEntry *deventry) +update_entry(NmtDeviceEntry *deventry) { - NmtDeviceEntryPrivate *priv = NMT_DEVICE_ENTRY_GET_PRIVATE (deventry); - const char *ifname; - char *mac, *text; - NMDevice *ifname_device, *mac_device; - - if (priv->interface_name) { - ifname = priv->interface_name; - ifname_device = find_device_by_interface_name (deventry, priv->interface_name); - } else { - ifname = NULL; - ifname_device = NULL; - } - - if (priv->mac_address) { - mac = g_strdup (priv->mac_address); - mac_device = find_device_by_mac_address (deventry, priv->mac_address); - } else { - mac = NULL; - mac_device = NULL; - } - - if (!ifname && mac_device) - ifname = nm_device_get_iface (mac_device); - if (!mac && ifname_device && (priv->hardware_type != G_TYPE_NONE)) - g_object_get (G_OBJECT (ifname_device), "hw-address", &mac, NULL); - - if (ifname_device && mac_device && ifname_device != mac_device) { - /* Mismatch! */ - text = g_strdup_printf ("%s != %s", priv->interface_name, mac); - } else if (ifname && mac) { - if (ifname_device) - text = g_strdup_printf ("%s (%s)", ifname, mac); - else - text = g_strdup_printf ("%s (%s)", mac, ifname); - } else if (ifname) - text = g_strdup (ifname); - else if (mac) - text = g_strdup (mac); - else - text = g_strdup (""); - - priv->updating = TRUE; - g_object_set (G_OBJECT (priv->entry), "text", text, NULL); - priv->updating = FALSE; - g_free (text); - - g_free (mac); + NmtDeviceEntryPrivate *priv = NMT_DEVICE_ENTRY_GET_PRIVATE(deventry); + const char * ifname; + char * mac, *text; + NMDevice * ifname_device, *mac_device; + + if (priv->interface_name) { + ifname = priv->interface_name; + ifname_device = find_device_by_interface_name(deventry, priv->interface_name); + } else { + ifname = NULL; + ifname_device = NULL; + } + + if (priv->mac_address) { + mac = g_strdup(priv->mac_address); + mac_device = find_device_by_mac_address(deventry, priv->mac_address); + } else { + mac = NULL; + mac_device = NULL; + } + + if (!ifname && mac_device) + ifname = nm_device_get_iface(mac_device); + if (!mac && ifname_device && (priv->hardware_type != G_TYPE_NONE)) + g_object_get(G_OBJECT(ifname_device), "hw-address", &mac, NULL); + + if (ifname_device && mac_device && ifname_device != mac_device) { + /* Mismatch! */ + text = g_strdup_printf("%s != %s", priv->interface_name, mac); + } else if (ifname && mac) { + if (ifname_device) + text = g_strdup_printf("%s (%s)", ifname, mac); + else + text = g_strdup_printf("%s (%s)", mac, ifname); + } else if (ifname) + text = g_strdup(ifname); + else if (mac) + text = g_strdup(mac); + else + text = g_strdup(""); + + priv->updating = TRUE; + g_object_set(G_OBJECT(priv->entry), "text", text, NULL); + priv->updating = FALSE; + g_free(text); + + g_free(mac); } static gboolean -nmt_device_entry_set_interface_name (NmtDeviceEntry *deventry, - const char *interface_name) +nmt_device_entry_set_interface_name(NmtDeviceEntry *deventry, const char *interface_name) { - NmtDeviceEntryPrivate *priv = NMT_DEVICE_ENTRY_GET_PRIVATE (deventry); + NmtDeviceEntryPrivate *priv = NMT_DEVICE_ENTRY_GET_PRIVATE(deventry); - if (g_strcmp0 (interface_name, priv->interface_name) != 0) { - g_free (priv->interface_name); - priv->interface_name = g_strdup (interface_name); + if (g_strcmp0(interface_name, priv->interface_name) != 0) { + g_free(priv->interface_name); + priv->interface_name = g_strdup(interface_name); - g_object_notify (G_OBJECT (deventry), "interface-name"); - return TRUE; - } else - return FALSE; + g_object_notify(G_OBJECT(deventry), "interface-name"); + return TRUE; + } else + return FALSE; } static gboolean -nmt_device_entry_set_mac_address (NmtDeviceEntry *deventry, - const char *mac_address) +nmt_device_entry_set_mac_address(NmtDeviceEntry *deventry, const char *mac_address) { - NmtDeviceEntryPrivate *priv = NMT_DEVICE_ENTRY_GET_PRIVATE (deventry); - gboolean changed; - - if (mac_address && !priv->mac_address) { - priv->mac_address = g_strdup (mac_address); - changed = TRUE; - } else if (!mac_address && priv->mac_address) { - nm_clear_g_free (&priv->mac_address); - changed = TRUE; - } else if ( mac_address && priv->mac_address - && !nm_utils_hwaddr_matches (mac_address, -1, priv->mac_address, -1)) { - g_free (priv->mac_address); - priv->mac_address = g_strdup (mac_address); - changed = TRUE; - } else - changed = FALSE; - - if (changed) - g_object_notify (G_OBJECT (deventry), "mac-address"); - return changed; + NmtDeviceEntryPrivate *priv = NMT_DEVICE_ENTRY_GET_PRIVATE(deventry); + gboolean changed; + + if (mac_address && !priv->mac_address) { + priv->mac_address = g_strdup(mac_address); + changed = TRUE; + } else if (!mac_address && priv->mac_address) { + nm_clear_g_free(&priv->mac_address); + changed = TRUE; + } else if (mac_address && priv->mac_address + && !nm_utils_hwaddr_matches(mac_address, -1, priv->mac_address, -1)) { + g_free(priv->mac_address); + priv->mac_address = g_strdup(mac_address); + changed = TRUE; + } else + changed = FALSE; + + if (changed) + g_object_notify(G_OBJECT(deventry), "mac-address"); + return changed; } static void -entry_text_changed (GObject *object, - GParamSpec *pspec, - gpointer deventry) +entry_text_changed(GObject *object, GParamSpec *pspec, gpointer deventry) { - NmtDeviceEntryPrivate *priv = NMT_DEVICE_ENTRY_GET_PRIVATE (deventry); - const char *text; - char *ifname, *mac; + NmtDeviceEntryPrivate *priv = NMT_DEVICE_ENTRY_GET_PRIVATE(deventry); + const char * text; + char * ifname, *mac; - if (priv->updating) - return; + if (priv->updating) + return; - text = nmt_newt_entry_get_text (priv->entry); - if (!device_entry_parse (deventry, text, &ifname, &mac)) - return; + text = nmt_newt_entry_get_text(priv->entry); + if (!device_entry_parse(deventry, text, &ifname, &mac)) + return; - nmt_device_entry_set_interface_name (deventry, ifname); - g_free (ifname); + nmt_device_entry_set_interface_name(deventry, ifname); + g_free(ifname); - nmt_device_entry_set_mac_address (deventry, mac); - g_free (mac); + nmt_device_entry_set_mac_address(deventry, mac); + g_free(mac); } static void -nmt_device_entry_init (NmtDeviceEntry *deventry) +nmt_device_entry_init(NmtDeviceEntry *deventry) { - NmtDeviceEntryPrivate *priv = NMT_DEVICE_ENTRY_GET_PRIVATE (deventry); - NmtNewtWidget *entry; + NmtDeviceEntryPrivate *priv = NMT_DEVICE_ENTRY_GET_PRIVATE(deventry); + NmtNewtWidget * entry; - priv->hardware_type = G_TYPE_NONE; + priv->hardware_type = G_TYPE_NONE; - entry = nmt_newt_entry_new (-1, 0); - priv->entry = NMT_NEWT_ENTRY (entry); - nmt_newt_entry_set_validator (priv->entry, device_entry_validate, deventry); - g_signal_connect (priv->entry, "notify::text", - G_CALLBACK (entry_text_changed), deventry); + entry = nmt_newt_entry_new(-1, 0); + priv->entry = NMT_NEWT_ENTRY(entry); + nmt_newt_entry_set_validator(priv->entry, device_entry_validate, deventry); + g_signal_connect(priv->entry, "notify::text", G_CALLBACK(entry_text_changed), deventry); #if 0 priv->button = nmt_newt_button_new (_("Select...")); @@ -359,24 +352,27 @@ nmt_device_entry_init (NmtDeviceEntry *deventry) } static void -nmt_device_entry_constructed (GObject *object) +nmt_device_entry_constructed(GObject *object) { - NmtDeviceEntryPrivate *priv = NMT_DEVICE_ENTRY_GET_PRIVATE (object); + NmtDeviceEntryPrivate *priv = NMT_DEVICE_ENTRY_GET_PRIVATE(object); - nmt_editor_grid_append (NMT_EDITOR_GRID (object), priv->label, NMT_NEWT_WIDGET (priv->entry), NULL); + nmt_editor_grid_append(NMT_EDITOR_GRID(object), + priv->label, + NMT_NEWT_WIDGET(priv->entry), + NULL); - G_OBJECT_CLASS (nmt_device_entry_parent_class)->constructed (object); + G_OBJECT_CLASS(nmt_device_entry_parent_class)->constructed(object); } static void -nmt_device_entry_finalize (GObject *object) +nmt_device_entry_finalize(GObject *object) { - NmtDeviceEntryPrivate *priv = NMT_DEVICE_ENTRY_GET_PRIVATE (object); + NmtDeviceEntryPrivate *priv = NMT_DEVICE_ENTRY_GET_PRIVATE(object); - g_free (priv->interface_name); - g_free (priv->mac_address); + g_free(priv->interface_name); + g_free(priv->mac_address); - G_OBJECT_CLASS (nmt_device_entry_parent_class)->finalize (object); + G_OBJECT_CLASS(nmt_device_entry_parent_class)->finalize(object); } /** @@ -405,153 +401,155 @@ nmt_device_entry_finalize (GObject *object) * accepted by the filter will be allowed. */ void -nmt_device_entry_set_device_filter (NmtDeviceEntry *deventry, - NmtDeviceEntryDeviceFilter filter, - gpointer user_data) +nmt_device_entry_set_device_filter(NmtDeviceEntry * deventry, + NmtDeviceEntryDeviceFilter filter, + gpointer user_data) { - NmtDeviceEntryPrivate *priv = NMT_DEVICE_ENTRY_GET_PRIVATE (deventry); + NmtDeviceEntryPrivate *priv = NMT_DEVICE_ENTRY_GET_PRIVATE(deventry); - priv->device_filter = filter; - priv->device_filter_data = user_data; + priv->device_filter = filter; + priv->device_filter_data = user_data; } static void -nmt_device_entry_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) +nmt_device_entry_set_property(GObject * object, + guint prop_id, + const GValue *value, + GParamSpec * pspec) { - NmtDeviceEntry *deventry = NMT_DEVICE_ENTRY (object); - NmtDeviceEntryPrivate *priv = NMT_DEVICE_ENTRY_GET_PRIVATE (deventry); - const char *interface_name; - const char *mac_address; - - switch (prop_id) { - case PROP_LABEL: - priv->label = g_value_dup_string (value); - break; - case PROP_WIDTH: - nmt_newt_entry_set_width (priv->entry, g_value_get_int (value)); - break; - case PROP_HARDWARE_TYPE: - priv->hardware_type = g_value_get_gtype (value); - priv->arptype = (priv->hardware_type == NM_TYPE_DEVICE_INFINIBAND) ? ARPHRD_INFINIBAND : ARPHRD_ETHER; - break; - case PROP_INTERFACE_NAME: - interface_name = g_value_get_string (value); - if (nmt_device_entry_set_interface_name (deventry, interface_name)) - update_entry (deventry); - break; - case PROP_MAC_ADDRESS: - mac_address = g_value_get_string (value); - if (nmt_device_entry_set_mac_address (deventry, mac_address)) - update_entry (deventry); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtDeviceEntry * deventry = NMT_DEVICE_ENTRY(object); + NmtDeviceEntryPrivate *priv = NMT_DEVICE_ENTRY_GET_PRIVATE(deventry); + const char * interface_name; + const char * mac_address; + + switch (prop_id) { + case PROP_LABEL: + priv->label = g_value_dup_string(value); + break; + case PROP_WIDTH: + nmt_newt_entry_set_width(priv->entry, g_value_get_int(value)); + break; + case PROP_HARDWARE_TYPE: + priv->hardware_type = g_value_get_gtype(value); + priv->arptype = + (priv->hardware_type == NM_TYPE_DEVICE_INFINIBAND) ? ARPHRD_INFINIBAND : ARPHRD_ETHER; + break; + case PROP_INTERFACE_NAME: + interface_name = g_value_get_string(value); + if (nmt_device_entry_set_interface_name(deventry, interface_name)) + update_entry(deventry); + break; + case PROP_MAC_ADDRESS: + mac_address = g_value_get_string(value); + if (nmt_device_entry_set_mac_address(deventry, mac_address)) + update_entry(deventry); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_device_entry_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) +nmt_device_entry_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - NmtDeviceEntryPrivate *priv = NMT_DEVICE_ENTRY_GET_PRIVATE (object); - - switch (prop_id) { - case PROP_LABEL: - g_value_set_string (value, priv->label); - break; - case PROP_WIDTH: - g_value_set_int (value, nmt_newt_entry_get_width (priv->entry)); - break; - case PROP_HARDWARE_TYPE: - g_value_set_gtype (value, priv->hardware_type); - break; - case PROP_INTERFACE_NAME: - g_value_set_string (value, priv->interface_name); - break; - case PROP_MAC_ADDRESS: - g_value_set_string (value, priv->mac_address); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtDeviceEntryPrivate *priv = NMT_DEVICE_ENTRY_GET_PRIVATE(object); + + switch (prop_id) { + case PROP_LABEL: + g_value_set_string(value, priv->label); + break; + case PROP_WIDTH: + g_value_set_int(value, nmt_newt_entry_get_width(priv->entry)); + break; + case PROP_HARDWARE_TYPE: + g_value_set_gtype(value, priv->hardware_type); + break; + case PROP_INTERFACE_NAME: + g_value_set_string(value, priv->interface_name); + break; + case PROP_MAC_ADDRESS: + g_value_set_string(value, priv->mac_address); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_device_entry_class_init (NmtDeviceEntryClass *deventry_class) +nmt_device_entry_class_init(NmtDeviceEntryClass *deventry_class) { - GObjectClass *object_class = G_OBJECT_CLASS (deventry_class); + GObjectClass *object_class = G_OBJECT_CLASS(deventry_class); - g_type_class_add_private (deventry_class, sizeof (NmtDeviceEntryPrivate)); + g_type_class_add_private(deventry_class, sizeof(NmtDeviceEntryPrivate)); - /* virtual methods */ - object_class->constructed = nmt_device_entry_constructed; - object_class->set_property = nmt_device_entry_set_property; - object_class->get_property = nmt_device_entry_get_property; - object_class->finalize = nmt_device_entry_finalize; + /* virtual methods */ + object_class->constructed = nmt_device_entry_constructed; + object_class->set_property = nmt_device_entry_set_property; + object_class->get_property = nmt_device_entry_get_property; + object_class->finalize = nmt_device_entry_finalize; - /** + /** * NmtDeviceEntry:label: * * The entry's label */ - g_object_class_install_property - (object_class, PROP_LABEL, - g_param_spec_string ("label", "", "", - NULL, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); - /** + g_object_class_install_property( + object_class, + PROP_LABEL, + g_param_spec_string("label", + "", + "", + NULL, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); + /** * NmtDeviceEntry:width: * * The entry's width in characters */ - g_object_class_install_property - (object_class, PROP_WIDTH, - g_param_spec_int ("width", "", "", - -1, 80, -1, - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS)); - /** + g_object_class_install_property( + object_class, + PROP_WIDTH, + g_param_spec_int("width", "", "", -1, 80, -1, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** * NmtDeviceEntry:hardware-type: * * The type of #NMDevice to limit the entry to, or %G_TYPE_NONE * if the entry is for a virtual device and should not accept * hardware addresses. */ - g_object_class_install_property - (object_class, PROP_HARDWARE_TYPE, - g_param_spec_gtype ("hardware-type", "", "", - G_TYPE_NONE, - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS)); - /** + g_object_class_install_property(object_class, + PROP_HARDWARE_TYPE, + g_param_spec_gtype("hardware-type", + "", + "", + G_TYPE_NONE, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** * NmtDeviceEntry:interface-name: * * The interface name of the device identified by the entry. */ - g_object_class_install_property - (object_class, PROP_INTERFACE_NAME, - g_param_spec_string ("interface-name", "", "", - NULL, - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS)); - /** + g_object_class_install_property( + object_class, + PROP_INTERFACE_NAME, + g_param_spec_string("interface-name", + "", + "", + NULL, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** * NmtDeviceEntry:mac-address: * * The hardware address of the device identified by the entry. */ - g_object_class_install_property - (object_class, PROP_MAC_ADDRESS, - g_param_spec_string ("mac-address", "", "", - NULL, - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS)); + g_object_class_install_property( + object_class, + PROP_MAC_ADDRESS, + g_param_spec_string("mac-address", + "", + "", + NULL, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); } diff --git a/clients/tui/nmt-device-entry.h b/clients/tui/nmt-device-entry.h index 4fe2d92e21..31ca51444e 100644 --- a/clients/tui/nmt-device-entry.h +++ b/clients/tui/nmt-device-entry.h @@ -8,34 +8,35 @@ #include "nmt-editor-grid.h" -#define NMT_TYPE_DEVICE_ENTRY (nmt_device_entry_get_type ()) -#define NMT_DEVICE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NMT_TYPE_DEVICE_ENTRY, NmtDeviceEntry)) -#define NMT_DEVICE_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NMT_TYPE_DEVICE_ENTRY, NmtDeviceEntryClass)) -#define NMT_IS_DEVICE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NMT_TYPE_DEVICE_ENTRY)) -#define NMT_IS_DEVICE_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NMT_TYPE_DEVICE_ENTRY)) -#define NMT_DEVICE_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NMT_TYPE_DEVICE_ENTRY, NmtDeviceEntryClass)) +#define NMT_TYPE_DEVICE_ENTRY (nmt_device_entry_get_type()) +#define NMT_DEVICE_ENTRY(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), NMT_TYPE_DEVICE_ENTRY, NmtDeviceEntry)) +#define NMT_DEVICE_ENTRY_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), NMT_TYPE_DEVICE_ENTRY, NmtDeviceEntryClass)) +#define NMT_IS_DEVICE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), NMT_TYPE_DEVICE_ENTRY)) +#define NMT_IS_DEVICE_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), NMT_TYPE_DEVICE_ENTRY)) +#define NMT_DEVICE_ENTRY_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), NMT_TYPE_DEVICE_ENTRY, NmtDeviceEntryClass)) typedef struct { - NmtEditorGrid parent; + NmtEditorGrid parent; } NmtDeviceEntry; typedef struct { - NmtEditorGridClass parent; + NmtEditorGridClass parent; } NmtDeviceEntryClass; -GType nmt_device_entry_get_type (void); +GType nmt_device_entry_get_type(void); -NmtNewtWidget *nmt_device_entry_new (const char *label, - int width, - GType hardware_type); +NmtNewtWidget *nmt_device_entry_new(const char *label, int width, GType hardware_type); -typedef gboolean (*NmtDeviceEntryDeviceFilter) (NmtDeviceEntry *deventry, - NMDevice *device, - gpointer user_data); -void nmt_device_entry_set_device_filter (NmtDeviceEntry *deventry, - NmtDeviceEntryDeviceFilter filter, - gpointer user_data); +typedef gboolean (*NmtDeviceEntryDeviceFilter)(NmtDeviceEntry *deventry, + NMDevice * device, + gpointer user_data); +void nmt_device_entry_set_device_filter(NmtDeviceEntry * deventry, + NmtDeviceEntryDeviceFilter filter, + gpointer user_data); #endif /* NMT_DEVICE_ENTRY_H */ diff --git a/clients/tui/nmt-edit-connection-list.c b/clients/tui/nmt-edit-connection-list.c index a33f393adf..c51f80cff2 100644 --- a/clients/tui/nmt-edit-connection-list.c +++ b/clients/tui/nmt-edit-connection-list.c @@ -20,426 +20,431 @@ #include "nm-editor-utils.h" -G_DEFINE_TYPE (NmtEditConnectionList, nmt_edit_connection_list, NMT_TYPE_NEWT_GRID) +G_DEFINE_TYPE(NmtEditConnectionList, nmt_edit_connection_list, NMT_TYPE_NEWT_GRID) -#define NMT_EDIT_CONNECTION_LIST_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NMT_TYPE_EDIT_CONNECTION_LIST, NmtEditConnectionListPrivate)) +#define NMT_EDIT_CONNECTION_LIST_GET_PRIVATE(o) \ + (G_TYPE_INSTANCE_GET_PRIVATE((o), NMT_TYPE_EDIT_CONNECTION_LIST, NmtEditConnectionListPrivate)) typedef struct { - GSList *connections; + GSList *connections; - gboolean grouped; - NmtEditConnectionListFilter connection_filter; - gpointer connection_filter_data; + gboolean grouped; + NmtEditConnectionListFilter connection_filter; + gpointer connection_filter_data; - NmtNewtListbox *listbox; - NmtNewtButtonBox *buttons; + NmtNewtListbox * listbox; + NmtNewtButtonBox *buttons; - NmtNewtWidget *add; - NmtNewtWidget *edit; - NmtNewtWidget *delete; - NmtNewtWidget *extra; + NmtNewtWidget *add; + NmtNewtWidget *edit; + NmtNewtWidget *delete; + NmtNewtWidget *extra; } NmtEditConnectionListPrivate; enum { - PROP_0, + PROP_0, - PROP_GROUPED, - PROP_CONNECTION_FILTER, - PROP_CONNECTION_FILTER_DATA, - PROP_EXTRA_WIDGET, - PROP_CONNECTIONS, - PROP_NUM_CONNECTIONS, + PROP_GROUPED, + PROP_CONNECTION_FILTER, + PROP_CONNECTION_FILTER_DATA, + PROP_EXTRA_WIDGET, + PROP_CONNECTIONS, + PROP_NUM_CONNECTIONS, - LAST_PROP + LAST_PROP }; enum { - ADD_CONNECTION, - EDIT_CONNECTION, - REMOVE_CONNECTION, + ADD_CONNECTION, + EDIT_CONNECTION, + REMOVE_CONNECTION, - LAST_SIGNAL + LAST_SIGNAL }; -static guint signals[LAST_SIGNAL] = { 0 }; +static guint signals[LAST_SIGNAL] = {0}; -static void add_clicked (NmtNewtButton *button, gpointer list); -static void edit_clicked (NmtNewtButton *button, gpointer list); -static void delete_clicked (NmtNewtButton *button, gpointer list); -static void listbox_activated (NmtNewtWidget *listbox, gpointer list); +static void add_clicked(NmtNewtButton *button, gpointer list); +static void edit_clicked(NmtNewtButton *button, gpointer list); +static void delete_clicked(NmtNewtButton *button, gpointer list); +static void listbox_activated(NmtNewtWidget *listbox, gpointer list); static void -nmt_edit_connection_list_init (NmtEditConnectionList *list) +nmt_edit_connection_list_init(NmtEditConnectionList *list) { - NmtEditConnectionListPrivate *priv = NMT_EDIT_CONNECTION_LIST_GET_PRIVATE (list); - NmtNewtWidget *listbox, *buttons; - NmtNewtGrid *grid = NMT_NEWT_GRID (list); - - listbox = g_object_new (NMT_TYPE_NEWT_LISTBOX, - "flags", NMT_NEWT_LISTBOX_SCROLL | NMT_NEWT_LISTBOX_BORDER, - "skip-null-keys", TRUE, - NULL); - priv->listbox = NMT_NEWT_LISTBOX (listbox); - nmt_newt_grid_add (grid, listbox, 0, 0); - nmt_newt_grid_set_flags (grid, listbox, - NMT_NEWT_GRID_FILL_X | NMT_NEWT_GRID_FILL_Y | - NMT_NEWT_GRID_EXPAND_X | NMT_NEWT_GRID_EXPAND_Y); - g_signal_connect (priv->listbox, "activated", G_CALLBACK (listbox_activated), list); - - buttons = nmt_newt_button_box_new (NMT_NEWT_BUTTON_BOX_VERTICAL); - priv->buttons = NMT_NEWT_BUTTON_BOX (buttons); - nmt_newt_grid_add (grid, buttons, 1, 0); - nmt_newt_widget_set_padding (buttons, 1, 1, 0, 1); - nmt_newt_grid_set_flags (grid, buttons, - NMT_NEWT_GRID_FILL_X | NMT_NEWT_GRID_FILL_Y | - NMT_NEWT_GRID_EXPAND_Y); - - priv->add = nmt_newt_button_box_add_start (priv->buttons, _("Add")); - g_signal_connect (priv->add, "clicked", G_CALLBACK (add_clicked), list); - - priv->edit = nmt_newt_button_box_add_start (priv->buttons, _("Edit...")); - g_signal_connect (priv->edit, "clicked", G_CALLBACK (edit_clicked), list); - - priv->delete = nmt_newt_button_box_add_start (priv->buttons, _("Delete")); - g_signal_connect (priv->delete, "clicked", G_CALLBACK (delete_clicked), list); + NmtEditConnectionListPrivate *priv = NMT_EDIT_CONNECTION_LIST_GET_PRIVATE(list); + NmtNewtWidget * listbox, *buttons; + NmtNewtGrid * grid = NMT_NEWT_GRID(list); + + listbox = g_object_new(NMT_TYPE_NEWT_LISTBOX, + "flags", + NMT_NEWT_LISTBOX_SCROLL | NMT_NEWT_LISTBOX_BORDER, + "skip-null-keys", + TRUE, + NULL); + priv->listbox = NMT_NEWT_LISTBOX(listbox); + nmt_newt_grid_add(grid, listbox, 0, 0); + nmt_newt_grid_set_flags(grid, + listbox, + NMT_NEWT_GRID_FILL_X | NMT_NEWT_GRID_FILL_Y | NMT_NEWT_GRID_EXPAND_X + | NMT_NEWT_GRID_EXPAND_Y); + g_signal_connect(priv->listbox, "activated", G_CALLBACK(listbox_activated), list); + + buttons = nmt_newt_button_box_new(NMT_NEWT_BUTTON_BOX_VERTICAL); + priv->buttons = NMT_NEWT_BUTTON_BOX(buttons); + nmt_newt_grid_add(grid, buttons, 1, 0); + nmt_newt_widget_set_padding(buttons, 1, 1, 0, 1); + nmt_newt_grid_set_flags(grid, + buttons, + NMT_NEWT_GRID_FILL_X | NMT_NEWT_GRID_FILL_Y | NMT_NEWT_GRID_EXPAND_Y); + + priv->add = nmt_newt_button_box_add_start(priv->buttons, _("Add")); + g_signal_connect(priv->add, "clicked", G_CALLBACK(add_clicked), list); + + priv->edit = nmt_newt_button_box_add_start(priv->buttons, _("Edit...")); + g_signal_connect(priv->edit, "clicked", G_CALLBACK(edit_clicked), list); + + priv->delete = nmt_newt_button_box_add_start(priv->buttons, _("Delete")); + g_signal_connect(priv->delete, "clicked", G_CALLBACK(delete_clicked), list); } static int -sort_by_timestamp (gconstpointer a, - gconstpointer b) +sort_by_timestamp(gconstpointer a, gconstpointer b) { - NMSettingConnection *s_con_a, *s_con_b; - guint64 time_a, time_b; + NMSettingConnection *s_con_a, *s_con_b; + guint64 time_a, time_b; - s_con_a = nm_connection_get_setting_connection ((NMConnection *) a); - s_con_b = nm_connection_get_setting_connection ((NMConnection *) b); + s_con_a = nm_connection_get_setting_connection((NMConnection *) a); + s_con_b = nm_connection_get_setting_connection((NMConnection *) b); - time_a = nm_setting_connection_get_timestamp (s_con_a); - time_b = nm_setting_connection_get_timestamp (s_con_b); + time_a = nm_setting_connection_get_timestamp(s_con_a); + time_b = nm_setting_connection_get_timestamp(s_con_b); - return (int) (time_b - time_a); + return (int) (time_b - time_a); } -static void nmt_edit_connection_list_rebuild (NmtEditConnectionList *list); +static void nmt_edit_connection_list_rebuild(NmtEditConnectionList *list); static void -rebuild_on_connection_changed (NMRemoteConnection *connection, - gpointer list) +rebuild_on_connection_changed(NMRemoteConnection *connection, gpointer list) { - nmt_edit_connection_list_rebuild (list); + nmt_edit_connection_list_rebuild(list); } static void -free_connections (NmtEditConnectionList *list) +free_connections(NmtEditConnectionList *list) { - NmtEditConnectionListPrivate *priv = NMT_EDIT_CONNECTION_LIST_GET_PRIVATE (list); - NMConnection *conn; - GSList *iter; - - for (iter = priv->connections; iter; iter = iter->next) { - conn = iter->data; - - g_signal_handlers_disconnect_by_func (conn, G_CALLBACK (rebuild_on_connection_changed), list); - g_object_unref (conn); - } - g_slist_free (priv->connections); - priv->connections = NULL; + NmtEditConnectionListPrivate *priv = NMT_EDIT_CONNECTION_LIST_GET_PRIVATE(list); + NMConnection * conn; + GSList * iter; + + for (iter = priv->connections; iter; iter = iter->next) { + conn = iter->data; + + g_signal_handlers_disconnect_by_func(conn, G_CALLBACK(rebuild_on_connection_changed), list); + g_object_unref(conn); + } + g_slist_free(priv->connections); + priv->connections = NULL; } static void -nmt_edit_connection_list_rebuild (NmtEditConnectionList *list) +nmt_edit_connection_list_rebuild(NmtEditConnectionList *list) { - NmtEditConnectionListPrivate *priv = NMT_EDIT_CONNECTION_LIST_GET_PRIVATE (list); - const GPtrArray *connections; - GSList *iter; - gboolean did_header = FALSE, did_vpn = FALSE; - NMEditorConnectionTypeData **types; - NMConnection *conn, *selected_conn; - int i, row, selected_row; - - selected_row = nmt_newt_listbox_get_active (priv->listbox); - selected_conn = nmt_newt_listbox_get_active_key (priv->listbox); - - free_connections (list); - connections = nm_client_get_connections (nm_client); - for (i = 0; i < connections->len; i++) { - conn = connections->pdata[i]; - - if ( priv->connection_filter - && !priv->connection_filter (list, conn, priv->connection_filter_data)) - continue; - - g_signal_connect (conn, NM_CONNECTION_CHANGED, - G_CALLBACK (rebuild_on_connection_changed), list); - priv->connections = g_slist_prepend (priv->connections, g_object_ref (conn)); - } - priv->connections = g_slist_sort (priv->connections, sort_by_timestamp); - g_object_notify (G_OBJECT (list), "connections"); - g_object_notify (G_OBJECT (list), "num-connections"); - - nmt_newt_component_set_sensitive (NMT_NEWT_COMPONENT (priv->edit), - priv->connections != NULL); - nmt_newt_component_set_sensitive (NMT_NEWT_COMPONENT (priv->delete), - priv->connections != NULL); - - nmt_newt_listbox_clear (priv->listbox); - - if (!priv->grouped) { - /* Just add the connections in order */ - for (iter = priv->connections, row = 0; iter; iter = iter->next, row++) { - conn = iter->data; - nmt_newt_listbox_append (priv->listbox, nm_connection_get_id (conn), conn); - if (conn == selected_conn) - selected_row = row; - } - if (selected_row >= row) - selected_row = row - 1; - nmt_newt_listbox_set_active (priv->listbox, selected_row); - - return; - } - - types = nm_editor_utils_get_connection_type_list (); - for (i = row = 0; types[i]; i++) { - if (types[i]->setting_type == NM_TYPE_SETTING_VPN) { - if (did_vpn) - continue; - did_vpn = TRUE; - } - - did_header = FALSE; - - for (iter = priv->connections; iter; iter = iter->next) { - NMSetting *setting; - char *indented; - - conn = iter->data; - setting = nm_connection_get_setting (conn, types[i]->setting_type); - if (!setting) - continue; - if (!nm_connection_is_type (conn, nm_setting_get_name (setting))) - continue; - - if (!did_header) { - nmt_newt_listbox_append (priv->listbox, types[i]->name, NULL); - if (row == selected_row) - selected_row++; - row++; - did_header = TRUE; - } - - indented = g_strdup_printf (" %s", nm_connection_get_id (conn)); - nmt_newt_listbox_append (priv->listbox, indented, conn); - g_free (indented); - - if (conn == selected_conn) - selected_row = row; - row++; - } - } - - if (selected_row >= row) - selected_row = row - 1; - nmt_newt_listbox_set_active (priv->listbox, selected_row); + NmtEditConnectionListPrivate *priv = NMT_EDIT_CONNECTION_LIST_GET_PRIVATE(list); + const GPtrArray * connections; + GSList * iter; + gboolean did_header = FALSE, did_vpn = FALSE; + NMEditorConnectionTypeData ** types; + NMConnection * conn, *selected_conn; + int i, row, selected_row; + + selected_row = nmt_newt_listbox_get_active(priv->listbox); + selected_conn = nmt_newt_listbox_get_active_key(priv->listbox); + + free_connections(list); + connections = nm_client_get_connections(nm_client); + for (i = 0; i < connections->len; i++) { + conn = connections->pdata[i]; + + if (priv->connection_filter + && !priv->connection_filter(list, conn, priv->connection_filter_data)) + continue; + + g_signal_connect(conn, + NM_CONNECTION_CHANGED, + G_CALLBACK(rebuild_on_connection_changed), + list); + priv->connections = g_slist_prepend(priv->connections, g_object_ref(conn)); + } + priv->connections = g_slist_sort(priv->connections, sort_by_timestamp); + g_object_notify(G_OBJECT(list), "connections"); + g_object_notify(G_OBJECT(list), "num-connections"); + + nmt_newt_component_set_sensitive(NMT_NEWT_COMPONENT(priv->edit), priv->connections != NULL); + nmt_newt_component_set_sensitive(NMT_NEWT_COMPONENT(priv->delete), priv->connections != NULL); + + nmt_newt_listbox_clear(priv->listbox); + + if (!priv->grouped) { + /* Just add the connections in order */ + for (iter = priv->connections, row = 0; iter; iter = iter->next, row++) { + conn = iter->data; + nmt_newt_listbox_append(priv->listbox, nm_connection_get_id(conn), conn); + if (conn == selected_conn) + selected_row = row; + } + if (selected_row >= row) + selected_row = row - 1; + nmt_newt_listbox_set_active(priv->listbox, selected_row); + + return; + } + + types = nm_editor_utils_get_connection_type_list(); + for (i = row = 0; types[i]; i++) { + if (types[i]->setting_type == NM_TYPE_SETTING_VPN) { + if (did_vpn) + continue; + did_vpn = TRUE; + } + + did_header = FALSE; + + for (iter = priv->connections; iter; iter = iter->next) { + NMSetting *setting; + char * indented; + + conn = iter->data; + setting = nm_connection_get_setting(conn, types[i]->setting_type); + if (!setting) + continue; + if (!nm_connection_is_type(conn, nm_setting_get_name(setting))) + continue; + + if (!did_header) { + nmt_newt_listbox_append(priv->listbox, types[i]->name, NULL); + if (row == selected_row) + selected_row++; + row++; + did_header = TRUE; + } + + indented = g_strdup_printf(" %s", nm_connection_get_id(conn)); + nmt_newt_listbox_append(priv->listbox, indented, conn); + g_free(indented); + + if (conn == selected_conn) + selected_row = row; + row++; + } + } + + if (selected_row >= row) + selected_row = row - 1; + nmt_newt_listbox_set_active(priv->listbox, selected_row); } static void -rebuild_on_connections_changed (GObject *object, - GParamSpec *pspec, - gpointer list) +rebuild_on_connections_changed(GObject *object, GParamSpec *pspec, gpointer list) { - nmt_edit_connection_list_rebuild (list); + nmt_edit_connection_list_rebuild(list); } static void -nmt_edit_connection_list_constructed (GObject *object) +nmt_edit_connection_list_constructed(GObject *object) { - NmtEditConnectionList *list = NMT_EDIT_CONNECTION_LIST (object); - NmtEditConnectionListPrivate *priv = NMT_EDIT_CONNECTION_LIST_GET_PRIVATE (list); + NmtEditConnectionList * list = NMT_EDIT_CONNECTION_LIST(object); + NmtEditConnectionListPrivate *priv = NMT_EDIT_CONNECTION_LIST_GET_PRIVATE(list); - if (priv->extra) - nmt_newt_button_box_add_widget_end (priv->buttons, priv->extra); + if (priv->extra) + nmt_newt_button_box_add_widget_end(priv->buttons, priv->extra); - g_signal_connect (nm_client, "notify::" NM_CLIENT_CONNECTIONS, - G_CALLBACK (rebuild_on_connections_changed), list); + g_signal_connect(nm_client, + "notify::" NM_CLIENT_CONNECTIONS, + G_CALLBACK(rebuild_on_connections_changed), + list); - nmt_edit_connection_list_rebuild (list); + nmt_edit_connection_list_rebuild(list); - G_OBJECT_CLASS (nmt_edit_connection_list_parent_class)->constructed (object); + G_OBJECT_CLASS(nmt_edit_connection_list_parent_class)->constructed(object); } static void -add_clicked (NmtNewtButton *button, gpointer list) +add_clicked(NmtNewtButton *button, gpointer list) { - g_signal_emit (list, signals[ADD_CONNECTION], 0); + g_signal_emit(list, signals[ADD_CONNECTION], 0); } static void -edit_clicked (NmtNewtButton *button, gpointer list) +edit_clicked(NmtNewtButton *button, gpointer list) { - NmtEditConnectionListPrivate *priv = NMT_EDIT_CONNECTION_LIST_GET_PRIVATE (list); - NMConnection *connection; + NmtEditConnectionListPrivate *priv = NMT_EDIT_CONNECTION_LIST_GET_PRIVATE(list); + NMConnection * connection; - connection = nmt_newt_listbox_get_active_key (priv->listbox); - g_return_if_fail (connection != NULL); + connection = nmt_newt_listbox_get_active_key(priv->listbox); + g_return_if_fail(connection != NULL); - g_signal_emit (list, signals[EDIT_CONNECTION], 0, connection); + g_signal_emit(list, signals[EDIT_CONNECTION], 0, connection); } static void -delete_clicked (NmtNewtButton *button, gpointer list) +delete_clicked(NmtNewtButton *button, gpointer list) { - NmtEditConnectionListPrivate *priv = NMT_EDIT_CONNECTION_LIST_GET_PRIVATE (list); - NMRemoteConnection *connection; + NmtEditConnectionListPrivate *priv = NMT_EDIT_CONNECTION_LIST_GET_PRIVATE(list); + NMRemoteConnection * connection; - connection = nmt_newt_listbox_get_active_key (priv->listbox); - g_return_if_fail (connection != NULL); + connection = nmt_newt_listbox_get_active_key(priv->listbox); + g_return_if_fail(connection != NULL); - g_signal_emit (list, signals[REMOVE_CONNECTION], 0, connection); + g_signal_emit(list, signals[REMOVE_CONNECTION], 0, connection); } static void -listbox_activated (NmtNewtWidget *listbox, gpointer list) +listbox_activated(NmtNewtWidget *listbox, gpointer list) { - NmtEditConnectionListPrivate *priv = NMT_EDIT_CONNECTION_LIST_GET_PRIVATE (list); + NmtEditConnectionListPrivate *priv = NMT_EDIT_CONNECTION_LIST_GET_PRIVATE(list); - edit_clicked (NMT_NEWT_BUTTON (priv->edit), list); + edit_clicked(NMT_NEWT_BUTTON(priv->edit), list); } static void -connection_saved (GObject *conn, - GAsyncResult *result, - gpointer user_data) +connection_saved(GObject *conn, GAsyncResult *result, gpointer user_data) { - nm_remote_connection_save_finish (NM_REMOTE_CONNECTION (conn), result, NULL); + nm_remote_connection_save_finish(NM_REMOTE_CONNECTION(conn), result, NULL); } void -nmt_edit_connection_list_recommit (NmtEditConnectionList *list) +nmt_edit_connection_list_recommit(NmtEditConnectionList *list) { - NmtEditConnectionListPrivate *priv = NMT_EDIT_CONNECTION_LIST_GET_PRIVATE (list); - NMConnection *conn; - GSList *iter; - - for (iter = priv->connections; iter; iter = iter->next) { - conn = iter->data; - - if ( NM_IS_REMOTE_CONNECTION (conn) - && (nm_remote_connection_get_unsaved (NM_REMOTE_CONNECTION (conn)) == FALSE)) { - nm_remote_connection_save_async (NM_REMOTE_CONNECTION (conn), - NULL, connection_saved, NULL); - } - } + NmtEditConnectionListPrivate *priv = NMT_EDIT_CONNECTION_LIST_GET_PRIVATE(list); + NMConnection * conn; + GSList * iter; + + for (iter = priv->connections; iter; iter = iter->next) { + conn = iter->data; + + if (NM_IS_REMOTE_CONNECTION(conn) + && (nm_remote_connection_get_unsaved(NM_REMOTE_CONNECTION(conn)) == FALSE)) { + nm_remote_connection_save_async(NM_REMOTE_CONNECTION(conn), + NULL, + connection_saved, + NULL); + } + } } static void -nmt_edit_connection_list_finalize (GObject *object) +nmt_edit_connection_list_finalize(GObject *object) { - NmtEditConnectionListPrivate *priv = NMT_EDIT_CONNECTION_LIST_GET_PRIVATE (object); + NmtEditConnectionListPrivate *priv = NMT_EDIT_CONNECTION_LIST_GET_PRIVATE(object); - free_connections (NMT_EDIT_CONNECTION_LIST (object)); - g_clear_object (&priv->extra); + free_connections(NMT_EDIT_CONNECTION_LIST(object)); + g_clear_object(&priv->extra); - G_OBJECT_CLASS (nmt_edit_connection_list_parent_class)->finalize (object); + G_OBJECT_CLASS(nmt_edit_connection_list_parent_class)->finalize(object); } static void -nmt_edit_connection_list_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) +nmt_edit_connection_list_set_property(GObject * object, + guint prop_id, + const GValue *value, + GParamSpec * pspec) { - NmtEditConnectionListPrivate *priv = NMT_EDIT_CONNECTION_LIST_GET_PRIVATE (object); - - switch (prop_id) { - case PROP_GROUPED: - priv->grouped = g_value_get_boolean (value); - break; - case PROP_CONNECTION_FILTER: - priv->connection_filter = g_value_get_pointer (value); - break; - case PROP_CONNECTION_FILTER_DATA: - priv->connection_filter_data = g_value_get_pointer (value); - break; - case PROP_EXTRA_WIDGET: - priv->extra = g_value_get_object (value); - if (priv->extra) - g_object_ref_sink (priv->extra); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtEditConnectionListPrivate *priv = NMT_EDIT_CONNECTION_LIST_GET_PRIVATE(object); + + switch (prop_id) { + case PROP_GROUPED: + priv->grouped = g_value_get_boolean(value); + break; + case PROP_CONNECTION_FILTER: + priv->connection_filter = g_value_get_pointer(value); + break; + case PROP_CONNECTION_FILTER_DATA: + priv->connection_filter_data = g_value_get_pointer(value); + break; + case PROP_EXTRA_WIDGET: + priv->extra = g_value_get_object(value); + if (priv->extra) + g_object_ref_sink(priv->extra); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_edit_connection_list_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) +nmt_edit_connection_list_get_property(GObject * object, + guint prop_id, + GValue * value, + GParamSpec *pspec) { - NmtEditConnectionListPrivate *priv = NMT_EDIT_CONNECTION_LIST_GET_PRIVATE (object); - GPtrArray *connections; - GSList *iter; - - switch (prop_id) { - case PROP_GROUPED: - g_value_set_boolean (value, priv->grouped); - break; - case PROP_CONNECTION_FILTER: - g_value_set_pointer (value, priv->connection_filter); - break; - case PROP_CONNECTION_FILTER_DATA: - g_value_set_pointer (value, priv->connection_filter_data); - break; - case PROP_EXTRA_WIDGET: - g_value_set_object (value, priv->extra); - break; - case PROP_CONNECTIONS: - connections = g_ptr_array_new_with_free_func (g_object_unref); - for (iter = priv->connections; iter; iter = iter->next) - g_ptr_array_add (connections, g_object_ref (iter->data)); - g_value_take_boxed (value, connections); - break; - case PROP_NUM_CONNECTIONS: - g_value_set_int (value, g_slist_length (priv->connections)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtEditConnectionListPrivate *priv = NMT_EDIT_CONNECTION_LIST_GET_PRIVATE(object); + GPtrArray * connections; + GSList * iter; + + switch (prop_id) { + case PROP_GROUPED: + g_value_set_boolean(value, priv->grouped); + break; + case PROP_CONNECTION_FILTER: + g_value_set_pointer(value, priv->connection_filter); + break; + case PROP_CONNECTION_FILTER_DATA: + g_value_set_pointer(value, priv->connection_filter_data); + break; + case PROP_EXTRA_WIDGET: + g_value_set_object(value, priv->extra); + break; + case PROP_CONNECTIONS: + connections = g_ptr_array_new_with_free_func(g_object_unref); + for (iter = priv->connections; iter; iter = iter->next) + g_ptr_array_add(connections, g_object_ref(iter->data)); + g_value_take_boxed(value, connections); + break; + case PROP_NUM_CONNECTIONS: + g_value_set_int(value, g_slist_length(priv->connections)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_edit_connection_list_class_init (NmtEditConnectionListClass *list_class) +nmt_edit_connection_list_class_init(NmtEditConnectionListClass *list_class) { - GObjectClass *object_class = G_OBJECT_CLASS (list_class); + GObjectClass *object_class = G_OBJECT_CLASS(list_class); - g_type_class_add_private (list_class, sizeof (NmtEditConnectionListPrivate)); + g_type_class_add_private(list_class, sizeof(NmtEditConnectionListPrivate)); - /* virtual methods */ - object_class->constructed = nmt_edit_connection_list_constructed; - object_class->set_property = nmt_edit_connection_list_set_property; - object_class->get_property = nmt_edit_connection_list_get_property; - object_class->finalize = nmt_edit_connection_list_finalize; + /* virtual methods */ + object_class->constructed = nmt_edit_connection_list_constructed; + object_class->set_property = nmt_edit_connection_list_set_property; + object_class->get_property = nmt_edit_connection_list_get_property; + object_class->finalize = nmt_edit_connection_list_finalize; - /* signals */ + /* signals */ - /** + /** * NmtEditConnectionList::add-connection: * @list: the #NmtEditConnectionList * * Emitted when the user clicks the list's "Add" button. */ - signals[ADD_CONNECTION] = - g_signal_new ("add-connection", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NmtEditConnectionListClass, add_connection), - NULL, NULL, NULL, - G_TYPE_NONE, 0); - - /** + signals[ADD_CONNECTION] = + g_signal_new("add-connection", + G_OBJECT_CLASS_TYPE(object_class), + G_SIGNAL_RUN_FIRST, + G_STRUCT_OFFSET(NmtEditConnectionListClass, add_connection), + NULL, + NULL, + NULL, + G_TYPE_NONE, + 0); + + /** * NmtEditConnectionList::edit-connection: * @list: the #NmtEditConnectionList * @connection: the connection to edit @@ -447,49 +452,56 @@ nmt_edit_connection_list_class_init (NmtEditConnectionListClass *list_class) * Emitted when the user clicks the list's "Edit" button, or * hits "Return" on the listbox. */ - signals[EDIT_CONNECTION] = - g_signal_new ("edit-connection", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NmtEditConnectionListClass, edit_connection), - NULL, NULL, NULL, - G_TYPE_NONE, 1, - NM_TYPE_CONNECTION); - - /** + signals[EDIT_CONNECTION] = + g_signal_new("edit-connection", + G_OBJECT_CLASS_TYPE(object_class), + G_SIGNAL_RUN_FIRST, + G_STRUCT_OFFSET(NmtEditConnectionListClass, edit_connection), + NULL, + NULL, + NULL, + G_TYPE_NONE, + 1, + NM_TYPE_CONNECTION); + + /** * NmtEditConnectionList::remove-connection: * @list: the #NmtEditConnectionList * @connection: the connection to remove * * Emitted when the user clicks the list's "Delete" button. */ - signals[REMOVE_CONNECTION] = - g_signal_new ("remove-connection", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NmtEditConnectionListClass, remove_connection), - NULL, NULL, NULL, - G_TYPE_NONE, 1, - NM_TYPE_CONNECTION); - - /* properties */ - - /** + signals[REMOVE_CONNECTION] = + g_signal_new("remove-connection", + G_OBJECT_CLASS_TYPE(object_class), + G_SIGNAL_RUN_FIRST, + G_STRUCT_OFFSET(NmtEditConnectionListClass, remove_connection), + NULL, + NULL, + NULL, + G_TYPE_NONE, + 1, + NM_TYPE_CONNECTION); + + /* properties */ + + /** * NmtEditConnectionList:grouped: * * If %TRUE, connections should be grouped by type, with headers * indicating the types (as in the main connection list). If %FALSE, * they will not be grouped (as in slave connection lists). */ - g_object_class_install_property - (object_class, PROP_GROUPED, - g_param_spec_boolean ("grouped", "", "", - TRUE, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); - - /** + g_object_class_install_property( + object_class, + PROP_GROUPED, + g_param_spec_boolean("grouped", + "", + "", + TRUE, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); + + /** * NmtEditConnectionListFilter: * @list: the #NmtEditConnectionList * @connection: an #NMConnection @@ -499,67 +511,74 @@ nmt_edit_connection_list_class_init (NmtEditConnectionListClass *list_class) * * Returns: %TRUE or %FALSE */ - /** + /** * NmtEditConnectionList:connection-filter: * * A callback function for filtering which connections appear in * the list. */ - g_object_class_install_property - (object_class, PROP_CONNECTION_FILTER, - g_param_spec_pointer ("connection-filter", "", "", - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); - /** + g_object_class_install_property( + object_class, + PROP_CONNECTION_FILTER, + g_param_spec_pointer("connection-filter", + "", + "", + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); + /** * NmtEditConnectionList:connection-filter-data: * * Data for the #NmtEditConnectionList:connection-filter. */ - g_object_class_install_property - (object_class, PROP_CONNECTION_FILTER_DATA, - g_param_spec_pointer ("connection-filter-data", "", "", - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); - - /** + g_object_class_install_property( + object_class, + PROP_CONNECTION_FILTER_DATA, + g_param_spec_pointer("connection-filter-data", + "", + "", + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); + + /** * NmtEditConnectionList:extra-widget: * * An extra button widget to display at the bottom of the button * box. */ - g_object_class_install_property - (object_class, PROP_EXTRA_WIDGET, - g_param_spec_object ("extra-widget", "", "", - NMT_TYPE_NEWT_WIDGET, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); - - /** + g_object_class_install_property( + object_class, + PROP_EXTRA_WIDGET, + g_param_spec_object("extra-widget", + "", + "", + NMT_TYPE_NEWT_WIDGET, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); + + /** * NmtEditConnectionList:connections: * * The list of connections in the widget. * * Element-Type: #NMConnection */ - g_object_class_install_property - (object_class, PROP_CONNECTIONS, - g_param_spec_boxed ("connections", "", "", - G_TYPE_PTR_ARRAY, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - - /** + g_object_class_install_property(object_class, + PROP_CONNECTIONS, + g_param_spec_boxed("connections", + "", + "", + G_TYPE_PTR_ARRAY, + G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); + + /** * NmtEditConnectionList:num-connections: * * The number of connections in the widget. */ - g_object_class_install_property - (object_class, PROP_NUM_CONNECTIONS, - g_param_spec_int ("num-connections", "", "", - 0, G_MAXINT, 0, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + g_object_class_install_property(object_class, + PROP_NUM_CONNECTIONS, + g_param_spec_int("num-connections", + "", + "", + 0, + G_MAXINT, + 0, + G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); } diff --git a/clients/tui/nmt-edit-connection-list.h b/clients/tui/nmt-edit-connection-list.h index 7d5e5b8948..d498d778d8 100644 --- a/clients/tui/nmt-edit-connection-list.h +++ b/clients/tui/nmt-edit-connection-list.h @@ -8,35 +8,38 @@ #include "nmt-newt.h" -#define NMT_TYPE_EDIT_CONNECTION_LIST (nmt_edit_connection_list_get_type ()) -#define NMT_EDIT_CONNECTION_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NMT_TYPE_EDIT_CONNECTION_LIST, NmtEditConnectionList)) -#define NMT_EDIT_CONNECTION_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NMT_TYPE_EDIT_CONNECTION_LIST, NmtEditConnectionListClass)) -#define NMT_IS_EDIT_CONNECTION_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NMT_TYPE_EDIT_CONNECTION_LIST)) -#define NMT_IS_EDIT_CONNECTION_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NMT_TYPE_EDIT_CONNECTION_LIST)) -#define NMT_EDIT_CONNECTION_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NMT_TYPE_EDIT_CONNECTION_LIST, NmtEditConnectionListClass)) +#define NMT_TYPE_EDIT_CONNECTION_LIST (nmt_edit_connection_list_get_type()) +#define NMT_EDIT_CONNECTION_LIST(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), NMT_TYPE_EDIT_CONNECTION_LIST, NmtEditConnectionList)) +#define NMT_EDIT_CONNECTION_LIST_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), NMT_TYPE_EDIT_CONNECTION_LIST, NmtEditConnectionListClass)) +#define NMT_IS_EDIT_CONNECTION_LIST(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj), NMT_TYPE_EDIT_CONNECTION_LIST)) +#define NMT_IS_EDIT_CONNECTION_LIST_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass), NMT_TYPE_EDIT_CONNECTION_LIST)) +#define NMT_EDIT_CONNECTION_LIST_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), NMT_TYPE_EDIT_CONNECTION_LIST, NmtEditConnectionListClass)) typedef struct { - NmtNewtGrid parent; + NmtNewtGrid parent; } NmtEditConnectionList; typedef struct { - NmtNewtGridClass parent; - - /* signals */ - void (*add_connection) (NmtEditConnectionList *list); - void (*edit_connection) (NmtEditConnectionList *list, - NMConnection *connection); - void (*remove_connection) (NmtEditConnectionList *list, - NMRemoteConnection *connection); + NmtNewtGridClass parent; + + /* signals */ + void (*add_connection)(NmtEditConnectionList *list); + void (*edit_connection)(NmtEditConnectionList *list, NMConnection *connection); + void (*remove_connection)(NmtEditConnectionList *list, NMRemoteConnection *connection); } NmtEditConnectionListClass; -GType nmt_edit_connection_list_get_type (void); +GType nmt_edit_connection_list_get_type(void); -typedef gboolean (*NmtEditConnectionListFilter) (NmtEditConnectionList *list, - NMConnection *connection, - gpointer user_data); +typedef gboolean (*NmtEditConnectionListFilter)(NmtEditConnectionList *list, + NMConnection * connection, + gpointer user_data); -void nmt_edit_connection_list_recommit (NmtEditConnectionList *list); +void nmt_edit_connection_list_recommit(NmtEditConnectionList *list); #endif /* NMT_EDIT_CONNECTION_LIST_H */ diff --git a/clients/tui/nmt-editor-grid.c b/clients/tui/nmt-editor-grid.c index ac00c82b1e..65fcdfa84a 100644 --- a/clients/tui/nmt-editor-grid.c +++ b/clients/tui/nmt-editor-grid.c @@ -28,25 +28,26 @@ #include "nmt-editor-grid.h" -G_DEFINE_TYPE (NmtEditorGrid, nmt_editor_grid, NMT_TYPE_NEWT_CONTAINER) +G_DEFINE_TYPE(NmtEditorGrid, nmt_editor_grid, NMT_TYPE_NEWT_CONTAINER) -#define NMT_EDITOR_GRID_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NMT_TYPE_EDITOR_GRID, NmtEditorGridPrivate)) +#define NMT_EDITOR_GRID_GET_PRIVATE(o) \ + (G_TYPE_INSTANCE_GET_PRIVATE((o), NMT_TYPE_EDITOR_GRID, NmtEditorGridPrivate)) typedef struct { - GArray *rows; - int *row_heights; - int indent; + GArray *rows; + int * row_heights; + int indent; } NmtEditorGridPrivate; typedef struct { - NmtNewtWidget *label; - NmtNewtWidget *widget; - NmtNewtWidget *extra; - NmtEditorGridRowFlags flags; + NmtNewtWidget * label; + NmtNewtWidget * widget; + NmtNewtWidget * extra; + NmtEditorGridRowFlags flags; } NmtEditorGridRow; typedef struct { - int col_widths[3]; + int col_widths[3]; } NmtEditorGridFormState; /** @@ -57,29 +58,28 @@ typedef struct { * Returns: a new #NmtEditorGrid */ NmtNewtWidget * -nmt_editor_grid_new (void) +nmt_editor_grid_new(void) { - return g_object_new (NMT_TYPE_EDITOR_GRID, - NULL); + return g_object_new(NMT_TYPE_EDITOR_GRID, NULL); } static void -nmt_editor_grid_init (NmtEditorGrid *grid) +nmt_editor_grid_init(NmtEditorGrid *grid) { - NmtEditorGridPrivate *priv = NMT_EDITOR_GRID_GET_PRIVATE (grid); + NmtEditorGridPrivate *priv = NMT_EDITOR_GRID_GET_PRIVATE(grid); - priv->rows = g_array_new (FALSE, TRUE, sizeof (NmtEditorGridRow)); + priv->rows = g_array_new(FALSE, TRUE, sizeof(NmtEditorGridRow)); } static void -nmt_editor_grid_finalize (GObject *object) +nmt_editor_grid_finalize(GObject *object) { - NmtEditorGridPrivate *priv = NMT_EDITOR_GRID_GET_PRIVATE (object); + NmtEditorGridPrivate *priv = NMT_EDITOR_GRID_GET_PRIVATE(object); - g_array_unref (priv->rows); - nm_clear_g_free (&priv->row_heights); + g_array_unref(priv->rows); + nm_clear_g_free(&priv->row_heights); - G_OBJECT_CLASS (nmt_editor_grid_parent_class)->finalize (object); + G_OBJECT_CLASS(nmt_editor_grid_parent_class)->finalize(object); } /** @@ -101,60 +101,61 @@ nmt_editor_grid_finalize (GObject *object) * See also nmt_editor_grid_set_row_flags(). */ void -nmt_editor_grid_append (NmtEditorGrid *grid, - const char *label, - NmtNewtWidget *widget, - NmtNewtWidget *extra) +nmt_editor_grid_append(NmtEditorGrid *grid, + const char * label, + NmtNewtWidget *widget, + NmtNewtWidget *extra) { - NmtEditorGridPrivate *priv = NMT_EDITOR_GRID_GET_PRIVATE (grid); - NmtNewtContainerClass *parent_class = NMT_NEWT_CONTAINER_CLASS (nmt_editor_grid_parent_class); - NmtNewtContainer *container = NMT_NEWT_CONTAINER (grid); - NmtEditorGridRow row; - - g_return_if_fail (label != NULL || widget != NULL); - - memset (&row, 0, sizeof (row)); - - if (label && !widget) { - widget = nmt_newt_label_new (label); - label = NULL; - } - - if (label) { - row.label = nmt_newt_label_new (label); - parent_class->add (container, row.label); - } - - row.widget = widget; - parent_class->add (container, widget); - if (row.label) { - g_object_bind_property (row.widget, "valid", - row.label, "highlight", - G_BINDING_INVERT_BOOLEAN | G_BINDING_SYNC_CREATE); - } - - if (extra) { - row.extra = extra; - parent_class->add (container, extra); - } - - g_array_append_val (priv->rows, row); + NmtEditorGridPrivate * priv = NMT_EDITOR_GRID_GET_PRIVATE(grid); + NmtNewtContainerClass *parent_class = NMT_NEWT_CONTAINER_CLASS(nmt_editor_grid_parent_class); + NmtNewtContainer * container = NMT_NEWT_CONTAINER(grid); + NmtEditorGridRow row; + + g_return_if_fail(label != NULL || widget != NULL); + + memset(&row, 0, sizeof(row)); + + if (label && !widget) { + widget = nmt_newt_label_new(label); + label = NULL; + } + + if (label) { + row.label = nmt_newt_label_new(label); + parent_class->add(container, row.label); + } + + row.widget = widget; + parent_class->add(container, widget); + if (row.label) { + g_object_bind_property(row.widget, + "valid", + row.label, + "highlight", + G_BINDING_INVERT_BOOLEAN | G_BINDING_SYNC_CREATE); + } + + if (extra) { + row.extra = extra; + parent_class->add(container, extra); + } + + g_array_append_val(priv->rows, row); } static int -nmt_editor_grid_find_widget (NmtEditorGrid *grid, - NmtNewtWidget *widget) +nmt_editor_grid_find_widget(NmtEditorGrid *grid, NmtNewtWidget *widget) { - NmtEditorGridPrivate *priv = NMT_EDITOR_GRID_GET_PRIVATE (grid); - NmtEditorGridRow *rows = (NmtEditorGridRow *) priv->rows->data; - int i; + NmtEditorGridPrivate *priv = NMT_EDITOR_GRID_GET_PRIVATE(grid); + NmtEditorGridRow * rows = (NmtEditorGridRow *) priv->rows->data; + int i; - for (i = 0; i < priv->rows->len; i++) { - if (rows[i].label == widget || rows[i].widget == widget || rows[i].extra == widget) - return i; - } + for (i = 0; i < priv->rows->len; i++) { + if (rows[i].label == widget || rows[i].widget == widget || rows[i].extra == widget) + return i; + } - return -1; + return -1; } /** @@ -176,272 +177,265 @@ nmt_editor_grid_find_widget (NmtEditorGrid *grid, * Sets flags to adjust the layout of @widget's row in @grid. */ void -nmt_editor_grid_set_row_flags (NmtEditorGrid *grid, - NmtNewtWidget *widget, - NmtEditorGridRowFlags flags) +nmt_editor_grid_set_row_flags(NmtEditorGrid * grid, + NmtNewtWidget * widget, + NmtEditorGridRowFlags flags) { - NmtEditorGridPrivate *priv = NMT_EDITOR_GRID_GET_PRIVATE (grid); - NmtEditorGridRow *rows = (NmtEditorGridRow *) priv->rows->data; - int i; + NmtEditorGridPrivate *priv = NMT_EDITOR_GRID_GET_PRIVATE(grid); + NmtEditorGridRow * rows = (NmtEditorGridRow *) priv->rows->data; + int i; - i = nmt_editor_grid_find_widget (grid, widget); - if (i != -1) - rows[i].flags = flags; + i = nmt_editor_grid_find_widget(grid, widget); + if (i != -1) + rows[i].flags = flags; } static void -nmt_editor_grid_remove (NmtNewtContainer *container, - NmtNewtWidget *widget) +nmt_editor_grid_remove(NmtNewtContainer *container, NmtNewtWidget *widget) { - NmtEditorGrid *grid = NMT_EDITOR_GRID (container); - NmtEditorGridPrivate *priv = NMT_EDITOR_GRID_GET_PRIVATE (grid); - NmtNewtContainerClass *parent_class = NMT_NEWT_CONTAINER_CLASS (nmt_editor_grid_parent_class); - NmtEditorGridRow *rows = (NmtEditorGridRow *) priv->rows->data; - int i; - - i = nmt_editor_grid_find_widget (grid, widget); - if (i != -1) { - if (rows[i].label) - parent_class->remove (container, rows[i].label); - parent_class->remove (container, rows[i].widget); - if (rows[i].extra) - parent_class->remove (container, rows[i].extra); - - g_array_remove_index (priv->rows, i); - return; - } - - // FIXME: shouldn't happen - parent_class->remove (container, widget); + NmtEditorGrid * grid = NMT_EDITOR_GRID(container); + NmtEditorGridPrivate * priv = NMT_EDITOR_GRID_GET_PRIVATE(grid); + NmtNewtContainerClass *parent_class = NMT_NEWT_CONTAINER_CLASS(nmt_editor_grid_parent_class); + NmtEditorGridRow * rows = (NmtEditorGridRow *) priv->rows->data; + int i; + + i = nmt_editor_grid_find_widget(grid, widget); + if (i != -1) { + if (rows[i].label) + parent_class->remove(container, rows[i].label); + parent_class->remove(container, rows[i].widget); + if (rows[i].extra) + parent_class->remove(container, rows[i].extra); + + g_array_remove_index(priv->rows, i); + return; + } + + // FIXME: shouldn't happen + parent_class->remove(container, widget); } static newtComponent * -nmt_editor_grid_get_components (NmtNewtWidget *widget) +nmt_editor_grid_get_components(NmtNewtWidget *widget) { - NmtEditorGridPrivate *priv = NMT_EDITOR_GRID_GET_PRIVATE (widget); - NmtEditorGridRow *rows = (NmtEditorGridRow *) priv->rows->data; - newtComponent *child_cos; - GPtrArray *cos; - int i, c; - - cos = g_ptr_array_new (); - - for (i = 0; i < priv->rows->len; i++) { - if (!nmt_newt_widget_get_visible (rows[i].widget)) - continue; - - if (rows[i].label) { - child_cos = nmt_newt_widget_get_components (rows[i].label); - g_assert (child_cos[0] && !child_cos[1]); - g_ptr_array_add (cos, child_cos[0]); - g_free (child_cos); - } - - child_cos = nmt_newt_widget_get_components (rows[i].widget); - for (c = 0; child_cos[c]; c++) - g_ptr_array_add (cos, child_cos[c]); - g_free (child_cos); - - if (rows[i].extra) { - child_cos = nmt_newt_widget_get_components (rows[i].extra); - for (c = 0; child_cos[c]; c++) - g_ptr_array_add (cos, child_cos[c]); - g_free (child_cos); - } - } - - g_ptr_array_add (cos, NULL); - return (newtComponent *) g_ptr_array_free (cos, FALSE); + NmtEditorGridPrivate *priv = NMT_EDITOR_GRID_GET_PRIVATE(widget); + NmtEditorGridRow * rows = (NmtEditorGridRow *) priv->rows->data; + newtComponent * child_cos; + GPtrArray * cos; + int i, c; + + cos = g_ptr_array_new(); + + for (i = 0; i < priv->rows->len; i++) { + if (!nmt_newt_widget_get_visible(rows[i].widget)) + continue; + + if (rows[i].label) { + child_cos = nmt_newt_widget_get_components(rows[i].label); + g_assert(child_cos[0] && !child_cos[1]); + g_ptr_array_add(cos, child_cos[0]); + g_free(child_cos); + } + + child_cos = nmt_newt_widget_get_components(rows[i].widget); + for (c = 0; child_cos[c]; c++) + g_ptr_array_add(cos, child_cos[c]); + g_free(child_cos); + + if (rows[i].extra) { + child_cos = nmt_newt_widget_get_components(rows[i].extra); + for (c = 0; child_cos[c]; c++) + g_ptr_array_add(cos, child_cos[c]); + g_free(child_cos); + } + } + + g_ptr_array_add(cos, NULL); + return (newtComponent *) g_ptr_array_free(cos, FALSE); } static NmtEditorGridFormState * -get_form_state (NmtNewtWidget *widget) +get_form_state(NmtNewtWidget *widget) { - NmtNewtForm *form = nmt_newt_widget_get_form (widget); - NmtEditorGridFormState *state; + NmtNewtForm * form = nmt_newt_widget_get_form(widget); + NmtEditorGridFormState *state; - if (!form) - return NULL; + if (!form) + return NULL; - state = g_object_get_data (G_OBJECT (form), "NmtEditorGridFormState"); - if (state) - return state; + state = g_object_get_data(G_OBJECT(form), "NmtEditorGridFormState"); + if (state) + return state; - state = g_new0 (NmtEditorGridFormState, 1); - g_object_set_data_full (G_OBJECT (form), "NmtEditorGridFormState", state, g_free); - return state; + state = g_new0(NmtEditorGridFormState, 1); + g_object_set_data_full(G_OBJECT(form), "NmtEditorGridFormState", state, g_free); + return state; } static void -nmt_editor_grid_realize (NmtNewtWidget *widget) +nmt_editor_grid_realize(NmtNewtWidget *widget) { - NmtEditorGridPrivate *priv = NMT_EDITOR_GRID_GET_PRIVATE (widget); - NmtNewtWidget *parent; - - NMT_NEWT_WIDGET_CLASS (nmt_editor_grid_parent_class)->realize (widget); - - /* This is a hack, but it's the simplest way to make it work... */ - priv->indent = 0; - - parent = nmt_newt_widget_get_parent (widget); - while (parent) { - if (NMT_IS_NEWT_SECTION (parent)) { - priv->indent = 2; - break; - } - parent = nmt_newt_widget_get_parent (parent); - } + NmtEditorGridPrivate *priv = NMT_EDITOR_GRID_GET_PRIVATE(widget); + NmtNewtWidget * parent; + + NMT_NEWT_WIDGET_CLASS(nmt_editor_grid_parent_class)->realize(widget); + + /* This is a hack, but it's the simplest way to make it work... */ + priv->indent = 0; + + parent = nmt_newt_widget_get_parent(widget); + while (parent) { + if (NMT_IS_NEWT_SECTION(parent)) { + priv->indent = 2; + break; + } + parent = nmt_newt_widget_get_parent(parent); + } } static void -nmt_editor_grid_unrealize (NmtNewtWidget *widget) +nmt_editor_grid_unrealize(NmtNewtWidget *widget) { - NmtEditorGridFormState *state = get_form_state (widget); + NmtEditorGridFormState *state = get_form_state(widget); - if (state) - memset (state->col_widths, 0, sizeof (state->col_widths)); + if (state) + memset(state->col_widths, 0, sizeof(state->col_widths)); - NMT_NEWT_WIDGET_CLASS (nmt_editor_grid_parent_class)->unrealize (widget); + NMT_NEWT_WIDGET_CLASS(nmt_editor_grid_parent_class)->unrealize(widget); } static void -nmt_editor_grid_size_request (NmtNewtWidget *widget, - int *width, - int *height) +nmt_editor_grid_size_request(NmtNewtWidget *widget, int *width, int *height) { - NmtEditorGridPrivate *priv = NMT_EDITOR_GRID_GET_PRIVATE (widget); - NmtEditorGridRow *rows = (NmtEditorGridRow *) priv->rows->data; - NmtEditorGridFormState *state = get_form_state (widget); - gboolean add_padding = FALSE; - int i; - - g_free (priv->row_heights); - priv->row_heights = g_new0 (int, priv->rows->len); - - *height = 0; - for (i = 0; i < priv->rows->len; i++) { - int lwidth, lheight, wwidth, wheight, ewidth, eheight; - - if (!nmt_newt_widget_get_visible (rows[i].widget)) - continue; - - if (rows[i].label) { - nmt_newt_widget_size_request (rows[i].label, &lwidth, &lheight); - lwidth += priv->indent; - state->col_widths[0] = MAX (state->col_widths[0], lwidth); - - nmt_newt_widget_size_request (rows[i].widget, &wwidth, &wheight); - state->col_widths[1] = MAX (state->col_widths[1], wwidth); - priv->row_heights[i] = wheight; - - add_padding = TRUE; - } else { - nmt_newt_widget_size_request (rows[i].widget, &wwidth, &wheight); - priv->row_heights[i] = wheight; - } - - if (rows[i].extra) { - nmt_newt_widget_size_request (rows[i].extra, &ewidth, &eheight); - state->col_widths[2] = MAX (state->col_widths[2], ewidth); - priv->row_heights[i] = MAX (priv->row_heights[i], eheight); - } - - *height += priv->row_heights[i]; - } - - *width = state->col_widths[0] + state->col_widths[1] + state->col_widths[2]; - if (add_padding) - *width += 2; + NmtEditorGridPrivate * priv = NMT_EDITOR_GRID_GET_PRIVATE(widget); + NmtEditorGridRow * rows = (NmtEditorGridRow *) priv->rows->data; + NmtEditorGridFormState *state = get_form_state(widget); + gboolean add_padding = FALSE; + int i; + + g_free(priv->row_heights); + priv->row_heights = g_new0(int, priv->rows->len); + + *height = 0; + for (i = 0; i < priv->rows->len; i++) { + int lwidth, lheight, wwidth, wheight, ewidth, eheight; + + if (!nmt_newt_widget_get_visible(rows[i].widget)) + continue; + + if (rows[i].label) { + nmt_newt_widget_size_request(rows[i].label, &lwidth, &lheight); + lwidth += priv->indent; + state->col_widths[0] = MAX(state->col_widths[0], lwidth); + + nmt_newt_widget_size_request(rows[i].widget, &wwidth, &wheight); + state->col_widths[1] = MAX(state->col_widths[1], wwidth); + priv->row_heights[i] = wheight; + + add_padding = TRUE; + } else { + nmt_newt_widget_size_request(rows[i].widget, &wwidth, &wheight); + priv->row_heights[i] = wheight; + } + + if (rows[i].extra) { + nmt_newt_widget_size_request(rows[i].extra, &ewidth, &eheight); + state->col_widths[2] = MAX(state->col_widths[2], ewidth); + priv->row_heights[i] = MAX(priv->row_heights[i], eheight); + } + + *height += priv->row_heights[i]; + } + + *width = state->col_widths[0] + state->col_widths[1] + state->col_widths[2]; + if (add_padding) + *width += 2; } static void -nmt_editor_grid_size_allocate (NmtNewtWidget *widget, - int x, - int y, - int width, - int height) +nmt_editor_grid_size_allocate(NmtNewtWidget *widget, int x, int y, int width, int height) { - NmtEditorGridPrivate *priv = NMT_EDITOR_GRID_GET_PRIVATE (widget); - NmtEditorGridRow *rows = (NmtEditorGridRow *) priv->rows->data; - NmtEditorGridFormState *state = get_form_state (widget); - int col0_width, col1_width, col2_width; - int i, row; - - col0_width = state->col_widths[0] - priv->indent; - col1_width = state->col_widths[1]; - col2_width = state->col_widths[2]; - - for (i = row = 0; i < priv->rows->len; i++) { - if (!nmt_newt_widget_get_visible (rows[i].widget)) - continue; - - if (rows[i].label) { - int lwidth, lheight, lx; - - if (rows[i].flags & NMT_EDITOR_GRID_ROW_LABEL_ALIGN_LEFT) - lx = x; - else { - nmt_newt_widget_size_request (rows[i].label, &lwidth, &lheight); - lx = x + col0_width - lwidth; - } - - nmt_newt_widget_size_allocate (rows[i].label, - lx, - y + row, - col0_width, - priv->row_heights[i]); - - nmt_newt_widget_size_allocate (rows[i].widget, - x + col0_width + 1, - y + row, - col1_width, - priv->row_heights[i]); - } else { - nmt_newt_widget_size_allocate (rows[i].widget, - x, - y + row, - col0_width + col1_width + 1, - priv->row_heights[i]); - } - - if (rows[i].extra) { - int wwidth, wheight, ex; - - if (rows[i].flags & NMT_EDITOR_GRID_ROW_EXTRA_ALIGN_RIGHT) - ex = x + col0_width + col1_width + 2; - else { - nmt_newt_widget_size_request (rows[i].widget, &wwidth, &wheight); - ex = x + col0_width + wwidth + 2; - } - - nmt_newt_widget_size_allocate (rows[i].extra, - ex, - y + row, - col2_width, - priv->row_heights[i]); - } - - row += priv->row_heights[i]; - } + NmtEditorGridPrivate * priv = NMT_EDITOR_GRID_GET_PRIVATE(widget); + NmtEditorGridRow * rows = (NmtEditorGridRow *) priv->rows->data; + NmtEditorGridFormState *state = get_form_state(widget); + int col0_width, col1_width, col2_width; + int i, row; + + col0_width = state->col_widths[0] - priv->indent; + col1_width = state->col_widths[1]; + col2_width = state->col_widths[2]; + + for (i = row = 0; i < priv->rows->len; i++) { + if (!nmt_newt_widget_get_visible(rows[i].widget)) + continue; + + if (rows[i].label) { + int lwidth, lheight, lx; + + if (rows[i].flags & NMT_EDITOR_GRID_ROW_LABEL_ALIGN_LEFT) + lx = x; + else { + nmt_newt_widget_size_request(rows[i].label, &lwidth, &lheight); + lx = x + col0_width - lwidth; + } + + nmt_newt_widget_size_allocate(rows[i].label, + lx, + y + row, + col0_width, + priv->row_heights[i]); + + nmt_newt_widget_size_allocate(rows[i].widget, + x + col0_width + 1, + y + row, + col1_width, + priv->row_heights[i]); + } else { + nmt_newt_widget_size_allocate(rows[i].widget, + x, + y + row, + col0_width + col1_width + 1, + priv->row_heights[i]); + } + + if (rows[i].extra) { + int wwidth, wheight, ex; + + if (rows[i].flags & NMT_EDITOR_GRID_ROW_EXTRA_ALIGN_RIGHT) + ex = x + col0_width + col1_width + 2; + else { + nmt_newt_widget_size_request(rows[i].widget, &wwidth, &wheight); + ex = x + col0_width + wwidth + 2; + } + + nmt_newt_widget_size_allocate(rows[i].extra, + ex, + y + row, + col2_width, + priv->row_heights[i]); + } + + row += priv->row_heights[i]; + } } static void -nmt_editor_grid_class_init (NmtEditorGridClass *grid_class) +nmt_editor_grid_class_init(NmtEditorGridClass *grid_class) { - GObjectClass *object_class = G_OBJECT_CLASS (grid_class); - NmtNewtWidgetClass *widget_class = NMT_NEWT_WIDGET_CLASS (grid_class); - NmtNewtContainerClass *container_class = NMT_NEWT_CONTAINER_CLASS (grid_class); + GObjectClass * object_class = G_OBJECT_CLASS(grid_class); + NmtNewtWidgetClass * widget_class = NMT_NEWT_WIDGET_CLASS(grid_class); + NmtNewtContainerClass *container_class = NMT_NEWT_CONTAINER_CLASS(grid_class); - g_type_class_add_private (grid_class, sizeof (NmtEditorGridPrivate)); + g_type_class_add_private(grid_class, sizeof(NmtEditorGridPrivate)); - /* virtual methods */ - object_class->finalize = nmt_editor_grid_finalize; + /* virtual methods */ + object_class->finalize = nmt_editor_grid_finalize; - widget_class->realize = nmt_editor_grid_realize; - widget_class->unrealize = nmt_editor_grid_unrealize; - widget_class->get_components = nmt_editor_grid_get_components; - widget_class->size_request = nmt_editor_grid_size_request; - widget_class->size_allocate = nmt_editor_grid_size_allocate; + widget_class->realize = nmt_editor_grid_realize; + widget_class->unrealize = nmt_editor_grid_unrealize; + widget_class->get_components = nmt_editor_grid_get_components; + widget_class->size_request = nmt_editor_grid_size_request; + widget_class->size_allocate = nmt_editor_grid_size_allocate; - container_class->remove = nmt_editor_grid_remove; + container_class->remove = nmt_editor_grid_remove; } diff --git a/clients/tui/nmt-editor-grid.h b/clients/tui/nmt-editor-grid.h index 949cacf9b8..ca55dec21d 100644 --- a/clients/tui/nmt-editor-grid.h +++ b/clients/tui/nmt-editor-grid.h @@ -8,38 +8,41 @@ #include "nmt-newt.h" -#define NMT_TYPE_EDITOR_GRID (nmt_editor_grid_get_type ()) -#define NMT_EDITOR_GRID(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NMT_TYPE_EDITOR_GRID, NmtEditorGrid)) -#define NMT_EDITOR_GRID_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NMT_TYPE_EDITOR_GRID, NmtEditorGridClass)) -#define NMT_IS_EDITOR_GRID(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NMT_TYPE_EDITOR_GRID)) -#define NMT_IS_EDITOR_GRID_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NMT_TYPE_EDITOR_GRID)) -#define NMT_EDITOR_GRID_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NMT_TYPE_EDITOR_GRID, NmtEditorGridClass)) +#define NMT_TYPE_EDITOR_GRID (nmt_editor_grid_get_type()) +#define NMT_EDITOR_GRID(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), NMT_TYPE_EDITOR_GRID, NmtEditorGrid)) +#define NMT_EDITOR_GRID_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), NMT_TYPE_EDITOR_GRID, NmtEditorGridClass)) +#define NMT_IS_EDITOR_GRID(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), NMT_TYPE_EDITOR_GRID)) +#define NMT_IS_EDITOR_GRID_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), NMT_TYPE_EDITOR_GRID)) +#define NMT_EDITOR_GRID_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), NMT_TYPE_EDITOR_GRID, NmtEditorGridClass)) typedef struct { - NmtNewtContainer parent; + NmtNewtContainer parent; } NmtEditorGrid; typedef struct { - NmtNewtContainerClass parent; + NmtNewtContainerClass parent; } NmtEditorGridClass; -GType nmt_editor_grid_get_type (void); +GType nmt_editor_grid_get_type(void); typedef enum { - NMT_EDITOR_GRID_ROW_LABEL_ALIGN_LEFT = (1 << 0), - NMT_EDITOR_GRID_ROW_EXTRA_ALIGN_RIGHT = (1 << 1) + NMT_EDITOR_GRID_ROW_LABEL_ALIGN_LEFT = (1 << 0), + NMT_EDITOR_GRID_ROW_EXTRA_ALIGN_RIGHT = (1 << 1) } NmtEditorGridRowFlags; -NmtNewtWidget *nmt_editor_grid_new (void); +NmtNewtWidget *nmt_editor_grid_new(void); -void nmt_editor_grid_append (NmtEditorGrid *grid, - const char *label, - NmtNewtWidget *widget, - NmtNewtWidget *extra); -void nmt_editor_grid_set_row_flags (NmtEditorGrid *grid, - NmtNewtWidget *widget, - NmtEditorGridRowFlags flags); +void nmt_editor_grid_append(NmtEditorGrid *grid, + const char * label, + NmtNewtWidget *widget, + NmtNewtWidget *extra); +void nmt_editor_grid_set_row_flags(NmtEditorGrid * grid, + NmtNewtWidget * widget, + NmtEditorGridRowFlags flags); #endif /* NMT_EDITOR_GRID_H */ diff --git a/clients/tui/nmt-editor-page-device.c b/clients/tui/nmt-editor-page-device.c index 8266fa2549..fc15242de7 100644 --- a/clients/tui/nmt-editor-page-device.c +++ b/clients/tui/nmt-editor-page-device.c @@ -19,100 +19,101 @@ #include "nmt-editor-page-device.h" -G_DEFINE_TYPE (NmtEditorPageDevice, nmt_editor_page_device, NMT_TYPE_EDITOR_PAGE) +G_DEFINE_TYPE(NmtEditorPageDevice, nmt_editor_page_device, NMT_TYPE_EDITOR_PAGE) -#define NMT_EDITOR_PAGE_DEVICE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NMT_TYPE_EDITOR_PAGE_DEVICE, NmtEditorPageDevicePrivate)) +#define NMT_EDITOR_PAGE_DEVICE_GET_PRIVATE(o) \ + (G_TYPE_INSTANCE_GET_PRIVATE((o), NMT_TYPE_EDITOR_PAGE_DEVICE, NmtEditorPageDevicePrivate)) typedef struct { - NmtDeviceEntry *device_entry; - gboolean show_by_default; + NmtDeviceEntry *device_entry; + gboolean show_by_default; } NmtEditorPageDevicePrivate; enum { - PROP_0, + PROP_0, - PROP_DEVICE_ENTRY, + PROP_DEVICE_ENTRY, - LAST_PROP + LAST_PROP }; static void -nmt_editor_page_device_init (NmtEditorPageDevice *device) -{ -} +nmt_editor_page_device_init(NmtEditorPageDevice *device) +{} static void -nmt_editor_page_device_finalize (GObject *object) +nmt_editor_page_device_finalize(GObject *object) { - NmtEditorPageDevicePrivate *priv = NMT_EDITOR_PAGE_DEVICE_GET_PRIVATE (object); + NmtEditorPageDevicePrivate *priv = NMT_EDITOR_PAGE_DEVICE_GET_PRIVATE(object); - g_clear_object (&priv->device_entry); + g_clear_object(&priv->device_entry); - G_OBJECT_CLASS (nmt_editor_page_device_parent_class)->finalize (object); + G_OBJECT_CLASS(nmt_editor_page_device_parent_class)->finalize(object); } NmtDeviceEntry * -nmt_editor_page_device_get_device_entry (NmtEditorPageDevice *page) +nmt_editor_page_device_get_device_entry(NmtEditorPageDevice *page) { - NmtEditorPageDevicePrivate *priv = NMT_EDITOR_PAGE_DEVICE_GET_PRIVATE (page); + NmtEditorPageDevicePrivate *priv = NMT_EDITOR_PAGE_DEVICE_GET_PRIVATE(page); - return priv->device_entry; + return priv->device_entry; } static void -nmt_editor_page_device_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) +nmt_editor_page_device_set_property(GObject * object, + guint prop_id, + const GValue *value, + GParamSpec * pspec) { - NmtEditorPageDevicePrivate *priv = NMT_EDITOR_PAGE_DEVICE_GET_PRIVATE (object); - - switch (prop_id) { - case PROP_DEVICE_ENTRY: - priv->device_entry = g_value_dup_object (value); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtEditorPageDevicePrivate *priv = NMT_EDITOR_PAGE_DEVICE_GET_PRIVATE(object); + + switch (prop_id) { + case PROP_DEVICE_ENTRY: + priv->device_entry = g_value_dup_object(value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_editor_page_device_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) +nmt_editor_page_device_get_property(GObject * object, + guint prop_id, + GValue * value, + GParamSpec *pspec) { - NmtEditorPageDevicePrivate *priv = NMT_EDITOR_PAGE_DEVICE_GET_PRIVATE (object); - - switch (prop_id) { - case PROP_DEVICE_ENTRY: - g_value_set_object (value, priv->device_entry); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtEditorPageDevicePrivate *priv = NMT_EDITOR_PAGE_DEVICE_GET_PRIVATE(object); + + switch (prop_id) { + case PROP_DEVICE_ENTRY: + g_value_set_object(value, priv->device_entry); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_editor_page_device_class_init (NmtEditorPageDeviceClass *page_device_class) +nmt_editor_page_device_class_init(NmtEditorPageDeviceClass *page_device_class) { - GObjectClass *object_class = G_OBJECT_CLASS (page_device_class); - - g_type_class_add_private (page_device_class, sizeof (NmtEditorPageDevicePrivate)); - - /* virtual methods */ - object_class->set_property = nmt_editor_page_device_set_property; - object_class->get_property = nmt_editor_page_device_get_property; - object_class->finalize = nmt_editor_page_device_finalize; - - /* properties */ - g_object_class_install_property - (object_class, PROP_DEVICE_ENTRY, - g_param_spec_object ("device-entry", "", "", - NMT_TYPE_DEVICE_ENTRY, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); + GObjectClass *object_class = G_OBJECT_CLASS(page_device_class); + + g_type_class_add_private(page_device_class, sizeof(NmtEditorPageDevicePrivate)); + + /* virtual methods */ + object_class->set_property = nmt_editor_page_device_set_property; + object_class->get_property = nmt_editor_page_device_get_property; + object_class->finalize = nmt_editor_page_device_finalize; + + /* properties */ + g_object_class_install_property( + object_class, + PROP_DEVICE_ENTRY, + g_param_spec_object("device-entry", + "", + "", + NMT_TYPE_DEVICE_ENTRY, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); } diff --git a/clients/tui/nmt-editor-page-device.h b/clients/tui/nmt-editor-page-device.h index e5450439f3..8179b00da8 100644 --- a/clients/tui/nmt-editor-page-device.h +++ b/clients/tui/nmt-editor-page-device.h @@ -9,25 +9,30 @@ #include "nmt-editor-page.h" #include "nmt-device-entry.h" -#define NMT_TYPE_EDITOR_PAGE_DEVICE (nmt_editor_page_device_get_type ()) -#define NMT_EDITOR_PAGE_DEVICE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NMT_TYPE_EDITOR_PAGE_DEVICE, NmtEditorPageDevice)) -#define NMT_EDITOR_PAGE_DEVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NMT_TYPE_EDITOR_PAGE_DEVICE, NmtEditorPageDeviceClass)) -#define NMT_IS_EDITOR_PAGE_DEVICE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NMT_TYPE_EDITOR_PAGE_DEVICE)) -#define NMT_IS_EDITOR_PAGE_DEVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NMT_TYPE_EDITOR_PAGE_DEVICE)) -#define NMT_EDITOR_PAGE_DEVICE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NMT_TYPE_EDITOR_PAGE_DEVICE, NmtEditorPageDeviceClass)) +#define NMT_TYPE_EDITOR_PAGE_DEVICE (nmt_editor_page_device_get_type()) +#define NMT_EDITOR_PAGE_DEVICE(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), NMT_TYPE_EDITOR_PAGE_DEVICE, NmtEditorPageDevice)) +#define NMT_EDITOR_PAGE_DEVICE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), NMT_TYPE_EDITOR_PAGE_DEVICE, NmtEditorPageDeviceClass)) +#define NMT_IS_EDITOR_PAGE_DEVICE(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj), NMT_TYPE_EDITOR_PAGE_DEVICE)) +#define NMT_IS_EDITOR_PAGE_DEVICE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass), NMT_TYPE_EDITOR_PAGE_DEVICE)) +#define NMT_EDITOR_PAGE_DEVICE_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), NMT_TYPE_EDITOR_PAGE_DEVICE, NmtEditorPageDeviceClass)) typedef struct { - NmtEditorPage parent; + NmtEditorPage parent; } NmtEditorPageDevice; typedef struct { - NmtEditorPageClass parent; + NmtEditorPageClass parent; } NmtEditorPageDeviceClass; -GType nmt_editor_page_device_get_type (void); +GType nmt_editor_page_device_get_type(void); -NmtDeviceEntry *nmt_editor_page_device_get_device_entry (NmtEditorPageDevice *page); +NmtDeviceEntry *nmt_editor_page_device_get_device_entry(NmtEditorPageDevice *page); #endif /* NMT_EDITOR_PAGE_DEVICE_H */ diff --git a/clients/tui/nmt-editor-page.c b/clients/tui/nmt-editor-page.c index 96e77fa532..dec56ba04e 100644 --- a/clients/tui/nmt-editor-page.c +++ b/clients/tui/nmt-editor-page.c @@ -15,38 +15,38 @@ #include "nmt-editor-page.h" -G_DEFINE_ABSTRACT_TYPE (NmtEditorPage, nmt_editor_page, G_TYPE_OBJECT) +G_DEFINE_ABSTRACT_TYPE(NmtEditorPage, nmt_editor_page, G_TYPE_OBJECT) -#define NMT_EDITOR_PAGE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NMT_TYPE_EDITOR_PAGE, NmtEditorPagePrivate)) +#define NMT_EDITOR_PAGE_GET_PRIVATE(o) \ + (G_TYPE_INSTANCE_GET_PRIVATE((o), NMT_TYPE_EDITOR_PAGE, NmtEditorPagePrivate)) typedef struct { - NMConnection *connection; - GSList *sections; + NMConnection *connection; + GSList * sections; } NmtEditorPagePrivate; enum { - PROP_0, + PROP_0, - PROP_CONNECTION, + PROP_CONNECTION, - LAST_PROP + LAST_PROP }; static void -nmt_editor_page_init (NmtEditorPage *page) -{ -} +nmt_editor_page_init(NmtEditorPage *page) +{} static void -nmt_editor_page_finalize (GObject *object) +nmt_editor_page_finalize(GObject *object) { - NmtEditorPagePrivate *priv = NMT_EDITOR_PAGE_GET_PRIVATE (object); + NmtEditorPagePrivate *priv = NMT_EDITOR_PAGE_GET_PRIVATE(object); - g_clear_object (&priv->connection); - g_slist_free_full (priv->sections, g_object_unref); + g_clear_object(&priv->connection); + g_slist_free_full(priv->sections, g_object_unref); - G_OBJECT_CLASS (nmt_editor_page_parent_class)->finalize (object); + G_OBJECT_CLASS(nmt_editor_page_parent_class)->finalize(object); } /** @@ -58,11 +58,11 @@ nmt_editor_page_finalize (GObject *object) * Returns: (transfer none): the page's #NMConnection. */ NMConnection * -nmt_editor_page_get_connection (NmtEditorPage *page) +nmt_editor_page_get_connection(NmtEditorPage *page) { - NmtEditorPagePrivate *priv = NMT_EDITOR_PAGE_GET_PRIVATE (page); + NmtEditorPagePrivate *priv = NMT_EDITOR_PAGE_GET_PRIVATE(page); - return priv->connection; + return priv->connection; } /** @@ -75,11 +75,11 @@ nmt_editor_page_get_connection (NmtEditorPage *page) * used by the page and must not be modified or freed. */ GSList * -nmt_editor_page_get_sections (NmtEditorPage *page) +nmt_editor_page_get_sections(NmtEditorPage *page) { - NmtEditorPagePrivate *priv = NMT_EDITOR_PAGE_GET_PRIVATE (page); + NmtEditorPagePrivate *priv = NMT_EDITOR_PAGE_GET_PRIVATE(page); - return priv->sections; + return priv->sections; } /** @@ -91,12 +91,11 @@ nmt_editor_page_get_sections (NmtEditorPage *page) * subclasses. */ void -nmt_editor_page_add_section (NmtEditorPage *page, - NmtEditorSection *section) +nmt_editor_page_add_section(NmtEditorPage *page, NmtEditorSection *section) { - NmtEditorPagePrivate *priv = NMT_EDITOR_PAGE_GET_PRIVATE (page); + NmtEditorPagePrivate *priv = NMT_EDITOR_PAGE_GET_PRIVATE(page); - priv->sections = g_slist_append (priv->sections, g_object_ref_sink (section)); + priv->sections = g_slist_append(priv->sections, g_object_ref_sink(section)); } /** @@ -108,74 +107,69 @@ nmt_editor_page_add_section (NmtEditorPage *page, * recommit the slave connections). */ void -nmt_editor_page_saved (NmtEditorPage *page) +nmt_editor_page_saved(NmtEditorPage *page) { - NmtEditorPageClass *editor_page_class = NMT_EDITOR_PAGE_GET_CLASS (page); + NmtEditorPageClass *editor_page_class = NMT_EDITOR_PAGE_GET_CLASS(page); - if (editor_page_class->saved) - editor_page_class->saved (page); + if (editor_page_class->saved) + editor_page_class->saved(page); } static void -nmt_editor_page_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) +nmt_editor_page_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { - NmtEditorPagePrivate *priv = NMT_EDITOR_PAGE_GET_PRIVATE (object); - - switch (prop_id) { - case PROP_CONNECTION: - priv->connection = g_value_dup_object (value); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtEditorPagePrivate *priv = NMT_EDITOR_PAGE_GET_PRIVATE(object); + + switch (prop_id) { + case PROP_CONNECTION: + priv->connection = g_value_dup_object(value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_editor_page_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) +nmt_editor_page_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - NmtEditorPagePrivate *priv = NMT_EDITOR_PAGE_GET_PRIVATE (object); - - switch (prop_id) { - case PROP_CONNECTION: - g_value_set_object (value, priv->connection); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtEditorPagePrivate *priv = NMT_EDITOR_PAGE_GET_PRIVATE(object); + + switch (prop_id) { + case PROP_CONNECTION: + g_value_set_object(value, priv->connection); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_editor_page_class_init (NmtEditorPageClass *page_class) +nmt_editor_page_class_init(NmtEditorPageClass *page_class) { - GObjectClass *object_class = G_OBJECT_CLASS (page_class); + GObjectClass *object_class = G_OBJECT_CLASS(page_class); - g_type_class_add_private (page_class, sizeof (NmtEditorPagePrivate)); + g_type_class_add_private(page_class, sizeof(NmtEditorPagePrivate)); - /* virtual methods */ - object_class->set_property = nmt_editor_page_set_property; - object_class->get_property = nmt_editor_page_get_property; - object_class->finalize = nmt_editor_page_finalize; + /* virtual methods */ + object_class->set_property = nmt_editor_page_set_property; + object_class->get_property = nmt_editor_page_get_property; + object_class->finalize = nmt_editor_page_finalize; - /* properties */ + /* properties */ - /** + /** * NmtEditorPage:connection: * * The page's #NMConnection. */ - g_object_class_install_property - (object_class, PROP_CONNECTION, - g_param_spec_object ("connection", "", "", - NM_TYPE_CONNECTION, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); + g_object_class_install_property( + object_class, + PROP_CONNECTION, + g_param_spec_object("connection", + "", + "", + NM_TYPE_CONNECTION, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); } diff --git a/clients/tui/nmt-editor-page.h b/clients/tui/nmt-editor-page.h index e812017eca..47c4150792 100644 --- a/clients/tui/nmt-editor-page.h +++ b/clients/tui/nmt-editor-page.h @@ -9,34 +9,36 @@ #include "nmt-editor-grid.h" #include "nmt-editor-section.h" -#define NMT_TYPE_EDITOR_PAGE (nmt_editor_page_get_type ()) -#define NMT_EDITOR_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NMT_TYPE_EDITOR_PAGE, NmtEditorPage)) -#define NMT_EDITOR_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NMT_TYPE_EDITOR_PAGE, NmtEditorPageClass)) -#define NMT_IS_EDITOR_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NMT_TYPE_EDITOR_PAGE)) -#define NMT_IS_EDITOR_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NMT_TYPE_EDITOR_PAGE)) -#define NMT_EDITOR_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NMT_TYPE_EDITOR_PAGE, NmtEditorPageClass)) +#define NMT_TYPE_EDITOR_PAGE (nmt_editor_page_get_type()) +#define NMT_EDITOR_PAGE(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), NMT_TYPE_EDITOR_PAGE, NmtEditorPage)) +#define NMT_EDITOR_PAGE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), NMT_TYPE_EDITOR_PAGE, NmtEditorPageClass)) +#define NMT_IS_EDITOR_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), NMT_TYPE_EDITOR_PAGE)) +#define NMT_IS_EDITOR_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), NMT_TYPE_EDITOR_PAGE)) +#define NMT_EDITOR_PAGE_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), NMT_TYPE_EDITOR_PAGE, NmtEditorPageClass)) typedef struct { - GObject parent; + GObject parent; } NmtEditorPage; typedef struct { - GObjectClass parent; + GObjectClass parent; - void (*saved) (NmtEditorPage *page); + void (*saved)(NmtEditorPage *page); } NmtEditorPageClass; -GType nmt_editor_page_get_type (void); +GType nmt_editor_page_get_type(void); -NMConnection *nmt_editor_page_get_connection (NmtEditorPage *page); +NMConnection *nmt_editor_page_get_connection(NmtEditorPage *page); -GSList *nmt_editor_page_get_sections (NmtEditorPage *page); +GSList *nmt_editor_page_get_sections(NmtEditorPage *page); -void nmt_editor_page_saved (NmtEditorPage *page); +void nmt_editor_page_saved(NmtEditorPage *page); /*< protected >*/ -void nmt_editor_page_add_section (NmtEditorPage *page, - NmtEditorSection *section); +void nmt_editor_page_add_section(NmtEditorPage *page, NmtEditorSection *section); #endif /* NMT_EDITOR_PAGE_H */ diff --git a/clients/tui/nmt-editor-section.c b/clients/tui/nmt-editor-section.c index e92df70d60..4fbdd16ec7 100644 --- a/clients/tui/nmt-editor-section.c +++ b/clients/tui/nmt-editor-section.c @@ -15,27 +15,28 @@ #include "nmt-editor-section.h" #include "nmt-newt-toggle-button.h" -G_DEFINE_TYPE (NmtEditorSection, nmt_editor_section, NMT_TYPE_NEWT_SECTION) +G_DEFINE_TYPE(NmtEditorSection, nmt_editor_section, NMT_TYPE_NEWT_SECTION) -#define NMT_EDITOR_SECTION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NMT_TYPE_EDITOR_SECTION, NmtEditorSectionPrivate)) +#define NMT_EDITOR_SECTION_GET_PRIVATE(o) \ + (G_TYPE_INSTANCE_GET_PRIVATE((o), NMT_TYPE_EDITOR_SECTION, NmtEditorSectionPrivate)) typedef struct { - NmtEditorGrid *header, *body; - char *title; - NmtNewtWidget *header_widget; - NmtNewtWidget *toggle; + NmtEditorGrid *header, *body; + char * title; + NmtNewtWidget *header_widget; + NmtNewtWidget *toggle; - gboolean show_by_default; + gboolean show_by_default; } NmtEditorSectionPrivate; enum { - PROP_0, + PROP_0, - PROP_TITLE, - PROP_SHOW_BY_DEFAULT, - PROP_HEADER_WIDGET, + PROP_TITLE, + PROP_SHOW_BY_DEFAULT, + PROP_HEADER_WIDGET, - LAST_PROP + LAST_PROP }; /** @@ -49,65 +50,61 @@ enum { * Returns: a new #NmtEditorSection */ NmtEditorSection * -nmt_editor_section_new (const char *title, - NmtNewtWidget *header_widget, - gboolean show_by_default) +nmt_editor_section_new(const char *title, NmtNewtWidget *header_widget, gboolean show_by_default) { - return g_object_new (NMT_TYPE_EDITOR_SECTION, - "title", title, - "header-widget", header_widget, - "show-by-default", show_by_default, - NULL); + return g_object_new(NMT_TYPE_EDITOR_SECTION, + "title", + title, + "header-widget", + header_widget, + "show-by-default", + show_by_default, + NULL); } static void -rebuild_header (NmtEditorSection *section) +rebuild_header(NmtEditorSection *section) { - NmtEditorSectionPrivate *priv = NMT_EDITOR_SECTION_GET_PRIVATE (section); + NmtEditorSectionPrivate *priv = NMT_EDITOR_SECTION_GET_PRIVATE(section); - /* Removing any widget in an NmtEditorGrid removes its whole row, so we can + /* Removing any widget in an NmtEditorGrid removes its whole row, so we can * remove the existing title/widget/toggle by asking to remove toggle. */ - nmt_newt_container_remove (NMT_NEWT_CONTAINER (priv->header), priv->toggle); - - nmt_editor_grid_append (priv->header, - priv->title, - priv->header_widget, - priv->toggle); - nmt_editor_grid_set_row_flags (priv->header, - priv->toggle, - NMT_EDITOR_GRID_ROW_LABEL_ALIGN_LEFT | - NMT_EDITOR_GRID_ROW_EXTRA_ALIGN_RIGHT); + nmt_newt_container_remove(NMT_NEWT_CONTAINER(priv->header), priv->toggle); + + nmt_editor_grid_append(priv->header, priv->title, priv->header_widget, priv->toggle); + nmt_editor_grid_set_row_flags(priv->header, + priv->toggle, + NMT_EDITOR_GRID_ROW_LABEL_ALIGN_LEFT + | NMT_EDITOR_GRID_ROW_EXTRA_ALIGN_RIGHT); } static void -nmt_editor_section_init (NmtEditorSection *section) +nmt_editor_section_init(NmtEditorSection *section) { - NmtEditorSectionPrivate *priv = NMT_EDITOR_SECTION_GET_PRIVATE (section); + NmtEditorSectionPrivate *priv = NMT_EDITOR_SECTION_GET_PRIVATE(section); - priv->header = NMT_EDITOR_GRID (nmt_editor_grid_new ()); - priv->body = NMT_EDITOR_GRID (nmt_editor_grid_new ()); - priv->toggle = nmt_newt_toggle_button_new (_("Hide"), _("Show")); - g_object_ref_sink (priv->toggle); + priv->header = NMT_EDITOR_GRID(nmt_editor_grid_new()); + priv->body = NMT_EDITOR_GRID(nmt_editor_grid_new()); + priv->toggle = nmt_newt_toggle_button_new(_("Hide"), _("Show")); + g_object_ref_sink(priv->toggle); - nmt_newt_section_set_header (NMT_NEWT_SECTION (section), NMT_NEWT_WIDGET (priv->header)); - nmt_newt_section_set_body (NMT_NEWT_SECTION (section), NMT_NEWT_WIDGET (priv->body)); + nmt_newt_section_set_header(NMT_NEWT_SECTION(section), NMT_NEWT_WIDGET(priv->header)); + nmt_newt_section_set_body(NMT_NEWT_SECTION(section), NMT_NEWT_WIDGET(priv->body)); - g_object_bind_property (priv->toggle, "active", - section, "open", - G_BINDING_SYNC_CREATE); + g_object_bind_property(priv->toggle, "active", section, "open", G_BINDING_SYNC_CREATE); } static void -nmt_editor_section_finalize (GObject *object) +nmt_editor_section_finalize(GObject *object) { - NmtEditorSectionPrivate *priv = NMT_EDITOR_SECTION_GET_PRIVATE (object); + NmtEditorSectionPrivate *priv = NMT_EDITOR_SECTION_GET_PRIVATE(object); - g_free (priv->title); - g_clear_object (&priv->header_widget); - g_clear_object (&priv->toggle); + g_free(priv->title); + g_clear_object(&priv->header_widget); + g_clear_object(&priv->toggle); - G_OBJECT_CLASS (nmt_editor_section_parent_class)->finalize (object); + G_OBJECT_CLASS(nmt_editor_section_parent_class)->finalize(object); } /** @@ -119,11 +116,11 @@ nmt_editor_section_finalize (GObject *object) * Returns: the section's header widget. */ NmtNewtWidget * -nmt_editor_section_get_header_widget (NmtEditorSection *section) +nmt_editor_section_get_header_widget(NmtEditorSection *section) { - NmtEditorSectionPrivate *priv = NMT_EDITOR_SECTION_GET_PRIVATE (section); + NmtEditorSectionPrivate *priv = NMT_EDITOR_SECTION_GET_PRIVATE(section); - return priv->header_widget; + return priv->header_widget; } /** @@ -135,11 +132,11 @@ nmt_editor_section_get_header_widget (NmtEditorSection *section) * Returns: the #NmtEditorGrid used for the section body */ NmtEditorGrid * -nmt_editor_section_get_body (NmtEditorSection *section) +nmt_editor_section_get_body(NmtEditorSection *section) { - NmtEditorSectionPrivate *priv = NMT_EDITOR_SECTION_GET_PRIVATE (section); + NmtEditorSectionPrivate *priv = NMT_EDITOR_SECTION_GET_PRIVATE(section); - return priv->body; + return priv->body; } /** @@ -151,117 +148,119 @@ nmt_editor_section_get_body (NmtEditorSection *section) * Returns: the section's title */ const char * -nmt_editor_section_get_title (NmtEditorSection *section) +nmt_editor_section_get_title(NmtEditorSection *section) { - NmtEditorSectionPrivate *priv = NMT_EDITOR_SECTION_GET_PRIVATE (section); + NmtEditorSectionPrivate *priv = NMT_EDITOR_SECTION_GET_PRIVATE(section); - return priv->title; + return priv->title; } static void -nmt_editor_section_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) +nmt_editor_section_set_property(GObject * object, + guint prop_id, + const GValue *value, + GParamSpec * pspec) { - NmtEditorSection *section = NMT_EDITOR_SECTION (object); - NmtEditorSectionPrivate *priv = NMT_EDITOR_SECTION_GET_PRIVATE (section); - - switch (prop_id) { - case PROP_TITLE: - priv->title = g_value_dup_string (value); - rebuild_header (section); - break; - case PROP_SHOW_BY_DEFAULT: - priv->show_by_default = g_value_get_boolean (value); - nmt_newt_toggle_button_set_active (NMT_NEWT_TOGGLE_BUTTON (priv->toggle), - priv->show_by_default); - break; - case PROP_HEADER_WIDGET: - priv->header_widget = g_value_get_object (value); - if (priv->header_widget) - g_object_ref_sink (priv->header_widget); - rebuild_header (section); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtEditorSection * section = NMT_EDITOR_SECTION(object); + NmtEditorSectionPrivate *priv = NMT_EDITOR_SECTION_GET_PRIVATE(section); + + switch (prop_id) { + case PROP_TITLE: + priv->title = g_value_dup_string(value); + rebuild_header(section); + break; + case PROP_SHOW_BY_DEFAULT: + priv->show_by_default = g_value_get_boolean(value); + nmt_newt_toggle_button_set_active(NMT_NEWT_TOGGLE_BUTTON(priv->toggle), + priv->show_by_default); + break; + case PROP_HEADER_WIDGET: + priv->header_widget = g_value_get_object(value); + if (priv->header_widget) + g_object_ref_sink(priv->header_widget); + rebuild_header(section); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_editor_section_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) +nmt_editor_section_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - NmtEditorSectionPrivate *priv = NMT_EDITOR_SECTION_GET_PRIVATE (object); - - switch (prop_id) { - case PROP_TITLE: - g_value_set_string (value, priv->title); - break; - case PROP_SHOW_BY_DEFAULT: - g_value_set_boolean (value, priv->show_by_default); - break; - case PROP_HEADER_WIDGET: - g_value_set_object (value, priv->header_widget); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtEditorSectionPrivate *priv = NMT_EDITOR_SECTION_GET_PRIVATE(object); + + switch (prop_id) { + case PROP_TITLE: + g_value_set_string(value, priv->title); + break; + case PROP_SHOW_BY_DEFAULT: + g_value_set_boolean(value, priv->show_by_default); + break; + case PROP_HEADER_WIDGET: + g_value_set_object(value, priv->header_widget); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_editor_section_class_init (NmtEditorSectionClass *section_class) +nmt_editor_section_class_init(NmtEditorSectionClass *section_class) { - GObjectClass *object_class = G_OBJECT_CLASS (section_class); + GObjectClass *object_class = G_OBJECT_CLASS(section_class); - g_type_class_add_private (section_class, sizeof (NmtEditorSectionPrivate)); + g_type_class_add_private(section_class, sizeof(NmtEditorSectionPrivate)); - /* virtual methods */ - object_class->set_property = nmt_editor_section_set_property; - object_class->get_property = nmt_editor_section_get_property; - object_class->finalize = nmt_editor_section_finalize; + /* virtual methods */ + object_class->set_property = nmt_editor_section_set_property; + object_class->get_property = nmt_editor_section_get_property; + object_class->finalize = nmt_editor_section_finalize; - /* properties */ + /* properties */ - /** + /** * NmtEditorSection:title: * * The section's title. */ - g_object_class_install_property - (object_class, PROP_TITLE, - g_param_spec_string ("title", "", "", - NULL, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); - - /** + g_object_class_install_property( + object_class, + PROP_TITLE, + g_param_spec_string("title", + "", + "", + NULL, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); + + /** * NmtEditorSection:show-by-default: * * Whether the section should be expanded by default. */ - g_object_class_install_property - (object_class, PROP_SHOW_BY_DEFAULT, - g_param_spec_boolean ("show-by-default", "", "", - TRUE, - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS)); - - /** + g_object_class_install_property( + object_class, + PROP_SHOW_BY_DEFAULT, + g_param_spec_boolean("show-by-default", + "", + "", + TRUE, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + /** * NmtEditorSection:header-widget: * * The widget (if any) that appears between the section title and its toggle * button. */ - g_object_class_install_property - (object_class, PROP_HEADER_WIDGET, - g_param_spec_object ("header-widget", "", "", - NMT_TYPE_NEWT_WIDGET, - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS)); + g_object_class_install_property( + object_class, + PROP_HEADER_WIDGET, + g_param_spec_object("header-widget", + "", + "", + NMT_TYPE_NEWT_WIDGET, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); } diff --git a/clients/tui/nmt-editor-section.h b/clients/tui/nmt-editor-section.h index 633208c881..aa0f18167e 100644 --- a/clients/tui/nmt-editor-section.h +++ b/clients/tui/nmt-editor-section.h @@ -9,31 +9,34 @@ #include "nmt-newt-section.h" #include "nmt-editor-grid.h" -#define NMT_TYPE_EDITOR_SECTION (nmt_editor_section_get_type ()) -#define NMT_EDITOR_SECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NMT_TYPE_EDITOR_SECTION, NmtEditorSection)) -#define NMT_EDITOR_SECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NMT_TYPE_EDITOR_SECTION, NmtEditorSectionClass)) -#define NMT_IS_EDITOR_SECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NMT_TYPE_EDITOR_SECTION)) -#define NMT_IS_EDITOR_SECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NMT_TYPE_EDITOR_SECTION)) -#define NMT_EDITOR_SECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NMT_TYPE_EDITOR_SECTION, NmtEditorSectionClass)) +#define NMT_TYPE_EDITOR_SECTION (nmt_editor_section_get_type()) +#define NMT_EDITOR_SECTION(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), NMT_TYPE_EDITOR_SECTION, NmtEditorSection)) +#define NMT_EDITOR_SECTION_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), NMT_TYPE_EDITOR_SECTION, NmtEditorSectionClass)) +#define NMT_IS_EDITOR_SECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), NMT_TYPE_EDITOR_SECTION)) +#define NMT_IS_EDITOR_SECTION_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass), NMT_TYPE_EDITOR_SECTION)) +#define NMT_EDITOR_SECTION_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), NMT_TYPE_EDITOR_SECTION, NmtEditorSectionClass)) typedef struct { - NmtNewtSection parent; + NmtNewtSection parent; } NmtEditorSection; typedef struct { - NmtNewtSectionClass parent; + NmtNewtSectionClass parent; } NmtEditorSectionClass; -GType nmt_editor_section_get_type (void); +GType nmt_editor_section_get_type(void); -NmtEditorSection *nmt_editor_section_new (const char *title, - NmtNewtWidget *header_widget, - gboolean show_by_default); +NmtEditorSection * +nmt_editor_section_new(const char *title, NmtNewtWidget *header_widget, gboolean show_by_default); -const char *nmt_editor_section_get_title (NmtEditorSection *section); -NmtNewtWidget *nmt_editor_section_get_header_widget (NmtEditorSection *section); -NmtEditorGrid *nmt_editor_section_get_body (NmtEditorSection *section); +const char * nmt_editor_section_get_title(NmtEditorSection *section); +NmtNewtWidget *nmt_editor_section_get_header_widget(NmtEditorSection *section); +NmtEditorGrid *nmt_editor_section_get_body(NmtEditorSection *section); #endif /* NMT_EDITOR_SECTION_H */ diff --git a/clients/tui/nmt-editor.c b/clients/tui/nmt-editor.c index 9bc91d2de1..be68e6c5b6 100644 --- a/clients/tui/nmt-editor.c +++ b/clients/tui/nmt-editor.c @@ -42,27 +42,28 @@ #include "nm-meta-setting-access.h" -G_DEFINE_TYPE (NmtEditor, nmt_editor, NMT_TYPE_NEWT_FORM) +G_DEFINE_TYPE(NmtEditor, nmt_editor, NMT_TYPE_NEWT_FORM) -#define NMT_EDITOR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NMT_TYPE_EDITOR, NmtEditorPrivate)) +#define NMT_EDITOR_GET_PRIVATE(o) \ + (G_TYPE_INSTANCE_GET_PRIVATE((o), NMT_TYPE_EDITOR, NmtEditorPrivate)) typedef struct { - NMConnection *orig_connection; - NMConnection *edit_connection; + NMConnection *orig_connection; + NMConnection *edit_connection; - NMEditorConnectionTypeData *type_data; + NMEditorConnectionTypeData *type_data; - GSList *pages; - NmtNewtWidget *ok, *cancel; - gboolean running; + GSList * pages; + NmtNewtWidget *ok, *cancel; + gboolean running; } NmtEditorPrivate; enum { - PROP_0, - PROP_CONNECTION, - PROP_TYPE_DATA, + PROP_0, + PROP_CONNECTION, + PROP_TYPE_DATA, - LAST_PROP + LAST_PROP }; /** @@ -74,450 +75,460 @@ enum { * Returns: a new #NmtEditor */ NmtNewtForm * -nmt_editor_new (NMConnection *connection) +nmt_editor_new(NMConnection *connection) { - NMEditorConnectionTypeData *type_data; - - type_data = nm_editor_utils_get_connection_type_data (connection); - if (!type_data) { - NMSettingConnection *s_con; - - s_con = nm_connection_get_setting_connection (connection); - if (s_con) { - nmt_newt_message_dialog (_("Could not create editor for connection '%s' of type '%s'."), - nm_connection_get_id (connection), - nm_setting_connection_get_connection_type (s_con)); - } else { - nmt_newt_message_dialog (_("Could not create editor for invalid connection '%s'."), - nm_connection_get_id (connection)); - } - - return NULL; - } - - return g_object_new (NMT_TYPE_EDITOR, - "connection", connection, - "type-data", type_data, - "title", _("Edit Connection"), - "fullscreen-vertical", TRUE, - NULL); + NMEditorConnectionTypeData *type_data; + + type_data = nm_editor_utils_get_connection_type_data(connection); + if (!type_data) { + NMSettingConnection *s_con; + + s_con = nm_connection_get_setting_connection(connection); + if (s_con) { + nmt_newt_message_dialog(_("Could not create editor for connection '%s' of type '%s'."), + nm_connection_get_id(connection), + nm_setting_connection_get_connection_type(s_con)); + } else { + nmt_newt_message_dialog(_("Could not create editor for invalid connection '%s'."), + nm_connection_get_id(connection)); + } + + return NULL; + } + + return g_object_new(NMT_TYPE_EDITOR, + "connection", + connection, + "type-data", + type_data, + "title", + _("Edit Connection"), + "fullscreen-vertical", + TRUE, + NULL); } static void -nmt_editor_init (NmtEditor *entry) -{ -} +nmt_editor_init(NmtEditor *entry) +{} static void -connection_updated (GObject *connection, - GAsyncResult *result, - gpointer op) +connection_updated(GObject *connection, GAsyncResult *result, gpointer op) { - GError *error = NULL; + GError *error = NULL; - nm_remote_connection_commit_changes_finish (NM_REMOTE_CONNECTION (connection), result, &error); - nmt_sync_op_complete_boolean (op, error == NULL, error); - g_clear_error (&error); + nm_remote_connection_commit_changes_finish(NM_REMOTE_CONNECTION(connection), result, &error); + nmt_sync_op_complete_boolean(op, error == NULL, error); + g_clear_error(&error); } static void -connection_added (GObject *client, - GAsyncResult *result, - gpointer op) +connection_added(GObject *client, GAsyncResult *result, gpointer op) { - NMRemoteConnection *connection; - GError *error = NULL; + NMRemoteConnection *connection; + GError * error = NULL; - connection = nm_client_add_connection_finish (NM_CLIENT (client), result, &error); - nmt_sync_op_complete_boolean (op, error == NULL, error); - g_clear_object (&connection); - g_clear_error (&error); + connection = nm_client_add_connection_finish(NM_CLIENT(client), result, &error); + nmt_sync_op_complete_boolean(op, error == NULL, error); + g_clear_object(&connection); + g_clear_error(&error); } static void -page_saved (gpointer data, gpointer user_data) +page_saved(gpointer data, gpointer user_data) { - NmtEditorPage *page = data; + NmtEditorPage *page = data; - nmt_editor_page_saved (page); + nmt_editor_page_saved(page); } static void -save_connection_and_exit (NmtNewtButton *button, - gpointer user_data) +save_connection_and_exit(NmtNewtButton *button, gpointer user_data) { - NmtEditor *editor = user_data; - NmtEditorPrivate *priv = NMT_EDITOR_GET_PRIVATE (editor); - NmtSyncOp op; - GError *error = NULL; - - nm_connection_replace_settings_from_connection (priv->orig_connection, - priv->edit_connection); - - nmt_sync_op_init (&op); - if (NM_IS_REMOTE_CONNECTION (priv->orig_connection)) { - nm_remote_connection_commit_changes_async (NM_REMOTE_CONNECTION (priv->orig_connection), - TRUE, NULL, connection_updated, &op); - if (!nmt_sync_op_wait_boolean (&op, &error)) { - nmt_newt_message_dialog (_("Unable to save connection: %s"), - error->message); - g_error_free (error); - return; - } - - /* Clear secrets so they don't lay around in memory; they'll get + NmtEditor * editor = user_data; + NmtEditorPrivate *priv = NMT_EDITOR_GET_PRIVATE(editor); + NmtSyncOp op; + GError * error = NULL; + + nm_connection_replace_settings_from_connection(priv->orig_connection, priv->edit_connection); + + nmt_sync_op_init(&op); + if (NM_IS_REMOTE_CONNECTION(priv->orig_connection)) { + nm_remote_connection_commit_changes_async(NM_REMOTE_CONNECTION(priv->orig_connection), + TRUE, + NULL, + connection_updated, + &op); + if (!nmt_sync_op_wait_boolean(&op, &error)) { + nmt_newt_message_dialog(_("Unable to save connection: %s"), error->message); + g_error_free(error); + return; + } + + /* Clear secrets so they don't lay around in memory; they'll get * requested again anyway next time the connection is edited. */ - nm_connection_clear_secrets (priv->orig_connection); - } else { - nm_client_add_connection_async (nm_client, priv->orig_connection, TRUE, - NULL, connection_added, &op); - if (!nmt_sync_op_wait_boolean (&op, &error)) { - nmt_newt_message_dialog (_("Unable to add new connection: %s"), - error->message); - g_error_free (error); - return; - } - } - - /* Let the page know that it was saved. */ - g_slist_foreach (priv->pages, page_saved, NULL); - - nmt_newt_form_quit (NMT_NEWT_FORM (editor)); + nm_connection_clear_secrets(priv->orig_connection); + } else { + nm_client_add_connection_async(nm_client, + priv->orig_connection, + TRUE, + NULL, + connection_added, + &op); + if (!nmt_sync_op_wait_boolean(&op, &error)) { + nmt_newt_message_dialog(_("Unable to add new connection: %s"), error->message); + g_error_free(error); + return; + } + } + + /* Let the page know that it was saved. */ + g_slist_foreach(priv->pages, page_saved, NULL); + + nmt_newt_form_quit(NMT_NEWT_FORM(editor)); } static void -got_secrets (GObject *object, - GAsyncResult *result, - gpointer op) +got_secrets(GObject *object, GAsyncResult *result, gpointer op) { - GVariant *secrets; - GError *error = NULL; - - secrets = nm_remote_connection_get_secrets_finish (NM_REMOTE_CONNECTION (object), - result, &error); - if (secrets) - g_variant_ref (secrets); - nmt_sync_op_complete_pointer (op, secrets, error); - g_clear_error (&error); + GVariant *secrets; + GError * error = NULL; + + secrets = nm_remote_connection_get_secrets_finish(NM_REMOTE_CONNECTION(object), result, &error); + if (secrets) + g_variant_ref(secrets); + nmt_sync_op_complete_pointer(op, secrets, error); + g_clear_error(&error); } static NMConnection * -build_edit_connection (NMConnection *orig_connection) +build_edit_connection(NMConnection *orig_connection) { - NMConnection *edit_connection; - GVariant *settings, *secrets; - GVariantIter iter; - const char *setting_name; - NmtSyncOp op; - - edit_connection = nm_simple_connection_new_clone (orig_connection); - - if (!NM_IS_REMOTE_CONNECTION (orig_connection)) - return edit_connection; - - settings = nm_connection_to_dbus (orig_connection, NM_CONNECTION_SERIALIZE_NO_SECRETS); - g_variant_iter_init (&iter, settings); - while (g_variant_iter_next (&iter, "{&s@a{sv}}", &setting_name, NULL)) { - if (!nm_meta_setting_info_editor_has_secrets (nm_meta_setting_info_editor_find_by_name (setting_name, FALSE))) - continue; - nmt_sync_op_init (&op); - nm_remote_connection_get_secrets_async (NM_REMOTE_CONNECTION (orig_connection), - setting_name, NULL, got_secrets, &op); - /* FIXME: error handling */ - secrets = nmt_sync_op_wait_pointer (&op, NULL); - if (secrets) { - (void) nm_connection_update_secrets (edit_connection, setting_name, secrets, NULL); - g_variant_unref (secrets); - } - } - g_variant_unref (settings); - - return edit_connection; + NMConnection *edit_connection; + GVariant * settings, *secrets; + GVariantIter iter; + const char * setting_name; + NmtSyncOp op; + + edit_connection = nm_simple_connection_new_clone(orig_connection); + + if (!NM_IS_REMOTE_CONNECTION(orig_connection)) + return edit_connection; + + settings = nm_connection_to_dbus(orig_connection, NM_CONNECTION_SERIALIZE_NO_SECRETS); + g_variant_iter_init(&iter, settings); + while (g_variant_iter_next(&iter, "{&s@a{sv}}", &setting_name, NULL)) { + if (!nm_meta_setting_info_editor_has_secrets( + nm_meta_setting_info_editor_find_by_name(setting_name, FALSE))) + continue; + nmt_sync_op_init(&op); + nm_remote_connection_get_secrets_async(NM_REMOTE_CONNECTION(orig_connection), + setting_name, + NULL, + got_secrets, + &op); + /* FIXME: error handling */ + secrets = nmt_sync_op_wait_pointer(&op, NULL); + if (secrets) { + (void) nm_connection_update_secrets(edit_connection, setting_name, secrets, NULL); + g_variant_unref(secrets); + } + } + g_variant_unref(settings); + + return edit_connection; } static gboolean -permissions_transform_to_allusers (GBinding *binding, - const GValue *source_value, - GValue *target_value, - gpointer user_data) +permissions_transform_to_allusers(GBinding * binding, + const GValue *source_value, + GValue * target_value, + gpointer user_data) { - char **perms = g_value_get_boxed (source_value); + char **perms = g_value_get_boxed(source_value); - g_value_set_boolean (target_value, g_strv_length (perms) == 0); - return TRUE; + g_value_set_boolean(target_value, g_strv_length(perms) == 0); + return TRUE; } static gboolean -permissions_transform_from_allusers (GBinding *binding, - const GValue *source_value, - GValue *target_value, - gpointer user_data) +permissions_transform_from_allusers(GBinding * binding, + const GValue *source_value, + GValue * target_value, + gpointer user_data) { - gboolean allusers = g_value_get_boolean (source_value); - char **perms = NULL; + gboolean allusers = g_value_get_boolean(source_value); + char ** perms = NULL; - if (!allusers) { - perms = g_new (char *, 2); + if (!allusers) { + perms = g_new(char *, 2); - perms[0] = g_strdup_printf ("user:%s:", g_get_user_name ()); - perms[1] = NULL; - } - g_value_take_boxed (target_value, perms); - return TRUE; + perms[0] = g_strdup_printf("user:%s:", g_get_user_name()); + perms[1] = NULL; + } + g_value_take_boxed(target_value, perms); + return TRUE; } static NmtNewtWidget * -add_sections_for_page (NmtEditor *editor, NmtEditorGrid *grid, NmtEditorPage *page) +add_sections_for_page(NmtEditor *editor, NmtEditorGrid *grid, NmtEditorPage *page) { - NmtEditorPrivate *priv = NMT_EDITOR_GET_PRIVATE (editor); - NmtNewtWidget *first_section = NULL; - const GSList *sections, *iter; + NmtEditorPrivate *priv = NMT_EDITOR_GET_PRIVATE(editor); + NmtNewtWidget * first_section = NULL; + const GSList * sections, *iter; - g_return_val_if_fail (NMT_IS_EDITOR_PAGE (page), NULL); + g_return_val_if_fail(NMT_IS_EDITOR_PAGE(page), NULL); - priv->pages = g_slist_prepend (priv->pages, page); + priv->pages = g_slist_prepend(priv->pages, page); - sections = nmt_editor_page_get_sections (page); - for (iter = sections; iter; iter = iter->next) { - if (!first_section) - first_section = iter->data; - nmt_editor_grid_append (grid, NULL, iter->data, NULL); - } + sections = nmt_editor_page_get_sections(page); + for (iter = sections; iter; iter = iter->next) { + if (!first_section) + first_section = iter->data; + nmt_editor_grid_append(grid, NULL, iter->data, NULL); + } - return first_section; + return first_section; } static void -nmt_editor_constructed (GObject *object) +nmt_editor_constructed(GObject *object) { - NmtEditor *editor = NMT_EDITOR (object); - NmtEditorPrivate *priv = NMT_EDITOR_GET_PRIVATE (editor); - NMSettingConnection *s_con; - NmtNewtWidget *vbox, *widget, *buttons; - NmtEditorGrid *grid; - const char *deventry_label; - NmtDeviceEntry *deventry; - GType hardware_type; - const char *slave_type; - NmtEditorPage *page; + NmtEditor * editor = NMT_EDITOR(object); + NmtEditorPrivate * priv = NMT_EDITOR_GET_PRIVATE(editor); + NMSettingConnection *s_con; + NmtNewtWidget * vbox, *widget, *buttons; + NmtEditorGrid * grid; + const char * deventry_label; + NmtDeviceEntry * deventry; + GType hardware_type; + const char * slave_type; + NmtEditorPage * page; - if (G_OBJECT_CLASS (nmt_editor_parent_class)->constructed) - G_OBJECT_CLASS (nmt_editor_parent_class)->constructed (object); + if (G_OBJECT_CLASS(nmt_editor_parent_class)->constructed) + G_OBJECT_CLASS(nmt_editor_parent_class)->constructed(object); - priv->edit_connection = build_edit_connection (priv->orig_connection); + priv->edit_connection = build_edit_connection(priv->orig_connection); - vbox = nmt_newt_grid_new (); + vbox = nmt_newt_grid_new(); - s_con = nm_connection_get_setting_connection (priv->edit_connection); + s_con = nm_connection_get_setting_connection(priv->edit_connection); - grid = NMT_EDITOR_GRID (nmt_editor_grid_new ()); - nmt_newt_grid_add (NMT_NEWT_GRID (vbox), NMT_NEWT_WIDGET (grid), 0, 0); + grid = NMT_EDITOR_GRID(nmt_editor_grid_new()); + nmt_newt_grid_add(NMT_NEWT_GRID(vbox), NMT_NEWT_WIDGET(grid), 0, 0); - /* Add the top widgets */ + /* Add the top widgets */ - widget = nmt_newt_entry_new (40, NMT_NEWT_ENTRY_NONEMPTY); - g_object_bind_property (s_con, NM_SETTING_CONNECTION_ID, - widget, "text", - G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); - nmt_editor_grid_append (grid, _("Profile name"), widget, NULL); + widget = nmt_newt_entry_new(40, NMT_NEWT_ENTRY_NONEMPTY); + g_object_bind_property(s_con, + NM_SETTING_CONNECTION_ID, + widget, + "text", + G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); + nmt_editor_grid_append(grid, _("Profile name"), widget, NULL); - if (priv->type_data->virtual) - hardware_type = G_TYPE_NONE; - else - hardware_type = priv->type_data->device_type; + if (priv->type_data->virtual) + hardware_type = G_TYPE_NONE; + else + hardware_type = priv->type_data->device_type; - /* For connections involving multiple network devices, clarify which one + /* For connections involving multiple network devices, clarify which one * NMSettingConnection:interface-name refers to. */ - if (nm_connection_is_type (priv->edit_connection, NM_SETTING_PPPOE_SETTING_NAME)) - deventry_label = _("Ethernet device"); - else - deventry_label = _("Device"); - - widget = nmt_device_entry_new (deventry_label, 40, hardware_type); - nmt_editor_grid_append (grid, NULL, widget, NULL); - deventry = NMT_DEVICE_ENTRY (widget); - g_object_bind_property (s_con, NM_SETTING_CONNECTION_INTERFACE_NAME, - deventry, "interface-name", - G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); - - nmt_editor_grid_append (grid, NULL, nmt_newt_separator_new (), NULL); - - /* Now add the various pages... */ - - if (nm_connection_is_type (priv->edit_connection, NM_SETTING_BOND_SETTING_NAME)) - page = nmt_page_bond_new (priv->edit_connection, deventry); - else if (nm_connection_is_type (priv->edit_connection, NM_SETTING_BRIDGE_SETTING_NAME)) - page = nmt_page_bridge_new (priv->edit_connection, deventry); - else if (nm_connection_is_type (priv->edit_connection, NM_SETTING_INFINIBAND_SETTING_NAME)) - page = nmt_page_infiniband_new (priv->edit_connection, deventry); - else if (nm_connection_is_type (priv->edit_connection, NM_SETTING_PPPOE_SETTING_NAME)) - page = nmt_page_dsl_new (priv->edit_connection, deventry); - else if (nm_connection_is_type (priv->edit_connection, NM_SETTING_TEAM_SETTING_NAME)) - page = nmt_page_team_new (priv->edit_connection, deventry); - else if (nm_connection_is_type (priv->edit_connection, NM_SETTING_VLAN_SETTING_NAME)) - page = nmt_page_vlan_new (priv->edit_connection, deventry); - else if (nm_connection_is_type (priv->edit_connection, NM_SETTING_WIRED_SETTING_NAME)) - page = nmt_page_ethernet_new (priv->edit_connection, deventry); - else if (nm_connection_is_type (priv->edit_connection, NM_SETTING_WIRELESS_SETTING_NAME)) - page = nmt_page_wifi_new (priv->edit_connection, deventry); - else if (nm_connection_is_type (priv->edit_connection, NM_SETTING_IP_TUNNEL_SETTING_NAME)) - page = nmt_page_ip_tunnel_new (priv->edit_connection, deventry); - else - g_assert_not_reached (); - - add_sections_for_page (editor, grid, page); - nmt_editor_grid_append (grid, NULL, nmt_newt_separator_new (), NULL); - - slave_type = nm_setting_connection_get_slave_type (s_con); - if (slave_type) { - if (!strcmp (slave_type, NM_SETTING_BRIDGE_SETTING_NAME)) - add_sections_for_page (editor, grid, nmt_page_bridge_port_new (priv->edit_connection)); - else if (!strcmp (slave_type, NM_SETTING_TEAM_SETTING_NAME)) - add_sections_for_page (editor, grid, nmt_page_team_port_new (priv->edit_connection)); - } else { - NmtNewtWidget *section; - - section = add_sections_for_page (editor, grid, nmt_page_ip4_new (priv->edit_connection)); - - /* Add a separator between ip4 and ip6 that's only visible if ip4 is open */ - widget = nmt_newt_separator_new (); - g_object_bind_property (section, "open", widget, "visible", G_BINDING_SYNC_CREATE); - nmt_editor_grid_append (grid, NULL, widget, NULL); - - add_sections_for_page (editor, grid, nmt_page_ip6_new (priv->edit_connection)); - - nmt_editor_grid_append (grid, NULL, nmt_newt_separator_new (), NULL); - } - - /* And finally the bottom widgets */ - - widget = nmt_newt_checkbox_new (_("Automatically connect")); - g_object_bind_property (s_con, NM_SETTING_CONNECTION_AUTOCONNECT, - widget, "active", - G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); - nmt_editor_grid_append (grid, NULL, widget, NULL); - - widget = nmt_newt_checkbox_new (_("Available to all users")); - g_object_bind_property_full (s_con, NM_SETTING_CONNECTION_PERMISSIONS, - widget, "active", - G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE, - permissions_transform_to_allusers, - permissions_transform_from_allusers, - NULL, NULL); - nmt_editor_grid_append (grid, NULL, widget, NULL); - - /* And the button box */ - - buttons = nmt_newt_button_box_new (NMT_NEWT_BUTTON_BOX_HORIZONTAL); - nmt_newt_grid_add (NMT_NEWT_GRID (vbox), buttons, 0, 1); - nmt_newt_widget_set_padding (buttons, 0, 1, 0, 0); - - priv->cancel = nmt_newt_button_box_add_end (NMT_NEWT_BUTTON_BOX (buttons), _("Cancel")); - nmt_newt_widget_set_exit_on_activate (priv->cancel, TRUE); - - priv->ok = nmt_newt_button_box_add_end (NMT_NEWT_BUTTON_BOX (buttons), _("OK")); - g_signal_connect (priv->ok, "clicked", G_CALLBACK (save_connection_and_exit), editor); - g_object_bind_property (NMT_NEWT_WIDGET (grid), "valid", - priv->ok, "sensitive", - G_BINDING_SYNC_CREATE); - - nmt_newt_form_set_content (NMT_NEWT_FORM (editor), vbox); + if (nm_connection_is_type(priv->edit_connection, NM_SETTING_PPPOE_SETTING_NAME)) + deventry_label = _("Ethernet device"); + else + deventry_label = _("Device"); + + widget = nmt_device_entry_new(deventry_label, 40, hardware_type); + nmt_editor_grid_append(grid, NULL, widget, NULL); + deventry = NMT_DEVICE_ENTRY(widget); + g_object_bind_property(s_con, + NM_SETTING_CONNECTION_INTERFACE_NAME, + deventry, + "interface-name", + G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); + + nmt_editor_grid_append(grid, NULL, nmt_newt_separator_new(), NULL); + + /* Now add the various pages... */ + + if (nm_connection_is_type(priv->edit_connection, NM_SETTING_BOND_SETTING_NAME)) + page = nmt_page_bond_new(priv->edit_connection, deventry); + else if (nm_connection_is_type(priv->edit_connection, NM_SETTING_BRIDGE_SETTING_NAME)) + page = nmt_page_bridge_new(priv->edit_connection, deventry); + else if (nm_connection_is_type(priv->edit_connection, NM_SETTING_INFINIBAND_SETTING_NAME)) + page = nmt_page_infiniband_new(priv->edit_connection, deventry); + else if (nm_connection_is_type(priv->edit_connection, NM_SETTING_PPPOE_SETTING_NAME)) + page = nmt_page_dsl_new(priv->edit_connection, deventry); + else if (nm_connection_is_type(priv->edit_connection, NM_SETTING_TEAM_SETTING_NAME)) + page = nmt_page_team_new(priv->edit_connection, deventry); + else if (nm_connection_is_type(priv->edit_connection, NM_SETTING_VLAN_SETTING_NAME)) + page = nmt_page_vlan_new(priv->edit_connection, deventry); + else if (nm_connection_is_type(priv->edit_connection, NM_SETTING_WIRED_SETTING_NAME)) + page = nmt_page_ethernet_new(priv->edit_connection, deventry); + else if (nm_connection_is_type(priv->edit_connection, NM_SETTING_WIRELESS_SETTING_NAME)) + page = nmt_page_wifi_new(priv->edit_connection, deventry); + else if (nm_connection_is_type(priv->edit_connection, NM_SETTING_IP_TUNNEL_SETTING_NAME)) + page = nmt_page_ip_tunnel_new(priv->edit_connection, deventry); + else + g_assert_not_reached(); + + add_sections_for_page(editor, grid, page); + nmt_editor_grid_append(grid, NULL, nmt_newt_separator_new(), NULL); + + slave_type = nm_setting_connection_get_slave_type(s_con); + if (slave_type) { + if (!strcmp(slave_type, NM_SETTING_BRIDGE_SETTING_NAME)) + add_sections_for_page(editor, grid, nmt_page_bridge_port_new(priv->edit_connection)); + else if (!strcmp(slave_type, NM_SETTING_TEAM_SETTING_NAME)) + add_sections_for_page(editor, grid, nmt_page_team_port_new(priv->edit_connection)); + } else { + NmtNewtWidget *section; + + section = add_sections_for_page(editor, grid, nmt_page_ip4_new(priv->edit_connection)); + + /* Add a separator between ip4 and ip6 that's only visible if ip4 is open */ + widget = nmt_newt_separator_new(); + g_object_bind_property(section, "open", widget, "visible", G_BINDING_SYNC_CREATE); + nmt_editor_grid_append(grid, NULL, widget, NULL); + + add_sections_for_page(editor, grid, nmt_page_ip6_new(priv->edit_connection)); + + nmt_editor_grid_append(grid, NULL, nmt_newt_separator_new(), NULL); + } + + /* And finally the bottom widgets */ + + widget = nmt_newt_checkbox_new(_("Automatically connect")); + g_object_bind_property(s_con, + NM_SETTING_CONNECTION_AUTOCONNECT, + widget, + "active", + G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); + nmt_editor_grid_append(grid, NULL, widget, NULL); + + widget = nmt_newt_checkbox_new(_("Available to all users")); + g_object_bind_property_full(s_con, + NM_SETTING_CONNECTION_PERMISSIONS, + widget, + "active", + G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE, + permissions_transform_to_allusers, + permissions_transform_from_allusers, + NULL, + NULL); + nmt_editor_grid_append(grid, NULL, widget, NULL); + + /* And the button box */ + + buttons = nmt_newt_button_box_new(NMT_NEWT_BUTTON_BOX_HORIZONTAL); + nmt_newt_grid_add(NMT_NEWT_GRID(vbox), buttons, 0, 1); + nmt_newt_widget_set_padding(buttons, 0, 1, 0, 0); + + priv->cancel = nmt_newt_button_box_add_end(NMT_NEWT_BUTTON_BOX(buttons), _("Cancel")); + nmt_newt_widget_set_exit_on_activate(priv->cancel, TRUE); + + priv->ok = nmt_newt_button_box_add_end(NMT_NEWT_BUTTON_BOX(buttons), _("OK")); + g_signal_connect(priv->ok, "clicked", G_CALLBACK(save_connection_and_exit), editor); + g_object_bind_property(NMT_NEWT_WIDGET(grid), + "valid", + priv->ok, + "sensitive", + G_BINDING_SYNC_CREATE); + + nmt_newt_form_set_content(NMT_NEWT_FORM(editor), vbox); } static void -nmt_editor_finalize (GObject *object) +nmt_editor_finalize(GObject *object) { - NmtEditorPrivate *priv = NMT_EDITOR_GET_PRIVATE (object); + NmtEditorPrivate *priv = NMT_EDITOR_GET_PRIVATE(object); - g_clear_object (&priv->orig_connection); - g_clear_object (&priv->edit_connection); + g_clear_object(&priv->orig_connection); + g_clear_object(&priv->edit_connection); - g_slist_free_full (priv->pages, g_object_unref); + g_slist_free_full(priv->pages, g_object_unref); - g_clear_object (&priv->ok); - g_clear_object (&priv->cancel); + g_clear_object(&priv->ok); + g_clear_object(&priv->cancel); - G_OBJECT_CLASS (nmt_editor_parent_class)->finalize (object); + G_OBJECT_CLASS(nmt_editor_parent_class)->finalize(object); } static void -nmt_editor_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) +nmt_editor_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { - NmtEditorPrivate *priv = NMT_EDITOR_GET_PRIVATE (object); - - switch (prop_id) { - case PROP_CONNECTION: - priv->orig_connection = g_value_dup_object (value); - break; - case PROP_TYPE_DATA: - priv->type_data = g_value_get_pointer (value); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtEditorPrivate *priv = NMT_EDITOR_GET_PRIVATE(object); + + switch (prop_id) { + case PROP_CONNECTION: + priv->orig_connection = g_value_dup_object(value); + break; + case PROP_TYPE_DATA: + priv->type_data = g_value_get_pointer(value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_editor_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) +nmt_editor_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - NmtEditorPrivate *priv = NMT_EDITOR_GET_PRIVATE (object); - - switch (prop_id) { - case PROP_CONNECTION: - g_value_set_object (value, priv->orig_connection); - break; - case PROP_TYPE_DATA: - g_value_set_pointer (value, priv->type_data); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtEditorPrivate *priv = NMT_EDITOR_GET_PRIVATE(object); + + switch (prop_id) { + case PROP_CONNECTION: + g_value_set_object(value, priv->orig_connection); + break; + case PROP_TYPE_DATA: + g_value_set_pointer(value, priv->type_data); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_editor_class_init (NmtEditorClass *entry_class) +nmt_editor_class_init(NmtEditorClass *entry_class) { - GObjectClass *object_class = G_OBJECT_CLASS (entry_class); + GObjectClass *object_class = G_OBJECT_CLASS(entry_class); - g_type_class_add_private (entry_class, sizeof (NmtEditorPrivate)); + g_type_class_add_private(entry_class, sizeof(NmtEditorPrivate)); - /* virtual methods */ - object_class->constructed = nmt_editor_constructed; - object_class->set_property = nmt_editor_set_property; - object_class->get_property = nmt_editor_get_property; - object_class->finalize = nmt_editor_finalize; + /* virtual methods */ + object_class->constructed = nmt_editor_constructed; + object_class->set_property = nmt_editor_set_property; + object_class->get_property = nmt_editor_get_property; + object_class->finalize = nmt_editor_finalize; - /** + /** * NmtEditor:connection: * * The connection being edited. */ - g_object_class_install_property - (object_class, PROP_CONNECTION, - g_param_spec_object ("connection", "", "", - NM_TYPE_CONNECTION, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); - /** + g_object_class_install_property( + object_class, + PROP_CONNECTION, + g_param_spec_object("connection", + "", + "", + NM_TYPE_CONNECTION, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); + /** * NmtEditor:type-data: * * The #NmEditorConnectionTypeData for #NmtEditor:connection. */ - g_object_class_install_property - (object_class, PROP_TYPE_DATA, - g_param_spec_pointer ("type-data", "", "", - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); + g_object_class_install_property( + object_class, + PROP_TYPE_DATA, + g_param_spec_pointer("type-data", + "", + "", + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); } diff --git a/clients/tui/nmt-editor.h b/clients/tui/nmt-editor.h index 17475f3791..6fccfe9af0 100644 --- a/clients/tui/nmt-editor.h +++ b/clients/tui/nmt-editor.h @@ -8,25 +8,26 @@ #include "nmt-newt.h" -#define NMT_TYPE_EDITOR (nmt_editor_get_type ()) -#define NMT_EDITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NMT_TYPE_EDITOR, NmtEditor)) -#define NMT_EDITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NMT_TYPE_EDITOR, NmtEditorClass)) -#define NMT_IS_EDITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NMT_TYPE_EDITOR)) -#define NMT_IS_EDITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NMT_TYPE_EDITOR)) -#define NMT_EDITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NMT_TYPE_EDITOR, NmtEditorClass)) +#define NMT_TYPE_EDITOR (nmt_editor_get_type()) +#define NMT_EDITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), NMT_TYPE_EDITOR, NmtEditor)) +#define NMT_EDITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), NMT_TYPE_EDITOR, NmtEditorClass)) +#define NMT_IS_EDITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), NMT_TYPE_EDITOR)) +#define NMT_IS_EDITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), NMT_TYPE_EDITOR)) +#define NMT_EDITOR_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), NMT_TYPE_EDITOR, NmtEditorClass)) typedef struct { - NmtNewtForm parent; + NmtNewtForm parent; } NmtEditor; typedef struct { - NmtNewtFormClass parent; + NmtNewtFormClass parent; } NmtEditorClass; -GType nmt_editor_get_type (void); +GType nmt_editor_get_type(void); -NmtNewtForm *nmt_editor_new (NMConnection *connection); +NmtNewtForm *nmt_editor_new(NMConnection *connection); #endif /* NMT_EDITOR_H */ diff --git a/clients/tui/nmt-ip-entry.c b/clients/tui/nmt-ip-entry.c index 2b3ade2b38..c22775bc7e 100644 --- a/clients/tui/nmt-ip-entry.c +++ b/clients/tui/nmt-ip-entry.c @@ -22,24 +22,25 @@ #include "nmt-ip-entry.h" -G_DEFINE_TYPE (NmtIPEntry, nmt_ip_entry, NMT_TYPE_NEWT_ENTRY) +G_DEFINE_TYPE(NmtIPEntry, nmt_ip_entry, NMT_TYPE_NEWT_ENTRY) -#define NMT_IP_ENTRY_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NMT_TYPE_IP_ENTRY, NmtIPEntryPrivate)) +#define NMT_IP_ENTRY_GET_PRIVATE(o) \ + (G_TYPE_INSTANCE_GET_PRIVATE((o), NMT_TYPE_IP_ENTRY, NmtIPEntryPrivate)) typedef struct { - int family; - gboolean prefix; - gboolean optional; + int family; + gboolean prefix; + gboolean optional; } NmtIPEntryPrivate; enum { - PROP_0, - PROP_FAMILY, - PROP_PREFIX, - PROP_OPTIONAL, + PROP_0, + PROP_FAMILY, + PROP_PREFIX, + PROP_OPTIONAL, - LAST_PROP + LAST_PROP }; /** @@ -57,170 +58,164 @@ enum { * @optional is %FALSE, the entry will be invalid when it is empty. */ NmtNewtWidget * -nmt_ip_entry_new (int width, - int family, - gboolean prefix, - gboolean optional) +nmt_ip_entry_new(int width, int family, gboolean prefix, gboolean optional) { - return g_object_new (NMT_TYPE_IP_ENTRY, - "width", width, - "family", family, - "prefix", prefix, - "optional", optional, - NULL); + return g_object_new(NMT_TYPE_IP_ENTRY, + "width", + width, + "family", + family, + "prefix", + prefix, + "optional", + optional, + NULL); } static gboolean -ip_entry_filter (NmtNewtEntry *entry, - const char *text, - int ch, - int position, - gpointer user_data) +ip_entry_filter(NmtNewtEntry *entry, const char *text, int ch, int position, gpointer user_data) { - NmtIPEntryPrivate *priv = NMT_IP_ENTRY_GET_PRIVATE (entry); - const char *slash; - gboolean inaddr; - - if (g_ascii_isdigit (ch)) - return TRUE; - - slash = strchr (text, '/'); - if (ch == '/') - return priv->prefix && slash == NULL; - - inaddr = !slash || (position <= (slash - text)); - - if (priv->family == AF_INET) { - if (ch == '.') - return inaddr; - else - return FALSE; - } else if (priv->family == AF_INET6) { - if (g_ascii_isxdigit (ch) || ch == ':') - return inaddr; - else - return FALSE; - } else - g_return_val_if_reached (FALSE); + NmtIPEntryPrivate *priv = NMT_IP_ENTRY_GET_PRIVATE(entry); + const char * slash; + gboolean inaddr; + + if (g_ascii_isdigit(ch)) + return TRUE; + + slash = strchr(text, '/'); + if (ch == '/') + return priv->prefix && slash == NULL; + + inaddr = !slash || (position <= (slash - text)); + + if (priv->family == AF_INET) { + if (ch == '.') + return inaddr; + else + return FALSE; + } else if (priv->family == AF_INET6) { + if (g_ascii_isxdigit(ch) || ch == ':') + return inaddr; + else + return FALSE; + } else + g_return_val_if_reached(FALSE); } static gboolean -ip_entry_validate (NmtNewtEntry *entry, - const char *text, - gpointer user_data) +ip_entry_validate(NmtNewtEntry *entry, const char *text, gpointer user_data) { - NmtIPEntryPrivate *priv = NMT_IP_ENTRY_GET_PRIVATE (entry); + NmtIPEntryPrivate *priv = NMT_IP_ENTRY_GET_PRIVATE(entry); - if (!*text) - return priv->optional; - if (priv->prefix) - return nm_utils_parse_inaddr_prefix (priv->family, text, NULL, NULL); - return nm_utils_parse_inaddr (priv->family, text, NULL); + if (!*text) + return priv->optional; + if (priv->prefix) + return nm_utils_parse_inaddr_prefix(priv->family, text, NULL, NULL); + return nm_utils_parse_inaddr(priv->family, text, NULL); } static void -nmt_ip_entry_init (NmtIPEntry *entry) +nmt_ip_entry_init(NmtIPEntry *entry) { - nmt_newt_entry_set_filter (NMT_NEWT_ENTRY (entry), ip_entry_filter, NULL); - nmt_newt_entry_set_validator (NMT_NEWT_ENTRY (entry), ip_entry_validate, NULL); + nmt_newt_entry_set_filter(NMT_NEWT_ENTRY(entry), ip_entry_filter, NULL); + nmt_newt_entry_set_validator(NMT_NEWT_ENTRY(entry), ip_entry_validate, NULL); } static void -nmt_ip_entry_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) +nmt_ip_entry_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { - NmtIPEntryPrivate *priv = NMT_IP_ENTRY_GET_PRIVATE (object); - - switch (prop_id) { - case PROP_FAMILY: - priv->family = g_value_get_int (value); - break; - case PROP_PREFIX: - priv->prefix = g_value_get_boolean (value); - break; - case PROP_OPTIONAL: - priv->optional = g_value_get_boolean (value); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtIPEntryPrivate *priv = NMT_IP_ENTRY_GET_PRIVATE(object); + + switch (prop_id) { + case PROP_FAMILY: + priv->family = g_value_get_int(value); + break; + case PROP_PREFIX: + priv->prefix = g_value_get_boolean(value); + break; + case PROP_OPTIONAL: + priv->optional = g_value_get_boolean(value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_ip_entry_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) +nmt_ip_entry_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - NmtIPEntryPrivate *priv = NMT_IP_ENTRY_GET_PRIVATE (object); - - switch (prop_id) { - case PROP_FAMILY: - g_value_set_int (value, priv->family); - break; - case PROP_PREFIX: - g_value_set_boolean (value, priv->prefix); - break; - case PROP_OPTIONAL: - g_value_set_boolean (value, priv->optional); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtIPEntryPrivate *priv = NMT_IP_ENTRY_GET_PRIVATE(object); + + switch (prop_id) { + case PROP_FAMILY: + g_value_set_int(value, priv->family); + break; + case PROP_PREFIX: + g_value_set_boolean(value, priv->prefix); + break; + case PROP_OPTIONAL: + g_value_set_boolean(value, priv->optional); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_ip_entry_class_init (NmtIPEntryClass *entry_class) +nmt_ip_entry_class_init(NmtIPEntryClass *entry_class) { - GObjectClass *object_class = G_OBJECT_CLASS (entry_class); + GObjectClass *object_class = G_OBJECT_CLASS(entry_class); - g_type_class_add_private (entry_class, sizeof (NmtIPEntryPrivate)); + g_type_class_add_private(entry_class, sizeof(NmtIPEntryPrivate)); - /* virtual methods */ - object_class->set_property = nmt_ip_entry_set_property; - object_class->get_property = nmt_ip_entry_get_property; + /* virtual methods */ + object_class->set_property = nmt_ip_entry_set_property; + object_class->get_property = nmt_ip_entry_get_property; - /** + /** * NmtIPEntry:family: * * The address family. Eg, %AF_INET */ - g_object_class_install_property - (object_class, PROP_FAMILY, - g_param_spec_int ("family", "", "", - 0, G_MAXINT, 0, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); - /** + g_object_class_install_property( + object_class, + PROP_FAMILY, + g_param_spec_int("family", + "", + "", + 0, + G_MAXINT, + 0, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); + /** * NmtIPEntry:prefix: * * If %TRUE, the entry accepts address/prefix combinations. If * %FALSE it accepts just addresses. */ - g_object_class_install_property - (object_class, PROP_PREFIX, - g_param_spec_boolean ("prefix", "", "", - FALSE, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); - /** + g_object_class_install_property( + object_class, + PROP_PREFIX, + g_param_spec_boolean("prefix", + "", + "", + FALSE, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); + /** * NmtIPEntry:optional: * * If %TRUE, the entry will be #NmtNewtWidget:valid when it is * empty. If %FALSE, it will only be valid when it contains a * valid address or address/prefix. */ - g_object_class_install_property - (object_class, PROP_OPTIONAL, - g_param_spec_boolean ("optional", "", "", - FALSE, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); + g_object_class_install_property( + object_class, + PROP_OPTIONAL, + g_param_spec_boolean("optional", + "", + "", + FALSE, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); } diff --git a/clients/tui/nmt-ip-entry.h b/clients/tui/nmt-ip-entry.h index ea8709fc0d..63febf0345 100644 --- a/clients/tui/nmt-ip-entry.h +++ b/clients/tui/nmt-ip-entry.h @@ -8,28 +8,27 @@ #include "nmt-newt.h" -#define NMT_TYPE_IP_ENTRY (nmt_ip_entry_get_type ()) -#define NMT_IP_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NMT_TYPE_IP_ENTRY, NmtIPEntry)) -#define NMT_IP_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NMT_TYPE_IP_ENTRY, NmtIPEntryClass)) -#define NMT_IS_IP_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NMT_TYPE_IP_ENTRY)) -#define NMT_IS_IP_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NMT_TYPE_IP_ENTRY)) -#define NMT_IP_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NMT_TYPE_IP_ENTRY, NmtIPEntryClass)) +#define NMT_TYPE_IP_ENTRY (nmt_ip_entry_get_type()) +#define NMT_IP_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), NMT_TYPE_IP_ENTRY, NmtIPEntry)) +#define NMT_IP_ENTRY_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), NMT_TYPE_IP_ENTRY, NmtIPEntryClass)) +#define NMT_IS_IP_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), NMT_TYPE_IP_ENTRY)) +#define NMT_IS_IP_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), NMT_TYPE_IP_ENTRY)) +#define NMT_IP_ENTRY_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), NMT_TYPE_IP_ENTRY, NmtIPEntryClass)) typedef struct { - NmtNewtEntry parent; + NmtNewtEntry parent; } NmtIPEntry; typedef struct { - NmtNewtEntryClass parent; + NmtNewtEntryClass parent; } NmtIPEntryClass; -GType nmt_ip_entry_get_type (void); +GType nmt_ip_entry_get_type(void); -NmtNewtWidget *nmt_ip_entry_new (int width, - int family, - gboolean prefix, - gboolean optional); +NmtNewtWidget *nmt_ip_entry_new(int width, int family, gboolean prefix, gboolean optional); #endif /* NMT_IP_ENTRY_H */ diff --git a/clients/tui/nmt-mac-entry.c b/clients/tui/nmt-mac-entry.c index 9f5f1c796b..5101c326da 100644 --- a/clients/tui/nmt-mac-entry.c +++ b/clients/tui/nmt-mac-entry.c @@ -19,24 +19,25 @@ #include "nm-libnm-core-intern/nm-common-macros.h" -G_DEFINE_TYPE (NmtMacEntry, nmt_mac_entry, NMT_TYPE_NEWT_ENTRY) +G_DEFINE_TYPE(NmtMacEntry, nmt_mac_entry, NMT_TYPE_NEWT_ENTRY) -#define NMT_MAC_ENTRY_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NMT_TYPE_MAC_ENTRY, NmtMacEntryPrivate)) +#define NMT_MAC_ENTRY_GET_PRIVATE(o) \ + (G_TYPE_INSTANCE_GET_PRIVATE((o), NMT_TYPE_MAC_ENTRY, NmtMacEntryPrivate)) typedef struct { - int mac_length; - int mac_str_length; - NmtMacEntryType entry_type; + int mac_length; + int mac_str_length; + NmtMacEntryType entry_type; } NmtMacEntryPrivate; enum { - PROP_0, - PROP_MAC_LENGTH, - PROP_MAC_ADDRESS, - PROP_ENTRY_TYPE, + PROP_0, + PROP_MAC_LENGTH, + PROP_MAC_ADDRESS, + PROP_ENTRY_TYPE, - LAST_PROP + LAST_PROP }; /** @@ -51,198 +52,189 @@ enum { * Returns: a new #NmtMacEntry. */ NmtNewtWidget * -nmt_mac_entry_new (int width, - int mac_length, - NmtMacEntryType entry_type) +nmt_mac_entry_new(int width, int mac_length, NmtMacEntryType entry_type) { - return g_object_new (NMT_TYPE_MAC_ENTRY, - "width", width, - "mac-length", mac_length, - "entry-type", (int) entry_type, - NULL); + return g_object_new(NMT_TYPE_MAC_ENTRY, + "width", + width, + "mac-length", + mac_length, + "entry-type", + (int) entry_type, + NULL); } static gboolean -mac_filter (NmtNewtEntry *entry, - const char *text, - int ch, - int position, - gpointer user_data) +mac_filter(NmtNewtEntry *entry, const char *text, int ch, int position, gpointer user_data) { - NmtMacEntryPrivate *priv = NMT_MAC_ENTRY_GET_PRIVATE (entry); + NmtMacEntryPrivate *priv = NMT_MAC_ENTRY_GET_PRIVATE(entry); - if (priv->entry_type != NMT_MAC_ENTRY_TYPE_MAC) - return TRUE; + if (priv->entry_type != NMT_MAC_ENTRY_TYPE_MAC) + return TRUE; - if (position >= priv->mac_str_length) - return FALSE; + if (position >= priv->mac_str_length) + return FALSE; - return g_ascii_isxdigit (ch) || ch == ':'; + return g_ascii_isxdigit(ch) || ch == ':'; } static gboolean -mac_validator (NmtNewtEntry *entry, - const char *text, - gpointer user_data) +mac_validator(NmtNewtEntry *entry, const char *text, gpointer user_data) { - NmtMacEntryPrivate *priv = NMT_MAC_ENTRY_GET_PRIVATE (entry); - const char *p; + NmtMacEntryPrivate *priv = NMT_MAC_ENTRY_GET_PRIVATE(entry); + const char * p; - if (!*text) - return TRUE; + if (!*text) + return TRUE; - if (priv->entry_type == NMT_MAC_ENTRY_TYPE_CLONED) { - if (NM_CLONED_MAC_IS_SPECIAL (text)) - return TRUE; - } + if (priv->entry_type == NMT_MAC_ENTRY_TYPE_CLONED) { + if (NM_CLONED_MAC_IS_SPECIAL(text)) + return TRUE; + } - p = text; - while ( g_ascii_isxdigit (p[0]) - && g_ascii_isxdigit (p[1]) - && p[2] == ':') - p += 3; + p = text; + while (g_ascii_isxdigit(p[0]) && g_ascii_isxdigit(p[1]) && p[2] == ':') + p += 3; - if ( !g_ascii_isxdigit (p[0]) - || !g_ascii_isxdigit (p[1])) - return FALSE; - p += 2; + if (!g_ascii_isxdigit(p[0]) || !g_ascii_isxdigit(p[1])) + return FALSE; + p += 2; - if (!*p) - return (p - text == priv->mac_str_length); + if (!*p) + return (p - text == priv->mac_str_length); - if ( g_ascii_isxdigit (p[0]) - && !p[1] - && p - text < priv->mac_str_length) { - char *fixed = g_strdup_printf ("%.*s:%c", (int)(p - text), text, *p); + if (g_ascii_isxdigit(p[0]) && !p[1] && p - text < priv->mac_str_length) { + char *fixed = g_strdup_printf("%.*s:%c", (int) (p - text), text, *p); - nmt_newt_entry_set_text (entry, fixed); - g_free (fixed); + nmt_newt_entry_set_text(entry, fixed); + g_free(fixed); - /* FIXME: NmtNewtEntry doesn't correctly deal with us calling set_text() + /* FIXME: NmtNewtEntry doesn't correctly deal with us calling set_text() * from inside the validator. */ - nmt_newt_widget_needs_rebuild (NMT_NEWT_WIDGET (entry)); - } + nmt_newt_widget_needs_rebuild(NMT_NEWT_WIDGET(entry)); + } - return FALSE; + return FALSE; } static void -nmt_mac_entry_init (NmtMacEntry *entry) +nmt_mac_entry_init(NmtMacEntry *entry) { - nmt_newt_entry_set_filter (NMT_NEWT_ENTRY (entry), mac_filter, NULL); - nmt_newt_entry_set_validator (NMT_NEWT_ENTRY (entry), mac_validator, NULL); + nmt_newt_entry_set_filter(NMT_NEWT_ENTRY(entry), mac_filter, NULL); + nmt_newt_entry_set_validator(NMT_NEWT_ENTRY(entry), mac_validator, NULL); } static void -nmt_mac_entry_notify (GObject *object, - GParamSpec *pspec) +nmt_mac_entry_notify(GObject *object, GParamSpec *pspec) { - if (G_OBJECT_CLASS (nmt_mac_entry_parent_class)->notify) - G_OBJECT_CLASS (nmt_mac_entry_parent_class)->notify (object, pspec); + if (G_OBJECT_CLASS(nmt_mac_entry_parent_class)->notify) + G_OBJECT_CLASS(nmt_mac_entry_parent_class)->notify(object, pspec); - if (pspec->owner_type == NMT_TYPE_NEWT_ENTRY && !strcmp (pspec->name, "text")) - g_object_notify (object, "mac-address"); + if (pspec->owner_type == NMT_TYPE_NEWT_ENTRY && !strcmp(pspec->name, "text")) + g_object_notify(object, "mac-address"); } static void -nmt_mac_entry_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) +nmt_mac_entry_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { - NmtMacEntryPrivate *priv = NMT_MAC_ENTRY_GET_PRIVATE (object); - - switch (prop_id) { - case PROP_MAC_LENGTH: - priv->mac_length = g_value_get_int (value); - priv->mac_str_length = priv->mac_length * 3 - 1; - break; - case PROP_MAC_ADDRESS: - nmt_newt_entry_set_text (NMT_NEWT_ENTRY (object), g_value_get_string (value)); - break; - case PROP_ENTRY_TYPE: - /* construct-only */ - priv->entry_type = g_value_get_int (value); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtMacEntryPrivate *priv = NMT_MAC_ENTRY_GET_PRIVATE(object); + + switch (prop_id) { + case PROP_MAC_LENGTH: + priv->mac_length = g_value_get_int(value); + priv->mac_str_length = priv->mac_length * 3 - 1; + break; + case PROP_MAC_ADDRESS: + nmt_newt_entry_set_text(NMT_NEWT_ENTRY(object), g_value_get_string(value)); + break; + case PROP_ENTRY_TYPE: + /* construct-only */ + priv->entry_type = g_value_get_int(value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_mac_entry_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) +nmt_mac_entry_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - NmtMacEntryPrivate *priv = NMT_MAC_ENTRY_GET_PRIVATE (object); - - switch (prop_id) { - case PROP_MAC_LENGTH: - g_value_set_int (value, priv->mac_length); - break; - case PROP_MAC_ADDRESS: - g_value_set_string (value, - nm_str_not_empty (nmt_newt_entry_get_text (NMT_NEWT_ENTRY (object)))); - break; - case PROP_ENTRY_TYPE: - g_value_set_int (value, priv->entry_type); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtMacEntryPrivate *priv = NMT_MAC_ENTRY_GET_PRIVATE(object); + + switch (prop_id) { + case PROP_MAC_LENGTH: + g_value_set_int(value, priv->mac_length); + break; + case PROP_MAC_ADDRESS: + g_value_set_string(value, + nm_str_not_empty(nmt_newt_entry_get_text(NMT_NEWT_ENTRY(object)))); + break; + case PROP_ENTRY_TYPE: + g_value_set_int(value, priv->entry_type); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_mac_entry_class_init (NmtMacEntryClass *entry_class) +nmt_mac_entry_class_init(NmtMacEntryClass *entry_class) { - GObjectClass *object_class = G_OBJECT_CLASS (entry_class); + GObjectClass *object_class = G_OBJECT_CLASS(entry_class); - g_type_class_add_private (entry_class, sizeof (NmtMacEntryPrivate)); + g_type_class_add_private(entry_class, sizeof(NmtMacEntryPrivate)); - /* virtual methods */ - object_class->notify = nmt_mac_entry_notify; - object_class->set_property = nmt_mac_entry_set_property; - object_class->get_property = nmt_mac_entry_get_property; + /* virtual methods */ + object_class->notify = nmt_mac_entry_notify; + object_class->set_property = nmt_mac_entry_set_property; + object_class->get_property = nmt_mac_entry_get_property; - /** + /** * NmtMacEntry:mac-length: * * The length in bytes of the hardware address type the entry * accepts: either %ETH_ALEN or %INFINIBAND_ALEN. */ - g_object_class_install_property - (object_class, PROP_MAC_LENGTH, - g_param_spec_int ("mac-length", "", "", - 0, INFINIBAND_ALEN, ETH_ALEN, - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS)); - /** + g_object_class_install_property(object_class, + PROP_MAC_LENGTH, + g_param_spec_int("mac-length", + "", + "", + 0, + INFINIBAND_ALEN, + ETH_ALEN, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** * NmtMacEntry:mac-address: * * The MAC address, as a string (as with the various #NMSetting * "mac-address" properties). */ - g_object_class_install_property - (object_class, PROP_MAC_ADDRESS, - g_param_spec_string ("mac-address", "", "", - NULL, - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS)); - /** + g_object_class_install_property( + object_class, + PROP_MAC_ADDRESS, + g_param_spec_string("mac-address", + "", + "", + NULL, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** * NmtMacEntry:entry-type: * * The type of the #NmtMacEntry. Can be either used for plain * MAC addresses or for the extended format for cloned MAC addresses. */ - g_object_class_install_property - (object_class, PROP_ENTRY_TYPE, - g_param_spec_int ("entry-type", "", "", - NMT_MAC_ENTRY_TYPE_MAC, NMT_MAC_ENTRY_TYPE_CLONED, NMT_MAC_ENTRY_TYPE_MAC, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); + g_object_class_install_property( + object_class, + PROP_ENTRY_TYPE, + g_param_spec_int("entry-type", + "", + "", + NMT_MAC_ENTRY_TYPE_MAC, + NMT_MAC_ENTRY_TYPE_CLONED, + NMT_MAC_ENTRY_TYPE_MAC, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); } diff --git a/clients/tui/nmt-mac-entry.h b/clients/tui/nmt-mac-entry.h index 5845c07b2a..51ac09328b 100644 --- a/clients/tui/nmt-mac-entry.h +++ b/clients/tui/nmt-mac-entry.h @@ -10,31 +10,31 @@ #include "nmt-newt.h" typedef enum { /*< skip >*/ - NMT_MAC_ENTRY_TYPE_MAC, - NMT_MAC_ENTRY_TYPE_CLONED, + NMT_MAC_ENTRY_TYPE_MAC, + NMT_MAC_ENTRY_TYPE_CLONED, } NmtMacEntryType; -#define NMT_TYPE_MAC_ENTRY (nmt_mac_entry_get_type ()) -#define NMT_MAC_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NMT_TYPE_MAC_ENTRY, NmtMacEntry)) -#define NMT_MAC_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NMT_TYPE_MAC_ENTRY, NmtMacEntryClass)) -#define NMT_IS_MAC_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NMT_TYPE_MAC_ENTRY)) -#define NMT_IS_MAC_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NMT_TYPE_MAC_ENTRY)) -#define NMT_MAC_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NMT_TYPE_MAC_ENTRY, NmtMacEntryClass)) +#define NMT_TYPE_MAC_ENTRY (nmt_mac_entry_get_type()) +#define NMT_MAC_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), NMT_TYPE_MAC_ENTRY, NmtMacEntry)) +#define NMT_MAC_ENTRY_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), NMT_TYPE_MAC_ENTRY, NmtMacEntryClass)) +#define NMT_IS_MAC_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), NMT_TYPE_MAC_ENTRY)) +#define NMT_IS_MAC_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), NMT_TYPE_MAC_ENTRY)) +#define NMT_MAC_ENTRY_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), NMT_TYPE_MAC_ENTRY, NmtMacEntryClass)) typedef struct { - NmtNewtEntry parent; + NmtNewtEntry parent; } NmtMacEntry; typedef struct { - NmtNewtEntryClass parent; + NmtNewtEntryClass parent; } NmtMacEntryClass; -GType nmt_mac_entry_get_type (void); +GType nmt_mac_entry_get_type(void); -NmtNewtWidget *nmt_mac_entry_new (int width, - int mac_length, - NmtMacEntryType type); +NmtNewtWidget *nmt_mac_entry_new(int width, int mac_length, NmtMacEntryType type); #endif /* NMT_MAC_ENTRY_H */ diff --git a/clients/tui/nmt-mtu-entry.c b/clients/tui/nmt-mtu-entry.c index f782ee0104..7b5c304590 100644 --- a/clients/tui/nmt-mtu-entry.c +++ b/clients/tui/nmt-mtu-entry.c @@ -23,23 +23,24 @@ #include "nmt-mtu-entry.h" -G_DEFINE_TYPE (NmtMtuEntry, nmt_mtu_entry, NMT_TYPE_NEWT_GRID) +G_DEFINE_TYPE(NmtMtuEntry, nmt_mtu_entry, NMT_TYPE_NEWT_GRID) -#define NMT_MTU_ENTRY_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NMT_TYPE_MTU_ENTRY, NmtMtuEntryPrivate)) +#define NMT_MTU_ENTRY_GET_PRIVATE(o) \ + (G_TYPE_INSTANCE_GET_PRIVATE((o), NMT_TYPE_MTU_ENTRY, NmtMtuEntryPrivate)) typedef struct { - int mtu; + int mtu; - NmtNewtEntry *entry; - NmtNewtLabel *label; + NmtNewtEntry *entry; + NmtNewtLabel *label; } NmtMtuEntryPrivate; enum { - PROP_0, - PROP_MTU, + PROP_0, + PROP_MTU, - LAST_PROP + LAST_PROP }; /** @@ -50,128 +51,126 @@ enum { * Returns: a new #NmtMtuEntry */ NmtNewtWidget * -nmt_mtu_entry_new (void) +nmt_mtu_entry_new(void) { - return g_object_new (NMT_TYPE_MTU_ENTRY, NULL); + return g_object_new(NMT_TYPE_MTU_ENTRY, NULL); } static gboolean -mtu_validator (NmtNewtEntry *entry, - const char *text, - gpointer user_data) +mtu_validator(NmtNewtEntry *entry, const char *text, gpointer user_data) { - NmtMtuEntryPrivate *priv = NMT_MTU_ENTRY_GET_PRIVATE (user_data); + NmtMtuEntryPrivate *priv = NMT_MTU_ENTRY_GET_PRIVATE(user_data); - if (*text && !atoi (text)) { - nmt_newt_entry_set_text (entry, ""); - text = ""; - } + if (*text && !atoi(text)) { + nmt_newt_entry_set_text(entry, ""); + text = ""; + } - if (!*text) - nmt_newt_label_set_text (priv->label, _("(default)")); - else - nmt_newt_label_set_text (priv->label, _("bytes")); + if (!*text) + nmt_newt_label_set_text(priv->label, _("(default)")); + else + nmt_newt_label_set_text(priv->label, _("bytes")); - return TRUE; + return TRUE; } static gboolean -mtu_transform_to_text (GBinding *binding, - const GValue *source_value, - GValue *target_value, - gpointer user_data) +mtu_transform_to_text(GBinding * binding, + const GValue *source_value, + GValue * target_value, + gpointer user_data) { - int mtu = g_value_get_int (source_value); + int mtu = g_value_get_int(source_value); - if (mtu) - g_value_transform (source_value, target_value); - else - g_value_set_string (target_value, ""); - return TRUE; + if (mtu) + g_value_transform(source_value, target_value); + else + g_value_set_string(target_value, ""); + return TRUE; } static void -nmt_mtu_entry_init (NmtMtuEntry *entry) +nmt_mtu_entry_init(NmtMtuEntry *entry) { - - NmtMtuEntryPrivate *priv = NMT_MTU_ENTRY_GET_PRIVATE (entry); - NmtNewtGrid *grid = NMT_NEWT_GRID (entry); - NmtNewtWidget *real_entry, *label; - - real_entry = nmt_newt_entry_numeric_new (10, 0, 65535); - priv->entry = NMT_NEWT_ENTRY (real_entry); - - label = nmt_newt_label_new (_("bytes")); - priv->label = NMT_NEWT_LABEL (label); - - nmt_newt_grid_add (grid, real_entry, 0, 0); - nmt_newt_grid_add (grid, label, 1, 0); - nmt_newt_widget_set_padding (label, 1, 0, 0, 0); - - nmt_newt_entry_set_validator (priv->entry, mtu_validator, entry); - g_object_bind_property_full (entry, "mtu", real_entry, "text", - G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE, - mtu_transform_to_text, - NULL, - NULL, NULL); + NmtMtuEntryPrivate *priv = NMT_MTU_ENTRY_GET_PRIVATE(entry); + NmtNewtGrid * grid = NMT_NEWT_GRID(entry); + NmtNewtWidget * real_entry, *label; + + real_entry = nmt_newt_entry_numeric_new(10, 0, 65535); + priv->entry = NMT_NEWT_ENTRY(real_entry); + + label = nmt_newt_label_new(_("bytes")); + priv->label = NMT_NEWT_LABEL(label); + + nmt_newt_grid_add(grid, real_entry, 0, 0); + nmt_newt_grid_add(grid, label, 1, 0); + nmt_newt_widget_set_padding(label, 1, 0, 0, 0); + + nmt_newt_entry_set_validator(priv->entry, mtu_validator, entry); + g_object_bind_property_full(entry, + "mtu", + real_entry, + "text", + G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE, + mtu_transform_to_text, + NULL, + NULL, + NULL); } static void -nmt_mtu_entry_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) +nmt_mtu_entry_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { - NmtMtuEntryPrivate *priv = NMT_MTU_ENTRY_GET_PRIVATE (object); - - switch (prop_id) { - case PROP_MTU: - priv->mtu = g_value_get_int (value); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtMtuEntryPrivate *priv = NMT_MTU_ENTRY_GET_PRIVATE(object); + + switch (prop_id) { + case PROP_MTU: + priv->mtu = g_value_get_int(value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_mtu_entry_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) +nmt_mtu_entry_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - NmtMtuEntryPrivate *priv = NMT_MTU_ENTRY_GET_PRIVATE (object); - - switch (prop_id) { - case PROP_MTU: - g_value_set_int (value, priv->mtu); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtMtuEntryPrivate *priv = NMT_MTU_ENTRY_GET_PRIVATE(object); + + switch (prop_id) { + case PROP_MTU: + g_value_set_int(value, priv->mtu); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_mtu_entry_class_init (NmtMtuEntryClass *entry_class) +nmt_mtu_entry_class_init(NmtMtuEntryClass *entry_class) { - GObjectClass *object_class = G_OBJECT_CLASS (entry_class); + GObjectClass *object_class = G_OBJECT_CLASS(entry_class); - g_type_class_add_private (entry_class, sizeof (NmtMtuEntryPrivate)); + g_type_class_add_private(entry_class, sizeof(NmtMtuEntryPrivate)); - /* virtual methods */ - object_class->set_property = nmt_mtu_entry_set_property; - object_class->get_property = nmt_mtu_entry_get_property; + /* virtual methods */ + object_class->set_property = nmt_mtu_entry_set_property; + object_class->get_property = nmt_mtu_entry_get_property; - /** + /** * NmtMtuEntry:mtu: * * The contents of the entry, as a number. */ - g_object_class_install_property - (object_class, PROP_MTU, - g_param_spec_int ("mtu", "", "", - 0, G_MAXINT, 0, - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS)); + g_object_class_install_property(object_class, + PROP_MTU, + g_param_spec_int("mtu", + "", + "", + 0, + G_MAXINT, + 0, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); } diff --git a/clients/tui/nmt-mtu-entry.h b/clients/tui/nmt-mtu-entry.h index 61aaccfcab..a199144b38 100644 --- a/clients/tui/nmt-mtu-entry.h +++ b/clients/tui/nmt-mtu-entry.h @@ -8,25 +8,27 @@ #include "nmt-newt.h" -#define NMT_TYPE_MTU_ENTRY (nmt_mtu_entry_get_type ()) -#define NMT_MTU_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NMT_TYPE_MTU_ENTRY, NmtMtuEntry)) -#define NMT_MTU_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NMT_TYPE_MTU_ENTRY, NmtMtuEntryClass)) -#define NMT_IS_MTU_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NMT_TYPE_MTU_ENTRY)) -#define NMT_IS_MTU_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NMT_TYPE_MTU_ENTRY)) -#define NMT_MTU_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NMT_TYPE_MTU_ENTRY, NmtMtuEntryClass)) +#define NMT_TYPE_MTU_ENTRY (nmt_mtu_entry_get_type()) +#define NMT_MTU_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), NMT_TYPE_MTU_ENTRY, NmtMtuEntry)) +#define NMT_MTU_ENTRY_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), NMT_TYPE_MTU_ENTRY, NmtMtuEntryClass)) +#define NMT_IS_MTU_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), NMT_TYPE_MTU_ENTRY)) +#define NMT_IS_MTU_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), NMT_TYPE_MTU_ENTRY)) +#define NMT_MTU_ENTRY_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), NMT_TYPE_MTU_ENTRY, NmtMtuEntryClass)) typedef struct { - NmtNewtGrid parent; + NmtNewtGrid parent; } NmtMtuEntry; typedef struct { - NmtNewtGridClass parent; + NmtNewtGridClass parent; } NmtMtuEntryClass; -GType nmt_mtu_entry_get_type (void); +GType nmt_mtu_entry_get_type(void); -NmtNewtWidget *nmt_mtu_entry_new (void); +NmtNewtWidget *nmt_mtu_entry_new(void); #endif /* NMT_MTU_ENTRY_H */ diff --git a/clients/tui/nmt-page-bond.c b/clients/tui/nmt-page-bond.c index bbe18e0536..d732b58ba8 100644 --- a/clients/tui/nmt-page-bond.c +++ b/clients/tui/nmt-page-bond.c @@ -21,456 +21,422 @@ #include "nmt-address-list.h" #include "nmt-slave-list.h" -G_DEFINE_TYPE (NmtPageBond, nmt_page_bond, NMT_TYPE_EDITOR_PAGE_DEVICE) +G_DEFINE_TYPE(NmtPageBond, nmt_page_bond, NMT_TYPE_EDITOR_PAGE_DEVICE) -#define NMT_PAGE_BOND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NMT_TYPE_PAGE_BOND, NmtPageBondPrivate)) +#define NMT_PAGE_BOND_GET_PRIVATE(o) \ + (G_TYPE_INSTANCE_GET_PRIVATE((o), NMT_TYPE_PAGE_BOND, NmtPageBondPrivate)) typedef enum { - NMT_PAGE_BOND_MONITORING_UNKNOWN = -1, - NMT_PAGE_BOND_MONITORING_MII = 0, - NMT_PAGE_BOND_MONITORING_ARP = 1, + NMT_PAGE_BOND_MONITORING_UNKNOWN = -1, + NMT_PAGE_BOND_MONITORING_MII = 0, + NMT_PAGE_BOND_MONITORING_ARP = 1, } NmtPageBondMonitoringMode; typedef struct { - NmtSlaveList *slaves; + NmtSlaveList *slaves; - /* Note: when adding new options to the UI also ensure they are + /* Note: when adding new options to the UI also ensure they are * initialized in bond_connection_setup_func() */ - NmtNewtPopup *mode; - NmtNewtEntry *primary; - NmtNewtPopup *monitoring; - NmtNewtEntry *miimon; - NmtNewtEntry *updelay; - NmtNewtEntry *downdelay; - NmtNewtEntry *arp_interval; - NmtAddressList *arp_ip_target; - - NmtPageBondMonitoringMode monitoring_mode; - - NMSettingBond *s_bond; - GType slave_type; - gboolean updating; + NmtNewtPopup * mode; + NmtNewtEntry * primary; + NmtNewtPopup * monitoring; + NmtNewtEntry * miimon; + NmtNewtEntry * updelay; + NmtNewtEntry * downdelay; + NmtNewtEntry * arp_interval; + NmtAddressList *arp_ip_target; + + NmtPageBondMonitoringMode monitoring_mode; + + NMSettingBond *s_bond; + GType slave_type; + gboolean updating; } NmtPageBondPrivate; /*****************************************************************************/ -static void arp_ip_target_widget_changed (GObject *object, - GParamSpec *pspec, - gpointer user_data); +static void arp_ip_target_widget_changed(GObject *object, GParamSpec *pspec, gpointer user_data); /*****************************************************************************/ NmtEditorPage * -nmt_page_bond_new (NMConnection *conn, - NmtDeviceEntry *deventry) +nmt_page_bond_new(NMConnection *conn, NmtDeviceEntry *deventry) { - return g_object_new (NMT_TYPE_PAGE_BOND, - "connection", conn, - "device-entry", deventry, - NULL); + return g_object_new(NMT_TYPE_PAGE_BOND, "connection", conn, "device-entry", deventry, NULL); } static void -nmt_page_bond_init (NmtPageBond *bond) +nmt_page_bond_init(NmtPageBond *bond) { - NmtPageBondPrivate *priv = NMT_PAGE_BOND_GET_PRIVATE (bond); + NmtPageBondPrivate *priv = NMT_PAGE_BOND_GET_PRIVATE(bond); - priv->monitoring_mode = NMT_PAGE_BOND_MONITORING_UNKNOWN; - priv->slave_type = G_TYPE_NONE; + priv->monitoring_mode = NMT_PAGE_BOND_MONITORING_UNKNOWN; + priv->slave_type = G_TYPE_NONE; } static NmtNewtPopupEntry bond_mode[] = { - { N_("Round-robin"), "balance-rr" }, - { N_("Active Backup"), "active-backup" }, - { N_("XOR"), "balance-xor" }, - { N_("Broadcast"), "broadcast" }, - { N_("802.3ad"), "802.3ad" }, - { N_("Adaptive Transmit Load Balancing (tlb)"), "balance-tlb" }, - { N_("Adaptive Load Balancing (alb)"), "balance-alb" }, - { NULL, NULL } -}; + {N_("Round-robin"), "balance-rr"}, + {N_("Active Backup"), "active-backup"}, + {N_("XOR"), "balance-xor"}, + {N_("Broadcast"), "broadcast"}, + {N_("802.3ad"), "802.3ad"}, + {N_("Adaptive Transmit Load Balancing (tlb)"), "balance-tlb"}, + {N_("Adaptive Load Balancing (alb)"), "balance-alb"}, + {NULL, NULL}}; /* NB: the ordering/numbering here corresponds to NmtPageBondMonitoringMode */ -static NmtNewtPopupEntry bond_monitoring[] = { - { N_("MII (recommended)"), "mii" }, - { N_("ARP"), "arp" }, - { NULL, NULL } -}; +static NmtNewtPopupEntry bond_monitoring[] = {{N_("MII (recommended)"), "mii"}, + {N_("ARP"), "arp"}, + {NULL, NULL}}; static void -bond_options_changed (GObject *object, - GParamSpec *pspec, - gpointer user_data) +bond_options_changed(GObject *object, GParamSpec *pspec, gpointer user_data) { - NMSettingBond *s_bond = NM_SETTING_BOND (object); - NmtPageBond *bond = NMT_PAGE_BOND (user_data); - NmtPageBondPrivate *priv = NMT_PAGE_BOND_GET_PRIVATE (bond); - gs_free const char **ips = NULL; - const char *val; - gboolean visible_mii; - NMBondMode mode; + NMSettingBond * s_bond = NM_SETTING_BOND(object); + NmtPageBond * bond = NMT_PAGE_BOND(user_data); + NmtPageBondPrivate * priv = NMT_PAGE_BOND_GET_PRIVATE(bond); + gs_free const char **ips = NULL; + const char * val; + gboolean visible_mii; + NMBondMode mode; - if (priv->updating) - return; + if (priv->updating) + return; - priv->updating = TRUE; + priv->updating = TRUE; - val = nm_setting_bond_get_option_by_name (s_bond, NM_SETTING_BOND_OPTION_MODE); - nmt_newt_popup_set_active_id (priv->mode, val); + val = nm_setting_bond_get_option_by_name(s_bond, NM_SETTING_BOND_OPTION_MODE); + nmt_newt_popup_set_active_id(priv->mode, val); - mode = _nm_setting_bond_mode_from_string (val ?: ""); + mode = _nm_setting_bond_mode_from_string(val ?: ""); - val = nm_setting_bond_get_option_by_name (s_bond, NM_SETTING_BOND_OPTION_PRIMARY); - nmt_newt_entry_set_text (priv->primary, val); + val = nm_setting_bond_get_option_by_name(s_bond, NM_SETTING_BOND_OPTION_PRIMARY); + nmt_newt_entry_set_text(priv->primary, val); - nmt_newt_widget_set_visible (NMT_NEWT_WIDGET (priv->primary), mode == NM_BOND_MODE_ACTIVEBACKUP); + nmt_newt_widget_set_visible(NMT_NEWT_WIDGET(priv->primary), mode == NM_BOND_MODE_ACTIVEBACKUP); - if (priv->monitoring_mode == NMT_PAGE_BOND_MONITORING_UNKNOWN) { - val = nm_setting_bond_get_option_by_name (s_bond, NM_SETTING_BOND_OPTION_ARP_INTERVAL); - if (_nm_utils_ascii_str_to_int64 (val, 10, 0, G_MAXINT, 0) > 0) - priv->monitoring_mode = NMT_PAGE_BOND_MONITORING_ARP; - else - priv->monitoring_mode = NMT_PAGE_BOND_MONITORING_MII; - } - nmt_newt_popup_set_active (priv->monitoring, priv->monitoring_mode); + if (priv->monitoring_mode == NMT_PAGE_BOND_MONITORING_UNKNOWN) { + val = nm_setting_bond_get_option_by_name(s_bond, NM_SETTING_BOND_OPTION_ARP_INTERVAL); + if (_nm_utils_ascii_str_to_int64(val, 10, 0, G_MAXINT, 0) > 0) + priv->monitoring_mode = NMT_PAGE_BOND_MONITORING_ARP; + else + priv->monitoring_mode = NMT_PAGE_BOND_MONITORING_MII; + } + nmt_newt_popup_set_active(priv->monitoring, priv->monitoring_mode); - val = nm_setting_bond_get_option_by_name (s_bond, NM_SETTING_BOND_OPTION_MIIMON); - nmt_newt_entry_set_text (priv->miimon, val ?: "0"); + val = nm_setting_bond_get_option_by_name(s_bond, NM_SETTING_BOND_OPTION_MIIMON); + nmt_newt_entry_set_text(priv->miimon, val ?: "0"); - val = nm_setting_bond_get_option_by_name (s_bond, NM_SETTING_BOND_OPTION_UPDELAY); - nmt_newt_entry_set_text (priv->updelay, val ?: "0"); + val = nm_setting_bond_get_option_by_name(s_bond, NM_SETTING_BOND_OPTION_UPDELAY); + nmt_newt_entry_set_text(priv->updelay, val ?: "0"); - val = nm_setting_bond_get_option_by_name (s_bond, NM_SETTING_BOND_OPTION_DOWNDELAY); - nmt_newt_entry_set_text (priv->downdelay, val ?: "0"); + val = nm_setting_bond_get_option_by_name(s_bond, NM_SETTING_BOND_OPTION_DOWNDELAY); + nmt_newt_entry_set_text(priv->downdelay, val ?: "0"); - val = nm_setting_bond_get_option_by_name (s_bond, NM_SETTING_BOND_OPTION_ARP_INTERVAL); - nmt_newt_entry_set_text (priv->arp_interval, val ?: "0"); + val = nm_setting_bond_get_option_by_name(s_bond, NM_SETTING_BOND_OPTION_ARP_INTERVAL); + nmt_newt_entry_set_text(priv->arp_interval, val ?: "0"); - val = nm_setting_bond_get_option_by_name (s_bond, NM_SETTING_BOND_OPTION_ARP_IP_TARGET); - ips = nm_utils_bond_option_arp_ip_targets_split (val); - g_object_set (G_OBJECT (priv->arp_ip_target), - "strings", ips ?: NM_PTRARRAY_EMPTY (const char *), - NULL); + val = nm_setting_bond_get_option_by_name(s_bond, NM_SETTING_BOND_OPTION_ARP_IP_TARGET); + ips = nm_utils_bond_option_arp_ip_targets_split(val); + g_object_set(G_OBJECT(priv->arp_ip_target), + "strings", + ips ?: NM_PTRARRAY_EMPTY(const char *), + NULL); - visible_mii = (priv->monitoring_mode == NMT_PAGE_BOND_MONITORING_MII); + visible_mii = (priv->monitoring_mode == NMT_PAGE_BOND_MONITORING_MII); - nmt_newt_widget_set_visible (NMT_NEWT_WIDGET (priv->miimon), visible_mii); - nmt_newt_widget_set_visible (NMT_NEWT_WIDGET (priv->updelay), visible_mii); - nmt_newt_widget_set_visible (NMT_NEWT_WIDGET (priv->downdelay), visible_mii); - nmt_newt_widget_set_visible (NMT_NEWT_WIDGET (priv->arp_interval), !visible_mii); - nmt_newt_widget_set_visible (NMT_NEWT_WIDGET (priv->arp_ip_target), !visible_mii); + nmt_newt_widget_set_visible(NMT_NEWT_WIDGET(priv->miimon), visible_mii); + nmt_newt_widget_set_visible(NMT_NEWT_WIDGET(priv->updelay), visible_mii); + nmt_newt_widget_set_visible(NMT_NEWT_WIDGET(priv->downdelay), visible_mii); + nmt_newt_widget_set_visible(NMT_NEWT_WIDGET(priv->arp_interval), !visible_mii); + nmt_newt_widget_set_visible(NMT_NEWT_WIDGET(priv->arp_ip_target), !visible_mii); - priv->updating = FALSE; + priv->updating = FALSE; } static void -slaves_changed (GObject *object, - GParamSpec *pspec, - gpointer user_data) +slaves_changed(GObject *object, GParamSpec *pspec, gpointer user_data) { - NmtPageBond *bond = NMT_PAGE_BOND (user_data); - NmtPageBondPrivate *priv = NMT_PAGE_BOND_GET_PRIVATE (bond); - GPtrArray *slaves; - - g_object_get (object, "connections", &slaves, NULL); - if (slaves->len == 0) { - if (priv->slave_type == G_TYPE_NONE) - return; - priv->slave_type = G_TYPE_NONE; - } else { - NMConnection *slave = slaves->pdata[0]; - - if (priv->slave_type != G_TYPE_NONE) - return; - - if (nm_connection_is_type (slave, NM_SETTING_INFINIBAND_SETTING_NAME)) - priv->slave_type = NM_TYPE_SETTING_INFINIBAND; - else - priv->slave_type = NM_TYPE_SETTING_WIRED; - } - - if (priv->slave_type == NM_TYPE_SETTING_INFINIBAND) { - nmt_newt_popup_set_active_id (priv->mode, "active-backup"); - nmt_newt_component_set_sensitive (NMT_NEWT_COMPONENT (priv->mode), FALSE); - } else - nmt_newt_component_set_sensitive (NMT_NEWT_COMPONENT (priv->mode), TRUE); + NmtPageBond * bond = NMT_PAGE_BOND(user_data); + NmtPageBondPrivate *priv = NMT_PAGE_BOND_GET_PRIVATE(bond); + GPtrArray * slaves; + + g_object_get(object, "connections", &slaves, NULL); + if (slaves->len == 0) { + if (priv->slave_type == G_TYPE_NONE) + return; + priv->slave_type = G_TYPE_NONE; + } else { + NMConnection *slave = slaves->pdata[0]; + + if (priv->slave_type != G_TYPE_NONE) + return; + + if (nm_connection_is_type(slave, NM_SETTING_INFINIBAND_SETTING_NAME)) + priv->slave_type = NM_TYPE_SETTING_INFINIBAND; + else + priv->slave_type = NM_TYPE_SETTING_WIRED; + } + + if (priv->slave_type == NM_TYPE_SETTING_INFINIBAND) { + nmt_newt_popup_set_active_id(priv->mode, "active-backup"); + nmt_newt_component_set_sensitive(NMT_NEWT_COMPONENT(priv->mode), FALSE); + } else + nmt_newt_component_set_sensitive(NMT_NEWT_COMPONENT(priv->mode), TRUE); } static void -_bond_add_option (NMSettingBond *s_bond, - const char *option, - const char *value) +_bond_add_option(NMSettingBond *s_bond, const char *option, const char *value) { - if (nm_str_is_empty (value)) - nm_setting_bond_remove_option (s_bond, option); - else - nm_setting_bond_add_option (s_bond, option, value); - - if (nm_streq (option, NM_SETTING_BOND_OPTION_ARP_INTERVAL)) - _nm_setting_bond_remove_options_miimon (s_bond); - else if (nm_streq (option, NM_SETTING_BOND_OPTION_MIIMON)) - _nm_setting_bond_remove_options_arp_interval (s_bond); - nm_setting_bond_remove_option (s_bond, NM_SETTING_BOND_OPTION_ACTIVE_SLAVE); + if (nm_str_is_empty(value)) + nm_setting_bond_remove_option(s_bond, option); + else + nm_setting_bond_add_option(s_bond, option, value); + + if (nm_streq(option, NM_SETTING_BOND_OPTION_ARP_INTERVAL)) + _nm_setting_bond_remove_options_miimon(s_bond); + else if (nm_streq(option, NM_SETTING_BOND_OPTION_MIIMON)) + _nm_setting_bond_remove_options_arp_interval(s_bond); + nm_setting_bond_remove_option(s_bond, NM_SETTING_BOND_OPTION_ACTIVE_SLAVE); } -#define WIDGET_CHANGED_FUNC(widget, func, option, dflt) \ -static void \ -widget ## _widget_changed (GObject *object, \ - GParamSpec *pspec, \ - gpointer user_data) \ -{ \ - NmtPageBond *bond = NMT_PAGE_BOND (user_data); \ - NmtPageBondPrivate *priv = NMT_PAGE_BOND_GET_PRIVATE (bond); \ - const char *v; \ - \ - if (priv->updating) \ - return; \ - \ - v = func (priv->widget); \ - priv->updating = TRUE; \ - _bond_add_option (priv->s_bond, option, v ?: dflt); \ - priv->updating = FALSE; \ -} - -WIDGET_CHANGED_FUNC (primary, nmt_newt_entry_get_text, NM_SETTING_BOND_OPTION_PRIMARY, NULL) -WIDGET_CHANGED_FUNC (miimon, nmt_newt_entry_get_text, NM_SETTING_BOND_OPTION_MIIMON, "0") -WIDGET_CHANGED_FUNC (updelay, nmt_newt_entry_get_text, NM_SETTING_BOND_OPTION_UPDELAY, "0") -WIDGET_CHANGED_FUNC (downdelay, nmt_newt_entry_get_text, NM_SETTING_BOND_OPTION_DOWNDELAY, "0") -WIDGET_CHANGED_FUNC (arp_interval, nmt_newt_entry_get_text, NM_SETTING_BOND_OPTION_ARP_INTERVAL, "0") +#define WIDGET_CHANGED_FUNC(widget, func, option, dflt) \ + static void widget##_widget_changed(GObject *object, GParamSpec *pspec, gpointer user_data) \ + { \ + NmtPageBond * bond = NMT_PAGE_BOND(user_data); \ + NmtPageBondPrivate *priv = NMT_PAGE_BOND_GET_PRIVATE(bond); \ + const char * v; \ + \ + if (priv->updating) \ + return; \ + \ + v = func(priv->widget); \ + priv->updating = TRUE; \ + _bond_add_option(priv->s_bond, option, v ?: dflt); \ + priv->updating = FALSE; \ + } + +WIDGET_CHANGED_FUNC(primary, nmt_newt_entry_get_text, NM_SETTING_BOND_OPTION_PRIMARY, NULL) +WIDGET_CHANGED_FUNC(miimon, nmt_newt_entry_get_text, NM_SETTING_BOND_OPTION_MIIMON, "0") +WIDGET_CHANGED_FUNC(updelay, nmt_newt_entry_get_text, NM_SETTING_BOND_OPTION_UPDELAY, "0") +WIDGET_CHANGED_FUNC(downdelay, nmt_newt_entry_get_text, NM_SETTING_BOND_OPTION_DOWNDELAY, "0") +WIDGET_CHANGED_FUNC(arp_interval, nmt_newt_entry_get_text, NM_SETTING_BOND_OPTION_ARP_INTERVAL, "0") static void -mode_widget_changed (GObject *object, - GParamSpec *pspec, - gpointer user_data) +mode_widget_changed(GObject *object, GParamSpec *pspec, gpointer user_data) { - NmtPageBond *bond = NMT_PAGE_BOND (user_data); - NmtPageBondPrivate *priv = NMT_PAGE_BOND_GET_PRIVATE (bond); - const char *mode; - - if (priv->updating) - return; - - mode = nmt_newt_popup_get_active_id (priv->mode); - priv->updating = TRUE; - _bond_add_option (priv->s_bond, NM_SETTING_BOND_OPTION_MODE, mode); - priv->updating = FALSE; - - if (NM_IN_STRSET (mode, "balance-tlb", - "balance-alb")) { - nmt_newt_popup_set_active (priv->monitoring, NMT_PAGE_BOND_MONITORING_MII); - nmt_newt_component_set_sensitive (NMT_NEWT_COMPONENT (priv->monitoring), FALSE); - } else - nmt_newt_component_set_sensitive (NMT_NEWT_COMPONENT (priv->monitoring), TRUE); - - if (NM_IN_STRSET (mode, "active-backup", - "balance-alb", - "balance-tlb")) { - nmt_newt_widget_set_visible (NMT_NEWT_WIDGET (priv->primary), TRUE); - _bond_add_option (priv->s_bond, NM_SETTING_BOND_OPTION_PRIMARY, - nmt_newt_entry_get_text (priv->primary)); - } else { - nmt_newt_widget_set_visible (NMT_NEWT_WIDGET (priv->primary), FALSE); - nm_setting_bond_remove_option (priv->s_bond, NM_SETTING_BOND_OPTION_PRIMARY); - } + NmtPageBond * bond = NMT_PAGE_BOND(user_data); + NmtPageBondPrivate *priv = NMT_PAGE_BOND_GET_PRIVATE(bond); + const char * mode; + + if (priv->updating) + return; + + mode = nmt_newt_popup_get_active_id(priv->mode); + priv->updating = TRUE; + _bond_add_option(priv->s_bond, NM_SETTING_BOND_OPTION_MODE, mode); + priv->updating = FALSE; + + if (NM_IN_STRSET(mode, "balance-tlb", "balance-alb")) { + nmt_newt_popup_set_active(priv->monitoring, NMT_PAGE_BOND_MONITORING_MII); + nmt_newt_component_set_sensitive(NMT_NEWT_COMPONENT(priv->monitoring), FALSE); + } else + nmt_newt_component_set_sensitive(NMT_NEWT_COMPONENT(priv->monitoring), TRUE); + + if (NM_IN_STRSET(mode, "active-backup", "balance-alb", "balance-tlb")) { + nmt_newt_widget_set_visible(NMT_NEWT_WIDGET(priv->primary), TRUE); + _bond_add_option(priv->s_bond, + NM_SETTING_BOND_OPTION_PRIMARY, + nmt_newt_entry_get_text(priv->primary)); + } else { + nmt_newt_widget_set_visible(NMT_NEWT_WIDGET(priv->primary), FALSE); + nm_setting_bond_remove_option(priv->s_bond, NM_SETTING_BOND_OPTION_PRIMARY); + } } static void -monitoring_widget_changed (GObject *object, - GParamSpec *pspec, - gpointer user_data) +monitoring_widget_changed(GObject *object, GParamSpec *pspec, gpointer user_data) { - NmtPageBond *bond = NMT_PAGE_BOND (user_data); - NmtPageBondPrivate *priv = NMT_PAGE_BOND_GET_PRIVATE (bond); - gboolean visible_mii; - - if (priv->updating) - return; - - priv->monitoring_mode = nmt_newt_popup_get_active (priv->monitoring); - visible_mii = (priv->monitoring_mode == NMT_PAGE_BOND_MONITORING_MII); - - nmt_newt_widget_set_visible (NMT_NEWT_WIDGET (priv->miimon), visible_mii); - nmt_newt_widget_set_visible (NMT_NEWT_WIDGET (priv->updelay), visible_mii); - nmt_newt_widget_set_visible (NMT_NEWT_WIDGET (priv->downdelay), visible_mii); - nmt_newt_widget_set_visible (NMT_NEWT_WIDGET (priv->arp_interval), !visible_mii); - nmt_newt_widget_set_visible (NMT_NEWT_WIDGET (priv->arp_ip_target), !visible_mii); - - if (visible_mii) { - miimon_widget_changed (NULL, NULL, bond); - updelay_widget_changed (NULL, NULL, bond); - downdelay_widget_changed (NULL, NULL, bond); - } else { - arp_interval_widget_changed (NULL, NULL, bond); - arp_ip_target_widget_changed (NULL, NULL, bond); - } + NmtPageBond * bond = NMT_PAGE_BOND(user_data); + NmtPageBondPrivate *priv = NMT_PAGE_BOND_GET_PRIVATE(bond); + gboolean visible_mii; + + if (priv->updating) + return; + + priv->monitoring_mode = nmt_newt_popup_get_active(priv->monitoring); + visible_mii = (priv->monitoring_mode == NMT_PAGE_BOND_MONITORING_MII); + + nmt_newt_widget_set_visible(NMT_NEWT_WIDGET(priv->miimon), visible_mii); + nmt_newt_widget_set_visible(NMT_NEWT_WIDGET(priv->updelay), visible_mii); + nmt_newt_widget_set_visible(NMT_NEWT_WIDGET(priv->downdelay), visible_mii); + nmt_newt_widget_set_visible(NMT_NEWT_WIDGET(priv->arp_interval), !visible_mii); + nmt_newt_widget_set_visible(NMT_NEWT_WIDGET(priv->arp_ip_target), !visible_mii); + + if (visible_mii) { + miimon_widget_changed(NULL, NULL, bond); + updelay_widget_changed(NULL, NULL, bond); + downdelay_widget_changed(NULL, NULL, bond); + } else { + arp_interval_widget_changed(NULL, NULL, bond); + arp_ip_target_widget_changed(NULL, NULL, bond); + } } static void -arp_ip_target_widget_changed (GObject *object, - GParamSpec *pspec, - gpointer user_data) +arp_ip_target_widget_changed(GObject *object, GParamSpec *pspec, gpointer user_data) { - NmtPageBond *bond = NMT_PAGE_BOND (user_data); - NmtPageBondPrivate *priv = NMT_PAGE_BOND_GET_PRIVATE (bond); - char **ips, *target; + NmtPageBond * bond = NMT_PAGE_BOND(user_data); + NmtPageBondPrivate *priv = NMT_PAGE_BOND_GET_PRIVATE(bond); + char ** ips, *target; - if (priv->updating) - return; + if (priv->updating) + return; - g_object_get (G_OBJECT (priv->arp_ip_target), - "strings", &ips, - NULL); - target = g_strjoinv (",", ips); + g_object_get(G_OBJECT(priv->arp_ip_target), "strings", &ips, NULL); + target = g_strjoinv(",", ips); - priv->updating = TRUE; - _bond_add_option (priv->s_bond, NM_SETTING_BOND_OPTION_ARP_IP_TARGET, target); - priv->updating = FALSE; + priv->updating = TRUE; + _bond_add_option(priv->s_bond, NM_SETTING_BOND_OPTION_ARP_IP_TARGET, target); + priv->updating = FALSE; - g_free (target); - g_strfreev (ips); + g_free(target); + g_strfreev(ips); } static gboolean -bond_connection_type_filter (GType connection_type, - gpointer user_data) +bond_connection_type_filter(GType connection_type, gpointer user_data) { - NmtPageBond *bond = user_data; - NmtPageBondPrivate *priv = NMT_PAGE_BOND_GET_PRIVATE (bond); + NmtPageBond * bond = user_data; + NmtPageBondPrivate *priv = NMT_PAGE_BOND_GET_PRIVATE(bond); - if ( priv->slave_type != NM_TYPE_SETTING_WIRED - && connection_type == NM_TYPE_SETTING_INFINIBAND) - return TRUE; - if ( priv->slave_type != NM_TYPE_SETTING_INFINIBAND - && connection_type == NM_TYPE_SETTING_WIRED) - return TRUE; + if (priv->slave_type != NM_TYPE_SETTING_WIRED && connection_type == NM_TYPE_SETTING_INFINIBAND) + return TRUE; + if (priv->slave_type != NM_TYPE_SETTING_INFINIBAND && connection_type == NM_TYPE_SETTING_WIRED) + return TRUE; - return FALSE; + return FALSE; } static void -nmt_page_bond_constructed (GObject *object) +nmt_page_bond_constructed(GObject *object) { - NmtPageBond *bond = NMT_PAGE_BOND (object); - NmtPageBondPrivate *priv = NMT_PAGE_BOND_GET_PRIVATE (bond); - NmtEditorSection *section; - NmtEditorGrid *grid; - NMSettingWired *s_wired; - NMSettingBond *s_bond; - NmtNewtWidget *widget, *label; - NMConnection *conn; - - conn = nmt_editor_page_get_connection (NMT_EDITOR_PAGE (bond)); - s_bond = nm_connection_get_setting_bond (conn); - if (!s_bond) { - nm_connection_add_setting (conn, nm_setting_bond_new ()); - s_bond = nm_connection_get_setting_bond (conn); - } - priv->s_bond = s_bond; - - s_wired = nm_connection_get_setting_wired (conn); - if (!s_wired) { - nm_connection_add_setting (conn, nm_setting_wired_new ()); - s_wired = nm_connection_get_setting_wired (conn); - } - - section = nmt_editor_section_new (_("BOND"), NULL, TRUE); - grid = nmt_editor_section_get_body (section); - - widget = nmt_newt_separator_new (); - nmt_editor_grid_append (grid, _("Slaves"), widget, NULL); - nmt_editor_grid_set_row_flags (grid, widget, NMT_EDITOR_GRID_ROW_LABEL_ALIGN_LEFT); - - widget = nmt_slave_list_new (conn, bond_connection_type_filter, bond); - g_signal_connect (widget, "notify::connections", - G_CALLBACK (slaves_changed), bond); - nmt_editor_grid_append (grid, NULL, widget, NULL); - priv->slaves = NMT_SLAVE_LIST (widget); - - widget = nmt_newt_popup_new (bond_mode); - g_signal_connect (widget, "notify::active-id", - G_CALLBACK (mode_widget_changed), bond); - nmt_editor_grid_append (grid, _("Mode"), widget, NULL); - priv->mode = NMT_NEWT_POPUP (widget); - - widget = nmt_newt_entry_new (40, 0); - g_signal_connect (widget, "notify::text", - G_CALLBACK (primary_widget_changed), bond); - nmt_editor_grid_append (grid, _("Primary"), widget, NULL); - priv->primary = NMT_NEWT_ENTRY (widget); - - widget = nmt_newt_popup_new (bond_monitoring); - g_signal_connect (widget, "notify::active", - G_CALLBACK (monitoring_widget_changed), bond); - nmt_editor_grid_append (grid, _("Link monitoring"), widget, NULL); - priv->monitoring = NMT_NEWT_POPUP (widget); - - widget = nmt_newt_entry_numeric_new (10, 0, G_MAXINT); - g_signal_connect (widget, "notify::text", - G_CALLBACK (miimon_widget_changed), bond); - label = nmt_newt_label_new (C_("milliseconds", "ms")); - nmt_editor_grid_append (grid, _("Monitoring frequency"), widget, label); - priv->miimon = NMT_NEWT_ENTRY (widget); - - widget = nmt_newt_entry_numeric_new (10, 0, G_MAXINT); - g_signal_connect (widget, "notify::text", - G_CALLBACK (updelay_widget_changed), bond); - label = nmt_newt_label_new (C_("milliseconds", "ms")); - nmt_editor_grid_append (grid, _("Link up delay"), widget, label); - priv->updelay = NMT_NEWT_ENTRY (widget); - - widget = nmt_newt_entry_numeric_new (10, 0, G_MAXINT); - g_signal_connect (widget, "notify::text", - G_CALLBACK (downdelay_widget_changed), bond); - label = nmt_newt_label_new (C_("milliseconds", "ms")); - nmt_editor_grid_append (grid, _("Link down delay"), widget, label); - priv->downdelay = NMT_NEWT_ENTRY (widget); - - widget = nmt_newt_entry_numeric_new (10, 0, G_MAXINT); - g_signal_connect (widget, "notify::text", - G_CALLBACK (arp_interval_widget_changed), bond); - label = nmt_newt_label_new (C_("milliseconds", "ms")); - nmt_editor_grid_append (grid, _("Monitoring frequency"), widget, label); - priv->arp_interval = NMT_NEWT_ENTRY (widget); - - widget = nmt_address_list_new (NMT_ADDRESS_LIST_IP4); - g_signal_connect (widget, "notify::strings", - G_CALLBACK (arp_ip_target_widget_changed), bond); - nmt_editor_grid_append (grid, _("ARP targets"), widget, NULL); - priv->arp_ip_target = NMT_ADDRESS_LIST (widget); - - widget = nmt_mac_entry_new (40, ETH_ALEN, NMT_MAC_ENTRY_TYPE_CLONED); - g_object_bind_property (s_wired, NM_SETTING_WIRED_CLONED_MAC_ADDRESS, - widget, "mac-address", - G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); - nmt_editor_grid_append (grid, _("Cloned MAC address"), widget, NULL); - - g_signal_connect (s_bond, "notify::" NM_SETTING_BOND_OPTIONS, - G_CALLBACK (bond_options_changed), bond); - bond_options_changed (G_OBJECT (s_bond), NULL, bond); - slaves_changed (G_OBJECT (priv->slaves), NULL, bond); - - nmt_editor_page_add_section (NMT_EDITOR_PAGE (bond), section); - - G_OBJECT_CLASS (nmt_page_bond_parent_class)->constructed (object); + NmtPageBond * bond = NMT_PAGE_BOND(object); + NmtPageBondPrivate *priv = NMT_PAGE_BOND_GET_PRIVATE(bond); + NmtEditorSection * section; + NmtEditorGrid * grid; + NMSettingWired * s_wired; + NMSettingBond * s_bond; + NmtNewtWidget * widget, *label; + NMConnection * conn; + + conn = nmt_editor_page_get_connection(NMT_EDITOR_PAGE(bond)); + s_bond = nm_connection_get_setting_bond(conn); + if (!s_bond) { + nm_connection_add_setting(conn, nm_setting_bond_new()); + s_bond = nm_connection_get_setting_bond(conn); + } + priv->s_bond = s_bond; + + s_wired = nm_connection_get_setting_wired(conn); + if (!s_wired) { + nm_connection_add_setting(conn, nm_setting_wired_new()); + s_wired = nm_connection_get_setting_wired(conn); + } + + section = nmt_editor_section_new(_("BOND"), NULL, TRUE); + grid = nmt_editor_section_get_body(section); + + widget = nmt_newt_separator_new(); + nmt_editor_grid_append(grid, _("Slaves"), widget, NULL); + nmt_editor_grid_set_row_flags(grid, widget, NMT_EDITOR_GRID_ROW_LABEL_ALIGN_LEFT); + + widget = nmt_slave_list_new(conn, bond_connection_type_filter, bond); + g_signal_connect(widget, "notify::connections", G_CALLBACK(slaves_changed), bond); + nmt_editor_grid_append(grid, NULL, widget, NULL); + priv->slaves = NMT_SLAVE_LIST(widget); + + widget = nmt_newt_popup_new(bond_mode); + g_signal_connect(widget, "notify::active-id", G_CALLBACK(mode_widget_changed), bond); + nmt_editor_grid_append(grid, _("Mode"), widget, NULL); + priv->mode = NMT_NEWT_POPUP(widget); + + widget = nmt_newt_entry_new(40, 0); + g_signal_connect(widget, "notify::text", G_CALLBACK(primary_widget_changed), bond); + nmt_editor_grid_append(grid, _("Primary"), widget, NULL); + priv->primary = NMT_NEWT_ENTRY(widget); + + widget = nmt_newt_popup_new(bond_monitoring); + g_signal_connect(widget, "notify::active", G_CALLBACK(monitoring_widget_changed), bond); + nmt_editor_grid_append(grid, _("Link monitoring"), widget, NULL); + priv->monitoring = NMT_NEWT_POPUP(widget); + + widget = nmt_newt_entry_numeric_new(10, 0, G_MAXINT); + g_signal_connect(widget, "notify::text", G_CALLBACK(miimon_widget_changed), bond); + label = nmt_newt_label_new(C_("milliseconds", "ms")); + nmt_editor_grid_append(grid, _("Monitoring frequency"), widget, label); + priv->miimon = NMT_NEWT_ENTRY(widget); + + widget = nmt_newt_entry_numeric_new(10, 0, G_MAXINT); + g_signal_connect(widget, "notify::text", G_CALLBACK(updelay_widget_changed), bond); + label = nmt_newt_label_new(C_("milliseconds", "ms")); + nmt_editor_grid_append(grid, _("Link up delay"), widget, label); + priv->updelay = NMT_NEWT_ENTRY(widget); + + widget = nmt_newt_entry_numeric_new(10, 0, G_MAXINT); + g_signal_connect(widget, "notify::text", G_CALLBACK(downdelay_widget_changed), bond); + label = nmt_newt_label_new(C_("milliseconds", "ms")); + nmt_editor_grid_append(grid, _("Link down delay"), widget, label); + priv->downdelay = NMT_NEWT_ENTRY(widget); + + widget = nmt_newt_entry_numeric_new(10, 0, G_MAXINT); + g_signal_connect(widget, "notify::text", G_CALLBACK(arp_interval_widget_changed), bond); + label = nmt_newt_label_new(C_("milliseconds", "ms")); + nmt_editor_grid_append(grid, _("Monitoring frequency"), widget, label); + priv->arp_interval = NMT_NEWT_ENTRY(widget); + + widget = nmt_address_list_new(NMT_ADDRESS_LIST_IP4); + g_signal_connect(widget, "notify::strings", G_CALLBACK(arp_ip_target_widget_changed), bond); + nmt_editor_grid_append(grid, _("ARP targets"), widget, NULL); + priv->arp_ip_target = NMT_ADDRESS_LIST(widget); + + widget = nmt_mac_entry_new(40, ETH_ALEN, NMT_MAC_ENTRY_TYPE_CLONED); + g_object_bind_property(s_wired, + NM_SETTING_WIRED_CLONED_MAC_ADDRESS, + widget, + "mac-address", + G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); + nmt_editor_grid_append(grid, _("Cloned MAC address"), widget, NULL); + + g_signal_connect(s_bond, + "notify::" NM_SETTING_BOND_OPTIONS, + G_CALLBACK(bond_options_changed), + bond); + bond_options_changed(G_OBJECT(s_bond), NULL, bond); + slaves_changed(G_OBJECT(priv->slaves), NULL, bond); + + nmt_editor_page_add_section(NMT_EDITOR_PAGE(bond), section); + + G_OBJECT_CLASS(nmt_page_bond_parent_class)->constructed(object); } static void -nmt_page_bond_saved (NmtEditorPage *editor_page) +nmt_page_bond_saved(NmtEditorPage *editor_page) { - NmtPageBondPrivate *priv = NMT_PAGE_BOND_GET_PRIVATE (editor_page); + NmtPageBondPrivate *priv = NMT_PAGE_BOND_GET_PRIVATE(editor_page); - nmt_edit_connection_list_recommit (NMT_EDIT_CONNECTION_LIST (priv->slaves)); + nmt_edit_connection_list_recommit(NMT_EDIT_CONNECTION_LIST(priv->slaves)); } static void -nmt_page_bond_class_init (NmtPageBondClass *bond_class) +nmt_page_bond_class_init(NmtPageBondClass *bond_class) { - GObjectClass *object_class = G_OBJECT_CLASS (bond_class); - NmtEditorPageClass *editor_page_class = NMT_EDITOR_PAGE_CLASS (bond_class); + GObjectClass * object_class = G_OBJECT_CLASS(bond_class); + NmtEditorPageClass *editor_page_class = NMT_EDITOR_PAGE_CLASS(bond_class); - g_type_class_add_private (bond_class, sizeof (NmtPageBondPrivate)); + g_type_class_add_private(bond_class, sizeof(NmtPageBondPrivate)); - object_class->constructed = nmt_page_bond_constructed; - editor_page_class->saved = nmt_page_bond_saved; + object_class->constructed = nmt_page_bond_constructed; + editor_page_class->saved = nmt_page_bond_saved; } diff --git a/clients/tui/nmt-page-bond.h b/clients/tui/nmt-page-bond.h index bd47432e69..f9e97bdb29 100644 --- a/clients/tui/nmt-page-bond.h +++ b/clients/tui/nmt-page-bond.h @@ -8,26 +8,27 @@ #include "nmt-editor-page-device.h" -#define NMT_TYPE_PAGE_BOND (nmt_page_bond_get_type ()) -#define NMT_PAGE_BOND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NMT_TYPE_PAGE_BOND, NmtPageBond)) -#define NMT_PAGE_BOND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NMT_TYPE_PAGE_BOND, NmtPageBondClass)) -#define NMT_IS_PAGE_BOND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NMT_TYPE_PAGE_BOND)) -#define NMT_IS_PAGE_BOND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NMT_TYPE_PAGE_BOND)) -#define NMT_PAGE_BOND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NMT_TYPE_PAGE_BOND, NmtPageBondClass)) +#define NMT_TYPE_PAGE_BOND (nmt_page_bond_get_type()) +#define NMT_PAGE_BOND(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), NMT_TYPE_PAGE_BOND, NmtPageBond)) +#define NMT_PAGE_BOND_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), NMT_TYPE_PAGE_BOND, NmtPageBondClass)) +#define NMT_IS_PAGE_BOND(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), NMT_TYPE_PAGE_BOND)) +#define NMT_IS_PAGE_BOND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), NMT_TYPE_PAGE_BOND)) +#define NMT_PAGE_BOND_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), NMT_TYPE_PAGE_BOND, NmtPageBondClass)) typedef struct { - NmtEditorPageDevice parent; + NmtEditorPageDevice parent; } NmtPageBond; typedef struct { - NmtEditorPageDeviceClass parent; + NmtEditorPageDeviceClass parent; } NmtPageBondClass; -GType nmt_page_bond_get_type (void); +GType nmt_page_bond_get_type(void); -NmtEditorPage *nmt_page_bond_new (NMConnection *conn, - NmtDeviceEntry *deventry); +NmtEditorPage *nmt_page_bond_new(NMConnection *conn, NmtDeviceEntry *deventry); #endif /* NMT_PAGE_BOND_H */ diff --git a/clients/tui/nmt-page-bridge-port.c b/clients/tui/nmt-page-bridge-port.c index 4dacbe493b..41f6d93abf 100644 --- a/clients/tui/nmt-page-bridge-port.c +++ b/clients/tui/nmt-page-bridge-port.c @@ -12,68 +12,71 @@ #include "nmt-page-bridge-port.h" -G_DEFINE_TYPE (NmtPageBridgePort, nmt_page_bridge_port, NMT_TYPE_EDITOR_PAGE) +G_DEFINE_TYPE(NmtPageBridgePort, nmt_page_bridge_port, NMT_TYPE_EDITOR_PAGE) NmtEditorPage * -nmt_page_bridge_port_new (NMConnection *conn) +nmt_page_bridge_port_new(NMConnection *conn) { - return g_object_new (NMT_TYPE_PAGE_BRIDGE_PORT, - "connection", conn, - NULL); + return g_object_new(NMT_TYPE_PAGE_BRIDGE_PORT, "connection", conn, NULL); } static void -nmt_page_bridge_port_init (NmtPageBridgePort *bridge) -{ -} +nmt_page_bridge_port_init(NmtPageBridgePort *bridge) +{} static void -nmt_page_bridge_port_constructed (GObject *object) +nmt_page_bridge_port_constructed(GObject *object) { - NmtPageBridgePort *bridge = NMT_PAGE_BRIDGE_PORT (object); - NmtEditorSection *section; - NmtEditorGrid *grid; - NMSettingBridgePort *s_port; - NmtNewtWidget *widget; - NMConnection *conn; - - conn = nmt_editor_page_get_connection (NMT_EDITOR_PAGE (bridge)); - s_port = nm_connection_get_setting_bridge_port (conn); - if (!s_port) { - nm_connection_add_setting (conn, nm_setting_bridge_port_new ()); - s_port = nm_connection_get_setting_bridge_port (conn); - } - - section = nmt_editor_section_new (_("BRIDGE PORT"), NULL, TRUE); - grid = nmt_editor_section_get_body (section); - - widget = nmt_newt_entry_numeric_new (10, 0, 63); - g_object_bind_property (s_port, NM_SETTING_BRIDGE_PORT_PRIORITY, - widget, "text", - G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); - nmt_editor_grid_append (grid, _("Priority"), widget, NULL); - - widget = nmt_newt_entry_numeric_new (10, 1, 65535); - g_object_bind_property (s_port, NM_SETTING_BRIDGE_PORT_PATH_COST, - widget, "text", - G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); - nmt_editor_grid_append (grid, _("Path cost"), widget, NULL); - - widget = nmt_newt_checkbox_new (_("Hairpin mode")); - g_object_bind_property (s_port, NM_SETTING_BRIDGE_PORT_HAIRPIN_MODE, - widget, "active", - G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); - nmt_editor_grid_append (grid, NULL, widget, NULL); - - nmt_editor_page_add_section (NMT_EDITOR_PAGE (bridge), section); - - G_OBJECT_CLASS (nmt_page_bridge_port_parent_class)->constructed (object); + NmtPageBridgePort * bridge = NMT_PAGE_BRIDGE_PORT(object); + NmtEditorSection * section; + NmtEditorGrid * grid; + NMSettingBridgePort *s_port; + NmtNewtWidget * widget; + NMConnection * conn; + + conn = nmt_editor_page_get_connection(NMT_EDITOR_PAGE(bridge)); + s_port = nm_connection_get_setting_bridge_port(conn); + if (!s_port) { + nm_connection_add_setting(conn, nm_setting_bridge_port_new()); + s_port = nm_connection_get_setting_bridge_port(conn); + } + + section = nmt_editor_section_new(_("BRIDGE PORT"), NULL, TRUE); + grid = nmt_editor_section_get_body(section); + + widget = nmt_newt_entry_numeric_new(10, 0, 63); + g_object_bind_property(s_port, + NM_SETTING_BRIDGE_PORT_PRIORITY, + widget, + "text", + G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); + nmt_editor_grid_append(grid, _("Priority"), widget, NULL); + + widget = nmt_newt_entry_numeric_new(10, 1, 65535); + g_object_bind_property(s_port, + NM_SETTING_BRIDGE_PORT_PATH_COST, + widget, + "text", + G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); + nmt_editor_grid_append(grid, _("Path cost"), widget, NULL); + + widget = nmt_newt_checkbox_new(_("Hairpin mode")); + g_object_bind_property(s_port, + NM_SETTING_BRIDGE_PORT_HAIRPIN_MODE, + widget, + "active", + G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); + nmt_editor_grid_append(grid, NULL, widget, NULL); + + nmt_editor_page_add_section(NMT_EDITOR_PAGE(bridge), section); + + G_OBJECT_CLASS(nmt_page_bridge_port_parent_class)->constructed(object); } static void -nmt_page_bridge_port_class_init (NmtPageBridgePortClass *bridge_class) +nmt_page_bridge_port_class_init(NmtPageBridgePortClass *bridge_class) { - GObjectClass *object_class = G_OBJECT_CLASS (bridge_class); + GObjectClass *object_class = G_OBJECT_CLASS(bridge_class); - object_class->constructed = nmt_page_bridge_port_constructed; + object_class->constructed = nmt_page_bridge_port_constructed; } diff --git a/clients/tui/nmt-page-bridge-port.h b/clients/tui/nmt-page-bridge-port.h index dc7cf7f3d8..cf82f4768b 100644 --- a/clients/tui/nmt-page-bridge-port.h +++ b/clients/tui/nmt-page-bridge-port.h @@ -8,25 +8,29 @@ #include "nmt-editor-page.h" -#define NMT_TYPE_PAGE_BRIDGE_PORT (nmt_page_bridge_port_get_type ()) -#define NMT_PAGE_BRIDGE_PORT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NMT_TYPE_PAGE_BRIDGE_PORT, NmtPageBridgePort)) -#define NMT_PAGE_BRIDGE_PORT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NMT_TYPE_PAGE_BRIDGE_PORT, NmtPageBridgePortClass)) -#define NMT_IS_PAGE_BRIDGE_PORT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NMT_TYPE_PAGE_BRIDGE_PORT)) -#define NMT_IS_PAGE_BRIDGE_PORT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NMT_TYPE_PAGE_BRIDGE_PORT)) -#define NMT_PAGE_BRIDGE_PORT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NMT_TYPE_PAGE_BRIDGE_PORT, NmtPageBridgePortClass)) +#define NMT_TYPE_PAGE_BRIDGE_PORT (nmt_page_bridge_port_get_type()) +#define NMT_PAGE_BRIDGE_PORT(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), NMT_TYPE_PAGE_BRIDGE_PORT, NmtPageBridgePort)) +#define NMT_PAGE_BRIDGE_PORT_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), NMT_TYPE_PAGE_BRIDGE_PORT, NmtPageBridgePortClass)) +#define NMT_IS_PAGE_BRIDGE_PORT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), NMT_TYPE_PAGE_BRIDGE_PORT)) +#define NMT_IS_PAGE_BRIDGE_PORT_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass), NMT_TYPE_PAGE_BRIDGE_PORT)) +#define NMT_PAGE_BRIDGE_PORT_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), NMT_TYPE_PAGE_BRIDGE_PORT, NmtPageBridgePortClass)) typedef struct { - NmtEditorPage parent; + NmtEditorPage parent; } NmtPageBridgePort; typedef struct { - NmtEditorPageClass parent; + NmtEditorPageClass parent; } NmtPageBridgePortClass; -GType nmt_page_bridge_port_get_type (void); +GType nmt_page_bridge_port_get_type(void); -NmtEditorPage *nmt_page_bridge_port_new (NMConnection *conn); +NmtEditorPage *nmt_page_bridge_port_new(NMConnection *conn); #endif /* NMT_PAGE_BRIDGE_PORT_H */ diff --git a/clients/tui/nmt-page-bridge.c b/clients/tui/nmt-page-bridge.c index d0a6f9cbb9..e86ae97391 100644 --- a/clients/tui/nmt-page-bridge.c +++ b/clients/tui/nmt-page-bridge.c @@ -15,150 +15,168 @@ #include "nmt-address-list.h" #include "nmt-slave-list.h" -G_DEFINE_TYPE (NmtPageBridge, nmt_page_bridge, NMT_TYPE_EDITOR_PAGE_DEVICE) +G_DEFINE_TYPE(NmtPageBridge, nmt_page_bridge, NMT_TYPE_EDITOR_PAGE_DEVICE) -#define NMT_PAGE_BRIDGE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NMT_TYPE_PAGE_BRIDGE, NmtPageBridgePrivate)) +#define NMT_PAGE_BRIDGE_GET_PRIVATE(o) \ + (G_TYPE_INSTANCE_GET_PRIVATE((o), NMT_TYPE_PAGE_BRIDGE, NmtPageBridgePrivate)) typedef struct { - NmtSlaveList *slaves; + NmtSlaveList *slaves; } NmtPageBridgePrivate; NmtEditorPage * -nmt_page_bridge_new (NMConnection *conn, - NmtDeviceEntry *deventry) +nmt_page_bridge_new(NMConnection *conn, NmtDeviceEntry *deventry) { - return g_object_new (NMT_TYPE_PAGE_BRIDGE, - "connection", conn, - "device-entry", deventry, - NULL); + return g_object_new(NMT_TYPE_PAGE_BRIDGE, "connection", conn, "device-entry", deventry, NULL); } static void -nmt_page_bridge_init (NmtPageBridge *bridge) -{ -} +nmt_page_bridge_init(NmtPageBridge *bridge) +{} static gboolean -bridge_connection_type_filter (GType connection_type, - gpointer user_data) +bridge_connection_type_filter(GType connection_type, gpointer user_data) { - return ( connection_type == NM_TYPE_SETTING_WIRED - || connection_type == NM_TYPE_SETTING_WIRELESS - || connection_type == NM_TYPE_SETTING_VLAN); + return (connection_type == NM_TYPE_SETTING_WIRED || connection_type == NM_TYPE_SETTING_WIRELESS + || connection_type == NM_TYPE_SETTING_VLAN); } static void -nmt_page_bridge_constructed (GObject *object) +nmt_page_bridge_constructed(GObject *object) { - NmtPageBridge *bridge = NMT_PAGE_BRIDGE (object); - NmtPageBridgePrivate *priv = NMT_PAGE_BRIDGE_GET_PRIVATE (bridge); - NmtEditorSection *section; - NmtEditorGrid *grid; - NMSettingBridge *s_bridge; - NmtNewtWidget *widget, *label, *stp; - NMConnection *conn; - - conn = nmt_editor_page_get_connection (NMT_EDITOR_PAGE (bridge)); - s_bridge = nm_connection_get_setting_bridge (conn); - if (!s_bridge) { - nm_connection_add_setting (conn, nm_setting_bridge_new ()); - s_bridge = nm_connection_get_setting_bridge (conn); - } - - section = nmt_editor_section_new (_("BRIDGE"), NULL, TRUE); - grid = nmt_editor_section_get_body (section); - - widget = nmt_newt_separator_new (); - nmt_editor_grid_append (grid, _("Slaves"), widget, NULL); - nmt_editor_grid_set_row_flags (grid, widget, NMT_EDITOR_GRID_ROW_LABEL_ALIGN_LEFT); - - widget = nmt_slave_list_new (conn, bridge_connection_type_filter, bridge); - nmt_editor_grid_append (grid, NULL, widget, NULL); - priv->slaves = NMT_SLAVE_LIST (widget); - - widget = nmt_newt_entry_numeric_new (10, 0, 1000000); - g_object_bind_property (s_bridge, NM_SETTING_BRIDGE_AGEING_TIME, - widget, "text", - G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); - label = nmt_newt_label_new (_("seconds")); - nmt_editor_grid_append (grid, _("Aging time"), widget, label); - - widget = nmt_newt_checkbox_new (_("Enable IGMP snooping")); - g_object_bind_property (s_bridge, NM_SETTING_BRIDGE_MULTICAST_SNOOPING, - widget, "active", - G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); - nmt_editor_grid_append (grid, NULL, widget, NULL); - - widget = stp = nmt_newt_checkbox_new (_("Enable STP (Spanning Tree Protocol)")); - g_object_bind_property (s_bridge, NM_SETTING_BRIDGE_STP, - widget, "active", - G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); - nmt_editor_grid_append (grid, NULL, widget, NULL); - - widget = nmt_newt_entry_numeric_new (10, 0, G_MAXINT); - g_object_bind_property (s_bridge, NM_SETTING_BRIDGE_PRIORITY, - widget, "text", - G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); - g_object_bind_property (s_bridge, NM_SETTING_BRIDGE_STP, - widget, "sensitive", - G_BINDING_SYNC_CREATE); - nmt_editor_grid_append (grid, _("Priority"), widget, NULL); - - widget = nmt_newt_entry_numeric_new (10, 2, 30); - g_object_bind_property (s_bridge, NM_SETTING_BRIDGE_FORWARD_DELAY, - widget, "text", - G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); - g_object_bind_property (s_bridge, NM_SETTING_BRIDGE_STP, - widget, "sensitive", - G_BINDING_SYNC_CREATE); - label = nmt_newt_label_new (_("seconds")); - nmt_editor_grid_append (grid, _("Forward delay"), widget, label); - - widget = nmt_newt_entry_numeric_new (10, 1, 10); - g_object_bind_property (s_bridge, NM_SETTING_BRIDGE_HELLO_TIME, - widget, "text", - G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); - g_object_bind_property (s_bridge, NM_SETTING_BRIDGE_STP, - widget, "sensitive", - G_BINDING_SYNC_CREATE); - label = nmt_newt_label_new (_("seconds")); - nmt_editor_grid_append (grid, _("Hello time"), widget, label); - - widget = nmt_newt_entry_numeric_new (10, 6, 40); - g_object_bind_property (s_bridge, NM_SETTING_BRIDGE_MAX_AGE, - widget, "text", - G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); - g_object_bind_property (s_bridge, NM_SETTING_BRIDGE_STP, - widget, "sensitive", - G_BINDING_SYNC_CREATE); - label = nmt_newt_label_new (_("seconds")); - nmt_editor_grid_append (grid, _("Max age"), widget, label); - - widget = nmt_newt_entry_numeric_new (10, 0, 65535); - g_object_bind_property (s_bridge, NM_SETTING_BRIDGE_GROUP_FORWARD_MASK, - widget, "text", - G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); - nmt_editor_grid_append (grid, _("Group forward mask"), widget, NULL); - - nmt_editor_page_add_section (NMT_EDITOR_PAGE (bridge), section); - - G_OBJECT_CLASS (nmt_page_bridge_parent_class)->constructed (object); + NmtPageBridge * bridge = NMT_PAGE_BRIDGE(object); + NmtPageBridgePrivate *priv = NMT_PAGE_BRIDGE_GET_PRIVATE(bridge); + NmtEditorSection * section; + NmtEditorGrid * grid; + NMSettingBridge * s_bridge; + NmtNewtWidget * widget, *label, *stp; + NMConnection * conn; + + conn = nmt_editor_page_get_connection(NMT_EDITOR_PAGE(bridge)); + s_bridge = nm_connection_get_setting_bridge(conn); + if (!s_bridge) { + nm_connection_add_setting(conn, nm_setting_bridge_new()); + s_bridge = nm_connection_get_setting_bridge(conn); + } + + section = nmt_editor_section_new(_("BRIDGE"), NULL, TRUE); + grid = nmt_editor_section_get_body(section); + + widget = nmt_newt_separator_new(); + nmt_editor_grid_append(grid, _("Slaves"), widget, NULL); + nmt_editor_grid_set_row_flags(grid, widget, NMT_EDITOR_GRID_ROW_LABEL_ALIGN_LEFT); + + widget = nmt_slave_list_new(conn, bridge_connection_type_filter, bridge); + nmt_editor_grid_append(grid, NULL, widget, NULL); + priv->slaves = NMT_SLAVE_LIST(widget); + + widget = nmt_newt_entry_numeric_new(10, 0, 1000000); + g_object_bind_property(s_bridge, + NM_SETTING_BRIDGE_AGEING_TIME, + widget, + "text", + G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); + label = nmt_newt_label_new(_("seconds")); + nmt_editor_grid_append(grid, _("Aging time"), widget, label); + + widget = nmt_newt_checkbox_new(_("Enable IGMP snooping")); + g_object_bind_property(s_bridge, + NM_SETTING_BRIDGE_MULTICAST_SNOOPING, + widget, + "active", + G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); + nmt_editor_grid_append(grid, NULL, widget, NULL); + + widget = stp = nmt_newt_checkbox_new(_("Enable STP (Spanning Tree Protocol)")); + g_object_bind_property(s_bridge, + NM_SETTING_BRIDGE_STP, + widget, + "active", + G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); + nmt_editor_grid_append(grid, NULL, widget, NULL); + + widget = nmt_newt_entry_numeric_new(10, 0, G_MAXINT); + g_object_bind_property(s_bridge, + NM_SETTING_BRIDGE_PRIORITY, + widget, + "text", + G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); + g_object_bind_property(s_bridge, + NM_SETTING_BRIDGE_STP, + widget, + "sensitive", + G_BINDING_SYNC_CREATE); + nmt_editor_grid_append(grid, _("Priority"), widget, NULL); + + widget = nmt_newt_entry_numeric_new(10, 2, 30); + g_object_bind_property(s_bridge, + NM_SETTING_BRIDGE_FORWARD_DELAY, + widget, + "text", + G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); + g_object_bind_property(s_bridge, + NM_SETTING_BRIDGE_STP, + widget, + "sensitive", + G_BINDING_SYNC_CREATE); + label = nmt_newt_label_new(_("seconds")); + nmt_editor_grid_append(grid, _("Forward delay"), widget, label); + + widget = nmt_newt_entry_numeric_new(10, 1, 10); + g_object_bind_property(s_bridge, + NM_SETTING_BRIDGE_HELLO_TIME, + widget, + "text", + G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); + g_object_bind_property(s_bridge, + NM_SETTING_BRIDGE_STP, + widget, + "sensitive", + G_BINDING_SYNC_CREATE); + label = nmt_newt_label_new(_("seconds")); + nmt_editor_grid_append(grid, _("Hello time"), widget, label); + + widget = nmt_newt_entry_numeric_new(10, 6, 40); + g_object_bind_property(s_bridge, + NM_SETTING_BRIDGE_MAX_AGE, + widget, + "text", + G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); + g_object_bind_property(s_bridge, + NM_SETTING_BRIDGE_STP, + widget, + "sensitive", + G_BINDING_SYNC_CREATE); + label = nmt_newt_label_new(_("seconds")); + nmt_editor_grid_append(grid, _("Max age"), widget, label); + + widget = nmt_newt_entry_numeric_new(10, 0, 65535); + g_object_bind_property(s_bridge, + NM_SETTING_BRIDGE_GROUP_FORWARD_MASK, + widget, + "text", + G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); + nmt_editor_grid_append(grid, _("Group forward mask"), widget, NULL); + + nmt_editor_page_add_section(NMT_EDITOR_PAGE(bridge), section); + + G_OBJECT_CLASS(nmt_page_bridge_parent_class)->constructed(object); } static void -nmt_page_bridge_saved (NmtEditorPage *editor_page) +nmt_page_bridge_saved(NmtEditorPage *editor_page) { - NmtPageBridgePrivate *priv = NMT_PAGE_BRIDGE_GET_PRIVATE (editor_page); + NmtPageBridgePrivate *priv = NMT_PAGE_BRIDGE_GET_PRIVATE(editor_page); - nmt_edit_connection_list_recommit (NMT_EDIT_CONNECTION_LIST (priv->slaves)); + nmt_edit_connection_list_recommit(NMT_EDIT_CONNECTION_LIST(priv->slaves)); } static void -nmt_page_bridge_class_init (NmtPageBridgeClass *bridge_class) +nmt_page_bridge_class_init(NmtPageBridgeClass *bridge_class) { - GObjectClass *object_class = G_OBJECT_CLASS (bridge_class); - NmtEditorPageClass *editor_page_class = NMT_EDITOR_PAGE_CLASS (bridge_class); + GObjectClass * object_class = G_OBJECT_CLASS(bridge_class); + NmtEditorPageClass *editor_page_class = NMT_EDITOR_PAGE_CLASS(bridge_class); - object_class->constructed = nmt_page_bridge_constructed; - editor_page_class->saved = nmt_page_bridge_saved; + object_class->constructed = nmt_page_bridge_constructed; + editor_page_class->saved = nmt_page_bridge_saved; } diff --git a/clients/tui/nmt-page-bridge.h b/clients/tui/nmt-page-bridge.h index d143654e7d..3a5a697856 100644 --- a/clients/tui/nmt-page-bridge.h +++ b/clients/tui/nmt-page-bridge.h @@ -8,26 +8,28 @@ #include "nmt-editor-page-device.h" -#define NMT_TYPE_PAGE_BRIDGE (nmt_page_bridge_get_type ()) -#define NMT_PAGE_BRIDGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NMT_TYPE_PAGE_BRIDGE, NmtPageBridge)) -#define NMT_PAGE_BRIDGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NMT_TYPE_PAGE_BRIDGE, NmtPageBridgeClass)) -#define NMT_IS_PAGE_BRIDGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NMT_TYPE_PAGE_BRIDGE)) -#define NMT_IS_PAGE_BRIDGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NMT_TYPE_PAGE_BRIDGE)) -#define NMT_PAGE_BRIDGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NMT_TYPE_PAGE_BRIDGE, NmtPageBridgeClass)) +#define NMT_TYPE_PAGE_BRIDGE (nmt_page_bridge_get_type()) +#define NMT_PAGE_BRIDGE(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), NMT_TYPE_PAGE_BRIDGE, NmtPageBridge)) +#define NMT_PAGE_BRIDGE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), NMT_TYPE_PAGE_BRIDGE, NmtPageBridgeClass)) +#define NMT_IS_PAGE_BRIDGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), NMT_TYPE_PAGE_BRIDGE)) +#define NMT_IS_PAGE_BRIDGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), NMT_TYPE_PAGE_BRIDGE)) +#define NMT_PAGE_BRIDGE_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), NMT_TYPE_PAGE_BRIDGE, NmtPageBridgeClass)) typedef struct { - NmtEditorPageDevice parent; + NmtEditorPageDevice parent; } NmtPageBridge; typedef struct { - NmtEditorPageDeviceClass parent; + NmtEditorPageDeviceClass parent; } NmtPageBridgeClass; -GType nmt_page_bridge_get_type (void); +GType nmt_page_bridge_get_type(void); -NmtEditorPage *nmt_page_bridge_new (NMConnection *conn, - NmtDeviceEntry *deventry); +NmtEditorPage *nmt_page_bridge_new(NMConnection *conn, NmtDeviceEntry *deventry); #endif /* NMT_PAGE_BRIDGE_H */ diff --git a/clients/tui/nmt-page-dsl.c b/clients/tui/nmt-page-dsl.c index 68aea8d9b4..14008a64a7 100644 --- a/clients/tui/nmt-page-dsl.c +++ b/clients/tui/nmt-page-dsl.c @@ -15,113 +15,117 @@ #include "nmt-page-ppp.h" #include "nmt-password-fields.h" -G_DEFINE_TYPE (NmtPageDsl, nmt_page_dsl, NMT_TYPE_EDITOR_PAGE_DEVICE) +G_DEFINE_TYPE(NmtPageDsl, nmt_page_dsl, NMT_TYPE_EDITOR_PAGE_DEVICE) -#define NMT_PAGE_DSL_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NMT_TYPE_PAGE_DSL, NmtPageDslPrivate)) +#define NMT_PAGE_DSL_GET_PRIVATE(o) \ + (G_TYPE_INSTANCE_GET_PRIVATE((o), NMT_TYPE_PAGE_DSL, NmtPageDslPrivate)) typedef struct { - NmtEditorPage *ethernet_page, *ppp_page; + NmtEditorPage *ethernet_page, *ppp_page; } NmtPageDslPrivate; NmtEditorPage * -nmt_page_dsl_new (NMConnection *conn, - NmtDeviceEntry *deventry) +nmt_page_dsl_new(NMConnection *conn, NmtDeviceEntry *deventry) { - return g_object_new (NMT_TYPE_PAGE_DSL, - "connection", conn, - "device-entry", deventry, - NULL); + return g_object_new(NMT_TYPE_PAGE_DSL, "connection", conn, "device-entry", deventry, NULL); } static void -nmt_page_dsl_init (NmtPageDsl *dsl) -{ -} +nmt_page_dsl_init(NmtPageDsl *dsl) +{} static NmtEditorSection * -build_dsl_section (NmtPageDsl *dsl, NMSettingPppoe *s_pppoe) +build_dsl_section(NmtPageDsl *dsl, NMSettingPppoe *s_pppoe) { - NmtEditorSection *section; - NmtEditorGrid *grid; - NmtNewtWidget *widget; - - section = nmt_editor_section_new (_("DSL"), NULL, TRUE); - grid = nmt_editor_section_get_body (section); - - widget = nmt_newt_entry_new (40, 0); - nmt_editor_grid_append (grid, _("Username"), widget, NULL); - g_object_bind_property (s_pppoe, NM_SETTING_PPPOE_USERNAME, - widget, "text", - G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL); - - widget = nmt_password_fields_new (40, NMT_PASSWORD_FIELDS_SHOW_PASSWORD); - g_object_bind_property (s_pppoe, NM_SETTING_PPPOE_PASSWORD, - widget, "password", - G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL); - nmt_editor_grid_append (grid, _("Password"), widget, NULL); - - widget = nmt_newt_entry_new (40, 0); - nmt_editor_grid_append (grid, _("Service"), widget, NULL); - g_object_bind_property (s_pppoe, NM_SETTING_PPPOE_SERVICE, - widget, "text", - G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL); - - return section; + NmtEditorSection *section; + NmtEditorGrid * grid; + NmtNewtWidget * widget; + + section = nmt_editor_section_new(_("DSL"), NULL, TRUE); + grid = nmt_editor_section_get_body(section); + + widget = nmt_newt_entry_new(40, 0); + nmt_editor_grid_append(grid, _("Username"), widget, NULL); + g_object_bind_property(s_pppoe, + NM_SETTING_PPPOE_USERNAME, + widget, + "text", + G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL); + + widget = nmt_password_fields_new(40, NMT_PASSWORD_FIELDS_SHOW_PASSWORD); + g_object_bind_property(s_pppoe, + NM_SETTING_PPPOE_PASSWORD, + widget, + "password", + G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL); + nmt_editor_grid_append(grid, _("Password"), widget, NULL); + + widget = nmt_newt_entry_new(40, 0); + nmt_editor_grid_append(grid, _("Service"), widget, NULL); + g_object_bind_property(s_pppoe, + NM_SETTING_PPPOE_SERVICE, + widget, + "text", + G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL); + + return section; } static void -nmt_page_dsl_constructed (GObject *object) +nmt_page_dsl_constructed(GObject *object) { - NmtPageDsl *dsl = NMT_PAGE_DSL (object); - NmtPageDslPrivate *priv = NMT_PAGE_DSL_GET_PRIVATE (dsl); - NMConnection *conn; - NMSettingPppoe *s_pppoe; - NmtEditorSection *section; - const GSList *sections, *iter; - - conn = nmt_editor_page_get_connection (NMT_EDITOR_PAGE (dsl)); - s_pppoe = nm_connection_get_setting_pppoe (conn); - if (!s_pppoe) { - nm_connection_add_setting (conn, nm_setting_pppoe_new ()); - s_pppoe = nm_connection_get_setting_pppoe (conn); - } - - section = build_dsl_section (dsl, s_pppoe); - nmt_editor_page_add_section (NMT_EDITOR_PAGE (dsl), section); - - priv->ethernet_page = nmt_page_ethernet_new (conn, nmt_editor_page_device_get_device_entry (NMT_EDITOR_PAGE_DEVICE (dsl))); - sections = nmt_editor_page_get_sections (priv->ethernet_page); - for (iter = sections; iter; iter = iter->next) - nmt_editor_page_add_section (NMT_EDITOR_PAGE (dsl), iter->data); - - priv->ppp_page = nmt_page_ppp_new (conn); - sections = nmt_editor_page_get_sections (priv->ppp_page); - for (iter = sections; iter; iter = iter->next) - nmt_editor_page_add_section (NMT_EDITOR_PAGE (dsl), iter->data); - - G_OBJECT_CLASS (nmt_page_dsl_parent_class)->constructed (object); + NmtPageDsl * dsl = NMT_PAGE_DSL(object); + NmtPageDslPrivate *priv = NMT_PAGE_DSL_GET_PRIVATE(dsl); + NMConnection * conn; + NMSettingPppoe * s_pppoe; + NmtEditorSection * section; + const GSList * sections, *iter; + + conn = nmt_editor_page_get_connection(NMT_EDITOR_PAGE(dsl)); + s_pppoe = nm_connection_get_setting_pppoe(conn); + if (!s_pppoe) { + nm_connection_add_setting(conn, nm_setting_pppoe_new()); + s_pppoe = nm_connection_get_setting_pppoe(conn); + } + + section = build_dsl_section(dsl, s_pppoe); + nmt_editor_page_add_section(NMT_EDITOR_PAGE(dsl), section); + + priv->ethernet_page = + nmt_page_ethernet_new(conn, + nmt_editor_page_device_get_device_entry(NMT_EDITOR_PAGE_DEVICE(dsl))); + sections = nmt_editor_page_get_sections(priv->ethernet_page); + for (iter = sections; iter; iter = iter->next) + nmt_editor_page_add_section(NMT_EDITOR_PAGE(dsl), iter->data); + + priv->ppp_page = nmt_page_ppp_new(conn); + sections = nmt_editor_page_get_sections(priv->ppp_page); + for (iter = sections; iter; iter = iter->next) + nmt_editor_page_add_section(NMT_EDITOR_PAGE(dsl), iter->data); + + G_OBJECT_CLASS(nmt_page_dsl_parent_class)->constructed(object); } static void -nmt_page_dsl_finalize (GObject *object) +nmt_page_dsl_finalize(GObject *object) { - NmtPageDsl *dsl = NMT_PAGE_DSL (object); - NmtPageDslPrivate *priv = NMT_PAGE_DSL_GET_PRIVATE (dsl); + NmtPageDsl * dsl = NMT_PAGE_DSL(object); + NmtPageDslPrivate *priv = NMT_PAGE_DSL_GET_PRIVATE(dsl); - g_clear_object (&priv->ethernet_page); - g_clear_object (&priv->ppp_page); + g_clear_object(&priv->ethernet_page); + g_clear_object(&priv->ppp_page); - G_OBJECT_CLASS (nmt_page_dsl_parent_class)->finalize (object); + G_OBJECT_CLASS(nmt_page_dsl_parent_class)->finalize(object); } static void -nmt_page_dsl_class_init (NmtPageDslClass *dsl_class) +nmt_page_dsl_class_init(NmtPageDslClass *dsl_class) { - GObjectClass *object_class = G_OBJECT_CLASS (dsl_class); + GObjectClass *object_class = G_OBJECT_CLASS(dsl_class); - g_type_class_add_private (object_class, sizeof (NmtPageDslPrivate)); + g_type_class_add_private(object_class, sizeof(NmtPageDslPrivate)); - object_class->constructed = nmt_page_dsl_constructed; - object_class->finalize = nmt_page_dsl_finalize; + object_class->constructed = nmt_page_dsl_constructed; + object_class->finalize = nmt_page_dsl_finalize; } diff --git a/clients/tui/nmt-page-dsl.h b/clients/tui/nmt-page-dsl.h index ffdc5370fa..0fd8b9aadf 100644 --- a/clients/tui/nmt-page-dsl.h +++ b/clients/tui/nmt-page-dsl.h @@ -8,26 +8,27 @@ #include "nmt-editor-page-device.h" -#define NMT_TYPE_PAGE_DSL (nmt_page_dsl_get_type ()) -#define NMT_PAGE_DSL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NMT_TYPE_PAGE_DSL, NmtPageDsl)) -#define NMT_PAGE_DSL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NMT_TYPE_PAGE_DSL, NmtPageDslClass)) -#define NMT_IS_PAGE_DSL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NMT_TYPE_PAGE_DSL)) -#define NMT_IS_PAGE_DSL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NMT_TYPE_PAGE_DSL)) -#define NMT_PAGE_DSL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NMT_TYPE_PAGE_DSL, NmtPageDslClass)) +#define NMT_TYPE_PAGE_DSL (nmt_page_dsl_get_type()) +#define NMT_PAGE_DSL(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), NMT_TYPE_PAGE_DSL, NmtPageDsl)) +#define NMT_PAGE_DSL_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), NMT_TYPE_PAGE_DSL, NmtPageDslClass)) +#define NMT_IS_PAGE_DSL(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), NMT_TYPE_PAGE_DSL)) +#define NMT_IS_PAGE_DSL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), NMT_TYPE_PAGE_DSL)) +#define NMT_PAGE_DSL_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), NMT_TYPE_PAGE_DSL, NmtPageDslClass)) typedef struct { - NmtEditorPageDevice parent; + NmtEditorPageDevice parent; } NmtPageDsl; typedef struct { - NmtEditorPageDeviceClass parent; + NmtEditorPageDeviceClass parent; } NmtPageDslClass; -GType nmt_page_dsl_get_type (void); +GType nmt_page_dsl_get_type(void); -NmtEditorPage *nmt_page_dsl_new (NMConnection *conn, - NmtDeviceEntry *deventry); +NmtEditorPage *nmt_page_dsl_new(NMConnection *conn, NmtDeviceEntry *deventry); #endif /* NMT_PAGE_DSL_H */ diff --git a/clients/tui/nmt-page-ethernet.c b/clients/tui/nmt-page-ethernet.c index 8b38e098aa..606ca46a39 100644 --- a/clients/tui/nmt-page-ethernet.c +++ b/clients/tui/nmt-page-ethernet.c @@ -14,70 +14,71 @@ #include "nmt-mac-entry.h" #include "nmt-mtu-entry.h" -G_DEFINE_TYPE (NmtPageEthernet, nmt_page_ethernet, NMT_TYPE_EDITOR_PAGE_DEVICE) +G_DEFINE_TYPE(NmtPageEthernet, nmt_page_ethernet, NMT_TYPE_EDITOR_PAGE_DEVICE) NmtEditorPage * -nmt_page_ethernet_new (NMConnection *conn, - NmtDeviceEntry *deventry) +nmt_page_ethernet_new(NMConnection *conn, NmtDeviceEntry *deventry) { - return g_object_new (NMT_TYPE_PAGE_ETHERNET, - "connection", conn, - "device-entry", deventry, - NULL); + return g_object_new(NMT_TYPE_PAGE_ETHERNET, "connection", conn, "device-entry", deventry, NULL); } static void -nmt_page_ethernet_init (NmtPageEthernet *ethernet) -{ -} +nmt_page_ethernet_init(NmtPageEthernet *ethernet) +{} static void -nmt_page_ethernet_constructed (GObject *object) +nmt_page_ethernet_constructed(GObject *object) { - NmtPageEthernet *ethernet = NMT_PAGE_ETHERNET (object); - NmtDeviceEntry *deventry; - NmtEditorSection *section; - NmtEditorGrid *grid; - NMSettingWired *s_wired; - NmtNewtWidget *widget; - NMConnection *conn; - - conn = nmt_editor_page_get_connection (NMT_EDITOR_PAGE (ethernet)); - s_wired = nm_connection_get_setting_wired (conn); - if (!s_wired) { - nm_connection_add_setting (conn, nm_setting_wired_new ()); - s_wired = nm_connection_get_setting_wired (conn); - } - - deventry = nmt_editor_page_device_get_device_entry (NMT_EDITOR_PAGE_DEVICE (object)); - g_object_bind_property (s_wired, NM_SETTING_WIRED_MAC_ADDRESS, - deventry, "mac-address", - G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); - - section = nmt_editor_section_new (_("ETHERNET"), NULL, FALSE); - grid = nmt_editor_section_get_body (section); - - widget = nmt_mac_entry_new (40, ETH_ALEN, NMT_MAC_ENTRY_TYPE_CLONED); - g_object_bind_property (s_wired, NM_SETTING_WIRED_CLONED_MAC_ADDRESS, - widget, "mac-address", - G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); - nmt_editor_grid_append (grid, _("Cloned MAC address"), widget, NULL); - - widget = nmt_mtu_entry_new (); - g_object_bind_property (s_wired, NM_SETTING_WIRED_MTU, - widget, "mtu", - G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); - nmt_editor_grid_append (grid, _("MTU"), widget, NULL); - - nmt_editor_page_add_section (NMT_EDITOR_PAGE (ethernet), section); - - G_OBJECT_CLASS (nmt_page_ethernet_parent_class)->constructed (object); + NmtPageEthernet * ethernet = NMT_PAGE_ETHERNET(object); + NmtDeviceEntry * deventry; + NmtEditorSection *section; + NmtEditorGrid * grid; + NMSettingWired * s_wired; + NmtNewtWidget * widget; + NMConnection * conn; + + conn = nmt_editor_page_get_connection(NMT_EDITOR_PAGE(ethernet)); + s_wired = nm_connection_get_setting_wired(conn); + if (!s_wired) { + nm_connection_add_setting(conn, nm_setting_wired_new()); + s_wired = nm_connection_get_setting_wired(conn); + } + + deventry = nmt_editor_page_device_get_device_entry(NMT_EDITOR_PAGE_DEVICE(object)); + g_object_bind_property(s_wired, + NM_SETTING_WIRED_MAC_ADDRESS, + deventry, + "mac-address", + G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); + + section = nmt_editor_section_new(_("ETHERNET"), NULL, FALSE); + grid = nmt_editor_section_get_body(section); + + widget = nmt_mac_entry_new(40, ETH_ALEN, NMT_MAC_ENTRY_TYPE_CLONED); + g_object_bind_property(s_wired, + NM_SETTING_WIRED_CLONED_MAC_ADDRESS, + widget, + "mac-address", + G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); + nmt_editor_grid_append(grid, _("Cloned MAC address"), widget, NULL); + + widget = nmt_mtu_entry_new(); + g_object_bind_property(s_wired, + NM_SETTING_WIRED_MTU, + widget, + "mtu", + G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); + nmt_editor_grid_append(grid, _("MTU"), widget, NULL); + + nmt_editor_page_add_section(NMT_EDITOR_PAGE(ethernet), section); + + G_OBJECT_CLASS(nmt_page_ethernet_parent_class)->constructed(object); } static void -nmt_page_ethernet_class_init (NmtPageEthernetClass *ethernet_class) +nmt_page_ethernet_class_init(NmtPageEthernetClass *ethernet_class) { - GObjectClass *object_class = G_OBJECT_CLASS (ethernet_class); + GObjectClass *object_class = G_OBJECT_CLASS(ethernet_class); - object_class->constructed = nmt_page_ethernet_constructed; + object_class->constructed = nmt_page_ethernet_constructed; } diff --git a/clients/tui/nmt-page-ethernet.h b/clients/tui/nmt-page-ethernet.h index 06a1b53861..97dc819321 100644 --- a/clients/tui/nmt-page-ethernet.h +++ b/clients/tui/nmt-page-ethernet.h @@ -8,26 +8,28 @@ #include "nmt-editor-page-device.h" -#define NMT_TYPE_PAGE_ETHERNET (nmt_page_ethernet_get_type ()) -#define NMT_PAGE_ETHERNET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NMT_TYPE_PAGE_ETHERNET, NmtPageEthernet)) -#define NMT_PAGE_ETHERNET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NMT_TYPE_PAGE_ETHERNET, NmtPageEthernetClass)) -#define NMT_IS_PAGE_ETHERNET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NMT_TYPE_PAGE_ETHERNET)) -#define NMT_IS_PAGE_ETHERNET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NMT_TYPE_PAGE_ETHERNET)) -#define NMT_PAGE_ETHERNET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NMT_TYPE_PAGE_ETHERNET, NmtPageEthernetClass)) +#define NMT_TYPE_PAGE_ETHERNET (nmt_page_ethernet_get_type()) +#define NMT_PAGE_ETHERNET(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), NMT_TYPE_PAGE_ETHERNET, NmtPageEthernet)) +#define NMT_PAGE_ETHERNET_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), NMT_TYPE_PAGE_ETHERNET, NmtPageEthernetClass)) +#define NMT_IS_PAGE_ETHERNET(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), NMT_TYPE_PAGE_ETHERNET)) +#define NMT_IS_PAGE_ETHERNET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), NMT_TYPE_PAGE_ETHERNET)) +#define NMT_PAGE_ETHERNET_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), NMT_TYPE_PAGE_ETHERNET, NmtPageEthernetClass)) typedef struct { - NmtEditorPageDevice parent; + NmtEditorPageDevice parent; } NmtPageEthernet; typedef struct { - NmtEditorPageDeviceClass parent; + NmtEditorPageDeviceClass parent; } NmtPageEthernetClass; -GType nmt_page_ethernet_get_type (void); +GType nmt_page_ethernet_get_type(void); -NmtEditorPage *nmt_page_ethernet_new (NMConnection *conn, - NmtDeviceEntry *deventry); +NmtEditorPage *nmt_page_ethernet_new(NMConnection *conn, NmtDeviceEntry *deventry); #endif /* NMT_PAGE_ETHERNET_H */ diff --git a/clients/tui/nmt-page-infiniband.c b/clients/tui/nmt-page-infiniband.c index 6165383a29..b212b8d358 100644 --- a/clients/tui/nmt-page-infiniband.c +++ b/clients/tui/nmt-page-infiniband.c @@ -13,82 +13,84 @@ #include "nmt-page-infiniband.h" #include "nmt-mtu-entry.h" -G_DEFINE_TYPE (NmtPageInfiniband, nmt_page_infiniband, NMT_TYPE_EDITOR_PAGE_DEVICE) +G_DEFINE_TYPE(NmtPageInfiniband, nmt_page_infiniband, NMT_TYPE_EDITOR_PAGE_DEVICE) NmtEditorPage * -nmt_page_infiniband_new (NMConnection *conn, - NmtDeviceEntry *deventry) +nmt_page_infiniband_new(NMConnection *conn, NmtDeviceEntry *deventry) { - return g_object_new (NMT_TYPE_PAGE_INFINIBAND, - "connection", conn, - "device-entry", deventry, - NULL); + return g_object_new(NMT_TYPE_PAGE_INFINIBAND, + "connection", + conn, + "device-entry", + deventry, + NULL); } static void -nmt_page_infiniband_init (NmtPageInfiniband *infiniband) -{ -} +nmt_page_infiniband_init(NmtPageInfiniband *infiniband) +{} -static NmtNewtPopupEntry transport_mode[] = { - { N_("Datagram"), "datagram" }, - { N_("Connected"), "connected" }, - { NULL, NULL } -}; +static NmtNewtPopupEntry transport_mode[] = {{N_("Datagram"), "datagram"}, + {N_("Connected"), "connected"}, + {NULL, NULL}}; static void -nmt_page_infiniband_constructed (GObject *object) +nmt_page_infiniband_constructed(GObject *object) { - NmtPageInfiniband *infiniband = NMT_PAGE_INFINIBAND (object); - NmtDeviceEntry *deventry; - NmtEditorSection *section; - NmtEditorGrid *grid; - NMSettingInfiniband *s_ib; - NmtNewtWidget *widget; - NMConnection *conn; - - conn = nmt_editor_page_get_connection (NMT_EDITOR_PAGE (infiniband)); - s_ib = nm_connection_get_setting_infiniband (conn); - if (!s_ib) { - nm_connection_add_setting (conn, nm_setting_infiniband_new ()); - s_ib = nm_connection_get_setting_infiniband (conn); - } - /* initialize 'transport-mode' if it is NULL */ - if (!nm_setting_infiniband_get_transport_mode (s_ib)) { - g_object_set (G_OBJECT (s_ib), - NM_SETTING_INFINIBAND_TRANSPORT_MODE, "datagram", - NULL); - } - - deventry = nmt_editor_page_device_get_device_entry (NMT_EDITOR_PAGE_DEVICE (object)); - g_object_bind_property (s_ib, NM_SETTING_INFINIBAND_MAC_ADDRESS, - deventry, "mac-address", - G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); - - section = nmt_editor_section_new (_("INFINIBAND"), NULL, TRUE); - grid = nmt_editor_section_get_body (section); - - widget = nmt_newt_popup_new (transport_mode); - g_object_bind_property (s_ib, NM_SETTING_INFINIBAND_TRANSPORT_MODE, - widget, "active-id", - G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); - nmt_editor_grid_append (grid, _("Transport mode"), widget, NULL); - - widget = nmt_mtu_entry_new (); - g_object_bind_property (s_ib, NM_SETTING_INFINIBAND_MTU, - widget, "mtu", - G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); - nmt_editor_grid_append (grid, _("MTU"), widget, NULL); - - nmt_editor_page_add_section (NMT_EDITOR_PAGE (infiniband), section); - - G_OBJECT_CLASS (nmt_page_infiniband_parent_class)->constructed (object); + NmtPageInfiniband * infiniband = NMT_PAGE_INFINIBAND(object); + NmtDeviceEntry * deventry; + NmtEditorSection * section; + NmtEditorGrid * grid; + NMSettingInfiniband *s_ib; + NmtNewtWidget * widget; + NMConnection * conn; + + conn = nmt_editor_page_get_connection(NMT_EDITOR_PAGE(infiniband)); + s_ib = nm_connection_get_setting_infiniband(conn); + if (!s_ib) { + nm_connection_add_setting(conn, nm_setting_infiniband_new()); + s_ib = nm_connection_get_setting_infiniband(conn); + } + /* initialize 'transport-mode' if it is NULL */ + if (!nm_setting_infiniband_get_transport_mode(s_ib)) { + g_object_set(G_OBJECT(s_ib), NM_SETTING_INFINIBAND_TRANSPORT_MODE, "datagram", NULL); + } + + deventry = nmt_editor_page_device_get_device_entry(NMT_EDITOR_PAGE_DEVICE(object)); + g_object_bind_property(s_ib, + NM_SETTING_INFINIBAND_MAC_ADDRESS, + deventry, + "mac-address", + G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); + + section = nmt_editor_section_new(_("INFINIBAND"), NULL, TRUE); + grid = nmt_editor_section_get_body(section); + + widget = nmt_newt_popup_new(transport_mode); + g_object_bind_property(s_ib, + NM_SETTING_INFINIBAND_TRANSPORT_MODE, + widget, + "active-id", + G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); + nmt_editor_grid_append(grid, _("Transport mode"), widget, NULL); + + widget = nmt_mtu_entry_new(); + g_object_bind_property(s_ib, + NM_SETTING_INFINIBAND_MTU, + widget, + "mtu", + G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); + nmt_editor_grid_append(grid, _("MTU"), widget, NULL); + + nmt_editor_page_add_section(NMT_EDITOR_PAGE(infiniband), section); + + G_OBJECT_CLASS(nmt_page_infiniband_parent_class)->constructed(object); } static void -nmt_page_infiniband_class_init (NmtPageInfinibandClass *infiniband_class) +nmt_page_infiniband_class_init(NmtPageInfinibandClass *infiniband_class) { - GObjectClass *object_class = G_OBJECT_CLASS (infiniband_class); + GObjectClass *object_class = G_OBJECT_CLASS(infiniband_class); - object_class->constructed = nmt_page_infiniband_constructed; + object_class->constructed = nmt_page_infiniband_constructed; } diff --git a/clients/tui/nmt-page-infiniband.h b/clients/tui/nmt-page-infiniband.h index fb8294645d..aba46975ff 100644 --- a/clients/tui/nmt-page-infiniband.h +++ b/clients/tui/nmt-page-infiniband.h @@ -8,26 +8,29 @@ #include "nmt-editor-page-device.h" -#define NMT_TYPE_PAGE_INFINIBAND (nmt_page_infiniband_get_type ()) -#define NMT_PAGE_INFINIBAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NMT_TYPE_PAGE_INFINIBAND, NmtPageInfiniband)) -#define NMT_PAGE_INFINIBAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NMT_TYPE_PAGE_INFINIBAND, NmtPageInfinibandClass)) -#define NMT_IS_PAGE_INFINIBAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NMT_TYPE_PAGE_INFINIBAND)) -#define NMT_IS_PAGE_INFINIBAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NMT_TYPE_PAGE_INFINIBAND)) -#define NMT_PAGE_INFINIBAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NMT_TYPE_PAGE_INFINIBAND, NmtPageInfinibandClass)) +#define NMT_TYPE_PAGE_INFINIBAND (nmt_page_infiniband_get_type()) +#define NMT_PAGE_INFINIBAND(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), NMT_TYPE_PAGE_INFINIBAND, NmtPageInfiniband)) +#define NMT_PAGE_INFINIBAND_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), NMT_TYPE_PAGE_INFINIBAND, NmtPageInfinibandClass)) +#define NMT_IS_PAGE_INFINIBAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), NMT_TYPE_PAGE_INFINIBAND)) +#define NMT_IS_PAGE_INFINIBAND_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass), NMT_TYPE_PAGE_INFINIBAND)) +#define NMT_PAGE_INFINIBAND_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), NMT_TYPE_PAGE_INFINIBAND, NmtPageInfinibandClass)) typedef struct { - NmtEditorPageDevice parent; + NmtEditorPageDevice parent; } NmtPageInfiniband; typedef struct { - NmtEditorPageDeviceClass parent; + NmtEditorPageDeviceClass parent; } NmtPageInfinibandClass; -GType nmt_page_infiniband_get_type (void); +GType nmt_page_infiniband_get_type(void); -NmtEditorPage *nmt_page_infiniband_new (NMConnection *conn, - NmtDeviceEntry *deventry); +NmtEditorPage *nmt_page_infiniband_new(NMConnection *conn, NmtDeviceEntry *deventry); #endif /* NMT_PAGE_INFINIBAND_H */ diff --git a/clients/tui/nmt-page-ip-tunnel.c b/clients/tui/nmt-page-ip-tunnel.c index d8fa51e1dd..98b7883fe7 100644 --- a/clients/tui/nmt-page-ip-tunnel.c +++ b/clients/tui/nmt-page-ip-tunnel.c @@ -14,180 +14,190 @@ #include "nmt-device-entry.h" #include "nmt-mtu-entry.h" -G_DEFINE_TYPE (NmtPageIPTunnel, nmt_page_ip_tunnel, NMT_TYPE_EDITOR_PAGE_DEVICE) +G_DEFINE_TYPE(NmtPageIPTunnel, nmt_page_ip_tunnel, NMT_TYPE_EDITOR_PAGE_DEVICE) -#define NMT_PAGE_IP_TUNNEL_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NMT_TYPE_PAGE_IP_TUNNEL, NmtPageIPTunnelPrivate)) +#define NMT_PAGE_IP_TUNNEL_GET_PRIVATE(o) \ + (G_TYPE_INSTANCE_GET_PRIVATE((o), NMT_TYPE_PAGE_IP_TUNNEL, NmtPageIPTunnelPrivate)) typedef struct { - NmtNewtEntry *input_key; - NmtNewtEntry *output_key; + NmtNewtEntry *input_key; + NmtNewtEntry *output_key; } NmtPageIPTunnelPrivate; NmtEditorPage * -nmt_page_ip_tunnel_new (NMConnection *conn, - NmtDeviceEntry *deventry) +nmt_page_ip_tunnel_new(NMConnection *conn, NmtDeviceEntry *deventry) { - return g_object_new (NMT_TYPE_PAGE_IP_TUNNEL, - "connection", conn, - "device-entry", deventry, - NULL); + return g_object_new(NMT_TYPE_PAGE_IP_TUNNEL, + "connection", + conn, + "device-entry", + deventry, + NULL); } static void -nmt_page_ip_tunnel_init (NmtPageIPTunnel *ip_tunnel) -{ -} +nmt_page_ip_tunnel_init(NmtPageIPTunnel *ip_tunnel) +{} static void -mode_changed (GObject *object, - GParamSpec *pspec, - gpointer user_data) +mode_changed(GObject *object, GParamSpec *pspec, gpointer user_data) { - NMSettingIPTunnel *s_ip_tunnel = NM_SETTING_IP_TUNNEL (object); - NmtPageIPTunnel *ip_tunnel = NMT_PAGE_IP_TUNNEL (user_data); - NmtPageIPTunnelPrivate *priv = NMT_PAGE_IP_TUNNEL_GET_PRIVATE (ip_tunnel); - NMIPTunnelMode mode; - gboolean enable_keys; - - mode = nm_setting_ip_tunnel_get_mode (s_ip_tunnel); - enable_keys = NM_IN_SET (mode, NM_IP_TUNNEL_MODE_GRE, NM_IP_TUNNEL_MODE_IP6GRE); - nmt_newt_widget_set_visible (NMT_NEWT_WIDGET (priv->input_key), enable_keys); - nmt_newt_widget_set_visible (NMT_NEWT_WIDGET (priv->output_key), enable_keys); - - if (!enable_keys) { - nmt_newt_entry_set_text (priv->input_key, ""); - nmt_newt_entry_set_text (priv->output_key, ""); - } + NMSettingIPTunnel * s_ip_tunnel = NM_SETTING_IP_TUNNEL(object); + NmtPageIPTunnel * ip_tunnel = NMT_PAGE_IP_TUNNEL(user_data); + NmtPageIPTunnelPrivate *priv = NMT_PAGE_IP_TUNNEL_GET_PRIVATE(ip_tunnel); + NMIPTunnelMode mode; + gboolean enable_keys; + + mode = nm_setting_ip_tunnel_get_mode(s_ip_tunnel); + enable_keys = NM_IN_SET(mode, NM_IP_TUNNEL_MODE_GRE, NM_IP_TUNNEL_MODE_IP6GRE); + nmt_newt_widget_set_visible(NMT_NEWT_WIDGET(priv->input_key), enable_keys); + nmt_newt_widget_set_visible(NMT_NEWT_WIDGET(priv->output_key), enable_keys); + + if (!enable_keys) { + nmt_newt_entry_set_text(priv->input_key, ""); + nmt_newt_entry_set_text(priv->output_key, ""); + } } static NmtNewtPopupEntry tunnel_mode[] = { - /* The order must match the NM_IP_TUNNEL_MODE_* enum */ - { N_("IPIP"), "IPIP" }, - { N_("GRE"), "GRE" }, - { N_("SIT"), "SIT" }, - { N_("ISATAP"), "ISATAP" }, - { N_("VTI"), "VTI" }, - { N_("IP6IP6"), "IP6IP6" }, - { N_("IPIP6"), "IPIP6" }, - { N_("IP6GRE"), "IP6GRE" }, - { N_("VTI6"), "VTI6" }, - { NULL, NULL } -}; + /* The order must match the NM_IP_TUNNEL_MODE_* enum */ + {N_("IPIP"), "IPIP"}, + {N_("GRE"), "GRE"}, + {N_("SIT"), "SIT"}, + {N_("ISATAP"), "ISATAP"}, + {N_("VTI"), "VTI"}, + {N_("IP6IP6"), "IP6IP6"}, + {N_("IPIP6"), "IPIP6"}, + {N_("IP6GRE"), "IP6GRE"}, + {N_("VTI6"), "VTI6"}, + {NULL, NULL}}; static gboolean -add_offset (GBinding *binding, - const GValue *from_value, - GValue *to_value, - gpointer user_data) +add_offset(GBinding *binding, const GValue *from_value, GValue *to_value, gpointer user_data) { - guint v; - int offset = GPOINTER_TO_INT (user_data); + guint v; + int offset = GPOINTER_TO_INT(user_data); - g_return_val_if_fail (G_VALUE_HOLDS (from_value, G_TYPE_UINT), FALSE); - g_return_val_if_fail (G_VALUE_HOLDS (to_value, G_TYPE_UINT), FALSE); + g_return_val_if_fail(G_VALUE_HOLDS(from_value, G_TYPE_UINT), FALSE); + g_return_val_if_fail(G_VALUE_HOLDS(to_value, G_TYPE_UINT), FALSE); - v = g_value_get_uint (from_value); - v += offset; + v = g_value_get_uint(from_value); + v += offset; - g_value_set_uint (to_value, v); + g_value_set_uint(to_value, v); - return TRUE; + return TRUE; } static void -nmt_page_ip_tunnel_constructed (GObject *object) +nmt_page_ip_tunnel_constructed(GObject *object) { - NmtPageIPTunnel *ip_tunnel = NMT_PAGE_IP_TUNNEL (object); - NmtPageIPTunnelPrivate *priv = NMT_PAGE_IP_TUNNEL_GET_PRIVATE (ip_tunnel); - NmtEditorSection *section; - NmtEditorGrid *grid; - NMSettingIPTunnel *s_ip_tunnel; - NmtNewtWidget *widget, *parent; - NMConnection *conn; - GClosure *s2w, *w2s; - - conn = nmt_editor_page_get_connection (NMT_EDITOR_PAGE (ip_tunnel)); - s_ip_tunnel = nm_connection_get_setting_ip_tunnel (conn); - if (!s_ip_tunnel) { - nm_connection_add_setting (conn, nm_setting_ip_tunnel_new ()); - s_ip_tunnel = nm_connection_get_setting_ip_tunnel (conn); - } - - /* Initialize the mode for new connections */ - if (nm_setting_ip_tunnel_get_mode (s_ip_tunnel) == NM_IP_TUNNEL_MODE_UNKNOWN) { - g_object_set (s_ip_tunnel, - NM_SETTING_IP_TUNNEL_MODE, (guint) NM_IP_TUNNEL_MODE_IPIP, - NULL); - } - - section = nmt_editor_section_new (_("IP tunnel"), NULL, TRUE); - grid = nmt_editor_section_get_body (section); - - /* To convert between widget index (0-based) and setting index (1-based) */ - s2w = g_cclosure_new (G_CALLBACK (add_offset), GINT_TO_POINTER (-1), NULL); - w2s = g_cclosure_new (G_CALLBACK (add_offset), GINT_TO_POINTER (1), NULL); - - widget = nmt_newt_popup_new (tunnel_mode); - g_object_bind_property_with_closures (s_ip_tunnel, NM_SETTING_IP_TUNNEL_MODE, - widget, "active", - G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE, - s2w, w2s); - nmt_editor_grid_append (grid, _("Mode"), widget, NULL); - - widget = parent = nmt_device_entry_new (_("Parent"), 40, G_TYPE_NONE); - g_object_bind_property (s_ip_tunnel, NM_SETTING_IP_TUNNEL_PARENT, - widget, "interface-name", - G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); - nmt_editor_grid_append (grid, NULL, widget, NULL); - - widget = nmt_newt_entry_new (40, 0); - nmt_editor_grid_append (grid, _("Local IP"), widget, NULL); - g_object_bind_property (s_ip_tunnel, NM_SETTING_IP_TUNNEL_LOCAL, - widget, "text", - G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL); - - widget = nmt_newt_entry_new (40, 0); - nmt_editor_grid_append (grid, _("Remote IP"), widget, NULL); - g_object_bind_property (s_ip_tunnel, NM_SETTING_IP_TUNNEL_REMOTE, - widget, "text", - G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL); - - widget = nmt_newt_entry_new (40, 0); - nmt_editor_grid_append (grid, _("Input key"), widget, NULL); - g_object_bind_property (s_ip_tunnel, NM_SETTING_IP_TUNNEL_INPUT_KEY, - widget, "text", - G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL); - priv->input_key = NMT_NEWT_ENTRY (widget); - - widget = nmt_newt_entry_new (40, 0); - nmt_editor_grid_append (grid, _("Output key"), widget, NULL); - g_object_bind_property (s_ip_tunnel, NM_SETTING_IP_TUNNEL_OUTPUT_KEY, - widget, "text", - G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL); - priv->output_key = NMT_NEWT_ENTRY (widget); - - widget = nmt_mtu_entry_new (); - g_object_bind_property (s_ip_tunnel, NM_SETTING_IP_TUNNEL_MTU, - widget, "mtu", - G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); - nmt_editor_grid_append (grid, _("MTU"), widget, NULL); - - g_signal_connect (s_ip_tunnel, "notify::" NM_SETTING_IP_TUNNEL_MODE, - G_CALLBACK (mode_changed), ip_tunnel); - mode_changed (G_OBJECT (s_ip_tunnel), NULL, ip_tunnel); - - nmt_editor_page_add_section (NMT_EDITOR_PAGE (ip_tunnel), section); - - G_OBJECT_CLASS (nmt_page_ip_tunnel_parent_class)->constructed (object); + NmtPageIPTunnel * ip_tunnel = NMT_PAGE_IP_TUNNEL(object); + NmtPageIPTunnelPrivate *priv = NMT_PAGE_IP_TUNNEL_GET_PRIVATE(ip_tunnel); + NmtEditorSection * section; + NmtEditorGrid * grid; + NMSettingIPTunnel * s_ip_tunnel; + NmtNewtWidget * widget, *parent; + NMConnection * conn; + GClosure * s2w, *w2s; + + conn = nmt_editor_page_get_connection(NMT_EDITOR_PAGE(ip_tunnel)); + s_ip_tunnel = nm_connection_get_setting_ip_tunnel(conn); + if (!s_ip_tunnel) { + nm_connection_add_setting(conn, nm_setting_ip_tunnel_new()); + s_ip_tunnel = nm_connection_get_setting_ip_tunnel(conn); + } + + /* Initialize the mode for new connections */ + if (nm_setting_ip_tunnel_get_mode(s_ip_tunnel) == NM_IP_TUNNEL_MODE_UNKNOWN) { + g_object_set(s_ip_tunnel, NM_SETTING_IP_TUNNEL_MODE, (guint) NM_IP_TUNNEL_MODE_IPIP, NULL); + } + + section = nmt_editor_section_new(_("IP tunnel"), NULL, TRUE); + grid = nmt_editor_section_get_body(section); + + /* To convert between widget index (0-based) and setting index (1-based) */ + s2w = g_cclosure_new(G_CALLBACK(add_offset), GINT_TO_POINTER(-1), NULL); + w2s = g_cclosure_new(G_CALLBACK(add_offset), GINT_TO_POINTER(1), NULL); + + widget = nmt_newt_popup_new(tunnel_mode); + g_object_bind_property_with_closures(s_ip_tunnel, + NM_SETTING_IP_TUNNEL_MODE, + widget, + "active", + G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE, + s2w, + w2s); + nmt_editor_grid_append(grid, _("Mode"), widget, NULL); + + widget = parent = nmt_device_entry_new(_("Parent"), 40, G_TYPE_NONE); + g_object_bind_property(s_ip_tunnel, + NM_SETTING_IP_TUNNEL_PARENT, + widget, + "interface-name", + G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); + nmt_editor_grid_append(grid, NULL, widget, NULL); + + widget = nmt_newt_entry_new(40, 0); + nmt_editor_grid_append(grid, _("Local IP"), widget, NULL); + g_object_bind_property(s_ip_tunnel, + NM_SETTING_IP_TUNNEL_LOCAL, + widget, + "text", + G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL); + + widget = nmt_newt_entry_new(40, 0); + nmt_editor_grid_append(grid, _("Remote IP"), widget, NULL); + g_object_bind_property(s_ip_tunnel, + NM_SETTING_IP_TUNNEL_REMOTE, + widget, + "text", + G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL); + + widget = nmt_newt_entry_new(40, 0); + nmt_editor_grid_append(grid, _("Input key"), widget, NULL); + g_object_bind_property(s_ip_tunnel, + NM_SETTING_IP_TUNNEL_INPUT_KEY, + widget, + "text", + G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL); + priv->input_key = NMT_NEWT_ENTRY(widget); + + widget = nmt_newt_entry_new(40, 0); + nmt_editor_grid_append(grid, _("Output key"), widget, NULL); + g_object_bind_property(s_ip_tunnel, + NM_SETTING_IP_TUNNEL_OUTPUT_KEY, + widget, + "text", + G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL); + priv->output_key = NMT_NEWT_ENTRY(widget); + + widget = nmt_mtu_entry_new(); + g_object_bind_property(s_ip_tunnel, + NM_SETTING_IP_TUNNEL_MTU, + widget, + "mtu", + G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); + nmt_editor_grid_append(grid, _("MTU"), widget, NULL); + + g_signal_connect(s_ip_tunnel, + "notify::" NM_SETTING_IP_TUNNEL_MODE, + G_CALLBACK(mode_changed), + ip_tunnel); + mode_changed(G_OBJECT(s_ip_tunnel), NULL, ip_tunnel); + + nmt_editor_page_add_section(NMT_EDITOR_PAGE(ip_tunnel), section); + + G_OBJECT_CLASS(nmt_page_ip_tunnel_parent_class)->constructed(object); } static void -nmt_page_ip_tunnel_class_init (NmtPageIPTunnelClass *ip_tunnel_class) +nmt_page_ip_tunnel_class_init(NmtPageIPTunnelClass *ip_tunnel_class) { - GObjectClass *object_class = G_OBJECT_CLASS (ip_tunnel_class); + GObjectClass *object_class = G_OBJECT_CLASS(ip_tunnel_class); - g_type_class_add_private (ip_tunnel_class, sizeof (NmtPageIPTunnelPrivate)); + g_type_class_add_private(ip_tunnel_class, sizeof(NmtPageIPTunnelPrivate)); - /* virtual methods */ - object_class->constructed = nmt_page_ip_tunnel_constructed; + /* virtual methods */ + object_class->constructed = nmt_page_ip_tunnel_constructed; } diff --git a/clients/tui/nmt-page-ip-tunnel.h b/clients/tui/nmt-page-ip-tunnel.h index 9400ab7c56..613eb15068 100644 --- a/clients/tui/nmt-page-ip-tunnel.h +++ b/clients/tui/nmt-page-ip-tunnel.h @@ -8,24 +8,27 @@ #include "nmt-editor-page-device.h" -#define NMT_TYPE_PAGE_IP_TUNNEL (nmt_page_ip_tunnel_get_type ()) -#define NMT_PAGE_IP_TUNNEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NMT_TYPE_PAGE_IP_TUNNEL, NmtPageIPTunnel)) -#define NMT_PAGE_IP_TUNNEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NMT_TYPE_PAGE_IP_TUNNEL, NmtPageIPTunnelClass)) -#define NMT_IS_PAGE_IP_TUNNEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NMT_TYPE_PAGE_IP_TUNNEL)) -#define NMT_IS_PAGE_IP_TUNNEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NMT_TYPE_PAGE_IP_TUNNEL)) -#define NMT_PAGE_IP_TUNNEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NMT_TYPE_PAGE_IP_TUNNEL, NmtPageIPTunnelClass)) +#define NMT_TYPE_PAGE_IP_TUNNEL (nmt_page_ip_tunnel_get_type()) +#define NMT_PAGE_IP_TUNNEL(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), NMT_TYPE_PAGE_IP_TUNNEL, NmtPageIPTunnel)) +#define NMT_PAGE_IP_TUNNEL_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), NMT_TYPE_PAGE_IP_TUNNEL, NmtPageIPTunnelClass)) +#define NMT_IS_PAGE_IP_TUNNEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), NMT_TYPE_PAGE_IP_TUNNEL)) +#define NMT_IS_PAGE_IP_TUNNEL_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass), NMT_TYPE_PAGE_IP_TUNNEL)) +#define NMT_PAGE_IP_TUNNEL_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), NMT_TYPE_PAGE_IP_TUNNEL, NmtPageIPTunnelClass)) typedef struct { - NmtEditorPageDevice parent; + NmtEditorPageDevice parent; } NmtPageIPTunnel; typedef struct { - NmtEditorPageDeviceClass parent; + NmtEditorPageDeviceClass parent; } NmtPageIPTunnelClass; -GType nmt_page_ip_tunnel_get_type (void); +GType nmt_page_ip_tunnel_get_type(void); -NmtEditorPage *nmt_page_ip_tunnel_new (NMConnection *conn, - NmtDeviceEntry *deventry); +NmtEditorPage *nmt_page_ip_tunnel_new(NMConnection *conn, NmtDeviceEntry *deventry); #endif /* NMT_PAGE_IP_TUNNEL_H */ diff --git a/clients/tui/nmt-page-ip4.c b/clients/tui/nmt-page-ip4.c index ad7e9550e8..f80f35de33 100644 --- a/clients/tui/nmt-page-ip4.c +++ b/clients/tui/nmt-page-ip4.c @@ -19,180 +19,194 @@ #include "nm-editor-bindings.h" -G_DEFINE_TYPE (NmtPageIP4, nmt_page_ip4, NMT_TYPE_EDITOR_PAGE) +G_DEFINE_TYPE(NmtPageIP4, nmt_page_ip4, NMT_TYPE_EDITOR_PAGE) static NmtNewtPopupEntry ip4methods[] = { - { N_("Disabled"), NM_SETTING_IP4_CONFIG_METHOD_DISABLED }, - { N_("Automatic"), NM_SETTING_IP4_CONFIG_METHOD_AUTO }, - { N_("Link-Local"), NM_SETTING_IP4_CONFIG_METHOD_LINK_LOCAL }, - { N_("Manual"), NM_SETTING_IP4_CONFIG_METHOD_MANUAL }, - { N_("Shared"), NM_SETTING_IP4_CONFIG_METHOD_SHARED }, - { NULL, NULL } -}; + {N_("Disabled"), NM_SETTING_IP4_CONFIG_METHOD_DISABLED}, + {N_("Automatic"), NM_SETTING_IP4_CONFIG_METHOD_AUTO}, + {N_("Link-Local"), NM_SETTING_IP4_CONFIG_METHOD_LINK_LOCAL}, + {N_("Manual"), NM_SETTING_IP4_CONFIG_METHOD_MANUAL}, + {N_("Shared"), NM_SETTING_IP4_CONFIG_METHOD_SHARED}, + {NULL, NULL}}; NmtEditorPage * -nmt_page_ip4_new (NMConnection *conn) +nmt_page_ip4_new(NMConnection *conn) { - return g_object_new (NMT_TYPE_PAGE_IP4, - "connection", conn, - NULL); + return g_object_new(NMT_TYPE_PAGE_IP4, "connection", conn, NULL); } static void -nmt_page_ip4_init (NmtPageIP4 *ip4) -{ -} +nmt_page_ip4_init(NmtPageIP4 *ip4) +{} static void -edit_routes (NmtNewtButton *button, - gpointer user_data) +edit_routes(NmtNewtButton *button, gpointer user_data) { - NMSetting *s_ip4 = user_data; - NmtNewtForm *form; + NMSetting * s_ip4 = user_data; + NmtNewtForm *form; - form = nmt_route_editor_new (s_ip4); - nmt_newt_form_run_sync (form); - g_object_unref (form); + form = nmt_route_editor_new(s_ip4); + nmt_newt_form_run_sync(form); + g_object_unref(form); } static gboolean -ip4_routes_transform_to_description (GBinding *binding, - const GValue *source_value, - GValue *target_value, - gpointer user_data) +ip4_routes_transform_to_description(GBinding * binding, + const GValue *source_value, + GValue * target_value, + gpointer user_data) { - GPtrArray *routes; - char *text; - - routes = g_value_get_boxed (source_value); - if (!routes || !routes->len) - text = g_strdup (_("(No custom routes)")); - else { - text = g_strdup_printf (g_dngettext (GETTEXT_PACKAGE, - "One custom route", - "%d custom routes", - routes->len), - routes->len); - } - - g_value_take_string (target_value, text); - return TRUE; + GPtrArray *routes; + char * text; + + routes = g_value_get_boxed(source_value); + if (!routes || !routes->len) + text = g_strdup(_("(No custom routes)")); + else { + text = g_strdup_printf( + g_dngettext(GETTEXT_PACKAGE, "One custom route", "%d custom routes", routes->len), + routes->len); + } + + g_value_take_string(target_value, text); + return TRUE; } static void -nmt_page_ip4_constructed (GObject *object) +nmt_page_ip4_constructed(GObject *object) { - NmtPageIP4 *ip4 = NMT_PAGE_IP4 (object); - gboolean show_by_default; - NmtEditorSection *section; - NmtEditorGrid *grid; - NMSettingIPConfig *s_ip4; - NmtNewtWidget *widget, *button; - NMConnection *conn; - - conn = nmt_editor_page_get_connection (NMT_EDITOR_PAGE (ip4)); - s_ip4 = nm_connection_get_setting_ip4_config (conn); - if (!s_ip4) { - s_ip4 = (NMSettingIPConfig *) nm_setting_ip4_config_new (); - g_object_set (G_OBJECT (s_ip4), - NM_SETTING_IP_CONFIG_METHOD, NM_SETTING_IP4_CONFIG_METHOD_AUTO, - NULL); - nm_connection_add_setting (conn, (NMSetting *) s_ip4); - } - - widget = nmt_newt_popup_new (ip4methods); - g_object_bind_property (s_ip4, NM_SETTING_IP_CONFIG_METHOD, - widget, "active-id", - G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); - - if (!g_strcmp0 (nm_setting_ip_config_get_method (s_ip4), NM_SETTING_IP4_CONFIG_METHOD_MANUAL)) - show_by_default = TRUE; - else if (nm_setting_ip_config_get_num_addresses (s_ip4)) - show_by_default = TRUE; - else - show_by_default = FALSE; - - section = nmt_editor_section_new (_("IPv4 CONFIGURATION"), widget, show_by_default); - grid = nmt_editor_section_get_body (section); - - widget = nmt_address_list_new (NMT_ADDRESS_LIST_IP4_WITH_PREFIX); - nm_editor_bind_ip_addresses_with_prefix_to_strv (AF_INET, - s_ip4, NM_SETTING_IP_CONFIG_ADDRESSES, - widget, "strings", - G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); - nmt_editor_grid_append (grid, _("Addresses"), widget, NULL); - - widget = nmt_ip_entry_new (25, AF_INET, FALSE, TRUE); - nm_editor_bind_ip_gateway_to_string (AF_INET, - s_ip4, - widget, "text", "sensitive", - G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); - nmt_editor_grid_append (grid, _("Gateway"), widget, NULL); - - widget = nmt_address_list_new (NMT_ADDRESS_LIST_IP4); - nm_editor_bind_ip_addresses_to_strv (AF_INET, - s_ip4, NM_SETTING_IP_CONFIG_DNS, - widget, "strings", - G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); - nmt_editor_grid_append (grid, _("DNS servers"), widget, NULL); - - widget = nmt_address_list_new (NMT_ADDRESS_LIST_HOSTNAME); - g_object_bind_property (s_ip4, NM_SETTING_IP_CONFIG_DNS_SEARCH, - widget, "strings", - G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); - nmt_editor_grid_append (grid, _("Search domains"), widget, NULL); - - nmt_editor_grid_append (grid, NULL, nmt_newt_separator_new (), NULL); - - widget = g_object_new (NMT_TYPE_NEWT_LABEL, - "text", "", - "style", NMT_NEWT_LABEL_PLAIN, - NULL); - g_object_bind_property_full (s_ip4, NM_SETTING_IP_CONFIG_ROUTES, - widget, "text", - G_BINDING_SYNC_CREATE, - ip4_routes_transform_to_description, - NULL, NULL, NULL); - button = nmt_newt_button_new (_("Edit...")); - g_signal_connect (button, "clicked", G_CALLBACK (edit_routes), s_ip4); - nmt_editor_grid_append (grid, _("Routing"), widget, button); - - widget = nmt_newt_checkbox_new (_("Never use this network for default route")); - g_object_bind_property (s_ip4, NM_SETTING_IP_CONFIG_NEVER_DEFAULT, - widget, "active", - G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL); - nmt_editor_grid_append (grid, NULL, widget, NULL); - - widget = nmt_newt_checkbox_new (_("Ignore automatically obtained routes")); - g_object_bind_property (s_ip4, NM_SETTING_IP_CONFIG_IGNORE_AUTO_ROUTES, - widget, "active", - G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL); - nmt_editor_grid_append (grid, NULL, widget, NULL); - - widget = nmt_newt_checkbox_new (_("Ignore automatically obtained DNS parameters")); - g_object_bind_property (s_ip4, NM_SETTING_IP_CONFIG_IGNORE_AUTO_DNS, - widget, "active", - G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL); - nmt_editor_grid_append (grid, NULL, widget, NULL); - - nmt_editor_grid_append (grid, NULL, nmt_newt_separator_new (), NULL); - - widget = nmt_newt_checkbox_new (_("Require IPv4 addressing for this connection")); - g_object_bind_property (s_ip4, NM_SETTING_IP_CONFIG_MAY_FAIL, - widget, "active", - G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL | - G_BINDING_INVERT_BOOLEAN); - nmt_editor_grid_append (grid, NULL, widget, NULL); - - nmt_editor_page_add_section (NMT_EDITOR_PAGE (ip4), section); - - G_OBJECT_CLASS (nmt_page_ip4_parent_class)->constructed (object); + NmtPageIP4 * ip4 = NMT_PAGE_IP4(object); + gboolean show_by_default; + NmtEditorSection * section; + NmtEditorGrid * grid; + NMSettingIPConfig *s_ip4; + NmtNewtWidget * widget, *button; + NMConnection * conn; + + conn = nmt_editor_page_get_connection(NMT_EDITOR_PAGE(ip4)); + s_ip4 = nm_connection_get_setting_ip4_config(conn); + if (!s_ip4) { + s_ip4 = (NMSettingIPConfig *) nm_setting_ip4_config_new(); + g_object_set(G_OBJECT(s_ip4), + NM_SETTING_IP_CONFIG_METHOD, + NM_SETTING_IP4_CONFIG_METHOD_AUTO, + NULL); + nm_connection_add_setting(conn, (NMSetting *) s_ip4); + } + + widget = nmt_newt_popup_new(ip4methods); + g_object_bind_property(s_ip4, + NM_SETTING_IP_CONFIG_METHOD, + widget, + "active-id", + G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); + + if (!g_strcmp0(nm_setting_ip_config_get_method(s_ip4), NM_SETTING_IP4_CONFIG_METHOD_MANUAL)) + show_by_default = TRUE; + else if (nm_setting_ip_config_get_num_addresses(s_ip4)) + show_by_default = TRUE; + else + show_by_default = FALSE; + + section = nmt_editor_section_new(_("IPv4 CONFIGURATION"), widget, show_by_default); + grid = nmt_editor_section_get_body(section); + + widget = nmt_address_list_new(NMT_ADDRESS_LIST_IP4_WITH_PREFIX); + nm_editor_bind_ip_addresses_with_prefix_to_strv(AF_INET, + s_ip4, + NM_SETTING_IP_CONFIG_ADDRESSES, + widget, + "strings", + G_BINDING_BIDIRECTIONAL + | G_BINDING_SYNC_CREATE); + nmt_editor_grid_append(grid, _("Addresses"), widget, NULL); + + widget = nmt_ip_entry_new(25, AF_INET, FALSE, TRUE); + nm_editor_bind_ip_gateway_to_string(AF_INET, + s_ip4, + widget, + "text", + "sensitive", + G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); + nmt_editor_grid_append(grid, _("Gateway"), widget, NULL); + + widget = nmt_address_list_new(NMT_ADDRESS_LIST_IP4); + nm_editor_bind_ip_addresses_to_strv(AF_INET, + s_ip4, + NM_SETTING_IP_CONFIG_DNS, + widget, + "strings", + G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); + nmt_editor_grid_append(grid, _("DNS servers"), widget, NULL); + + widget = nmt_address_list_new(NMT_ADDRESS_LIST_HOSTNAME); + g_object_bind_property(s_ip4, + NM_SETTING_IP_CONFIG_DNS_SEARCH, + widget, + "strings", + G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); + nmt_editor_grid_append(grid, _("Search domains"), widget, NULL); + + nmt_editor_grid_append(grid, NULL, nmt_newt_separator_new(), NULL); + + widget = g_object_new(NMT_TYPE_NEWT_LABEL, "text", "", "style", NMT_NEWT_LABEL_PLAIN, NULL); + g_object_bind_property_full(s_ip4, + NM_SETTING_IP_CONFIG_ROUTES, + widget, + "text", + G_BINDING_SYNC_CREATE, + ip4_routes_transform_to_description, + NULL, + NULL, + NULL); + button = nmt_newt_button_new(_("Edit...")); + g_signal_connect(button, "clicked", G_CALLBACK(edit_routes), s_ip4); + nmt_editor_grid_append(grid, _("Routing"), widget, button); + + widget = nmt_newt_checkbox_new(_("Never use this network for default route")); + g_object_bind_property(s_ip4, + NM_SETTING_IP_CONFIG_NEVER_DEFAULT, + widget, + "active", + G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL); + nmt_editor_grid_append(grid, NULL, widget, NULL); + + widget = nmt_newt_checkbox_new(_("Ignore automatically obtained routes")); + g_object_bind_property(s_ip4, + NM_SETTING_IP_CONFIG_IGNORE_AUTO_ROUTES, + widget, + "active", + G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL); + nmt_editor_grid_append(grid, NULL, widget, NULL); + + widget = nmt_newt_checkbox_new(_("Ignore automatically obtained DNS parameters")); + g_object_bind_property(s_ip4, + NM_SETTING_IP_CONFIG_IGNORE_AUTO_DNS, + widget, + "active", + G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL); + nmt_editor_grid_append(grid, NULL, widget, NULL); + + nmt_editor_grid_append(grid, NULL, nmt_newt_separator_new(), NULL); + + widget = nmt_newt_checkbox_new(_("Require IPv4 addressing for this connection")); + g_object_bind_property(s_ip4, + NM_SETTING_IP_CONFIG_MAY_FAIL, + widget, + "active", + G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL + | G_BINDING_INVERT_BOOLEAN); + nmt_editor_grid_append(grid, NULL, widget, NULL); + + nmt_editor_page_add_section(NMT_EDITOR_PAGE(ip4), section); + + G_OBJECT_CLASS(nmt_page_ip4_parent_class)->constructed(object); } static void -nmt_page_ip4_class_init (NmtPageIP4Class *ip4_class) +nmt_page_ip4_class_init(NmtPageIP4Class *ip4_class) { - GObjectClass *object_class = G_OBJECT_CLASS (ip4_class); + GObjectClass *object_class = G_OBJECT_CLASS(ip4_class); - object_class->constructed = nmt_page_ip4_constructed; + object_class->constructed = nmt_page_ip4_constructed; } diff --git a/clients/tui/nmt-page-ip4.h b/clients/tui/nmt-page-ip4.h index a3cc8d51b1..6ce830715b 100644 --- a/clients/tui/nmt-page-ip4.h +++ b/clients/tui/nmt-page-ip4.h @@ -8,25 +8,27 @@ #include "nmt-editor-page.h" -#define NMT_TYPE_PAGE_IP4 (nmt_page_ip4_get_type ()) -#define NMT_PAGE_IP4(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NMT_TYPE_PAGE_IP4, NmtPageIP4)) -#define NMT_PAGE_IP4_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NMT_TYPE_PAGE_IP4, NmtPageIP4Class)) -#define NMT_IS_PAGE_IP4(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NMT_TYPE_PAGE_IP4)) -#define NMT_IS_PAGE_IP4_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NMT_TYPE_PAGE_IP4)) -#define NMT_PAGE_IP4_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NMT_TYPE_PAGE_IP4, NmtPageIP4Class)) +#define NMT_TYPE_PAGE_IP4 (nmt_page_ip4_get_type()) +#define NMT_PAGE_IP4(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), NMT_TYPE_PAGE_IP4, NmtPageIP4)) +#define NMT_PAGE_IP4_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), NMT_TYPE_PAGE_IP4, NmtPageIP4Class)) +#define NMT_IS_PAGE_IP4(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), NMT_TYPE_PAGE_IP4)) +#define NMT_IS_PAGE_IP4_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), NMT_TYPE_PAGE_IP4)) +#define NMT_PAGE_IP4_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), NMT_TYPE_PAGE_IP4, NmtPageIP4Class)) typedef struct { - NmtEditorPage parent; + NmtEditorPage parent; } NmtPageIP4; typedef struct { - NmtEditorPageClass parent; + NmtEditorPageClass parent; } NmtPageIP4Class; -GType nmt_page_ip4_get_type (void); +GType nmt_page_ip4_get_type(void); -NmtEditorPage *nmt_page_ip4_new (NMConnection *conn); +NmtEditorPage *nmt_page_ip4_new(NMConnection *conn); #endif /* NMT_PAGE_IP4_H */ diff --git a/clients/tui/nmt-page-ip6.c b/clients/tui/nmt-page-ip6.c index 04271de8be..b7257398df 100644 --- a/clients/tui/nmt-page-ip6.c +++ b/clients/tui/nmt-page-ip6.c @@ -19,179 +19,193 @@ #include "nm-editor-bindings.h" -G_DEFINE_TYPE (NmtPageIP6, nmt_page_ip6, NMT_TYPE_EDITOR_PAGE) +G_DEFINE_TYPE(NmtPageIP6, nmt_page_ip6, NMT_TYPE_EDITOR_PAGE) static NmtNewtPopupEntry ip6methods[] = { - { N_("Ignore"), NM_SETTING_IP6_CONFIG_METHOD_IGNORE }, - { N_("Automatic"), NM_SETTING_IP6_CONFIG_METHOD_AUTO }, - { N_("Automatic (DHCP-only)"), NM_SETTING_IP6_CONFIG_METHOD_DHCP }, - { N_("Link-Local"), NM_SETTING_IP6_CONFIG_METHOD_LINK_LOCAL }, - { N_("Manual"), NM_SETTING_IP6_CONFIG_METHOD_MANUAL }, - { N_("Disabled"), NM_SETTING_IP6_CONFIG_METHOD_DISABLED }, - { NULL, NULL } -}; + {N_("Ignore"), NM_SETTING_IP6_CONFIG_METHOD_IGNORE}, + {N_("Automatic"), NM_SETTING_IP6_CONFIG_METHOD_AUTO}, + {N_("Automatic (DHCP-only)"), NM_SETTING_IP6_CONFIG_METHOD_DHCP}, + {N_("Link-Local"), NM_SETTING_IP6_CONFIG_METHOD_LINK_LOCAL}, + {N_("Manual"), NM_SETTING_IP6_CONFIG_METHOD_MANUAL}, + {N_("Disabled"), NM_SETTING_IP6_CONFIG_METHOD_DISABLED}, + {NULL, NULL}}; NmtEditorPage * -nmt_page_ip6_new (NMConnection *conn) +nmt_page_ip6_new(NMConnection *conn) { - return g_object_new (NMT_TYPE_PAGE_IP6, - "connection", conn, - NULL); + return g_object_new(NMT_TYPE_PAGE_IP6, "connection", conn, NULL); } static void -nmt_page_ip6_init (NmtPageIP6 *ip6) -{ -} +nmt_page_ip6_init(NmtPageIP6 *ip6) +{} static void -edit_routes (NmtNewtButton *button, - gpointer user_data) +edit_routes(NmtNewtButton *button, gpointer user_data) { - NMSetting *s_ip6 = user_data; - NmtNewtForm *form; + NMSetting * s_ip6 = user_data; + NmtNewtForm *form; - form = nmt_route_editor_new (s_ip6); - nmt_newt_form_run_sync (form); - g_object_unref (form); + form = nmt_route_editor_new(s_ip6); + nmt_newt_form_run_sync(form); + g_object_unref(form); } static gboolean -ip6_routes_transform_to_description (GBinding *binding, - const GValue *source_value, - GValue *target_value, - gpointer user_data) +ip6_routes_transform_to_description(GBinding * binding, + const GValue *source_value, + GValue * target_value, + gpointer user_data) { - GPtrArray *routes; - char *text; - - routes = g_value_get_boxed (source_value); - if (!routes || !routes->len) - text = g_strdup (_("(No custom routes)")); - else { - text = g_strdup_printf (g_dngettext (GETTEXT_PACKAGE, - "One custom route", - "%d custom routes", - routes->len), - routes->len); - } - - g_value_take_string (target_value, text); - return TRUE; + GPtrArray *routes; + char * text; + + routes = g_value_get_boxed(source_value); + if (!routes || !routes->len) + text = g_strdup(_("(No custom routes)")); + else { + text = g_strdup_printf( + g_dngettext(GETTEXT_PACKAGE, "One custom route", "%d custom routes", routes->len), + routes->len); + } + + g_value_take_string(target_value, text); + return TRUE; } static void -nmt_page_ip6_constructed (GObject *object) +nmt_page_ip6_constructed(GObject *object) { - NmtPageIP6 *ip6 = NMT_PAGE_IP6 (object); - gboolean show_by_default; - NmtEditorSection *section; - NmtEditorGrid *grid; - NMSettingIPConfig *s_ip6; - NmtNewtWidget *widget, *button; - NMConnection *conn; - - conn = nmt_editor_page_get_connection (NMT_EDITOR_PAGE (ip6)); - s_ip6 = nm_connection_get_setting_ip6_config (conn); - if (!s_ip6) { - s_ip6 = (NMSettingIPConfig *) nm_setting_ip6_config_new (); - g_object_set (G_OBJECT (s_ip6), - NM_SETTING_IP_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_AUTO, - NULL); - nm_connection_add_setting (conn, (NMSetting *) s_ip6); - } - - widget = nmt_newt_popup_new (ip6methods); - g_object_bind_property (s_ip6, NM_SETTING_IP_CONFIG_METHOD, - widget, "active-id", - G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); - - if (!g_strcmp0 (nm_setting_ip_config_get_method (s_ip6), NM_SETTING_IP6_CONFIG_METHOD_MANUAL)) - show_by_default = TRUE; - else if (nm_setting_ip_config_get_num_addresses (s_ip6)) - show_by_default = TRUE; - else - show_by_default = FALSE; - - section = nmt_editor_section_new (_("IPv6 CONFIGURATION"), widget, show_by_default); - grid = nmt_editor_section_get_body (section); - - widget = nmt_address_list_new (NMT_ADDRESS_LIST_IP6_WITH_PREFIX); - nm_editor_bind_ip_addresses_with_prefix_to_strv (AF_INET6, - s_ip6, NM_SETTING_IP_CONFIG_ADDRESSES, - widget, "strings", - G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); - nmt_editor_grid_append (grid, _("Addresses"), widget, NULL); - - widget = nmt_ip_entry_new (25, AF_INET6, FALSE, TRUE); - nm_editor_bind_ip_gateway_to_string (AF_INET6, - s_ip6, - widget, "text", "sensitive", - G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); - nmt_editor_grid_append (grid, _("Gateway"), widget, NULL); - - widget = nmt_address_list_new (NMT_ADDRESS_LIST_IP6); - nm_editor_bind_ip_addresses_to_strv (AF_INET6, - s_ip6, NM_SETTING_IP_CONFIG_DNS, - widget, "strings", - G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); - nmt_editor_grid_append (grid, _("DNS servers"), widget, NULL); - - widget = nmt_address_list_new (NMT_ADDRESS_LIST_HOSTNAME); - g_object_bind_property (s_ip6, NM_SETTING_IP_CONFIG_DNS_SEARCH, - widget, "strings", - G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); - nmt_editor_grid_append (grid, _("Search domains"), widget, NULL); - - widget = g_object_new (NMT_TYPE_NEWT_LABEL, - "text", "", - "style", NMT_NEWT_LABEL_PLAIN, - NULL); - g_object_bind_property_full (s_ip6, NM_SETTING_IP_CONFIG_ROUTES, - widget, "text", - G_BINDING_SYNC_CREATE, - ip6_routes_transform_to_description, - NULL, NULL, NULL); - button = nmt_newt_button_new (_("Edit...")); - g_signal_connect (button, "clicked", G_CALLBACK (edit_routes), s_ip6); - nmt_editor_grid_append (grid, _("Routing"), widget, button); - - widget = nmt_newt_checkbox_new (_("Never use this network for default route")); - g_object_bind_property (s_ip6, NM_SETTING_IP_CONFIG_NEVER_DEFAULT, - widget, "active", - G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL); - nmt_editor_grid_append (grid, NULL, widget, NULL); - - widget = nmt_newt_checkbox_new (_("Ignore automatically obtained routes")); - g_object_bind_property (s_ip6, NM_SETTING_IP_CONFIG_IGNORE_AUTO_ROUTES, - widget, "active", - G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL); - nmt_editor_grid_append (grid, NULL, widget, NULL); - - widget = nmt_newt_checkbox_new (_("Ignore automatically obtained DNS parameters")); - g_object_bind_property (s_ip6, NM_SETTING_IP_CONFIG_IGNORE_AUTO_DNS, - widget, "active", - G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL); - nmt_editor_grid_append (grid, NULL, widget, NULL); - - nmt_editor_grid_append (grid, NULL, nmt_newt_separator_new (), NULL); - - widget = nmt_newt_checkbox_new (_("Require IPv6 addressing for this connection")); - g_object_bind_property (s_ip6, NM_SETTING_IP_CONFIG_MAY_FAIL, - widget, "active", - G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL | - G_BINDING_INVERT_BOOLEAN); - nmt_editor_grid_append (grid, NULL, widget, NULL); - - nmt_editor_page_add_section (NMT_EDITOR_PAGE (ip6), section); - - G_OBJECT_CLASS (nmt_page_ip6_parent_class)->constructed (object); + NmtPageIP6 * ip6 = NMT_PAGE_IP6(object); + gboolean show_by_default; + NmtEditorSection * section; + NmtEditorGrid * grid; + NMSettingIPConfig *s_ip6; + NmtNewtWidget * widget, *button; + NMConnection * conn; + + conn = nmt_editor_page_get_connection(NMT_EDITOR_PAGE(ip6)); + s_ip6 = nm_connection_get_setting_ip6_config(conn); + if (!s_ip6) { + s_ip6 = (NMSettingIPConfig *) nm_setting_ip6_config_new(); + g_object_set(G_OBJECT(s_ip6), + NM_SETTING_IP_CONFIG_METHOD, + NM_SETTING_IP6_CONFIG_METHOD_AUTO, + NULL); + nm_connection_add_setting(conn, (NMSetting *) s_ip6); + } + + widget = nmt_newt_popup_new(ip6methods); + g_object_bind_property(s_ip6, + NM_SETTING_IP_CONFIG_METHOD, + widget, + "active-id", + G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); + + if (!g_strcmp0(nm_setting_ip_config_get_method(s_ip6), NM_SETTING_IP6_CONFIG_METHOD_MANUAL)) + show_by_default = TRUE; + else if (nm_setting_ip_config_get_num_addresses(s_ip6)) + show_by_default = TRUE; + else + show_by_default = FALSE; + + section = nmt_editor_section_new(_("IPv6 CONFIGURATION"), widget, show_by_default); + grid = nmt_editor_section_get_body(section); + + widget = nmt_address_list_new(NMT_ADDRESS_LIST_IP6_WITH_PREFIX); + nm_editor_bind_ip_addresses_with_prefix_to_strv(AF_INET6, + s_ip6, + NM_SETTING_IP_CONFIG_ADDRESSES, + widget, + "strings", + G_BINDING_BIDIRECTIONAL + | G_BINDING_SYNC_CREATE); + nmt_editor_grid_append(grid, _("Addresses"), widget, NULL); + + widget = nmt_ip_entry_new(25, AF_INET6, FALSE, TRUE); + nm_editor_bind_ip_gateway_to_string(AF_INET6, + s_ip6, + widget, + "text", + "sensitive", + G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); + nmt_editor_grid_append(grid, _("Gateway"), widget, NULL); + + widget = nmt_address_list_new(NMT_ADDRESS_LIST_IP6); + nm_editor_bind_ip_addresses_to_strv(AF_INET6, + s_ip6, + NM_SETTING_IP_CONFIG_DNS, + widget, + "strings", + G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); + nmt_editor_grid_append(grid, _("DNS servers"), widget, NULL); + + widget = nmt_address_list_new(NMT_ADDRESS_LIST_HOSTNAME); + g_object_bind_property(s_ip6, + NM_SETTING_IP_CONFIG_DNS_SEARCH, + widget, + "strings", + G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); + nmt_editor_grid_append(grid, _("Search domains"), widget, NULL); + + widget = g_object_new(NMT_TYPE_NEWT_LABEL, "text", "", "style", NMT_NEWT_LABEL_PLAIN, NULL); + g_object_bind_property_full(s_ip6, + NM_SETTING_IP_CONFIG_ROUTES, + widget, + "text", + G_BINDING_SYNC_CREATE, + ip6_routes_transform_to_description, + NULL, + NULL, + NULL); + button = nmt_newt_button_new(_("Edit...")); + g_signal_connect(button, "clicked", G_CALLBACK(edit_routes), s_ip6); + nmt_editor_grid_append(grid, _("Routing"), widget, button); + + widget = nmt_newt_checkbox_new(_("Never use this network for default route")); + g_object_bind_property(s_ip6, + NM_SETTING_IP_CONFIG_NEVER_DEFAULT, + widget, + "active", + G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL); + nmt_editor_grid_append(grid, NULL, widget, NULL); + + widget = nmt_newt_checkbox_new(_("Ignore automatically obtained routes")); + g_object_bind_property(s_ip6, + NM_SETTING_IP_CONFIG_IGNORE_AUTO_ROUTES, + widget, + "active", + G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL); + nmt_editor_grid_append(grid, NULL, widget, NULL); + + widget = nmt_newt_checkbox_new(_("Ignore automatically obtained DNS parameters")); + g_object_bind_property(s_ip6, + NM_SETTING_IP_CONFIG_IGNORE_AUTO_DNS, + widget, + "active", + G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL); + nmt_editor_grid_append(grid, NULL, widget, NULL); + + nmt_editor_grid_append(grid, NULL, nmt_newt_separator_new(), NULL); + + widget = nmt_newt_checkbox_new(_("Require IPv6 addressing for this connection")); + g_object_bind_property(s_ip6, + NM_SETTING_IP_CONFIG_MAY_FAIL, + widget, + "active", + G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL + | G_BINDING_INVERT_BOOLEAN); + nmt_editor_grid_append(grid, NULL, widget, NULL); + + nmt_editor_page_add_section(NMT_EDITOR_PAGE(ip6), section); + + G_OBJECT_CLASS(nmt_page_ip6_parent_class)->constructed(object); } static void -nmt_page_ip6_class_init (NmtPageIP6Class *ip6_class) +nmt_page_ip6_class_init(NmtPageIP6Class *ip6_class) { - GObjectClass *object_class = G_OBJECT_CLASS (ip6_class); + GObjectClass *object_class = G_OBJECT_CLASS(ip6_class); - object_class->constructed = nmt_page_ip6_constructed; + object_class->constructed = nmt_page_ip6_constructed; } diff --git a/clients/tui/nmt-page-ip6.h b/clients/tui/nmt-page-ip6.h index 86e4fa9002..e6151ad65c 100644 --- a/clients/tui/nmt-page-ip6.h +++ b/clients/tui/nmt-page-ip6.h @@ -8,25 +8,27 @@ #include "nmt-editor-page.h" -#define NMT_TYPE_PAGE_IP6 (nmt_page_ip6_get_type ()) -#define NMT_PAGE_IP6(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NMT_TYPE_PAGE_IP6, NmtPageIP6)) -#define NMT_PAGE_IP6_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NMT_TYPE_PAGE_IP6, NmtPageIP6Class)) -#define NMT_IS_PAGE_IP6(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NMT_TYPE_PAGE_IP6)) -#define NMT_IS_PAGE_IP6_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NMT_TYPE_PAGE_IP6)) -#define NMT_PAGE_IP6_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NMT_TYPE_PAGE_IP6, NmtPageIP6Class)) +#define NMT_TYPE_PAGE_IP6 (nmt_page_ip6_get_type()) +#define NMT_PAGE_IP6(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), NMT_TYPE_PAGE_IP6, NmtPageIP6)) +#define NMT_PAGE_IP6_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), NMT_TYPE_PAGE_IP6, NmtPageIP6Class)) +#define NMT_IS_PAGE_IP6(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), NMT_TYPE_PAGE_IP6)) +#define NMT_IS_PAGE_IP6_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), NMT_TYPE_PAGE_IP6)) +#define NMT_PAGE_IP6_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), NMT_TYPE_PAGE_IP6, NmtPageIP6Class)) typedef struct { - NmtEditorPage parent; + NmtEditorPage parent; } NmtPageIP6; typedef struct { - NmtEditorPageClass parent; + NmtEditorPageClass parent; } NmtPageIP6Class; -GType nmt_page_ip6_get_type (void); +GType nmt_page_ip6_get_type(void); -NmtEditorPage *nmt_page_ip6_new (NMConnection *conn); +NmtEditorPage *nmt_page_ip6_new(NMConnection *conn); #endif /* NMT_PAGE_IP6_H */ diff --git a/clients/tui/nmt-page-ppp.c b/clients/tui/nmt-page-ppp.c index c905d23eda..abcf816106 100644 --- a/clients/tui/nmt-page-ppp.c +++ b/clients/tui/nmt-page-ppp.c @@ -16,257 +16,266 @@ #include "nmt-newt-section.h" #include "nmt-newt-separator.h" -G_DEFINE_TYPE (NmtPagePpp, nmt_page_ppp, NMT_TYPE_EDITOR_PAGE) +G_DEFINE_TYPE(NmtPagePpp, nmt_page_ppp, NMT_TYPE_EDITOR_PAGE) typedef struct { - guint32 lcp_echo_failure; - guint32 lcp_echo_interval; + guint32 lcp_echo_failure; + guint32 lcp_echo_interval; } NmtPagePppPrivate; -#define NMT_PAGE_PPP_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NMT_TYPE_PAGE_PPP, NmtPagePppPrivate)) +#define NMT_PAGE_PPP_GET_PRIVATE(o) \ + (G_TYPE_INSTANCE_GET_PRIVATE((o), NMT_TYPE_PAGE_PPP, NmtPagePppPrivate)) NmtEditorPage * -nmt_page_ppp_new (NMConnection *conn) +nmt_page_ppp_new(NMConnection *conn) { - return g_object_new (NMT_TYPE_PAGE_PPP, - "connection", conn, - NULL); + return g_object_new(NMT_TYPE_PAGE_PPP, "connection", conn, NULL); } static void -nmt_page_ppp_init (NmtPagePpp *ppp) -{ -} +nmt_page_ppp_init(NmtPagePpp *ppp) +{} static gboolean -transform_lcp_echo_properties_to_checkbox (GBinding *binding, - const GValue *from_value, - GValue *to_value, - gpointer user_data) +transform_lcp_echo_properties_to_checkbox(GBinding * binding, + const GValue *from_value, + GValue * to_value, + gpointer user_data) { - NMSettingPpp *s_ppp = NM_SETTING_PPP (g_binding_get_source (binding)); + NMSettingPpp *s_ppp = NM_SETTING_PPP(g_binding_get_source(binding)); - if ( nm_setting_ppp_get_lcp_echo_interval (s_ppp) != 0 - && nm_setting_ppp_get_lcp_echo_failure (s_ppp) != 0) - g_value_set_boolean (to_value, TRUE); - else - g_value_set_boolean (to_value, FALSE); + if (nm_setting_ppp_get_lcp_echo_interval(s_ppp) != 0 + && nm_setting_ppp_get_lcp_echo_failure(s_ppp) != 0) + g_value_set_boolean(to_value, TRUE); + else + g_value_set_boolean(to_value, FALSE); - return TRUE; + return TRUE; } static gboolean -transform_checkbox_to_lcp_echo_interval (GBinding *binding, - const GValue *from_value, - GValue *to_value, - gpointer user_data) +transform_checkbox_to_lcp_echo_interval(GBinding * binding, + const GValue *from_value, + GValue * to_value, + gpointer user_data) { - NmtPagePpp *ppp = user_data; - NmtPagePppPrivate *priv = NMT_PAGE_PPP_GET_PRIVATE (ppp); + NmtPagePpp * ppp = user_data; + NmtPagePppPrivate *priv = NMT_PAGE_PPP_GET_PRIVATE(ppp); - if (g_value_get_boolean (from_value)) - g_value_set_uint (to_value, priv->lcp_echo_interval); - else - g_value_set_uint (to_value, 0); + if (g_value_get_boolean(from_value)) + g_value_set_uint(to_value, priv->lcp_echo_interval); + else + g_value_set_uint(to_value, 0); - return TRUE; + return TRUE; } static gboolean -transform_checkbox_to_lcp_echo_failure (GBinding *binding, - const GValue *from_value, - GValue *to_value, - gpointer user_data) +transform_checkbox_to_lcp_echo_failure(GBinding * binding, + const GValue *from_value, + GValue * to_value, + gpointer user_data) { - NmtPagePpp *ppp = user_data; - NmtPagePppPrivate *priv = NMT_PAGE_PPP_GET_PRIVATE (ppp); + NmtPagePpp * ppp = user_data; + NmtPagePppPrivate *priv = NMT_PAGE_PPP_GET_PRIVATE(ppp); - if (g_value_get_boolean (from_value)) - g_value_set_uint (to_value, priv->lcp_echo_failure); - else - g_value_set_uint (to_value, 0); + if (g_value_get_boolean(from_value)) + g_value_set_uint(to_value, priv->lcp_echo_failure); + else + g_value_set_uint(to_value, 0); - return TRUE; + return TRUE; } static void -nmt_page_ppp_constructed (GObject *object) +nmt_page_ppp_constructed(GObject *object) { - NmtPagePpp *ppp = NMT_PAGE_PPP (object); - NmtPagePppPrivate *priv = NMT_PAGE_PPP_GET_PRIVATE (ppp); - NmtEditorSection *section; - NmtEditorGrid *grid; - NMSettingPpp *s_ppp; - NmtNewtWidget *widget, *use_mppe; - NmtNewtGrid *auth_grid, *mppe_grid; - NmtNewtSection *auth_section, *mppe_section; - NMConnection *conn; - - conn = nmt_editor_page_get_connection (NMT_EDITOR_PAGE (ppp)); - s_ppp = nm_connection_get_setting_ppp (conn); - if (s_ppp) { - priv->lcp_echo_interval = nm_setting_ppp_get_lcp_echo_interval (s_ppp); - priv->lcp_echo_failure = nm_setting_ppp_get_lcp_echo_failure (s_ppp); - } else { - s_ppp = (NMSettingPpp *) nm_setting_ppp_new (); - nm_connection_add_setting (conn, (NMSetting *) s_ppp); - - priv->lcp_echo_interval = 30; - priv->lcp_echo_failure = 5; - } - - section = nmt_editor_section_new (_("PPP CONFIGURATION"), NULL, TRUE); - grid = nmt_editor_section_get_body (section); - - /* Auth methods */ - widget = nmt_newt_section_new (FALSE); - auth_section = NMT_NEWT_SECTION (widget); - g_object_set (auth_section, "open", TRUE, NULL); - nmt_editor_grid_append (grid, NULL, widget, NULL); - - widget = nmt_newt_label_new (_("Allowed authentication methods:")); - nmt_newt_section_set_header (auth_section, widget); - - widget = nmt_newt_grid_new (); - auth_grid = NMT_NEWT_GRID (widget); - nmt_newt_section_set_body (auth_section, widget); - - widget = nmt_newt_checkbox_new (_("EAP")); - g_object_bind_property (s_ppp, NM_SETTING_PPP_REFUSE_EAP, - widget, "active", - G_BINDING_BIDIRECTIONAL | - G_BINDING_INVERT_BOOLEAN | - G_BINDING_SYNC_CREATE); - nmt_newt_grid_add (auth_grid, widget, 0, 0); - - widget = nmt_newt_checkbox_new (_("PAP")); - g_object_bind_property (s_ppp, NM_SETTING_PPP_REFUSE_PAP, - widget, "active", - G_BINDING_BIDIRECTIONAL | - G_BINDING_INVERT_BOOLEAN | - G_BINDING_SYNC_CREATE); - nmt_newt_grid_add (auth_grid, widget, 0, 1); - - widget = nmt_newt_checkbox_new (_("CHAP")); - g_object_bind_property (s_ppp, NM_SETTING_PPP_REFUSE_CHAP, - widget, "active", - G_BINDING_BIDIRECTIONAL | - G_BINDING_INVERT_BOOLEAN | - G_BINDING_SYNC_CREATE); - nmt_newt_grid_add (auth_grid, widget, 0, 2); - - widget = nmt_newt_checkbox_new (_("MSCHAPv2")); - g_object_bind_property (s_ppp, NM_SETTING_PPP_REFUSE_MSCHAPV2, - widget, "active", - G_BINDING_BIDIRECTIONAL | - G_BINDING_INVERT_BOOLEAN | - G_BINDING_SYNC_CREATE); - nmt_newt_grid_add (auth_grid, widget, 0, 3); - - widget = nmt_newt_checkbox_new (_("MSCHAP")); - g_object_bind_property (s_ppp, NM_SETTING_PPP_REFUSE_MSCHAP, - widget, "active", - G_BINDING_BIDIRECTIONAL | - G_BINDING_INVERT_BOOLEAN | - G_BINDING_SYNC_CREATE); - nmt_newt_grid_add (auth_grid, widget, 0, 4); - - nmt_editor_grid_append (grid, NULL, nmt_newt_separator_new (), NULL); - - /* MPPE */ - widget = nmt_newt_section_new (FALSE); - mppe_section = NMT_NEWT_SECTION (widget); - g_object_set (mppe_section, "open", TRUE, NULL); - nmt_editor_grid_append (grid, NULL, widget, NULL); - - widget = nmt_newt_checkbox_new (_("Use point-to-point encryption (MPPE)")); - g_object_bind_property (s_ppp, NM_SETTING_PPP_REQUIRE_MPPE, - widget, "active", - G_BINDING_BIDIRECTIONAL | - G_BINDING_SYNC_CREATE); - use_mppe = widget; - nmt_newt_section_set_header (mppe_section, widget); - - widget = nmt_newt_grid_new (); - mppe_grid = NMT_NEWT_GRID (widget); - nmt_newt_section_set_body (mppe_section, widget); - - widget = nmt_newt_checkbox_new (_("Require 128-bit encryption")); - g_object_bind_property (use_mppe, "active", - widget, "sensitive", - G_BINDING_SYNC_CREATE); - g_object_bind_property (s_ppp, NM_SETTING_PPP_REQUIRE_MPPE_128, - widget, "active", - G_BINDING_BIDIRECTIONAL | - G_BINDING_SYNC_CREATE); - nmt_newt_grid_add (mppe_grid, widget, 0, 0); - - widget = nmt_newt_checkbox_new (_("Use stateful MPPE")); - g_object_bind_property (use_mppe, "active", - widget, "sensitive", - G_BINDING_SYNC_CREATE); - g_object_bind_property (s_ppp, NM_SETTING_PPP_MPPE_STATEFUL, - widget, "active", - G_BINDING_BIDIRECTIONAL | - G_BINDING_SYNC_CREATE); - nmt_newt_grid_add (mppe_grid, widget, 0, 1); - - nmt_editor_grid_append (grid, NULL, nmt_newt_separator_new (), NULL); - - widget = nmt_newt_checkbox_new (_("Allow BSD data compression")); - g_object_bind_property (s_ppp, NM_SETTING_PPP_NOBSDCOMP, - widget, "active", - G_BINDING_BIDIRECTIONAL | - G_BINDING_INVERT_BOOLEAN | - G_BINDING_SYNC_CREATE); - nmt_editor_grid_append (grid, NULL, widget, NULL); - - widget = nmt_newt_checkbox_new (_("Allow Deflate data compression")); - g_object_bind_property (s_ppp, NM_SETTING_PPP_NODEFLATE, - widget, "active", - G_BINDING_BIDIRECTIONAL | - G_BINDING_INVERT_BOOLEAN | - G_BINDING_SYNC_CREATE); - nmt_editor_grid_append (grid, NULL, widget, NULL); - - widget = nmt_newt_checkbox_new (_("Use TCP header compression")); - g_object_bind_property (s_ppp, NM_SETTING_PPP_NO_VJ_COMP, - widget, "active", - G_BINDING_BIDIRECTIONAL | - G_BINDING_INVERT_BOOLEAN | - G_BINDING_SYNC_CREATE); - nmt_editor_grid_append (grid, NULL, widget, NULL); - - nmt_editor_grid_append (grid, NULL, nmt_newt_separator_new (), NULL); - - widget = nmt_newt_checkbox_new (_("Send PPP echo packets")); - g_object_bind_property_full (s_ppp, NM_SETTING_PPP_LCP_ECHO_INTERVAL, - widget, "active", - G_BINDING_BIDIRECTIONAL | - G_BINDING_SYNC_CREATE, - transform_lcp_echo_properties_to_checkbox, - transform_checkbox_to_lcp_echo_interval, - ppp, NULL); - g_object_bind_property_full (s_ppp, NM_SETTING_PPP_LCP_ECHO_FAILURE, - widget, "active", - G_BINDING_BIDIRECTIONAL | - G_BINDING_SYNC_CREATE, - transform_lcp_echo_properties_to_checkbox, - transform_checkbox_to_lcp_echo_failure, - ppp, NULL); - nmt_editor_grid_append (grid, NULL, widget, NULL); - - nmt_editor_page_add_section (NMT_EDITOR_PAGE (ppp), section); - - G_OBJECT_CLASS (nmt_page_ppp_parent_class)->constructed (object); + NmtPagePpp * ppp = NMT_PAGE_PPP(object); + NmtPagePppPrivate *priv = NMT_PAGE_PPP_GET_PRIVATE(ppp); + NmtEditorSection * section; + NmtEditorGrid * grid; + NMSettingPpp * s_ppp; + NmtNewtWidget * widget, *use_mppe; + NmtNewtGrid * auth_grid, *mppe_grid; + NmtNewtSection * auth_section, *mppe_section; + NMConnection * conn; + + conn = nmt_editor_page_get_connection(NMT_EDITOR_PAGE(ppp)); + s_ppp = nm_connection_get_setting_ppp(conn); + if (s_ppp) { + priv->lcp_echo_interval = nm_setting_ppp_get_lcp_echo_interval(s_ppp); + priv->lcp_echo_failure = nm_setting_ppp_get_lcp_echo_failure(s_ppp); + } else { + s_ppp = (NMSettingPpp *) nm_setting_ppp_new(); + nm_connection_add_setting(conn, (NMSetting *) s_ppp); + + priv->lcp_echo_interval = 30; + priv->lcp_echo_failure = 5; + } + + section = nmt_editor_section_new(_("PPP CONFIGURATION"), NULL, TRUE); + grid = nmt_editor_section_get_body(section); + + /* Auth methods */ + widget = nmt_newt_section_new(FALSE); + auth_section = NMT_NEWT_SECTION(widget); + g_object_set(auth_section, "open", TRUE, NULL); + nmt_editor_grid_append(grid, NULL, widget, NULL); + + widget = nmt_newt_label_new(_("Allowed authentication methods:")); + nmt_newt_section_set_header(auth_section, widget); + + widget = nmt_newt_grid_new(); + auth_grid = NMT_NEWT_GRID(widget); + nmt_newt_section_set_body(auth_section, widget); + + widget = nmt_newt_checkbox_new(_("EAP")); + g_object_bind_property(s_ppp, + NM_SETTING_PPP_REFUSE_EAP, + widget, + "active", + G_BINDING_BIDIRECTIONAL | G_BINDING_INVERT_BOOLEAN + | G_BINDING_SYNC_CREATE); + nmt_newt_grid_add(auth_grid, widget, 0, 0); + + widget = nmt_newt_checkbox_new(_("PAP")); + g_object_bind_property(s_ppp, + NM_SETTING_PPP_REFUSE_PAP, + widget, + "active", + G_BINDING_BIDIRECTIONAL | G_BINDING_INVERT_BOOLEAN + | G_BINDING_SYNC_CREATE); + nmt_newt_grid_add(auth_grid, widget, 0, 1); + + widget = nmt_newt_checkbox_new(_("CHAP")); + g_object_bind_property(s_ppp, + NM_SETTING_PPP_REFUSE_CHAP, + widget, + "active", + G_BINDING_BIDIRECTIONAL | G_BINDING_INVERT_BOOLEAN + | G_BINDING_SYNC_CREATE); + nmt_newt_grid_add(auth_grid, widget, 0, 2); + + widget = nmt_newt_checkbox_new(_("MSCHAPv2")); + g_object_bind_property(s_ppp, + NM_SETTING_PPP_REFUSE_MSCHAPV2, + widget, + "active", + G_BINDING_BIDIRECTIONAL | G_BINDING_INVERT_BOOLEAN + | G_BINDING_SYNC_CREATE); + nmt_newt_grid_add(auth_grid, widget, 0, 3); + + widget = nmt_newt_checkbox_new(_("MSCHAP")); + g_object_bind_property(s_ppp, + NM_SETTING_PPP_REFUSE_MSCHAP, + widget, + "active", + G_BINDING_BIDIRECTIONAL | G_BINDING_INVERT_BOOLEAN + | G_BINDING_SYNC_CREATE); + nmt_newt_grid_add(auth_grid, widget, 0, 4); + + nmt_editor_grid_append(grid, NULL, nmt_newt_separator_new(), NULL); + + /* MPPE */ + widget = nmt_newt_section_new(FALSE); + mppe_section = NMT_NEWT_SECTION(widget); + g_object_set(mppe_section, "open", TRUE, NULL); + nmt_editor_grid_append(grid, NULL, widget, NULL); + + widget = nmt_newt_checkbox_new(_("Use point-to-point encryption (MPPE)")); + g_object_bind_property(s_ppp, + NM_SETTING_PPP_REQUIRE_MPPE, + widget, + "active", + G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); + use_mppe = widget; + nmt_newt_section_set_header(mppe_section, widget); + + widget = nmt_newt_grid_new(); + mppe_grid = NMT_NEWT_GRID(widget); + nmt_newt_section_set_body(mppe_section, widget); + + widget = nmt_newt_checkbox_new(_("Require 128-bit encryption")); + g_object_bind_property(use_mppe, "active", widget, "sensitive", G_BINDING_SYNC_CREATE); + g_object_bind_property(s_ppp, + NM_SETTING_PPP_REQUIRE_MPPE_128, + widget, + "active", + G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); + nmt_newt_grid_add(mppe_grid, widget, 0, 0); + + widget = nmt_newt_checkbox_new(_("Use stateful MPPE")); + g_object_bind_property(use_mppe, "active", widget, "sensitive", G_BINDING_SYNC_CREATE); + g_object_bind_property(s_ppp, + NM_SETTING_PPP_MPPE_STATEFUL, + widget, + "active", + G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); + nmt_newt_grid_add(mppe_grid, widget, 0, 1); + + nmt_editor_grid_append(grid, NULL, nmt_newt_separator_new(), NULL); + + widget = nmt_newt_checkbox_new(_("Allow BSD data compression")); + g_object_bind_property(s_ppp, + NM_SETTING_PPP_NOBSDCOMP, + widget, + "active", + G_BINDING_BIDIRECTIONAL | G_BINDING_INVERT_BOOLEAN + | G_BINDING_SYNC_CREATE); + nmt_editor_grid_append(grid, NULL, widget, NULL); + + widget = nmt_newt_checkbox_new(_("Allow Deflate data compression")); + g_object_bind_property(s_ppp, + NM_SETTING_PPP_NODEFLATE, + widget, + "active", + G_BINDING_BIDIRECTIONAL | G_BINDING_INVERT_BOOLEAN + | G_BINDING_SYNC_CREATE); + nmt_editor_grid_append(grid, NULL, widget, NULL); + + widget = nmt_newt_checkbox_new(_("Use TCP header compression")); + g_object_bind_property(s_ppp, + NM_SETTING_PPP_NO_VJ_COMP, + widget, + "active", + G_BINDING_BIDIRECTIONAL | G_BINDING_INVERT_BOOLEAN + | G_BINDING_SYNC_CREATE); + nmt_editor_grid_append(grid, NULL, widget, NULL); + + nmt_editor_grid_append(grid, NULL, nmt_newt_separator_new(), NULL); + + widget = nmt_newt_checkbox_new(_("Send PPP echo packets")); + g_object_bind_property_full(s_ppp, + NM_SETTING_PPP_LCP_ECHO_INTERVAL, + widget, + "active", + G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE, + transform_lcp_echo_properties_to_checkbox, + transform_checkbox_to_lcp_echo_interval, + ppp, + NULL); + g_object_bind_property_full(s_ppp, + NM_SETTING_PPP_LCP_ECHO_FAILURE, + widget, + "active", + G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE, + transform_lcp_echo_properties_to_checkbox, + transform_checkbox_to_lcp_echo_failure, + ppp, + NULL); + nmt_editor_grid_append(grid, NULL, widget, NULL); + + nmt_editor_page_add_section(NMT_EDITOR_PAGE(ppp), section); + + G_OBJECT_CLASS(nmt_page_ppp_parent_class)->constructed(object); } static void -nmt_page_ppp_class_init (NmtPagePppClass *ppp_class) +nmt_page_ppp_class_init(NmtPagePppClass *ppp_class) { - GObjectClass *object_class = G_OBJECT_CLASS (ppp_class); + GObjectClass *object_class = G_OBJECT_CLASS(ppp_class); - g_type_class_add_private (object_class, sizeof (NmtPagePppPrivate)); + g_type_class_add_private(object_class, sizeof(NmtPagePppPrivate)); - object_class->constructed = nmt_page_ppp_constructed; + object_class->constructed = nmt_page_ppp_constructed; } diff --git a/clients/tui/nmt-page-ppp.h b/clients/tui/nmt-page-ppp.h index 4cd7cae44c..244772ac98 100644 --- a/clients/tui/nmt-page-ppp.h +++ b/clients/tui/nmt-page-ppp.h @@ -8,25 +8,27 @@ #include "nmt-editor-page.h" -#define NMT_TYPE_PAGE_PPP (nmt_page_ppp_get_type ()) -#define NMT_PAGE_PPP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NMT_TYPE_PAGE_PPP, NmtPagePpp)) -#define NMT_PAGE_PPP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NMT_TYPE_PAGE_PPP, NmtPagePppClass)) -#define NMT_IS_PAGE_PPP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NMT_TYPE_PAGE_PPP)) -#define NMT_IS_PAGE_PPP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NMT_TYPE_PAGE_PPP)) -#define NMT_PAGE_PPP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NMT_TYPE_PAGE_PPP, NmtPagePppClass)) +#define NMT_TYPE_PAGE_PPP (nmt_page_ppp_get_type()) +#define NMT_PAGE_PPP(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), NMT_TYPE_PAGE_PPP, NmtPagePpp)) +#define NMT_PAGE_PPP_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), NMT_TYPE_PAGE_PPP, NmtPagePppClass)) +#define NMT_IS_PAGE_PPP(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), NMT_TYPE_PAGE_PPP)) +#define NMT_IS_PAGE_PPP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), NMT_TYPE_PAGE_PPP)) +#define NMT_PAGE_PPP_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), NMT_TYPE_PAGE_PPP, NmtPagePppClass)) typedef struct { - NmtEditorPage parent; + NmtEditorPage parent; } NmtPagePpp; typedef struct { - NmtEditorPageClass parent; + NmtEditorPageClass parent; } NmtPagePppClass; -GType nmt_page_ppp_get_type (void); +GType nmt_page_ppp_get_type(void); -NmtEditorPage *nmt_page_ppp_new (NMConnection *conn); +NmtEditorPage *nmt_page_ppp_new(NMConnection *conn); #endif /* NMT_PAGE_PPP_H */ diff --git a/clients/tui/nmt-page-team-port.c b/clients/tui/nmt-page-team-port.c index dfefd80c30..14a70ec8bf 100644 --- a/clients/tui/nmt-page-team-port.c +++ b/clients/tui/nmt-page-team-port.c @@ -12,102 +12,100 @@ #include "nmt-page-team-port.h" -G_DEFINE_TYPE (NmtPageTeamPort, nmt_page_team_port, NMT_TYPE_EDITOR_PAGE) +G_DEFINE_TYPE(NmtPageTeamPort, nmt_page_team_port, NMT_TYPE_EDITOR_PAGE) -#define NMT_PAGE_TEAM_PORT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NMT_TYPE_PAGE_TEAM_PORT, NmtPageTeamPortPrivate)) +#define NMT_PAGE_TEAM_PORT_GET_PRIVATE(o) \ + (G_TYPE_INSTANCE_GET_PRIVATE((o), NMT_TYPE_PAGE_TEAM_PORT, NmtPageTeamPortPrivate)) typedef struct { - NMSettingTeamPort *s_port; + NMSettingTeamPort *s_port; } NmtPageTeamPortPrivate; NmtEditorPage * -nmt_page_team_port_new (NMConnection *conn) +nmt_page_team_port_new(NMConnection *conn) { - return g_object_new (NMT_TYPE_PAGE_TEAM_PORT, - "connection", conn, - NULL); + return g_object_new(NMT_TYPE_PAGE_TEAM_PORT, "connection", conn, NULL); } static void -nmt_page_team_port_init (NmtPageTeamPort *team) -{ -} +nmt_page_team_port_init(NmtPageTeamPort *team) +{} static void -edit_clicked (NmtNewtButton *button, - gpointer user_data) +edit_clicked(NmtNewtButton *button, gpointer user_data) { - NmtPageTeamPort *team = user_data; - NmtPageTeamPortPrivate *priv = NMT_PAGE_TEAM_PORT_GET_PRIVATE (team); - const char *config; - char *new_config; - - config = nm_setting_team_port_get_config (priv->s_port); - if (!config) - config = ""; - - new_config = nmt_newt_edit_string (config); - - if (new_config && !*new_config) - nm_clear_g_free (&new_config); - g_object_set (G_OBJECT (priv->s_port), - NM_SETTING_TEAM_PORT_CONFIG, new_config, - NULL); - g_free (new_config); + NmtPageTeamPort * team = user_data; + NmtPageTeamPortPrivate *priv = NMT_PAGE_TEAM_PORT_GET_PRIVATE(team); + const char * config; + char * new_config; + + config = nm_setting_team_port_get_config(priv->s_port); + if (!config) + config = ""; + + new_config = nmt_newt_edit_string(config); + + if (new_config && !*new_config) + nm_clear_g_free(&new_config); + g_object_set(G_OBJECT(priv->s_port), NM_SETTING_TEAM_PORT_CONFIG, new_config, NULL); + g_free(new_config); } static void -nmt_page_team_port_constructed (GObject *object) +nmt_page_team_port_constructed(GObject *object) { - NmtPageTeamPort *team = NMT_PAGE_TEAM_PORT (object); - NmtPageTeamPortPrivate *priv = NMT_PAGE_TEAM_PORT_GET_PRIVATE (team); - NmtEditorSection *section; - NmtNewtGrid *grid; - NMSettingTeamPort *s_port; - NmtNewtWidget *widget; - NMConnection *conn; - - conn = nmt_editor_page_get_connection (NMT_EDITOR_PAGE (team)); - s_port = nm_connection_get_setting_team_port (conn); - if (!s_port) { - nm_connection_add_setting (conn, nm_setting_team_port_new ()); - s_port = nm_connection_get_setting_team_port (conn); - } - priv->s_port = s_port; - - section = nmt_editor_section_new (_("TEAM PORT"), NULL, TRUE); - - widget = nmt_newt_grid_new (); - nmt_editor_grid_append (nmt_editor_section_get_body (section), NULL, widget, NULL); - - grid = NMT_NEWT_GRID (widget); - - widget = nmt_newt_label_new (_("JSON configuration")); - nmt_newt_grid_add (grid, widget, 0, 2); - - widget = nmt_newt_textbox_new (NMT_NEWT_TEXTBOX_SCROLLABLE | NMT_NEWT_TEXTBOX_SET_BACKGROUND, 60); - g_object_bind_property (s_port, NM_SETTING_TEAM_PORT_CONFIG, - widget, "text", - G_BINDING_SYNC_CREATE); - nmt_newt_grid_add (grid, widget, 0, 3); - nmt_newt_widget_set_padding (widget, 2, 0, 2, 1); - - widget = nmt_newt_button_new (_("Edit...")); - g_signal_connect (widget, "clicked", G_CALLBACK (edit_clicked), team); - nmt_newt_grid_add (grid, widget, 0, 4); - - nmt_editor_page_add_section (NMT_EDITOR_PAGE (team), section); - - G_OBJECT_CLASS (nmt_page_team_port_parent_class)->constructed (object); + NmtPageTeamPort * team = NMT_PAGE_TEAM_PORT(object); + NmtPageTeamPortPrivate *priv = NMT_PAGE_TEAM_PORT_GET_PRIVATE(team); + NmtEditorSection * section; + NmtNewtGrid * grid; + NMSettingTeamPort * s_port; + NmtNewtWidget * widget; + NMConnection * conn; + + conn = nmt_editor_page_get_connection(NMT_EDITOR_PAGE(team)); + s_port = nm_connection_get_setting_team_port(conn); + if (!s_port) { + nm_connection_add_setting(conn, nm_setting_team_port_new()); + s_port = nm_connection_get_setting_team_port(conn); + } + priv->s_port = s_port; + + section = nmt_editor_section_new(_("TEAM PORT"), NULL, TRUE); + + widget = nmt_newt_grid_new(); + nmt_editor_grid_append(nmt_editor_section_get_body(section), NULL, widget, NULL); + + grid = NMT_NEWT_GRID(widget); + + widget = nmt_newt_label_new(_("JSON configuration")); + nmt_newt_grid_add(grid, widget, 0, 2); + + widget = + nmt_newt_textbox_new(NMT_NEWT_TEXTBOX_SCROLLABLE | NMT_NEWT_TEXTBOX_SET_BACKGROUND, 60); + g_object_bind_property(s_port, + NM_SETTING_TEAM_PORT_CONFIG, + widget, + "text", + G_BINDING_SYNC_CREATE); + nmt_newt_grid_add(grid, widget, 0, 3); + nmt_newt_widget_set_padding(widget, 2, 0, 2, 1); + + widget = nmt_newt_button_new(_("Edit...")); + g_signal_connect(widget, "clicked", G_CALLBACK(edit_clicked), team); + nmt_newt_grid_add(grid, widget, 0, 4); + + nmt_editor_page_add_section(NMT_EDITOR_PAGE(team), section); + + G_OBJECT_CLASS(nmt_page_team_port_parent_class)->constructed(object); } static void -nmt_page_team_port_class_init (NmtPageTeamPortClass *team_class) +nmt_page_team_port_class_init(NmtPageTeamPortClass *team_class) { - GObjectClass *object_class = G_OBJECT_CLASS (team_class); + GObjectClass *object_class = G_OBJECT_CLASS(team_class); - g_type_class_add_private (team_class, sizeof (NmtPageTeamPortPrivate)); + g_type_class_add_private(team_class, sizeof(NmtPageTeamPortPrivate)); - object_class->constructed = nmt_page_team_port_constructed; + object_class->constructed = nmt_page_team_port_constructed; } diff --git a/clients/tui/nmt-page-team-port.h b/clients/tui/nmt-page-team-port.h index f68c1bd232..2803fe99d9 100644 --- a/clients/tui/nmt-page-team-port.h +++ b/clients/tui/nmt-page-team-port.h @@ -8,25 +8,29 @@ #include "nmt-editor-page-device.h" -#define NMT_TYPE_PAGE_TEAM_PORT (nmt_page_team_port_get_type ()) -#define NMT_PAGE_TEAM_PORT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NMT_TYPE_PAGE_TEAM_PORT, NmtPageTeamPort)) -#define NMT_PAGE_TEAM_PORT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NMT_TYPE_PAGE_TEAM_PORT, NmtPageTeamPortClass)) -#define NMT_IS_PAGE_TEAM_PORT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NMT_TYPE_PAGE_TEAM_PORT)) -#define NMT_IS_PAGE_TEAM_PORT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NMT_TYPE_PAGE_TEAM_PORT)) -#define NMT_PAGE_TEAM_PORT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NMT_TYPE_PAGE_TEAM_PORT, NmtPageTeamPortClass)) +#define NMT_TYPE_PAGE_TEAM_PORT (nmt_page_team_port_get_type()) +#define NMT_PAGE_TEAM_PORT(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), NMT_TYPE_PAGE_TEAM_PORT, NmtPageTeamPort)) +#define NMT_PAGE_TEAM_PORT_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), NMT_TYPE_PAGE_TEAM_PORT, NmtPageTeamPortClass)) +#define NMT_IS_PAGE_TEAM_PORT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), NMT_TYPE_PAGE_TEAM_PORT)) +#define NMT_IS_PAGE_TEAM_PORT_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass), NMT_TYPE_PAGE_TEAM_PORT)) +#define NMT_PAGE_TEAM_PORT_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), NMT_TYPE_PAGE_TEAM_PORT, NmtPageTeamPortClass)) typedef struct { - NmtEditorPage parent; + NmtEditorPage parent; } NmtPageTeamPort; typedef struct { - NmtEditorPageClass parent; + NmtEditorPageClass parent; } NmtPageTeamPortClass; -GType nmt_page_team_port_get_type (void); +GType nmt_page_team_port_get_type(void); -NmtEditorPage *nmt_page_team_port_new (NMConnection *conn); +NmtEditorPage *nmt_page_team_port_new(NMConnection *conn); #endif /* NMT_PAGE_TEAM_PORT_H */ diff --git a/clients/tui/nmt-page-team.c b/clients/tui/nmt-page-team.c index a3d9d53a6c..4c3a7d6615 100644 --- a/clients/tui/nmt-page-team.c +++ b/clients/tui/nmt-page-team.c @@ -14,174 +14,162 @@ #include "nmt-slave-list.h" -G_DEFINE_TYPE (NmtPageTeam, nmt_page_team, NMT_TYPE_EDITOR_PAGE_DEVICE) +G_DEFINE_TYPE(NmtPageTeam, nmt_page_team, NMT_TYPE_EDITOR_PAGE_DEVICE) -#define NMT_PAGE_TEAM_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NMT_TYPE_PAGE_TEAM, NmtPageTeamPrivate)) +#define NMT_PAGE_TEAM_GET_PRIVATE(o) \ + (G_TYPE_INSTANCE_GET_PRIVATE((o), NMT_TYPE_PAGE_TEAM, NmtPageTeamPrivate)) typedef struct { - NmtSlaveList *slaves; + NmtSlaveList *slaves; - NMSettingTeam *s_team; - GType slave_type; + NMSettingTeam *s_team; + GType slave_type; } NmtPageTeamPrivate; NmtEditorPage * -nmt_page_team_new (NMConnection *conn, - NmtDeviceEntry *deventry) +nmt_page_team_new(NMConnection *conn, NmtDeviceEntry *deventry) { - return g_object_new (NMT_TYPE_PAGE_TEAM, - "connection", conn, - "device-entry", deventry, - NULL); + return g_object_new(NMT_TYPE_PAGE_TEAM, "connection", conn, "device-entry", deventry, NULL); } static void -nmt_page_team_init (NmtPageTeam *team) +nmt_page_team_init(NmtPageTeam *team) { - NmtPageTeamPrivate *priv = NMT_PAGE_TEAM_GET_PRIVATE (team); + NmtPageTeamPrivate *priv = NMT_PAGE_TEAM_GET_PRIVATE(team); - priv->slave_type = G_TYPE_NONE; + priv->slave_type = G_TYPE_NONE; } static void -slaves_changed (GObject *object, - GParamSpec *pspec, - gpointer user_data) +slaves_changed(GObject *object, GParamSpec *pspec, gpointer user_data) { - NmtPageTeam *team = NMT_PAGE_TEAM (user_data); - NmtPageTeamPrivate *priv = NMT_PAGE_TEAM_GET_PRIVATE (team); - GPtrArray *slaves; - - g_object_get (object, "connections", &slaves, NULL); - if (slaves->len == 0) { - priv->slave_type = G_TYPE_NONE; - } else if (priv->slave_type == G_TYPE_NONE) { - NMConnection *slave = slaves->pdata[0]; - - if (nm_connection_is_type (slave, NM_SETTING_INFINIBAND_SETTING_NAME)) - priv->slave_type = NM_TYPE_SETTING_INFINIBAND; - else - priv->slave_type = NM_TYPE_SETTING_WIRED; - } + NmtPageTeam * team = NMT_PAGE_TEAM(user_data); + NmtPageTeamPrivate *priv = NMT_PAGE_TEAM_GET_PRIVATE(team); + GPtrArray * slaves; + + g_object_get(object, "connections", &slaves, NULL); + if (slaves->len == 0) { + priv->slave_type = G_TYPE_NONE; + } else if (priv->slave_type == G_TYPE_NONE) { + NMConnection *slave = slaves->pdata[0]; + + if (nm_connection_is_type(slave, NM_SETTING_INFINIBAND_SETTING_NAME)) + priv->slave_type = NM_TYPE_SETTING_INFINIBAND; + else + priv->slave_type = NM_TYPE_SETTING_WIRED; + } } static gboolean -team_connection_type_filter (GType connection_type, - gpointer user_data) +team_connection_type_filter(GType connection_type, gpointer user_data) { - NmtPageTeam *team = user_data; - NmtPageTeamPrivate *priv = NMT_PAGE_TEAM_GET_PRIVATE (team); - - if (priv->slave_type != NM_TYPE_SETTING_WIRED) { - if (connection_type == NM_TYPE_SETTING_INFINIBAND) - return TRUE; - } - if (priv->slave_type != NM_TYPE_SETTING_INFINIBAND) { - if ( connection_type == NM_TYPE_SETTING_WIRED - || connection_type == NM_TYPE_SETTING_WIRELESS - || connection_type == NM_TYPE_SETTING_VLAN) - return TRUE; - } - - return FALSE; + NmtPageTeam * team = user_data; + NmtPageTeamPrivate *priv = NMT_PAGE_TEAM_GET_PRIVATE(team); + + if (priv->slave_type != NM_TYPE_SETTING_WIRED) { + if (connection_type == NM_TYPE_SETTING_INFINIBAND) + return TRUE; + } + if (priv->slave_type != NM_TYPE_SETTING_INFINIBAND) { + if (connection_type == NM_TYPE_SETTING_WIRED || connection_type == NM_TYPE_SETTING_WIRELESS + || connection_type == NM_TYPE_SETTING_VLAN) + return TRUE; + } + + return FALSE; } static void -edit_clicked (NmtNewtButton *button, - gpointer user_data) +edit_clicked(NmtNewtButton *button, gpointer user_data) { - NmtPageTeam *team = user_data; - NmtPageTeamPrivate *priv = NMT_PAGE_TEAM_GET_PRIVATE (team); - const char *config; - char *new_config; - - config = nm_setting_team_get_config (priv->s_team); - if (!config) - config = ""; - - new_config = nmt_newt_edit_string (config); - - if (new_config && !*new_config) - nm_clear_g_free (&new_config); - g_object_set (G_OBJECT (priv->s_team), - NM_SETTING_TEAM_CONFIG, new_config, - NULL); - g_free (new_config); + NmtPageTeam * team = user_data; + NmtPageTeamPrivate *priv = NMT_PAGE_TEAM_GET_PRIVATE(team); + const char * config; + char * new_config; + + config = nm_setting_team_get_config(priv->s_team); + if (!config) + config = ""; + + new_config = nmt_newt_edit_string(config); + + if (new_config && !*new_config) + nm_clear_g_free(&new_config); + g_object_set(G_OBJECT(priv->s_team), NM_SETTING_TEAM_CONFIG, new_config, NULL); + g_free(new_config); } static void -nmt_page_team_constructed (GObject *object) +nmt_page_team_constructed(GObject *object) { - NmtPageTeam *team = NMT_PAGE_TEAM (object); - NmtPageTeamPrivate *priv = NMT_PAGE_TEAM_GET_PRIVATE (team); - NmtEditorSection *section; - NmtNewtGrid *grid; - NMSettingTeam *s_team; - NmtNewtWidget *widget; - NMConnection *conn; - - conn = nmt_editor_page_get_connection (NMT_EDITOR_PAGE (team)); - s_team = nm_connection_get_setting_team (conn); - if (!s_team) { - nm_connection_add_setting (conn, nm_setting_team_new ()); - s_team = nm_connection_get_setting_team (conn); - } - priv->s_team = s_team; - - section = nmt_editor_section_new (_("TEAM"), NULL, TRUE); - - widget = nmt_newt_grid_new (); - nmt_editor_grid_append (nmt_editor_section_get_body (section), NULL, widget, NULL); - - grid = NMT_NEWT_GRID (widget); - - widget = nmt_newt_label_new (_("Slaves")); - nmt_newt_grid_add (grid, widget, 0, 0); - - widget = nmt_slave_list_new (conn, team_connection_type_filter, team); - g_signal_connect (widget, "notify::connections", - G_CALLBACK (slaves_changed), team); - nmt_newt_grid_add (grid, widget, 0, 1); - nmt_newt_widget_set_padding (widget, 0, 0, 0, 1); - priv->slaves = NMT_SLAVE_LIST (widget); - slaves_changed (G_OBJECT (priv->slaves), NULL, team); - - widget = nmt_newt_label_new (_("JSON configuration")); - nmt_newt_grid_add (grid, widget, 0, 2); - - widget = nmt_newt_textbox_new (NMT_NEWT_TEXTBOX_SCROLLABLE | NMT_NEWT_TEXTBOX_SET_BACKGROUND, 60); - g_object_bind_property (s_team, NM_SETTING_TEAM_CONFIG, - widget, "text", - G_BINDING_SYNC_CREATE); - nmt_newt_grid_add (grid, widget, 0, 3); - nmt_newt_widget_set_padding (widget, 2, 0, 2, 1); - - widget = nmt_newt_button_new (_("Edit...")); - g_signal_connect (widget, "clicked", G_CALLBACK (edit_clicked), team); - nmt_newt_grid_add (grid, widget, 0, 4); - - nmt_editor_page_add_section (NMT_EDITOR_PAGE (team), section); - - G_OBJECT_CLASS (nmt_page_team_parent_class)->constructed (object); + NmtPageTeam * team = NMT_PAGE_TEAM(object); + NmtPageTeamPrivate *priv = NMT_PAGE_TEAM_GET_PRIVATE(team); + NmtEditorSection * section; + NmtNewtGrid * grid; + NMSettingTeam * s_team; + NmtNewtWidget * widget; + NMConnection * conn; + + conn = nmt_editor_page_get_connection(NMT_EDITOR_PAGE(team)); + s_team = nm_connection_get_setting_team(conn); + if (!s_team) { + nm_connection_add_setting(conn, nm_setting_team_new()); + s_team = nm_connection_get_setting_team(conn); + } + priv->s_team = s_team; + + section = nmt_editor_section_new(_("TEAM"), NULL, TRUE); + + widget = nmt_newt_grid_new(); + nmt_editor_grid_append(nmt_editor_section_get_body(section), NULL, widget, NULL); + + grid = NMT_NEWT_GRID(widget); + + widget = nmt_newt_label_new(_("Slaves")); + nmt_newt_grid_add(grid, widget, 0, 0); + + widget = nmt_slave_list_new(conn, team_connection_type_filter, team); + g_signal_connect(widget, "notify::connections", G_CALLBACK(slaves_changed), team); + nmt_newt_grid_add(grid, widget, 0, 1); + nmt_newt_widget_set_padding(widget, 0, 0, 0, 1); + priv->slaves = NMT_SLAVE_LIST(widget); + slaves_changed(G_OBJECT(priv->slaves), NULL, team); + + widget = nmt_newt_label_new(_("JSON configuration")); + nmt_newt_grid_add(grid, widget, 0, 2); + + widget = + nmt_newt_textbox_new(NMT_NEWT_TEXTBOX_SCROLLABLE | NMT_NEWT_TEXTBOX_SET_BACKGROUND, 60); + g_object_bind_property(s_team, NM_SETTING_TEAM_CONFIG, widget, "text", G_BINDING_SYNC_CREATE); + nmt_newt_grid_add(grid, widget, 0, 3); + nmt_newt_widget_set_padding(widget, 2, 0, 2, 1); + + widget = nmt_newt_button_new(_("Edit...")); + g_signal_connect(widget, "clicked", G_CALLBACK(edit_clicked), team); + nmt_newt_grid_add(grid, widget, 0, 4); + + nmt_editor_page_add_section(NMT_EDITOR_PAGE(team), section); + + G_OBJECT_CLASS(nmt_page_team_parent_class)->constructed(object); } static void -nmt_page_team_saved (NmtEditorPage *editor_page) +nmt_page_team_saved(NmtEditorPage *editor_page) { - NmtPageTeamPrivate *priv = NMT_PAGE_TEAM_GET_PRIVATE (editor_page); + NmtPageTeamPrivate *priv = NMT_PAGE_TEAM_GET_PRIVATE(editor_page); - nmt_edit_connection_list_recommit (NMT_EDIT_CONNECTION_LIST (priv->slaves)); + nmt_edit_connection_list_recommit(NMT_EDIT_CONNECTION_LIST(priv->slaves)); } static void -nmt_page_team_class_init (NmtPageTeamClass *team_class) +nmt_page_team_class_init(NmtPageTeamClass *team_class) { - GObjectClass *object_class = G_OBJECT_CLASS (team_class); - NmtEditorPageClass *editor_page_class = NMT_EDITOR_PAGE_CLASS (team_class); + GObjectClass * object_class = G_OBJECT_CLASS(team_class); + NmtEditorPageClass *editor_page_class = NMT_EDITOR_PAGE_CLASS(team_class); - g_type_class_add_private (team_class, sizeof (NmtPageTeamPrivate)); + g_type_class_add_private(team_class, sizeof(NmtPageTeamPrivate)); - object_class->constructed = nmt_page_team_constructed; - editor_page_class->saved = nmt_page_team_saved; + object_class->constructed = nmt_page_team_constructed; + editor_page_class->saved = nmt_page_team_saved; } diff --git a/clients/tui/nmt-page-team.h b/clients/tui/nmt-page-team.h index ca8c2ff19d..bf0c5ee4ff 100644 --- a/clients/tui/nmt-page-team.h +++ b/clients/tui/nmt-page-team.h @@ -8,26 +8,27 @@ #include "nmt-editor-page-device.h" -#define NMT_TYPE_PAGE_TEAM (nmt_page_team_get_type ()) -#define NMT_PAGE_TEAM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NMT_TYPE_PAGE_TEAM, NmtPageTeam)) -#define NMT_PAGE_TEAM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NMT_TYPE_PAGE_TEAM, NmtPageTeamClass)) -#define NMT_IS_PAGE_TEAM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NMT_TYPE_PAGE_TEAM)) -#define NMT_IS_PAGE_TEAM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NMT_TYPE_PAGE_TEAM)) -#define NMT_PAGE_TEAM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NMT_TYPE_PAGE_TEAM, NmtPageTeamClass)) +#define NMT_TYPE_PAGE_TEAM (nmt_page_team_get_type()) +#define NMT_PAGE_TEAM(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), NMT_TYPE_PAGE_TEAM, NmtPageTeam)) +#define NMT_PAGE_TEAM_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), NMT_TYPE_PAGE_TEAM, NmtPageTeamClass)) +#define NMT_IS_PAGE_TEAM(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), NMT_TYPE_PAGE_TEAM)) +#define NMT_IS_PAGE_TEAM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), NMT_TYPE_PAGE_TEAM)) +#define NMT_PAGE_TEAM_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), NMT_TYPE_PAGE_TEAM, NmtPageTeamClass)) typedef struct { - NmtEditorPageDevice parent; + NmtEditorPageDevice parent; } NmtPageTeam; typedef struct { - NmtEditorPageDeviceClass parent; + NmtEditorPageDeviceClass parent; } NmtPageTeamClass; -GType nmt_page_team_get_type (void); +GType nmt_page_team_get_type(void); -NmtEditorPage *nmt_page_team_new (NMConnection *conn, - NmtDeviceEntry *deventry); +NmtEditorPage *nmt_page_team_new(NMConnection *conn, NmtDeviceEntry *deventry); #endif /* NMT_PAGE_TEAM_H */ diff --git a/clients/tui/nmt-page-vlan.c b/clients/tui/nmt-page-vlan.c index f82dfcb932..27c89f0553 100644 --- a/clients/tui/nmt-page-vlan.c +++ b/clients/tui/nmt-page-vlan.c @@ -17,101 +17,103 @@ #include "nmt-mac-entry.h" #include "nmt-mtu-entry.h" -G_DEFINE_TYPE (NmtPageVlan, nmt_page_vlan, NMT_TYPE_EDITOR_PAGE_DEVICE) +G_DEFINE_TYPE(NmtPageVlan, nmt_page_vlan, NMT_TYPE_EDITOR_PAGE_DEVICE) NmtEditorPage * -nmt_page_vlan_new (NMConnection *conn, - NmtDeviceEntry *deventry) +nmt_page_vlan_new(NMConnection *conn, NmtDeviceEntry *deventry) { - return g_object_new (NMT_TYPE_PAGE_VLAN, - "connection", conn, - "device-entry", deventry, - NULL); + return g_object_new(NMT_TYPE_PAGE_VLAN, "connection", conn, "device-entry", deventry, NULL); } static void -nmt_page_vlan_init (NmtPageVlan *vlan) -{ -} +nmt_page_vlan_init(NmtPageVlan *vlan) +{} static gboolean -vlan_device_filter (NmtDeviceEntry *deventry, - NMDevice *device, - gpointer user_data) +vlan_device_filter(NmtDeviceEntry *deventry, NMDevice *device, gpointer user_data) { - // FIXME - return NM_IS_DEVICE_ETHERNET (device); + // FIXME + return NM_IS_DEVICE_ETHERNET(device); } static void -nmt_page_vlan_constructed (GObject *object) +nmt_page_vlan_constructed(GObject *object) { - NmtPageVlan *vlan = NMT_PAGE_VLAN (object); - NmtEditorSection *section; - NmtEditorGrid *grid; - NMSettingWired *s_wired; - NMSettingVlan *s_vlan; - NmtNewtWidget *widget, *parent, *id_entry; - NMConnection *conn; - - conn = nmt_editor_page_get_connection (NMT_EDITOR_PAGE (vlan)); - s_vlan = nm_connection_get_setting_vlan (conn); - if (!s_vlan) { - nm_connection_add_setting (conn, nm_setting_vlan_new ()); - s_vlan = nm_connection_get_setting_vlan (conn); - } - s_wired = nm_connection_get_setting_wired (conn); - if (!s_wired) { - nm_connection_add_setting (conn, nm_setting_wired_new ()); - s_wired = nm_connection_get_setting_wired (conn); - } - - section = nmt_editor_section_new (_("VLAN"), NULL, TRUE); - grid = nmt_editor_section_get_body (section); - - nm_editor_bind_vlan_name (s_vlan, nm_connection_get_setting_connection (conn)); - - widget = parent = nmt_device_entry_new (_("Parent"), 40, G_TYPE_NONE); - nmt_device_entry_set_device_filter (NMT_DEVICE_ENTRY (widget), - vlan_device_filter, vlan); - g_object_bind_property (s_vlan, NM_SETTING_VLAN_PARENT, - widget, "interface-name", - G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); - g_object_bind_property (s_wired, NM_SETTING_WIRED_MAC_ADDRESS, - widget, "mac-address", - G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); - nmt_editor_grid_append (grid, NULL, widget, NULL); - - widget = id_entry = nmt_newt_entry_numeric_new (8, 0, 4094); - g_object_bind_property (s_vlan, NM_SETTING_VLAN_ID, - widget, "text", - G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); - nmt_editor_grid_append (grid, _("VLAN id"), widget, NULL); - - nmt_editor_grid_append (grid, NULL, nmt_newt_separator_new (), NULL); - - widget = nmt_mac_entry_new (40, ETH_ALEN, NMT_MAC_ENTRY_TYPE_CLONED); - g_object_bind_property (s_wired, NM_SETTING_WIRED_CLONED_MAC_ADDRESS, - widget, "mac-address", - G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); - nmt_editor_grid_append (grid, _("Cloned MAC address"), widget, NULL); - - widget = nmt_mtu_entry_new (); - g_object_bind_property (s_wired, NM_SETTING_WIRED_MTU, - widget, "mtu", - G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); - nmt_editor_grid_append (grid, _("MTU"), widget, NULL); - - nmt_editor_page_add_section (NMT_EDITOR_PAGE (vlan), section); - - G_OBJECT_CLASS (nmt_page_vlan_parent_class)->constructed (object); + NmtPageVlan * vlan = NMT_PAGE_VLAN(object); + NmtEditorSection *section; + NmtEditorGrid * grid; + NMSettingWired * s_wired; + NMSettingVlan * s_vlan; + NmtNewtWidget * widget, *parent, *id_entry; + NMConnection * conn; + + conn = nmt_editor_page_get_connection(NMT_EDITOR_PAGE(vlan)); + s_vlan = nm_connection_get_setting_vlan(conn); + if (!s_vlan) { + nm_connection_add_setting(conn, nm_setting_vlan_new()); + s_vlan = nm_connection_get_setting_vlan(conn); + } + s_wired = nm_connection_get_setting_wired(conn); + if (!s_wired) { + nm_connection_add_setting(conn, nm_setting_wired_new()); + s_wired = nm_connection_get_setting_wired(conn); + } + + section = nmt_editor_section_new(_("VLAN"), NULL, TRUE); + grid = nmt_editor_section_get_body(section); + + nm_editor_bind_vlan_name(s_vlan, nm_connection_get_setting_connection(conn)); + + widget = parent = nmt_device_entry_new(_("Parent"), 40, G_TYPE_NONE); + nmt_device_entry_set_device_filter(NMT_DEVICE_ENTRY(widget), vlan_device_filter, vlan); + g_object_bind_property(s_vlan, + NM_SETTING_VLAN_PARENT, + widget, + "interface-name", + G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); + g_object_bind_property(s_wired, + NM_SETTING_WIRED_MAC_ADDRESS, + widget, + "mac-address", + G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); + nmt_editor_grid_append(grid, NULL, widget, NULL); + + widget = id_entry = nmt_newt_entry_numeric_new(8, 0, 4094); + g_object_bind_property(s_vlan, + NM_SETTING_VLAN_ID, + widget, + "text", + G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); + nmt_editor_grid_append(grid, _("VLAN id"), widget, NULL); + + nmt_editor_grid_append(grid, NULL, nmt_newt_separator_new(), NULL); + + widget = nmt_mac_entry_new(40, ETH_ALEN, NMT_MAC_ENTRY_TYPE_CLONED); + g_object_bind_property(s_wired, + NM_SETTING_WIRED_CLONED_MAC_ADDRESS, + widget, + "mac-address", + G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); + nmt_editor_grid_append(grid, _("Cloned MAC address"), widget, NULL); + + widget = nmt_mtu_entry_new(); + g_object_bind_property(s_wired, + NM_SETTING_WIRED_MTU, + widget, + "mtu", + G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); + nmt_editor_grid_append(grid, _("MTU"), widget, NULL); + + nmt_editor_page_add_section(NMT_EDITOR_PAGE(vlan), section); + + G_OBJECT_CLASS(nmt_page_vlan_parent_class)->constructed(object); } static void -nmt_page_vlan_class_init (NmtPageVlanClass *vlan_class) +nmt_page_vlan_class_init(NmtPageVlanClass *vlan_class) { - GObjectClass *object_class = G_OBJECT_CLASS (vlan_class); + GObjectClass *object_class = G_OBJECT_CLASS(vlan_class); - /* virtual methods */ - object_class->constructed = nmt_page_vlan_constructed; + /* virtual methods */ + object_class->constructed = nmt_page_vlan_constructed; } diff --git a/clients/tui/nmt-page-vlan.h b/clients/tui/nmt-page-vlan.h index ac95d84350..210aaba7b0 100644 --- a/clients/tui/nmt-page-vlan.h +++ b/clients/tui/nmt-page-vlan.h @@ -8,26 +8,27 @@ #include "nmt-editor-page-device.h" -#define NMT_TYPE_PAGE_VLAN (nmt_page_vlan_get_type ()) -#define NMT_PAGE_VLAN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NMT_TYPE_PAGE_VLAN, NmtPageVlan)) -#define NMT_PAGE_VLAN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NMT_TYPE_PAGE_VLAN, NmtPageVlanClass)) -#define NMT_IS_PAGE_VLAN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NMT_TYPE_PAGE_VLAN)) -#define NMT_IS_PAGE_VLAN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NMT_TYPE_PAGE_VLAN)) -#define NMT_PAGE_VLAN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NMT_TYPE_PAGE_VLAN, NmtPageVlanClass)) +#define NMT_TYPE_PAGE_VLAN (nmt_page_vlan_get_type()) +#define NMT_PAGE_VLAN(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), NMT_TYPE_PAGE_VLAN, NmtPageVlan)) +#define NMT_PAGE_VLAN_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), NMT_TYPE_PAGE_VLAN, NmtPageVlanClass)) +#define NMT_IS_PAGE_VLAN(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), NMT_TYPE_PAGE_VLAN)) +#define NMT_IS_PAGE_VLAN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), NMT_TYPE_PAGE_VLAN)) +#define NMT_PAGE_VLAN_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), NMT_TYPE_PAGE_VLAN, NmtPageVlanClass)) typedef struct { - NmtEditorPageDevice parent; + NmtEditorPageDevice parent; } NmtPageVlan; typedef struct { - NmtEditorPageDeviceClass parent; + NmtEditorPageDeviceClass parent; } NmtPageVlanClass; -GType nmt_page_vlan_get_type (void); +GType nmt_page_vlan_get_type(void); -NmtEditorPage *nmt_page_vlan_new (NMConnection *conn, - NmtDeviceEntry *deventry); +NmtEditorPage *nmt_page_vlan_new(NMConnection *conn, NmtDeviceEntry *deventry); #endif /* NMT_PAGE_VLAN_H */ diff --git a/clients/tui/nmt-page-wifi.c b/clients/tui/nmt-page-wifi.c index 9494423b77..279fd80f10 100644 --- a/clients/tui/nmt-page-wifi.c +++ b/clients/tui/nmt-page-wifi.c @@ -23,364 +23,386 @@ #include "nm-editor-bindings.h" -G_DEFINE_TYPE (NmtPageWifi, nmt_page_wifi, NMT_TYPE_EDITOR_PAGE_DEVICE) +G_DEFINE_TYPE(NmtPageWifi, nmt_page_wifi, NMT_TYPE_EDITOR_PAGE_DEVICE) -#define NMT_PAGE_WIFI_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NMT_TYPE_PAGE_WIFI, NmtPageWifiPrivate)) +#define NMT_PAGE_WIFI_GET_PRIVATE(o) \ + (G_TYPE_INSTANCE_GET_PRIVATE((o), NMT_TYPE_PAGE_WIFI, NmtPageWifiPrivate)) typedef struct { - NMSettingWirelessSecurity *s_wsec; + NMSettingWirelessSecurity *s_wsec; } NmtPageWifiPrivate; NmtEditorPage * -nmt_page_wifi_new (NMConnection *conn, - NmtDeviceEntry *deventry) +nmt_page_wifi_new(NMConnection *conn, NmtDeviceEntry *deventry) { - return g_object_new (NMT_TYPE_PAGE_WIFI, - "connection", conn, - "device-entry", deventry, - NULL); + return g_object_new(NMT_TYPE_PAGE_WIFI, "connection", conn, "device-entry", deventry, NULL); } static void -nmt_page_wifi_init (NmtPageWifi *wifi) -{ -} - -static NmtNewtPopupEntry wifi_mode[] = { - { NC_("Wi-Fi", "Client"), NM_SETTING_WIRELESS_MODE_INFRA }, - { N_("Access Point"), NM_SETTING_WIRELESS_MODE_AP }, - { N_("Ad-Hoc Network"), NM_SETTING_WIRELESS_MODE_ADHOC }, - { NULL, NULL } -}; - -static NmtNewtPopupEntry wifi_band[] = { - { NC_("Wi-Fi", "Automatic"), NULL }, - /* 802.11a Wi-Fi network */ - { N_("A (5 GHz)"), "a" }, - /* 802.11b / 802.11g Wi-Fi network */ - { N_("B/G (2.4 GHz)"), "bg" }, - { NULL, NULL } -}; - -static NmtNewtPopupEntry wifi_security[] = { - { NC_("Wi-Fi security", "None"), "none" }, - { N_("WPA & WPA2 Personal"), "wpa-personal" }, - { N_("WPA3 Personal"), "wpa3-personal" }, - { N_("WPA & WPA2 Enterprise"), "wpa-enterprise" }, - { N_("WEP 40/128-bit Key (Hex or ASCII)"), "wep-key" }, - { N_("WEP 128-bit Passphrase"), "wep-passphrase" }, - { N_("Dynamic WEP (802.1x)"), "dynamic-wep" }, - { N_("LEAP"), "leap" }, - { N_("Enhanced Open (OWE)"), "owe" }, - { NULL, NULL } -}; - -static NmtNewtPopupEntry wep_index[] = { - { NC_("WEP key index", "1 (Default)"), "1" }, - { NC_("WEP key index", "2"), "2" }, - { NC_("WEP key index", "3"), "3" }, - { NC_("WEP key index", "4"), "4" }, - { NULL, NULL } -}; - -static NmtNewtPopupEntry wep_auth[] = { - { N_("Open System"), "open" }, - { N_("Shared Key"), "shared" }, - { NULL, NULL } -}; +nmt_page_wifi_init(NmtPageWifi *wifi) +{} + +static NmtNewtPopupEntry wifi_mode[] = {{NC_("Wi-Fi", "Client"), NM_SETTING_WIRELESS_MODE_INFRA}, + {N_("Access Point"), NM_SETTING_WIRELESS_MODE_AP}, + {N_("Ad-Hoc Network"), NM_SETTING_WIRELESS_MODE_ADHOC}, + {NULL, NULL}}; + +static NmtNewtPopupEntry wifi_band[] = {{NC_("Wi-Fi", "Automatic"), NULL}, + /* 802.11a Wi-Fi network */ + {N_("A (5 GHz)"), "a"}, + /* 802.11b / 802.11g Wi-Fi network */ + {N_("B/G (2.4 GHz)"), "bg"}, + {NULL, NULL}}; + +static NmtNewtPopupEntry wifi_security[] = {{NC_("Wi-Fi security", "None"), "none"}, + {N_("WPA & WPA2 Personal"), "wpa-personal"}, + {N_("WPA3 Personal"), "wpa3-personal"}, + {N_("WPA & WPA2 Enterprise"), "wpa-enterprise"}, + {N_("WEP 40/128-bit Key (Hex or ASCII)"), "wep-key"}, + {N_("WEP 128-bit Passphrase"), "wep-passphrase"}, + {N_("Dynamic WEP (802.1x)"), "dynamic-wep"}, + {N_("LEAP"), "leap"}, + {N_("Enhanced Open (OWE)"), "owe"}, + {NULL, NULL}}; + +static NmtNewtPopupEntry wep_index[] = {{NC_("WEP key index", "1 (Default)"), "1"}, + {NC_("WEP key index", "2"), "2"}, + {NC_("WEP key index", "3"), "3"}, + {NC_("WEP key index", "4"), "4"}, + {NULL, NULL}}; + +static NmtNewtPopupEntry wep_auth[] = {{N_("Open System"), "open"}, + {N_("Shared Key"), "shared"}, + {NULL, NULL}}; static gboolean -mode_transform_to_band_visibility (GBinding *binding, - const GValue *source_value, - GValue *target_value, - gpointer user_data) +mode_transform_to_band_visibility(GBinding * binding, + const GValue *source_value, + GValue * target_value, + gpointer user_data) { - if (!g_strcmp0 (g_value_get_string (source_value), NM_SETTING_WIRELESS_MODE_INFRA)) - g_value_set_boolean (target_value, FALSE); - else - g_value_set_boolean (target_value, TRUE); - return TRUE; + if (!g_strcmp0(g_value_get_string(source_value), NM_SETTING_WIRELESS_MODE_INFRA)) + g_value_set_boolean(target_value, FALSE); + else + g_value_set_boolean(target_value, TRUE); + return TRUE; } static gboolean -band_transform_to_channel_visibility (GBinding *binding, - const GValue *source_value, - GValue *target_value, - gpointer user_data) +band_transform_to_channel_visibility(GBinding * binding, + const GValue *source_value, + GValue * target_value, + gpointer user_data) { - g_value_set_boolean (target_value, g_value_get_string (source_value) != NULL); - return TRUE; + g_value_set_boolean(target_value, g_value_get_string(source_value) != NULL); + return TRUE; } static gboolean -ssid_transform_to_entry (GBinding *binding, - const GValue *source_value, - GValue *target_value, - gpointer user_data) +ssid_transform_to_entry(GBinding * binding, + const GValue *source_value, + GValue * target_value, + gpointer user_data) { - GBytes *ssid; - char *utf8; - - ssid = g_value_get_boxed (source_value); - if (ssid) - utf8 = nm_utils_ssid_to_utf8 (g_bytes_get_data (ssid, NULL), - g_bytes_get_size (ssid)); - else - utf8 = g_strdup (""); - g_value_take_string (target_value, utf8); - return TRUE; + GBytes *ssid; + char * utf8; + + ssid = g_value_get_boxed(source_value); + if (ssid) + utf8 = nm_utils_ssid_to_utf8(g_bytes_get_data(ssid, NULL), g_bytes_get_size(ssid)); + else + utf8 = g_strdup(""); + g_value_take_string(target_value, utf8); + return TRUE; } static gboolean -ssid_transform_from_entry (GBinding *binding, - const GValue *source_value, - GValue *target_value, - gpointer user_data) +ssid_transform_from_entry(GBinding * binding, + const GValue *source_value, + GValue * target_value, + gpointer user_data) { - NMSettingWireless *s_wireless = user_data; - const char *text; - GBytes *old_ssid, *ssid; - char *utf8; - - text = g_value_get_string (source_value); - - old_ssid = nm_setting_wireless_get_ssid (s_wireless); - if (old_ssid) - utf8 = nm_utils_ssid_to_utf8 (g_bytes_get_data (old_ssid, NULL), - g_bytes_get_size (old_ssid)); - else - utf8 = g_strdup (""); - - if (!g_strcmp0 (text, utf8)) { - g_free (utf8); - return FALSE; - } - g_free (utf8); - - ssid = g_bytes_new (text, strlen (text)); - g_value_take_boxed (target_value, ssid); - return TRUE; + NMSettingWireless *s_wireless = user_data; + const char * text; + GBytes * old_ssid, *ssid; + char * utf8; + + text = g_value_get_string(source_value); + + old_ssid = nm_setting_wireless_get_ssid(s_wireless); + if (old_ssid) + utf8 = nm_utils_ssid_to_utf8(g_bytes_get_data(old_ssid, NULL), g_bytes_get_size(old_ssid)); + else + utf8 = g_strdup(""); + + if (!g_strcmp0(text, utf8)) { + g_free(utf8); + return FALSE; + } + g_free(utf8); + + ssid = g_bytes_new(text, strlen(text)); + g_value_take_boxed(target_value, ssid); + return TRUE; } static void -nmt_page_wifi_constructed (GObject *object) +nmt_page_wifi_constructed(GObject *object) { - NmtPageWifiPrivate *priv = NMT_PAGE_WIFI_GET_PRIVATE (object); - NmtPageWifi *wifi = NMT_PAGE_WIFI (object); - NmtDeviceEntry *deventry; - NmtEditorSection *section; - NmtEditorGrid *grid; - NMSettingWireless *s_wireless; - NMSettingWirelessSecurity *s_wsec; - NmtNewtWidget *widget, *hbox, *subgrid; - NmtNewtWidget *mode, *band, *security, *entry; - NmtNewtStack *stack; - NMConnection *conn; - - conn = nmt_editor_page_get_connection (NMT_EDITOR_PAGE (wifi)); - s_wireless = nm_connection_get_setting_wireless (conn); - if (!s_wireless) { - nm_connection_add_setting (conn, nm_setting_wireless_new ()); - s_wireless = nm_connection_get_setting_wireless (conn); - } - - s_wsec = nm_connection_get_setting_wireless_security (conn); - if (!s_wsec) { - /* It makes things simpler if we always have a + NmtPageWifiPrivate * priv = NMT_PAGE_WIFI_GET_PRIVATE(object); + NmtPageWifi * wifi = NMT_PAGE_WIFI(object); + NmtDeviceEntry * deventry; + NmtEditorSection * section; + NmtEditorGrid * grid; + NMSettingWireless * s_wireless; + NMSettingWirelessSecurity *s_wsec; + NmtNewtWidget * widget, *hbox, *subgrid; + NmtNewtWidget * mode, *band, *security, *entry; + NmtNewtStack * stack; + NMConnection * conn; + + conn = nmt_editor_page_get_connection(NMT_EDITOR_PAGE(wifi)); + s_wireless = nm_connection_get_setting_wireless(conn); + if (!s_wireless) { + nm_connection_add_setting(conn, nm_setting_wireless_new()); + s_wireless = nm_connection_get_setting_wireless(conn); + } + + s_wsec = nm_connection_get_setting_wireless_security(conn); + if (!s_wsec) { + /* It makes things simpler if we always have a * NMSettingWirelessSecurity; we'll hold a ref on one, and add * it to and remove it from the connection as needed. */ - s_wsec = NM_SETTING_WIRELESS_SECURITY (nm_setting_wireless_security_new ()); - } - priv->s_wsec = g_object_ref_sink (s_wsec); - - deventry = nmt_editor_page_device_get_device_entry (NMT_EDITOR_PAGE_DEVICE (object)); - g_object_bind_property (s_wireless, NM_SETTING_WIRELESS_MAC_ADDRESS, - deventry, "mac-address", - G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); - - section = nmt_editor_section_new (_("WI-FI"), NULL, TRUE); - grid = nmt_editor_section_get_body (section); - - widget = nmt_newt_entry_new (40, NMT_NEWT_ENTRY_NONEMPTY); - g_object_bind_property_full (s_wireless, NM_SETTING_WIRELESS_SSID, - widget, "text", - G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE, - ssid_transform_to_entry, - ssid_transform_from_entry, - s_wireless, NULL); - nmt_editor_grid_append (grid, _("SSID"), widget, NULL); - - widget = nmt_newt_popup_new (wifi_mode); - g_object_bind_property (s_wireless, NM_SETTING_WIRELESS_MODE, - widget, "active-id", - G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); - nmt_editor_grid_append (grid, _("Mode"), widget, NULL); - mode = widget; - - hbox = nmt_newt_grid_new (); - widget = nmt_newt_popup_new (wifi_band); - g_object_bind_property (s_wireless, NM_SETTING_WIRELESS_BAND, - widget, "active-id", - G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); - nmt_newt_grid_add (NMT_NEWT_GRID (hbox), widget, 0, 0); - band = widget; - - widget = nmt_newt_entry_numeric_new (10, 0, 255); - g_object_bind_property (s_wireless, NM_SETTING_WIRELESS_CHANNEL, - widget, "text", - G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); - nmt_newt_grid_add (NMT_NEWT_GRID (hbox), widget, 1, 0); - nmt_newt_widget_set_padding (widget, 1, 0, 0, 0); - - g_object_bind_property_full (band, "active-id", widget, "visible", - G_BINDING_SYNC_CREATE, - band_transform_to_channel_visibility, - NULL, NULL, NULL); - g_object_bind_property_full (mode, "active-id", hbox, "visible", - G_BINDING_SYNC_CREATE, - mode_transform_to_band_visibility, - NULL, NULL, NULL); - nmt_editor_grid_append (grid, _("Channel"), hbox, NULL); - - nmt_editor_grid_append (grid, NULL, nmt_newt_separator_new (), NULL); - - widget = nmt_newt_popup_new (wifi_security); - nmt_editor_grid_append (grid, _("Security"), widget, NULL); - security = widget; - - widget = nmt_newt_stack_new (); - stack = NMT_NEWT_STACK (widget); - - /* none */ - subgrid = nmt_editor_grid_new (); - nmt_newt_stack_add (stack, "none", subgrid); - - /* wpa-personal */ - subgrid = nmt_editor_grid_new (); - widget = nmt_password_fields_new (40, NMT_PASSWORD_FIELDS_SHOW_PASSWORD); - g_object_bind_property (s_wsec, NM_SETTING_WIRELESS_SECURITY_PSK, - widget, "password", - G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL); - nmt_editor_grid_append (NMT_EDITOR_GRID (subgrid), _("Password"), widget, NULL); - nmt_newt_stack_add (stack, "wpa-personal", subgrid); - nmt_newt_stack_add (stack, "wpa3-personal", subgrid); - - /* "wpa-enterprise" */ - // FIXME - widget = nmt_newt_label_new (_("(No support for wpa-enterprise yet...)")); - nmt_newt_stack_add (stack, "wpa-enterprise", widget); - - /* wep-key */ - subgrid = nmt_editor_grid_new (); - - widget = entry = nmt_password_fields_new (40, NMT_PASSWORD_FIELDS_SHOW_PASSWORD); - nmt_editor_grid_append (NMT_EDITOR_GRID (subgrid), _("Key"), widget, NULL); - - widget = nmt_newt_popup_new (wep_index); - nmt_editor_grid_append (NMT_EDITOR_GRID (subgrid), _("WEP index"), widget, NULL); - - nm_editor_bind_wireless_security_wep_key (s_wsec, - entry, "password", - widget, "active", - G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); - - widget = nmt_newt_popup_new (wep_auth); - nmt_editor_grid_append (NMT_EDITOR_GRID (subgrid), _("Authentication"), widget, NULL); - - nmt_newt_stack_add (stack, "wep-key", subgrid); - - /* wep-passphrase */ - subgrid = nmt_editor_grid_new (); - - widget = entry = nmt_password_fields_new (40, NMT_PASSWORD_FIELDS_SHOW_PASSWORD); - nmt_editor_grid_append (NMT_EDITOR_GRID (subgrid), _("Password"), widget, NULL); - - widget = nmt_newt_popup_new (wep_index); - nmt_editor_grid_append (NMT_EDITOR_GRID (subgrid), _("WEP index"), widget, NULL); - - nm_editor_bind_wireless_security_wep_key (s_wsec, - entry, "password", - widget, "active", - G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); - - widget = nmt_newt_popup_new (wep_auth); - nmt_editor_grid_append (NMT_EDITOR_GRID (subgrid), _("Authentication"), widget, NULL); - - nmt_newt_stack_add (stack, "wep-passphrase", subgrid); - - /* "dynamic-wep" */ - // FIXME - widget = nmt_newt_label_new (_("(No support for dynamic-wep yet...)")); - nmt_newt_stack_add (stack, "dynamic-wep", widget); - - /* leap */ - subgrid = nmt_editor_grid_new (); - - widget = nmt_newt_entry_new (40, NMT_NEWT_ENTRY_NONEMPTY); - nmt_editor_grid_append (NMT_EDITOR_GRID (subgrid), _("Username"), widget, NULL); - g_object_bind_property (s_wsec, NM_SETTING_WIRELESS_SECURITY_LEAP_USERNAME, - widget, "text", - G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL); - - widget = nmt_password_fields_new (40, NMT_PASSWORD_FIELDS_SHOW_PASSWORD); - g_object_bind_property (s_wsec, NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD, - widget, "password", - G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL); - nmt_editor_grid_append (NMT_EDITOR_GRID (subgrid), _("Password"), widget, NULL); - - nmt_newt_stack_add (stack, "leap", subgrid); - - nmt_editor_grid_append (grid, NULL, NMT_NEWT_WIDGET (stack), NULL); - g_object_bind_property (security, "active-id", - stack, "active-id", - G_BINDING_SYNC_CREATE); - nm_editor_bind_wireless_security_method (conn, s_wsec, security, "active-id", - G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); - - nmt_editor_grid_append (grid, NULL, nmt_newt_separator_new (), NULL); - - widget = nmt_mac_entry_new (40, ETH_ALEN, NMT_MAC_ENTRY_TYPE_MAC); - g_object_bind_property (s_wireless, NM_SETTING_WIRELESS_BSSID, - widget, "mac-address", - G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); - nmt_editor_grid_append (grid, _("BSSID"), widget, NULL); - - widget = nmt_mac_entry_new (40, ETH_ALEN, NMT_MAC_ENTRY_TYPE_CLONED); - g_object_bind_property (s_wireless, NM_SETTING_WIRELESS_CLONED_MAC_ADDRESS, - widget, "mac-address", - G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); - nmt_editor_grid_append (grid, _("Cloned MAC address"), widget, NULL); - - widget = nmt_mtu_entry_new (); - g_object_bind_property (s_wireless, NM_SETTING_WIRELESS_MTU, - widget, "mtu", - G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); - nmt_editor_grid_append (grid, _("MTU"), widget, NULL); - - nmt_editor_page_add_section (NMT_EDITOR_PAGE (wifi), section); - - G_OBJECT_CLASS (nmt_page_wifi_parent_class)->constructed (object); + s_wsec = NM_SETTING_WIRELESS_SECURITY(nm_setting_wireless_security_new()); + } + priv->s_wsec = g_object_ref_sink(s_wsec); + + deventry = nmt_editor_page_device_get_device_entry(NMT_EDITOR_PAGE_DEVICE(object)); + g_object_bind_property(s_wireless, + NM_SETTING_WIRELESS_MAC_ADDRESS, + deventry, + "mac-address", + G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); + + section = nmt_editor_section_new(_("WI-FI"), NULL, TRUE); + grid = nmt_editor_section_get_body(section); + + widget = nmt_newt_entry_new(40, NMT_NEWT_ENTRY_NONEMPTY); + g_object_bind_property_full(s_wireless, + NM_SETTING_WIRELESS_SSID, + widget, + "text", + G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE, + ssid_transform_to_entry, + ssid_transform_from_entry, + s_wireless, + NULL); + nmt_editor_grid_append(grid, _("SSID"), widget, NULL); + + widget = nmt_newt_popup_new(wifi_mode); + g_object_bind_property(s_wireless, + NM_SETTING_WIRELESS_MODE, + widget, + "active-id", + G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); + nmt_editor_grid_append(grid, _("Mode"), widget, NULL); + mode = widget; + + hbox = nmt_newt_grid_new(); + widget = nmt_newt_popup_new(wifi_band); + g_object_bind_property(s_wireless, + NM_SETTING_WIRELESS_BAND, + widget, + "active-id", + G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); + nmt_newt_grid_add(NMT_NEWT_GRID(hbox), widget, 0, 0); + band = widget; + + widget = nmt_newt_entry_numeric_new(10, 0, 255); + g_object_bind_property(s_wireless, + NM_SETTING_WIRELESS_CHANNEL, + widget, + "text", + G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); + nmt_newt_grid_add(NMT_NEWT_GRID(hbox), widget, 1, 0); + nmt_newt_widget_set_padding(widget, 1, 0, 0, 0); + + g_object_bind_property_full(band, + "active-id", + widget, + "visible", + G_BINDING_SYNC_CREATE, + band_transform_to_channel_visibility, + NULL, + NULL, + NULL); + g_object_bind_property_full(mode, + "active-id", + hbox, + "visible", + G_BINDING_SYNC_CREATE, + mode_transform_to_band_visibility, + NULL, + NULL, + NULL); + nmt_editor_grid_append(grid, _("Channel"), hbox, NULL); + + nmt_editor_grid_append(grid, NULL, nmt_newt_separator_new(), NULL); + + widget = nmt_newt_popup_new(wifi_security); + nmt_editor_grid_append(grid, _("Security"), widget, NULL); + security = widget; + + widget = nmt_newt_stack_new(); + stack = NMT_NEWT_STACK(widget); + + /* none */ + subgrid = nmt_editor_grid_new(); + nmt_newt_stack_add(stack, "none", subgrid); + + /* wpa-personal */ + subgrid = nmt_editor_grid_new(); + widget = nmt_password_fields_new(40, NMT_PASSWORD_FIELDS_SHOW_PASSWORD); + g_object_bind_property(s_wsec, + NM_SETTING_WIRELESS_SECURITY_PSK, + widget, + "password", + G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL); + nmt_editor_grid_append(NMT_EDITOR_GRID(subgrid), _("Password"), widget, NULL); + nmt_newt_stack_add(stack, "wpa-personal", subgrid); + nmt_newt_stack_add(stack, "wpa3-personal", subgrid); + + /* "wpa-enterprise" */ + // FIXME + widget = nmt_newt_label_new(_("(No support for wpa-enterprise yet...)")); + nmt_newt_stack_add(stack, "wpa-enterprise", widget); + + /* wep-key */ + subgrid = nmt_editor_grid_new(); + + widget = entry = nmt_password_fields_new(40, NMT_PASSWORD_FIELDS_SHOW_PASSWORD); + nmt_editor_grid_append(NMT_EDITOR_GRID(subgrid), _("Key"), widget, NULL); + + widget = nmt_newt_popup_new(wep_index); + nmt_editor_grid_append(NMT_EDITOR_GRID(subgrid), _("WEP index"), widget, NULL); + + nm_editor_bind_wireless_security_wep_key(s_wsec, + entry, + "password", + widget, + "active", + G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); + + widget = nmt_newt_popup_new(wep_auth); + nmt_editor_grid_append(NMT_EDITOR_GRID(subgrid), _("Authentication"), widget, NULL); + + nmt_newt_stack_add(stack, "wep-key", subgrid); + + /* wep-passphrase */ + subgrid = nmt_editor_grid_new(); + + widget = entry = nmt_password_fields_new(40, NMT_PASSWORD_FIELDS_SHOW_PASSWORD); + nmt_editor_grid_append(NMT_EDITOR_GRID(subgrid), _("Password"), widget, NULL); + + widget = nmt_newt_popup_new(wep_index); + nmt_editor_grid_append(NMT_EDITOR_GRID(subgrid), _("WEP index"), widget, NULL); + + nm_editor_bind_wireless_security_wep_key(s_wsec, + entry, + "password", + widget, + "active", + G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); + + widget = nmt_newt_popup_new(wep_auth); + nmt_editor_grid_append(NMT_EDITOR_GRID(subgrid), _("Authentication"), widget, NULL); + + nmt_newt_stack_add(stack, "wep-passphrase", subgrid); + + /* "dynamic-wep" */ + // FIXME + widget = nmt_newt_label_new(_("(No support for dynamic-wep yet...)")); + nmt_newt_stack_add(stack, "dynamic-wep", widget); + + /* leap */ + subgrid = nmt_editor_grid_new(); + + widget = nmt_newt_entry_new(40, NMT_NEWT_ENTRY_NONEMPTY); + nmt_editor_grid_append(NMT_EDITOR_GRID(subgrid), _("Username"), widget, NULL); + g_object_bind_property(s_wsec, + NM_SETTING_WIRELESS_SECURITY_LEAP_USERNAME, + widget, + "text", + G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL); + + widget = nmt_password_fields_new(40, NMT_PASSWORD_FIELDS_SHOW_PASSWORD); + g_object_bind_property(s_wsec, + NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD, + widget, + "password", + G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL); + nmt_editor_grid_append(NMT_EDITOR_GRID(subgrid), _("Password"), widget, NULL); + + nmt_newt_stack_add(stack, "leap", subgrid); + + nmt_editor_grid_append(grid, NULL, NMT_NEWT_WIDGET(stack), NULL); + g_object_bind_property(security, "active-id", stack, "active-id", G_BINDING_SYNC_CREATE); + nm_editor_bind_wireless_security_method(conn, + s_wsec, + security, + "active-id", + G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); + + nmt_editor_grid_append(grid, NULL, nmt_newt_separator_new(), NULL); + + widget = nmt_mac_entry_new(40, ETH_ALEN, NMT_MAC_ENTRY_TYPE_MAC); + g_object_bind_property(s_wireless, + NM_SETTING_WIRELESS_BSSID, + widget, + "mac-address", + G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); + nmt_editor_grid_append(grid, _("BSSID"), widget, NULL); + + widget = nmt_mac_entry_new(40, ETH_ALEN, NMT_MAC_ENTRY_TYPE_CLONED); + g_object_bind_property(s_wireless, + NM_SETTING_WIRELESS_CLONED_MAC_ADDRESS, + widget, + "mac-address", + G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); + nmt_editor_grid_append(grid, _("Cloned MAC address"), widget, NULL); + + widget = nmt_mtu_entry_new(); + g_object_bind_property(s_wireless, + NM_SETTING_WIRELESS_MTU, + widget, + "mtu", + G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); + nmt_editor_grid_append(grid, _("MTU"), widget, NULL); + + nmt_editor_page_add_section(NMT_EDITOR_PAGE(wifi), section); + + G_OBJECT_CLASS(nmt_page_wifi_parent_class)->constructed(object); } static void -nmt_page_wifi_finalize (GObject *object) +nmt_page_wifi_finalize(GObject *object) { - NmtPageWifiPrivate *priv = NMT_PAGE_WIFI_GET_PRIVATE (object); + NmtPageWifiPrivate *priv = NMT_PAGE_WIFI_GET_PRIVATE(object); - g_clear_object (&priv->s_wsec); + g_clear_object(&priv->s_wsec); - G_OBJECT_CLASS (nmt_page_wifi_parent_class)->finalize (object); + G_OBJECT_CLASS(nmt_page_wifi_parent_class)->finalize(object); } static void -nmt_page_wifi_class_init (NmtPageWifiClass *wifi_class) +nmt_page_wifi_class_init(NmtPageWifiClass *wifi_class) { - GObjectClass *object_class = G_OBJECT_CLASS (wifi_class); + GObjectClass *object_class = G_OBJECT_CLASS(wifi_class); - g_type_class_add_private (wifi_class, sizeof (NmtPageWifiPrivate)); + g_type_class_add_private(wifi_class, sizeof(NmtPageWifiPrivate)); - object_class->constructed = nmt_page_wifi_constructed; - object_class->finalize = nmt_page_wifi_finalize; + object_class->constructed = nmt_page_wifi_constructed; + object_class->finalize = nmt_page_wifi_finalize; } diff --git a/clients/tui/nmt-page-wifi.h b/clients/tui/nmt-page-wifi.h index 63858473b9..aa73dea581 100644 --- a/clients/tui/nmt-page-wifi.h +++ b/clients/tui/nmt-page-wifi.h @@ -8,26 +8,27 @@ #include "nmt-editor-page-device.h" -#define NMT_TYPE_PAGE_WIFI (nmt_page_wifi_get_type ()) -#define NMT_PAGE_WIFI(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NMT_TYPE_PAGE_WIFI, NmtPageWifi)) -#define NMT_PAGE_WIFI_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NMT_TYPE_PAGE_WIFI, NmtPageWifiClass)) -#define NMT_IS_PAGE_WIFI(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NMT_TYPE_PAGE_WIFI)) -#define NMT_IS_PAGE_WIFI_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NMT_TYPE_PAGE_WIFI)) -#define NMT_PAGE_WIFI_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NMT_TYPE_PAGE_WIFI, NmtPageWifiClass)) +#define NMT_TYPE_PAGE_WIFI (nmt_page_wifi_get_type()) +#define NMT_PAGE_WIFI(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), NMT_TYPE_PAGE_WIFI, NmtPageWifi)) +#define NMT_PAGE_WIFI_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), NMT_TYPE_PAGE_WIFI, NmtPageWifiClass)) +#define NMT_IS_PAGE_WIFI(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), NMT_TYPE_PAGE_WIFI)) +#define NMT_IS_PAGE_WIFI_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), NMT_TYPE_PAGE_WIFI)) +#define NMT_PAGE_WIFI_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), NMT_TYPE_PAGE_WIFI, NmtPageWifiClass)) typedef struct { - NmtEditorPageDevice parent; + NmtEditorPageDevice parent; } NmtPageWifi; typedef struct { - NmtEditorPageDeviceClass parent; + NmtEditorPageDeviceClass parent; } NmtPageWifiClass; -GType nmt_page_wifi_get_type (void); +GType nmt_page_wifi_get_type(void); -NmtEditorPage *nmt_page_wifi_new (NMConnection *conn, - NmtDeviceEntry *deventry); +NmtEditorPage *nmt_page_wifi_new(NMConnection *conn, NmtDeviceEntry *deventry); #endif /* NMT_PAGE_WIFI_H */ diff --git a/clients/tui/nmt-password-dialog.c b/clients/tui/nmt-password-dialog.c index 979a5c6871..2704312429 100644 --- a/clients/tui/nmt-password-dialog.c +++ b/clients/tui/nmt-password-dialog.c @@ -17,30 +17,31 @@ #include "nm-secret-agent-simple.h" #include "nmtui.h" -G_DEFINE_TYPE (NmtPasswordDialog, nmt_password_dialog, NMT_TYPE_NEWT_FORM) +G_DEFINE_TYPE(NmtPasswordDialog, nmt_password_dialog, NMT_TYPE_NEWT_FORM) -#define NMT_PASSWORD_DIALOG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NMT_TYPE_PASSWORD_DIALOG, NmtPasswordDialogPrivate)) +#define NMT_PASSWORD_DIALOG_GET_PRIVATE(o) \ + (G_TYPE_INSTANCE_GET_PRIVATE((o), NMT_TYPE_PASSWORD_DIALOG, NmtPasswordDialogPrivate)) typedef struct { - char *request_id; - char *prompt; - GPtrArray *secrets; - GPtrArray *entries; + char * request_id; + char * prompt; + GPtrArray *secrets; + GPtrArray *entries; - NmtNewtWidget *ok, *cancel; - NmtNewtWidget *last_entry; - NmtNewtWidget *secret_grid; + NmtNewtWidget *ok, *cancel; + NmtNewtWidget *last_entry; + NmtNewtWidget *secret_grid; - gboolean succeeded; + gboolean succeeded; } NmtPasswordDialogPrivate; enum { - PROP_0, - PROP_REQUEST_ID, - PROP_PROMPT, - PROP_SECRETS, + PROP_0, + PROP_REQUEST_ID, + PROP_PROMPT, + PROP_SECRETS, - LAST_PROP + LAST_PROP }; /** @@ -56,230 +57,234 @@ enum { * Returns: a new #NmtPasswordDialog. */ NmtNewtForm * -nmt_password_dialog_new (const char *request_id, - const char *title, - const char *prompt, - GPtrArray *secrets) +nmt_password_dialog_new(const char *request_id, + const char *title, + const char *prompt, + GPtrArray * secrets) { - return g_object_new (NMT_TYPE_PASSWORD_DIALOG, - "request-id", request_id, - "title", title, - "prompt", prompt, - "secrets", secrets, - "escape-exits", TRUE, - NULL); + return g_object_new(NMT_TYPE_PASSWORD_DIALOG, + "request-id", + request_id, + "title", + title, + "prompt", + prompt, + "secrets", + secrets, + "escape-exits", + TRUE, + NULL); } static void -nmt_password_dialog_init (NmtPasswordDialog *dialog) +nmt_password_dialog_init(NmtPasswordDialog *dialog) { - NmtPasswordDialogPrivate *priv = NMT_PASSWORD_DIALOG_GET_PRIVATE (dialog); + NmtPasswordDialogPrivate *priv = NMT_PASSWORD_DIALOG_GET_PRIVATE(dialog); - priv->entries = g_ptr_array_new (); + priv->entries = g_ptr_array_new(); } static void -maybe_save_input_and_exit (NmtNewtWidget *widget, - gpointer dialog) +maybe_save_input_and_exit(NmtNewtWidget *widget, gpointer dialog) { - NmtPasswordDialogPrivate *priv = NMT_PASSWORD_DIALOG_GET_PRIVATE (dialog); - int i; + NmtPasswordDialogPrivate *priv = NMT_PASSWORD_DIALOG_GET_PRIVATE(dialog); + int i; - /* This gets invoked when the user types Return in the final entry, + /* This gets invoked when the user types Return in the final entry, * but the form may not be fully valid in that case. */ - if (!nmt_newt_widget_get_valid (priv->secret_grid)) - return; + if (!nmt_newt_widget_get_valid(priv->secret_grid)) + return; - priv->succeeded = TRUE; + priv->succeeded = TRUE; - for (i = 0; i < priv->secrets->len; i++) { - NMSecretAgentSimpleSecret *secret = priv->secrets->pdata[i]; + for (i = 0; i < priv->secrets->len; i++) { + NMSecretAgentSimpleSecret *secret = priv->secrets->pdata[i]; - g_free (secret->value); - g_object_get (priv->entries->pdata[i], "text", &secret->value, NULL); - } + g_free(secret->value); + g_object_get(priv->entries->pdata[i], "text", &secret->value, NULL); + } - nmt_newt_form_quit (nmt_newt_widget_get_form (widget)); + nmt_newt_form_quit(nmt_newt_widget_get_form(widget)); } static void -nmt_password_dialog_constructed (GObject *object) +nmt_password_dialog_constructed(GObject *object) { - NmtPasswordDialog *dialog = NMT_PASSWORD_DIALOG (object); - NmtPasswordDialogPrivate *priv = NMT_PASSWORD_DIALOG_GET_PRIVATE (dialog); - NmtNewtWidget *widget; - NmtNewtGrid *grid, *secret_grid; - NmtNewtButtonBox *bbox; - int i; - - widget = nmt_newt_grid_new (); - nmt_newt_form_set_content (NMT_NEWT_FORM (dialog), widget); - grid = NMT_NEWT_GRID (widget); - - widget = nmt_newt_textbox_new (0, 60); - nmt_newt_textbox_set_text (NMT_NEWT_TEXTBOX (widget), priv->prompt); - nmt_newt_grid_add (grid, widget, 0, 0); - - widget = nmt_newt_grid_new (); - nmt_newt_grid_add (grid, widget, 0, 1); - nmt_newt_widget_set_padding (widget, 0, 1, 0, 1); - priv->secret_grid = widget; - secret_grid = NMT_NEWT_GRID (widget); - - for (i = 0; i < priv->secrets->len; i++) { - NMSecretAgentSimpleSecret *secret = priv->secrets->pdata[i]; - NmtNewtEntryFlags flags; - - widget = nmt_newt_label_new (secret->pretty_name); - nmt_newt_grid_add (secret_grid, widget, 0, i); - nmt_newt_widget_set_padding (widget, 4, 0, 1, 0); - - flags = NMT_NEWT_ENTRY_NONEMPTY; - if (secret->is_secret) - flags |= NMT_NEWT_ENTRY_PASSWORD; - widget = nmt_newt_entry_new (30, flags); - if (secret->value) - nmt_newt_entry_set_text (NMT_NEWT_ENTRY (widget), secret->value); - nmt_newt_grid_add (secret_grid, widget, 1, i); - g_ptr_array_add (priv->entries, widget); - - if (i == priv->secrets->len - 1) { - priv->last_entry = widget; - g_signal_connect (widget, "activated", - G_CALLBACK (maybe_save_input_and_exit), dialog); - } - } - - widget = nmt_newt_button_box_new (NMT_NEWT_BUTTON_BOX_HORIZONTAL); - nmt_newt_grid_add (grid, widget, 0, 2); - bbox = NMT_NEWT_BUTTON_BOX (widget); - - priv->cancel = nmt_newt_button_box_add_end (NMT_NEWT_BUTTON_BOX (bbox), _("Cancel")); - nmt_newt_widget_set_exit_on_activate (priv->cancel, TRUE); - - priv->ok = nmt_newt_button_box_add_end (NMT_NEWT_BUTTON_BOX (bbox), _("OK")); - g_signal_connect (priv->ok, "activated", - G_CALLBACK (maybe_save_input_and_exit), dialog); - g_object_bind_property (priv->secret_grid, "valid", - priv->ok, "sensitive", - G_BINDING_SYNC_CREATE); - - G_OBJECT_CLASS (nmt_password_dialog_parent_class)->constructed (object); + NmtPasswordDialog * dialog = NMT_PASSWORD_DIALOG(object); + NmtPasswordDialogPrivate *priv = NMT_PASSWORD_DIALOG_GET_PRIVATE(dialog); + NmtNewtWidget * widget; + NmtNewtGrid * grid, *secret_grid; + NmtNewtButtonBox * bbox; + int i; + + widget = nmt_newt_grid_new(); + nmt_newt_form_set_content(NMT_NEWT_FORM(dialog), widget); + grid = NMT_NEWT_GRID(widget); + + widget = nmt_newt_textbox_new(0, 60); + nmt_newt_textbox_set_text(NMT_NEWT_TEXTBOX(widget), priv->prompt); + nmt_newt_grid_add(grid, widget, 0, 0); + + widget = nmt_newt_grid_new(); + nmt_newt_grid_add(grid, widget, 0, 1); + nmt_newt_widget_set_padding(widget, 0, 1, 0, 1); + priv->secret_grid = widget; + secret_grid = NMT_NEWT_GRID(widget); + + for (i = 0; i < priv->secrets->len; i++) { + NMSecretAgentSimpleSecret *secret = priv->secrets->pdata[i]; + NmtNewtEntryFlags flags; + + widget = nmt_newt_label_new(secret->pretty_name); + nmt_newt_grid_add(secret_grid, widget, 0, i); + nmt_newt_widget_set_padding(widget, 4, 0, 1, 0); + + flags = NMT_NEWT_ENTRY_NONEMPTY; + if (secret->is_secret) + flags |= NMT_NEWT_ENTRY_PASSWORD; + widget = nmt_newt_entry_new(30, flags); + if (secret->value) + nmt_newt_entry_set_text(NMT_NEWT_ENTRY(widget), secret->value); + nmt_newt_grid_add(secret_grid, widget, 1, i); + g_ptr_array_add(priv->entries, widget); + + if (i == priv->secrets->len - 1) { + priv->last_entry = widget; + g_signal_connect(widget, "activated", G_CALLBACK(maybe_save_input_and_exit), dialog); + } + } + + widget = nmt_newt_button_box_new(NMT_NEWT_BUTTON_BOX_HORIZONTAL); + nmt_newt_grid_add(grid, widget, 0, 2); + bbox = NMT_NEWT_BUTTON_BOX(widget); + + priv->cancel = nmt_newt_button_box_add_end(NMT_NEWT_BUTTON_BOX(bbox), _("Cancel")); + nmt_newt_widget_set_exit_on_activate(priv->cancel, TRUE); + + priv->ok = nmt_newt_button_box_add_end(NMT_NEWT_BUTTON_BOX(bbox), _("OK")); + g_signal_connect(priv->ok, "activated", G_CALLBACK(maybe_save_input_and_exit), dialog); + g_object_bind_property(priv->secret_grid, + "valid", + priv->ok, + "sensitive", + G_BINDING_SYNC_CREATE); + + G_OBJECT_CLASS(nmt_password_dialog_parent_class)->constructed(object); } static void -nmt_password_dialog_finalize (GObject *object) +nmt_password_dialog_finalize(GObject *object) { - NmtPasswordDialogPrivate *priv = NMT_PASSWORD_DIALOG_GET_PRIVATE (object); + NmtPasswordDialogPrivate *priv = NMT_PASSWORD_DIALOG_GET_PRIVATE(object); - g_free (priv->request_id); - g_free (priv->prompt); - nm_clear_pointer (&priv->entries, g_ptr_array_unref); - nm_clear_pointer (&priv->secrets, g_ptr_array_unref); + g_free(priv->request_id); + g_free(priv->prompt); + nm_clear_pointer(&priv->entries, g_ptr_array_unref); + nm_clear_pointer(&priv->secrets, g_ptr_array_unref); - G_OBJECT_CLASS (nmt_password_dialog_parent_class)->finalize (object); + G_OBJECT_CLASS(nmt_password_dialog_parent_class)->finalize(object); } static void -nmt_password_dialog_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) +nmt_password_dialog_set_property(GObject * object, + guint prop_id, + const GValue *value, + GParamSpec * pspec) { - NmtPasswordDialogPrivate *priv = NMT_PASSWORD_DIALOG_GET_PRIVATE (object); - - switch (prop_id) { - case PROP_REQUEST_ID: - priv->request_id = g_value_dup_string (value); - break; - case PROP_PROMPT: - priv->prompt = g_value_dup_string (value); - break; - case PROP_SECRETS: - priv->secrets = g_value_dup_boxed (value); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtPasswordDialogPrivate *priv = NMT_PASSWORD_DIALOG_GET_PRIVATE(object); + + switch (prop_id) { + case PROP_REQUEST_ID: + priv->request_id = g_value_dup_string(value); + break; + case PROP_PROMPT: + priv->prompt = g_value_dup_string(value); + break; + case PROP_SECRETS: + priv->secrets = g_value_dup_boxed(value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_password_dialog_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) +nmt_password_dialog_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - NmtPasswordDialogPrivate *priv = NMT_PASSWORD_DIALOG_GET_PRIVATE (object); - - switch (prop_id) { - case PROP_REQUEST_ID: - g_value_set_string (value, priv->request_id); - break; - case PROP_PROMPT: - g_value_set_string (value, priv->prompt); - break; - case PROP_SECRETS: - g_value_set_boxed (value, priv->secrets); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtPasswordDialogPrivate *priv = NMT_PASSWORD_DIALOG_GET_PRIVATE(object); + + switch (prop_id) { + case PROP_REQUEST_ID: + g_value_set_string(value, priv->request_id); + break; + case PROP_PROMPT: + g_value_set_string(value, priv->prompt); + break; + case PROP_SECRETS: + g_value_set_boxed(value, priv->secrets); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_password_dialog_class_init (NmtPasswordDialogClass *dialog_class) +nmt_password_dialog_class_init(NmtPasswordDialogClass *dialog_class) { - GObjectClass *object_class = G_OBJECT_CLASS (dialog_class); + GObjectClass *object_class = G_OBJECT_CLASS(dialog_class); - g_type_class_add_private (dialog_class, sizeof (NmtPasswordDialogPrivate)); + g_type_class_add_private(dialog_class, sizeof(NmtPasswordDialogPrivate)); - /* virtual methods */ - object_class->constructed = nmt_password_dialog_constructed; - object_class->set_property = nmt_password_dialog_set_property; - object_class->get_property = nmt_password_dialog_get_property; - object_class->finalize = nmt_password_dialog_finalize; + /* virtual methods */ + object_class->constructed = nmt_password_dialog_constructed; + object_class->set_property = nmt_password_dialog_set_property; + object_class->get_property = nmt_password_dialog_get_property; + object_class->finalize = nmt_password_dialog_finalize; - /** + /** * NmtPasswordDialog:request-id: * * The request ID from the #NMSecretAgentSimple */ - g_object_class_install_property - (object_class, PROP_REQUEST_ID, - g_param_spec_string ("request-id", "", "", - NULL, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); - /** + g_object_class_install_property( + object_class, + PROP_REQUEST_ID, + g_param_spec_string("request-id", + "", + "", + NULL, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); + /** * NmtPasswordDialog:prompt: * * The prompt text. */ - g_object_class_install_property - (object_class, PROP_PROMPT, - g_param_spec_string ("prompt", "", "", - NULL, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); - /** + g_object_class_install_property( + object_class, + PROP_PROMPT, + g_param_spec_string("prompt", + "", + "", + NULL, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); + /** * NmtPasswordDialog:secrets: * * The array of request secrets * * Element-Type: #NMSecretAgentSimpleSecret. */ - g_object_class_install_property - (object_class, PROP_SECRETS, - g_param_spec_boxed ("secrets", "", "", - G_TYPE_PTR_ARRAY, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); + g_object_class_install_property( + object_class, + PROP_SECRETS, + g_param_spec_boxed("secrets", + "", + "", + G_TYPE_PTR_ARRAY, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); } /** @@ -292,11 +297,11 @@ nmt_password_dialog_class_init (NmtPasswordDialogClass *dialog_class) * Returns: whether the dialog succeeded. */ gboolean -nmt_password_dialog_succeeded (NmtPasswordDialog *dialog) +nmt_password_dialog_succeeded(NmtPasswordDialog *dialog) { - NmtPasswordDialogPrivate *priv = NMT_PASSWORD_DIALOG_GET_PRIVATE (dialog); + NmtPasswordDialogPrivate *priv = NMT_PASSWORD_DIALOG_GET_PRIVATE(dialog); - return priv->succeeded; + return priv->succeeded; } /** @@ -308,11 +313,11 @@ nmt_password_dialog_succeeded (NmtPasswordDialog *dialog) * Returns: the dialog's request ID. */ const char * -nmt_password_dialog_get_request_id (NmtPasswordDialog *dialog) +nmt_password_dialog_get_request_id(NmtPasswordDialog *dialog) { - NmtPasswordDialogPrivate *priv = NMT_PASSWORD_DIALOG_GET_PRIVATE (dialog); + NmtPasswordDialogPrivate *priv = NMT_PASSWORD_DIALOG_GET_PRIVATE(dialog); - return priv->request_id; + return priv->request_id; } /** @@ -324,9 +329,9 @@ nmt_password_dialog_get_request_id (NmtPasswordDialog *dialog) * Returns: (transfer none): the dialog's secrets array. */ GPtrArray * -nmt_password_dialog_get_secrets (NmtPasswordDialog *dialog) +nmt_password_dialog_get_secrets(NmtPasswordDialog *dialog) { - NmtPasswordDialogPrivate *priv = NMT_PASSWORD_DIALOG_GET_PRIVATE (dialog); + NmtPasswordDialogPrivate *priv = NMT_PASSWORD_DIALOG_GET_PRIVATE(dialog); - return priv->secrets; + return priv->secrets; } diff --git a/clients/tui/nmt-password-dialog.h b/clients/tui/nmt-password-dialog.h index bb1b27b3ff..bbe31bf6ba 100644 --- a/clients/tui/nmt-password-dialog.h +++ b/clients/tui/nmt-password-dialog.h @@ -8,33 +8,37 @@ #include "nmt-newt.h" -#define NMT_TYPE_PASSWORD_DIALOG (nmt_password_dialog_get_type ()) -#define NMT_PASSWORD_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NMT_TYPE_PASSWORD_DIALOG, NmtPasswordDialog)) -#define NMT_PASSWORD_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NMT_TYPE_PASSWORD_DIALOG, NmtPasswordDialogClass)) -#define NMT_IS_PASSWORD_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NMT_TYPE_PASSWORD_DIALOG)) -#define NMT_IS_PASSWORD_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NMT_TYPE_PASSWORD_DIALOG)) -#define NMT_PASSWORD_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NMT_TYPE_PASSWORD_DIALOG, NmtPasswordDialogClass)) +#define NMT_TYPE_PASSWORD_DIALOG (nmt_password_dialog_get_type()) +#define NMT_PASSWORD_DIALOG(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), NMT_TYPE_PASSWORD_DIALOG, NmtPasswordDialog)) +#define NMT_PASSWORD_DIALOG_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), NMT_TYPE_PASSWORD_DIALOG, NmtPasswordDialogClass)) +#define NMT_IS_PASSWORD_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), NMT_TYPE_PASSWORD_DIALOG)) +#define NMT_IS_PASSWORD_DIALOG_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass), NMT_TYPE_PASSWORD_DIALOG)) +#define NMT_PASSWORD_DIALOG_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), NMT_TYPE_PASSWORD_DIALOG, NmtPasswordDialogClass)) typedef struct { - NmtNewtForm parent; + NmtNewtForm parent; } NmtPasswordDialog; typedef struct { - NmtNewtFormClass parent; + NmtNewtFormClass parent; } NmtPasswordDialogClass; -GType nmt_password_dialog_get_type (void); +GType nmt_password_dialog_get_type(void); -NmtNewtForm *nmt_password_dialog_new (const char *request_id, - const char *title, - const char *prompt, - GPtrArray *secrets); +NmtNewtForm *nmt_password_dialog_new(const char *request_id, + const char *title, + const char *prompt, + GPtrArray * secrets); -gboolean nmt_password_dialog_succeeded (NmtPasswordDialog *dialog); +gboolean nmt_password_dialog_succeeded(NmtPasswordDialog *dialog); -const char *nmt_password_dialog_get_request_id (NmtPasswordDialog *dialog); -GPtrArray *nmt_password_dialog_get_secrets (NmtPasswordDialog *dialog); +const char *nmt_password_dialog_get_request_id(NmtPasswordDialog *dialog); +GPtrArray * nmt_password_dialog_get_secrets(NmtPasswordDialog *dialog); #endif /* NMT_PASSWORD_DIALOG_H */ diff --git a/clients/tui/nmt-password-fields.c b/clients/tui/nmt-password-fields.c index 7f4bddba49..90e2e88246 100644 --- a/clients/tui/nmt-password-fields.c +++ b/clients/tui/nmt-password-fields.c @@ -16,30 +16,31 @@ #include "nmt-password-fields.h" -G_DEFINE_TYPE (NmtPasswordFields, nmt_password_fields, NMT_TYPE_NEWT_GRID) +G_DEFINE_TYPE(NmtPasswordFields, nmt_password_fields, NMT_TYPE_NEWT_GRID) -#define NMT_PASSWORD_FIELDS_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NMT_TYPE_PASSWORD_FIELDS, NmtPasswordFieldsPrivate)) +#define NMT_PASSWORD_FIELDS_GET_PRIVATE(o) \ + (G_TYPE_INSTANCE_GET_PRIVATE((o), NMT_TYPE_PASSWORD_FIELDS, NmtPasswordFieldsPrivate)) typedef struct { - NmtPasswordFieldsExtras extras; + NmtPasswordFieldsExtras extras; - NmtNewtEntry *entry; - NmtNewtCheckbox *always_ask; - NmtNewtCheckbox *show_password; + NmtNewtEntry * entry; + NmtNewtCheckbox *always_ask; + NmtNewtCheckbox *show_password; - char *init_password; + char *init_password; } NmtPasswordFieldsPrivate; enum { - PROP_0, - PROP_WIDTH, - PROP_EXTRAS, - PROP_PASSWORD, - PROP_ALWAYS_ASK, - PROP_SHOW_PASSWORD, - - LAST_PROP + PROP_0, + PROP_WIDTH, + PROP_EXTRAS, + PROP_PASSWORD, + PROP_ALWAYS_ASK, + PROP_SHOW_PASSWORD, + + LAST_PROP }; /** @@ -60,245 +61,247 @@ enum { * Returns: a new #NmtPasswordFields */ NmtNewtWidget * -nmt_password_fields_new (int width, - NmtPasswordFieldsExtras extras) +nmt_password_fields_new(int width, NmtPasswordFieldsExtras extras) { - return g_object_new (NMT_TYPE_PASSWORD_FIELDS, - "width", width, - "extras", extras, - NULL); + return g_object_new(NMT_TYPE_PASSWORD_FIELDS, "width", width, "extras", extras, NULL); } static void -nmt_password_fields_set_password (NmtPasswordFields *fields, - const char *password) +nmt_password_fields_set_password(NmtPasswordFields *fields, const char *password) { - NmtPasswordFieldsPrivate *priv = NMT_PASSWORD_FIELDS_GET_PRIVATE (fields); + NmtPasswordFieldsPrivate *priv = NMT_PASSWORD_FIELDS_GET_PRIVATE(fields); - if (!g_strcmp0 (password, nmt_newt_entry_get_text (priv->entry))) - return; + if (!g_strcmp0(password, nmt_newt_entry_get_text(priv->entry))) + return; - nmt_newt_entry_set_text (priv->entry, password); - g_object_notify (G_OBJECT (fields), "password"); + nmt_newt_entry_set_text(priv->entry, password); + g_object_notify(G_OBJECT(fields), "password"); } static const char * -nmt_password_fields_get_password (NmtPasswordFields *fields) +nmt_password_fields_get_password(NmtPasswordFields *fields) { - NmtPasswordFieldsPrivate *priv = NMT_PASSWORD_FIELDS_GET_PRIVATE (fields); + NmtPasswordFieldsPrivate *priv = NMT_PASSWORD_FIELDS_GET_PRIVATE(fields); - return nmt_newt_entry_get_text (priv->entry); + return nmt_newt_entry_get_text(priv->entry); } static void -always_ask_changed (GObject *object, - GParamSpec *pspec, - gpointer fields) +always_ask_changed(GObject *object, GParamSpec *pspec, gpointer fields) { - g_object_notify (fields, "always-ask"); + g_object_notify(fields, "always-ask"); } static void -show_password_changed (GObject *object, - GParamSpec *pspec, - gpointer fields) +show_password_changed(GObject *object, GParamSpec *pspec, gpointer fields) { - g_object_notify (fields, "show-password"); + g_object_notify(fields, "show-password"); } static void -nmt_password_fields_init (NmtPasswordFields *fields) +nmt_password_fields_init(NmtPasswordFields *fields) { - NmtPasswordFieldsPrivate *priv = NMT_PASSWORD_FIELDS_GET_PRIVATE (fields); + NmtPasswordFieldsPrivate *priv = NMT_PASSWORD_FIELDS_GET_PRIVATE(fields); - priv->entry = NMT_NEWT_ENTRY (nmt_newt_entry_new (-1, 0)); - priv->always_ask = NMT_NEWT_CHECKBOX (nmt_newt_checkbox_new (_("Ask for this password every time"))); - priv->show_password = NMT_NEWT_CHECKBOX (nmt_newt_checkbox_new (_("Show password"))); + priv->entry = NMT_NEWT_ENTRY(nmt_newt_entry_new(-1, 0)); + priv->always_ask = + NMT_NEWT_CHECKBOX(nmt_newt_checkbox_new(_("Ask for this password every time"))); + priv->show_password = NMT_NEWT_CHECKBOX(nmt_newt_checkbox_new(_("Show password"))); } static void -nmt_password_fields_constructed (GObject *object) +nmt_password_fields_constructed(GObject *object) { - NmtPasswordFieldsPrivate *priv = NMT_PASSWORD_FIELDS_GET_PRIVATE (object); - NmtNewtGrid *grid = NMT_NEWT_GRID (object); - - nmt_newt_grid_add (grid, NMT_NEWT_WIDGET (priv->entry), 0, 0); - - if (priv->extras & NMT_PASSWORD_FIELDS_ALWAYS_ASK) { - nmt_newt_grid_add (grid, NMT_NEWT_WIDGET (priv->always_ask), 0, 1); - g_signal_connect (priv->always_ask, "notify::active", - G_CALLBACK (always_ask_changed), object); - } else - g_clear_object (&priv->always_ask); - - if (priv->extras & NMT_PASSWORD_FIELDS_SHOW_PASSWORD) { - nmt_newt_grid_add (grid, NMT_NEWT_WIDGET (priv->show_password), 0, 2); - g_signal_connect (priv->show_password, "notify::active", - G_CALLBACK (show_password_changed), object); - g_object_bind_property (priv->show_password, "active", - priv->entry, "password", - G_BINDING_INVERT_BOOLEAN | G_BINDING_SYNC_CREATE); - } else - g_clear_object (&priv->show_password); - - g_object_bind_property (priv->entry, "text", - object, "password", - G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); - - G_OBJECT_CLASS (nmt_password_fields_parent_class)->constructed (object); + NmtPasswordFieldsPrivate *priv = NMT_PASSWORD_FIELDS_GET_PRIVATE(object); + NmtNewtGrid * grid = NMT_NEWT_GRID(object); + + nmt_newt_grid_add(grid, NMT_NEWT_WIDGET(priv->entry), 0, 0); + + if (priv->extras & NMT_PASSWORD_FIELDS_ALWAYS_ASK) { + nmt_newt_grid_add(grid, NMT_NEWT_WIDGET(priv->always_ask), 0, 1); + g_signal_connect(priv->always_ask, + "notify::active", + G_CALLBACK(always_ask_changed), + object); + } else + g_clear_object(&priv->always_ask); + + if (priv->extras & NMT_PASSWORD_FIELDS_SHOW_PASSWORD) { + nmt_newt_grid_add(grid, NMT_NEWT_WIDGET(priv->show_password), 0, 2); + g_signal_connect(priv->show_password, + "notify::active", + G_CALLBACK(show_password_changed), + object); + g_object_bind_property(priv->show_password, + "active", + priv->entry, + "password", + G_BINDING_INVERT_BOOLEAN | G_BINDING_SYNC_CREATE); + } else + g_clear_object(&priv->show_password); + + g_object_bind_property(priv->entry, + "text", + object, + "password", + G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); + + G_OBJECT_CLASS(nmt_password_fields_parent_class)->constructed(object); } static void -nmt_password_fields_finalize (GObject *object) +nmt_password_fields_finalize(GObject *object) { - NmtPasswordFieldsPrivate *priv = NMT_PASSWORD_FIELDS_GET_PRIVATE (object); - - if (priv->always_ask) { - g_signal_handlers_disconnect_by_func (priv->always_ask, - G_CALLBACK (always_ask_changed), object); - } - if (priv->show_password) { - g_signal_handlers_disconnect_by_func (priv->show_password, - G_CALLBACK (show_password_changed), object); - } - - G_OBJECT_CLASS (nmt_password_fields_parent_class)->finalize (object); + NmtPasswordFieldsPrivate *priv = NMT_PASSWORD_FIELDS_GET_PRIVATE(object); + + if (priv->always_ask) { + g_signal_handlers_disconnect_by_func(priv->always_ask, + G_CALLBACK(always_ask_changed), + object); + } + if (priv->show_password) { + g_signal_handlers_disconnect_by_func(priv->show_password, + G_CALLBACK(show_password_changed), + object); + } + + G_OBJECT_CLASS(nmt_password_fields_parent_class)->finalize(object); } static void -nmt_password_fields_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) +nmt_password_fields_set_property(GObject * object, + guint prop_id, + const GValue *value, + GParamSpec * pspec) { - NmtPasswordFields *fields = NMT_PASSWORD_FIELDS (object); - NmtPasswordFieldsPrivate *priv = NMT_PASSWORD_FIELDS_GET_PRIVATE (fields); - - switch (prop_id) { - case PROP_WIDTH: - nmt_newt_entry_set_width (priv->entry, g_value_get_int (value)); - break; - case PROP_EXTRAS: - priv->extras = g_value_get_uint (value); - nmt_newt_widget_needs_rebuild (NMT_NEWT_WIDGET (fields)); - break; - case PROP_PASSWORD: - nmt_password_fields_set_password (fields, g_value_get_string (value)); - break; - case PROP_ALWAYS_ASK: - if (priv->always_ask) - nmt_newt_checkbox_set_active (priv->always_ask, g_value_get_boolean (value)); - break; - case PROP_SHOW_PASSWORD: - if (priv->show_password) - nmt_newt_checkbox_set_active (priv->show_password, g_value_get_boolean (value)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtPasswordFields * fields = NMT_PASSWORD_FIELDS(object); + NmtPasswordFieldsPrivate *priv = NMT_PASSWORD_FIELDS_GET_PRIVATE(fields); + + switch (prop_id) { + case PROP_WIDTH: + nmt_newt_entry_set_width(priv->entry, g_value_get_int(value)); + break; + case PROP_EXTRAS: + priv->extras = g_value_get_uint(value); + nmt_newt_widget_needs_rebuild(NMT_NEWT_WIDGET(fields)); + break; + case PROP_PASSWORD: + nmt_password_fields_set_password(fields, g_value_get_string(value)); + break; + case PROP_ALWAYS_ASK: + if (priv->always_ask) + nmt_newt_checkbox_set_active(priv->always_ask, g_value_get_boolean(value)); + break; + case PROP_SHOW_PASSWORD: + if (priv->show_password) + nmt_newt_checkbox_set_active(priv->show_password, g_value_get_boolean(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_password_fields_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) +nmt_password_fields_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - NmtPasswordFields *entry = NMT_PASSWORD_FIELDS (object); - NmtPasswordFieldsPrivate *priv = NMT_PASSWORD_FIELDS_GET_PRIVATE (entry); - - switch (prop_id) { - case PROP_WIDTH: - g_value_set_int (value, nmt_newt_entry_get_width (priv->entry)); - break; - case PROP_EXTRAS: - g_value_set_uint (value, priv->extras); - break; - case PROP_PASSWORD: - g_value_set_string (value, nmt_password_fields_get_password (entry)); - break; - case PROP_ALWAYS_ASK: - if (priv->always_ask) - g_value_set_boolean (value, nmt_newt_checkbox_get_active (priv->always_ask)); - break; - case PROP_SHOW_PASSWORD: - if (priv->show_password) - g_value_set_boolean (value, nmt_newt_checkbox_get_active (priv->show_password)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtPasswordFields * entry = NMT_PASSWORD_FIELDS(object); + NmtPasswordFieldsPrivate *priv = NMT_PASSWORD_FIELDS_GET_PRIVATE(entry); + + switch (prop_id) { + case PROP_WIDTH: + g_value_set_int(value, nmt_newt_entry_get_width(priv->entry)); + break; + case PROP_EXTRAS: + g_value_set_uint(value, priv->extras); + break; + case PROP_PASSWORD: + g_value_set_string(value, nmt_password_fields_get_password(entry)); + break; + case PROP_ALWAYS_ASK: + if (priv->always_ask) + g_value_set_boolean(value, nmt_newt_checkbox_get_active(priv->always_ask)); + break; + case PROP_SHOW_PASSWORD: + if (priv->show_password) + g_value_set_boolean(value, nmt_newt_checkbox_get_active(priv->show_password)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_password_fields_class_init (NmtPasswordFieldsClass *entry_class) +nmt_password_fields_class_init(NmtPasswordFieldsClass *entry_class) { - GObjectClass *object_class = G_OBJECT_CLASS (entry_class); + GObjectClass *object_class = G_OBJECT_CLASS(entry_class); - g_type_class_add_private (entry_class, sizeof (NmtPasswordFieldsPrivate)); + g_type_class_add_private(entry_class, sizeof(NmtPasswordFieldsPrivate)); - /* virtual methods */ - object_class->constructed = nmt_password_fields_constructed; - object_class->set_property = nmt_password_fields_set_property; - object_class->get_property = nmt_password_fields_get_property; - object_class->finalize = nmt_password_fields_finalize; + /* virtual methods */ + object_class->constructed = nmt_password_fields_constructed; + object_class->set_property = nmt_password_fields_set_property; + object_class->get_property = nmt_password_fields_get_property; + object_class->finalize = nmt_password_fields_finalize; - /** + /** * NmtPasswordFields:width: * * The width in characters of the password entry */ - g_object_class_install_property - (object_class, PROP_WIDTH, - g_param_spec_int ("width", "", "", - -1, 80, -1, - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS)); - /** + g_object_class_install_property( + object_class, + PROP_WIDTH, + g_param_spec_int("width", "", "", -1, 80, -1, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** * NmtPasswordFields:extras: * * The extra widgets to show */ - g_object_class_install_property - (object_class, PROP_EXTRAS, - g_param_spec_uint ("extras", "", "", - 0, 0xFFFF, 0, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); - /** + g_object_class_install_property( + object_class, + PROP_EXTRAS, + g_param_spec_uint("extras", + "", + "", + 0, + 0xFFFF, + 0, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); + /** * NmtPasswordFields:password: * * The entered password. */ - g_object_class_install_property - (object_class, PROP_PASSWORD, - g_param_spec_string ("password", "", "", - NULL, - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS)); - /** + g_object_class_install_property( + object_class, + PROP_PASSWORD, + g_param_spec_string("password", "", "", NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** * NmtPasswordFields:always-ask: * * The current state of the "Always ask" checkbox. */ - g_object_class_install_property - (object_class, PROP_ALWAYS_ASK, - g_param_spec_boolean ("always-ask", "", "", - FALSE, - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS)); - /** + g_object_class_install_property( + object_class, + PROP_ALWAYS_ASK, + g_param_spec_boolean("always-ask", + "", + "", + FALSE, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** * NmtPasswordFields:show-password: * * The current state of the "Show password" checkbox. */ - g_object_class_install_property - (object_class, PROP_SHOW_PASSWORD, - g_param_spec_boolean ("show-password", "", "", - FALSE, - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS)); + g_object_class_install_property( + object_class, + PROP_SHOW_PASSWORD, + g_param_spec_boolean("show-password", + "", + "", + FALSE, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); } diff --git a/clients/tui/nmt-password-fields.h b/clients/tui/nmt-password-fields.h index d0810d5638..a16aa534a9 100644 --- a/clients/tui/nmt-password-fields.h +++ b/clients/tui/nmt-password-fields.h @@ -8,31 +8,34 @@ #include "nmt-newt.h" -#define NMT_TYPE_PASSWORD_FIELDS (nmt_password_fields_get_type ()) -#define NMT_PASSWORD_FIELDS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NMT_TYPE_PASSWORD_FIELDS, NmtPasswordFields)) -#define NMT_PASSWORD_FIELDS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NMT_TYPE_PASSWORD_FIELDS, NmtPasswordFieldsClass)) -#define NMT_IS_PASSWORD_FIELDS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NMT_TYPE_PASSWORD_FIELDS)) -#define NMT_IS_PASSWORD_FIELDS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NMT_TYPE_PASSWORD_FIELDS)) -#define NMT_PASSWORD_FIELDS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NMT_TYPE_PASSWORD_FIELDS, NmtPasswordFieldsClass)) +#define NMT_TYPE_PASSWORD_FIELDS (nmt_password_fields_get_type()) +#define NMT_PASSWORD_FIELDS(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), NMT_TYPE_PASSWORD_FIELDS, NmtPasswordFields)) +#define NMT_PASSWORD_FIELDS_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), NMT_TYPE_PASSWORD_FIELDS, NmtPasswordFieldsClass)) +#define NMT_IS_PASSWORD_FIELDS(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), NMT_TYPE_PASSWORD_FIELDS)) +#define NMT_IS_PASSWORD_FIELDS_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass), NMT_TYPE_PASSWORD_FIELDS)) +#define NMT_PASSWORD_FIELDS_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), NMT_TYPE_PASSWORD_FIELDS, NmtPasswordFieldsClass)) typedef struct { - NmtNewtGrid parent; + NmtNewtGrid parent; } NmtPasswordFields; typedef struct { - NmtNewtGridClass parent; + NmtNewtGridClass parent; } NmtPasswordFieldsClass; -GType nmt_password_fields_get_type (void); +GType nmt_password_fields_get_type(void); typedef enum { - NMT_PASSWORD_FIELDS_ALWAYS_ASK = (1 << 0), - NMT_PASSWORD_FIELDS_SHOW_PASSWORD = (1 << 1), + NMT_PASSWORD_FIELDS_ALWAYS_ASK = (1 << 0), + NMT_PASSWORD_FIELDS_SHOW_PASSWORD = (1 << 1), } NmtPasswordFieldsExtras; -NmtNewtWidget *nmt_password_fields_new (int width, - NmtPasswordFieldsExtras extras); +NmtNewtWidget *nmt_password_fields_new(int width, NmtPasswordFieldsExtras extras); #endif /* NMT_PASSWORD_FIELDS_H */ diff --git a/clients/tui/nmt-route-editor.c b/clients/tui/nmt-route-editor.c index 29ef1bcc2d..143e26b0e7 100644 --- a/clients/tui/nmt-route-editor.c +++ b/clients/tui/nmt-route-editor.c @@ -17,21 +17,22 @@ #include "nmt-route-editor.h" #include "nmt-route-table.h" -G_DEFINE_TYPE (NmtRouteEditor, nmt_route_editor, NMT_TYPE_NEWT_FORM) +G_DEFINE_TYPE(NmtRouteEditor, nmt_route_editor, NMT_TYPE_NEWT_FORM) -#define NMT_ROUTE_EDITOR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NMT_TYPE_ROUTE_EDITOR, NmtRouteEditorPrivate)) +#define NMT_ROUTE_EDITOR_GET_PRIVATE(o) \ + (G_TYPE_INSTANCE_GET_PRIVATE((o), NMT_TYPE_ROUTE_EDITOR, NmtRouteEditorPrivate)) typedef struct { - NMSetting *orig_setting; - NMSetting *edit_setting; + NMSetting *orig_setting; + NMSetting *edit_setting; } NmtRouteEditorPrivate; enum { - PROP_0, - PROP_SETTING, + PROP_0, + PROP_SETTING, - LAST_PROP + LAST_PROP }; /** @@ -43,152 +44,143 @@ enum { * Returns: a new #NmtRouteEditor */ NmtNewtForm * -nmt_route_editor_new (NMSetting *setting) +nmt_route_editor_new(NMSetting *setting) { - return g_object_new (NMT_TYPE_ROUTE_EDITOR, - "setting", setting, - NULL); + return g_object_new(NMT_TYPE_ROUTE_EDITOR, "setting", setting, NULL); } static void -nmt_route_editor_init (NmtRouteEditor *entry) -{ -} +nmt_route_editor_init(NmtRouteEditor *entry) +{} static void -save_routes_and_exit (NmtNewtButton *button, - gpointer user_data) +save_routes_and_exit(NmtNewtButton *button, gpointer user_data) { - NmtRouteEditor *editor = user_data; - NmtRouteEditorPrivate *priv = NMT_ROUTE_EDITOR_GET_PRIVATE (editor); - GPtrArray *routes; - - g_object_get (priv->edit_setting, - NM_SETTING_IP_CONFIG_ROUTES, &routes, - NULL); - g_object_set (priv->orig_setting, - NM_SETTING_IP_CONFIG_ROUTES, routes, - NULL); - g_ptr_array_unref (routes); - - nmt_newt_form_quit (NMT_NEWT_FORM (editor)); + NmtRouteEditor * editor = user_data; + NmtRouteEditorPrivate *priv = NMT_ROUTE_EDITOR_GET_PRIVATE(editor); + GPtrArray * routes; + + g_object_get(priv->edit_setting, NM_SETTING_IP_CONFIG_ROUTES, &routes, NULL); + g_object_set(priv->orig_setting, NM_SETTING_IP_CONFIG_ROUTES, routes, NULL); + g_ptr_array_unref(routes); + + nmt_newt_form_quit(NMT_NEWT_FORM(editor)); } static void -nmt_route_editor_constructed (GObject *object) +nmt_route_editor_constructed(GObject *object) { - NmtRouteEditor *editor = NMT_ROUTE_EDITOR (object); - NmtRouteEditorPrivate *priv = NMT_ROUTE_EDITOR_GET_PRIVATE (editor); - NmtNewtWidget *vbox, *routes, *buttons, *ok, *cancel; - - if (G_OBJECT_CLASS (nmt_route_editor_parent_class)->constructed) - G_OBJECT_CLASS (nmt_route_editor_parent_class)->constructed (object); - - if (NM_IS_SETTING_IP4_CONFIG (priv->edit_setting)) - routes = nmt_route_table_new (AF_INET); - else - routes = nmt_route_table_new (AF_INET6); - g_object_bind_property (priv->edit_setting, NM_SETTING_IP_CONFIG_ROUTES, - routes, "routes", - G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL); - - vbox = nmt_newt_grid_new (); - nmt_newt_grid_add (NMT_NEWT_GRID (vbox), routes, 0, 0); - - buttons = nmt_newt_grid_new (); - nmt_newt_grid_add (NMT_NEWT_GRID (vbox), buttons, 0, 1); - nmt_newt_widget_set_padding (buttons, 0, 1, 0, 0); - - cancel = g_object_ref_sink (nmt_newt_button_new (_("Cancel"))); - nmt_newt_widget_set_exit_on_activate (cancel, TRUE); - nmt_newt_grid_add (NMT_NEWT_GRID (buttons), cancel, 0, 0); - nmt_newt_grid_set_flags (NMT_NEWT_GRID (buttons), cancel, - NMT_NEWT_GRID_EXPAND_X | NMT_NEWT_GRID_ANCHOR_RIGHT | - NMT_NEWT_GRID_FILL_Y); - - ok = g_object_ref_sink (nmt_newt_button_new (_("OK"))); - g_signal_connect (ok, "clicked", G_CALLBACK (save_routes_and_exit), editor); - nmt_newt_grid_add (NMT_NEWT_GRID (buttons), ok, 1, 0); - nmt_newt_widget_set_padding (ok, 1, 0, 0, 0); - g_object_bind_property (routes, "valid", - ok, "sensitive", - G_BINDING_SYNC_CREATE); - - nmt_newt_form_set_content (NMT_NEWT_FORM (editor), vbox); + NmtRouteEditor * editor = NMT_ROUTE_EDITOR(object); + NmtRouteEditorPrivate *priv = NMT_ROUTE_EDITOR_GET_PRIVATE(editor); + NmtNewtWidget * vbox, *routes, *buttons, *ok, *cancel; + + if (G_OBJECT_CLASS(nmt_route_editor_parent_class)->constructed) + G_OBJECT_CLASS(nmt_route_editor_parent_class)->constructed(object); + + if (NM_IS_SETTING_IP4_CONFIG(priv->edit_setting)) + routes = nmt_route_table_new(AF_INET); + else + routes = nmt_route_table_new(AF_INET6); + g_object_bind_property(priv->edit_setting, + NM_SETTING_IP_CONFIG_ROUTES, + routes, + "routes", + G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL); + + vbox = nmt_newt_grid_new(); + nmt_newt_grid_add(NMT_NEWT_GRID(vbox), routes, 0, 0); + + buttons = nmt_newt_grid_new(); + nmt_newt_grid_add(NMT_NEWT_GRID(vbox), buttons, 0, 1); + nmt_newt_widget_set_padding(buttons, 0, 1, 0, 0); + + cancel = g_object_ref_sink(nmt_newt_button_new(_("Cancel"))); + nmt_newt_widget_set_exit_on_activate(cancel, TRUE); + nmt_newt_grid_add(NMT_NEWT_GRID(buttons), cancel, 0, 0); + nmt_newt_grid_set_flags(NMT_NEWT_GRID(buttons), + cancel, + NMT_NEWT_GRID_EXPAND_X | NMT_NEWT_GRID_ANCHOR_RIGHT + | NMT_NEWT_GRID_FILL_Y); + + ok = g_object_ref_sink(nmt_newt_button_new(_("OK"))); + g_signal_connect(ok, "clicked", G_CALLBACK(save_routes_and_exit), editor); + nmt_newt_grid_add(NMT_NEWT_GRID(buttons), ok, 1, 0); + nmt_newt_widget_set_padding(ok, 1, 0, 0, 0); + g_object_bind_property(routes, "valid", ok, "sensitive", G_BINDING_SYNC_CREATE); + + nmt_newt_form_set_content(NMT_NEWT_FORM(editor), vbox); } static void -nmt_route_editor_finalize (GObject *object) +nmt_route_editor_finalize(GObject *object) { - NmtRouteEditorPrivate *priv = NMT_ROUTE_EDITOR_GET_PRIVATE (object); + NmtRouteEditorPrivate *priv = NMT_ROUTE_EDITOR_GET_PRIVATE(object); - g_clear_object (&priv->orig_setting); - g_clear_object (&priv->edit_setting); + g_clear_object(&priv->orig_setting); + g_clear_object(&priv->edit_setting); - G_OBJECT_CLASS (nmt_route_editor_parent_class)->finalize (object); + G_OBJECT_CLASS(nmt_route_editor_parent_class)->finalize(object); } static void -nmt_route_editor_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) +nmt_route_editor_set_property(GObject * object, + guint prop_id, + const GValue *value, + GParamSpec * pspec) { - NmtRouteEditorPrivate *priv = NMT_ROUTE_EDITOR_GET_PRIVATE (object); - - switch (prop_id) { - case PROP_SETTING: - priv->orig_setting = g_value_dup_object (value); - priv->edit_setting = nm_setting_duplicate (priv->orig_setting); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtRouteEditorPrivate *priv = NMT_ROUTE_EDITOR_GET_PRIVATE(object); + + switch (prop_id) { + case PROP_SETTING: + priv->orig_setting = g_value_dup_object(value); + priv->edit_setting = nm_setting_duplicate(priv->orig_setting); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_route_editor_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) +nmt_route_editor_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - NmtRouteEditorPrivate *priv = NMT_ROUTE_EDITOR_GET_PRIVATE (object); - - switch (prop_id) { - case PROP_SETTING: - g_value_set_object (value, priv->edit_setting); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtRouteEditorPrivate *priv = NMT_ROUTE_EDITOR_GET_PRIVATE(object); + + switch (prop_id) { + case PROP_SETTING: + g_value_set_object(value, priv->edit_setting); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_route_editor_class_init (NmtRouteEditorClass *entry_class) +nmt_route_editor_class_init(NmtRouteEditorClass *entry_class) { - GObjectClass *object_class = G_OBJECT_CLASS (entry_class); + GObjectClass *object_class = G_OBJECT_CLASS(entry_class); - g_type_class_add_private (entry_class, sizeof (NmtRouteEditorPrivate)); + g_type_class_add_private(entry_class, sizeof(NmtRouteEditorPrivate)); - /* virtual methods */ - object_class->constructed = nmt_route_editor_constructed; - object_class->set_property = nmt_route_editor_set_property; - object_class->get_property = nmt_route_editor_get_property; - object_class->finalize = nmt_route_editor_finalize; + /* virtual methods */ + object_class->constructed = nmt_route_editor_constructed; + object_class->set_property = nmt_route_editor_set_property; + object_class->get_property = nmt_route_editor_get_property; + object_class->finalize = nmt_route_editor_finalize; - /** + /** * NmtRouteEditor:setting: * * The #NMSettingIP4Config or #NMSettingIP6Config whose routes are * being edited. */ - g_object_class_install_property - (object_class, PROP_SETTING, - g_param_spec_object ("setting", "", "", - NM_TYPE_SETTING, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); + g_object_class_install_property( + object_class, + PROP_SETTING, + g_param_spec_object("setting", + "", + "", + NM_TYPE_SETTING, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); } diff --git a/clients/tui/nmt-route-editor.h b/clients/tui/nmt-route-editor.h index 9bd0c176d1..0e8b77d7eb 100644 --- a/clients/tui/nmt-route-editor.h +++ b/clients/tui/nmt-route-editor.h @@ -8,25 +8,28 @@ #include "nmt-newt.h" -#define NMT_TYPE_ROUTE_EDITOR (nmt_route_editor_get_type ()) -#define NMT_ROUTE_EDITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NMT_TYPE_ROUTE_EDITOR, NmtRouteEditor)) -#define NMT_ROUTE_EDITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NMT_TYPE_ROUTE_EDITOR, NmtRouteEditorClass)) -#define NMT_IS_ROUTE_EDITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NMT_TYPE_ROUTE_EDITOR)) -#define NMT_IS_ROUTE_EDITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NMT_TYPE_ROUTE_EDITOR)) -#define NMT_ROUTE_EDITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NMT_TYPE_ROUTE_EDITOR, NmtRouteEditorClass)) +#define NMT_TYPE_ROUTE_EDITOR (nmt_route_editor_get_type()) +#define NMT_ROUTE_EDITOR(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), NMT_TYPE_ROUTE_EDITOR, NmtRouteEditor)) +#define NMT_ROUTE_EDITOR_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), NMT_TYPE_ROUTE_EDITOR, NmtRouteEditorClass)) +#define NMT_IS_ROUTE_EDITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), NMT_TYPE_ROUTE_EDITOR)) +#define NMT_IS_ROUTE_EDITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), NMT_TYPE_ROUTE_EDITOR)) +#define NMT_ROUTE_EDITOR_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), NMT_TYPE_ROUTE_EDITOR, NmtRouteEditorClass)) typedef struct { - NmtNewtForm parent; + NmtNewtForm parent; } NmtRouteEditor; typedef struct { - NmtNewtFormClass parent; + NmtNewtFormClass parent; } NmtRouteEditorClass; -GType nmt_route_editor_get_type (void); +GType nmt_route_editor_get_type(void); -NmtNewtForm *nmt_route_editor_new (NMSetting *setting); +NmtNewtForm *nmt_route_editor_new(NMSetting *setting); #endif /* NMT_ROUTE_EDITOR_H */ diff --git a/clients/tui/nmt-route-entry.c b/clients/tui/nmt-route-entry.c index 88d64fa3e3..60e122054d 100644 --- a/clients/tui/nmt-route-entry.c +++ b/clients/tui/nmt-route-entry.c @@ -24,26 +24,27 @@ #include "nm-editor-bindings.h" -G_DEFINE_TYPE (NmtRouteEntry, nmt_route_entry, NMT_TYPE_NEWT_GRID) +G_DEFINE_TYPE(NmtRouteEntry, nmt_route_entry, NMT_TYPE_NEWT_GRID) -#define NMT_ROUTE_ENTRY_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NMT_TYPE_ROUTE_ENTRY, NmtRouteEntryPrivate)) +#define NMT_ROUTE_ENTRY_GET_PRIVATE(o) \ + (G_TYPE_INSTANCE_GET_PRIVATE((o), NMT_TYPE_ROUTE_ENTRY, NmtRouteEntryPrivate)) typedef struct { - NmtNewtWidget *dest, *next_hop, *metric; + NmtNewtWidget *dest, *next_hop, *metric; - int family; - int ip_entry_width, metric_entry_width; - NMIPRoute *route; + int family; + int ip_entry_width, metric_entry_width; + NMIPRoute *route; } NmtRouteEntryPrivate; enum { - PROP_0, - PROP_FAMILY, - PROP_IP_ENTRY_WIDTH, - PROP_METRIC_ENTRY_WIDTH, - PROP_ROUTE, + PROP_0, + PROP_FAMILY, + PROP_IP_ENTRY_WIDTH, + PROP_METRIC_ENTRY_WIDTH, + PROP_ROUTE, - LAST_PROP + LAST_PROP }; /** @@ -57,219 +58,229 @@ enum { * Returns: a new #NmtRouteEntry */ NmtNewtWidget * -nmt_route_entry_new (int family, - int ip_entry_width, - int metric_entry_width) +nmt_route_entry_new(int family, int ip_entry_width, int metric_entry_width) { - return g_object_new (NMT_TYPE_ROUTE_ENTRY, - "family", family, - "ip-entry-width", ip_entry_width, - "metric-entry-width", metric_entry_width, - NULL); + return g_object_new(NMT_TYPE_ROUTE_ENTRY, + "family", + family, + "ip-entry-width", + ip_entry_width, + "metric-entry-width", + metric_entry_width, + NULL); } static void -nmt_route_entry_init (NmtRouteEntry *entry) -{ -} +nmt_route_entry_init(NmtRouteEntry *entry) +{} static gboolean -entry_validity_transform_to_warning_label (GBinding *binding, - const GValue *source_value, - GValue *target_value, - gpointer user_data) +entry_validity_transform_to_warning_label(GBinding * binding, + const GValue *source_value, + GValue * target_value, + gpointer user_data) { - if (g_value_get_boolean (source_value)) - g_value_set_string (target_value, " "); - else - g_value_set_string (target_value, "!"); - return TRUE; + if (g_value_get_boolean(source_value)) + g_value_set_string(target_value, " "); + else + g_value_set_string(target_value, "!"); + return TRUE; } static NmtNewtWidget * -create_warning_label (NmtNewtWidget *entry) +create_warning_label(NmtNewtWidget *entry) { - NmtNewtWidget *label; - - label = g_object_new (NMT_TYPE_NEWT_LABEL, - "highlight", TRUE, - NULL); - g_object_bind_property_full (entry, "valid", - label, "text", - G_BINDING_SYNC_CREATE, - entry_validity_transform_to_warning_label, - NULL, NULL, NULL); - return label; + NmtNewtWidget *label; + + label = g_object_new(NMT_TYPE_NEWT_LABEL, "highlight", TRUE, NULL); + g_object_bind_property_full(entry, + "valid", + label, + "text", + G_BINDING_SYNC_CREATE, + entry_validity_transform_to_warning_label, + NULL, + NULL, + NULL); + return label; } static void -nmt_route_entry_constructed (GObject *object) +nmt_route_entry_constructed(GObject *object) { - NmtRouteEntryPrivate *priv = NMT_ROUTE_ENTRY_GET_PRIVATE (object); - NmtNewtGrid *grid = NMT_NEWT_GRID (object); - NmtNewtWidget *warning_label; - - priv->dest = nmt_ip_entry_new (priv->ip_entry_width, priv->family, TRUE, FALSE); - priv->next_hop = nmt_ip_entry_new (priv->ip_entry_width, priv->family, FALSE, TRUE); - priv->metric = nmt_newt_entry_numeric_new_full (priv->metric_entry_width, 0, G_MAXUINT32, TRUE); - - nmt_newt_grid_add (grid, priv->dest, 0, 0); - warning_label = create_warning_label (priv->dest); - nmt_newt_grid_add (grid, warning_label, 1, 0); - - nmt_newt_grid_add (grid, priv->next_hop, 2, 0); - nmt_newt_widget_set_padding (priv->next_hop, 1, 0, 0, 0); - warning_label = create_warning_label (priv->next_hop); - nmt_newt_grid_add (grid, warning_label, 3, 0); - - nmt_newt_grid_add (grid, priv->metric, 4, 0); - nmt_newt_widget_set_padding (priv->metric, 1, 0, 0, 0); - - nm_editor_bind_ip_route_to_strings (priv->family, - object, "route", - priv->dest, "text", - priv->next_hop, "text", - priv->metric, "text", - G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); - - G_OBJECT_CLASS (nmt_route_entry_parent_class)->constructed (object); + NmtRouteEntryPrivate *priv = NMT_ROUTE_ENTRY_GET_PRIVATE(object); + NmtNewtGrid * grid = NMT_NEWT_GRID(object); + NmtNewtWidget * warning_label; + + priv->dest = nmt_ip_entry_new(priv->ip_entry_width, priv->family, TRUE, FALSE); + priv->next_hop = nmt_ip_entry_new(priv->ip_entry_width, priv->family, FALSE, TRUE); + priv->metric = nmt_newt_entry_numeric_new_full(priv->metric_entry_width, 0, G_MAXUINT32, TRUE); + + nmt_newt_grid_add(grid, priv->dest, 0, 0); + warning_label = create_warning_label(priv->dest); + nmt_newt_grid_add(grid, warning_label, 1, 0); + + nmt_newt_grid_add(grid, priv->next_hop, 2, 0); + nmt_newt_widget_set_padding(priv->next_hop, 1, 0, 0, 0); + warning_label = create_warning_label(priv->next_hop); + nmt_newt_grid_add(grid, warning_label, 3, 0); + + nmt_newt_grid_add(grid, priv->metric, 4, 0); + nmt_newt_widget_set_padding(priv->metric, 1, 0, 0, 0); + + nm_editor_bind_ip_route_to_strings(priv->family, + object, + "route", + priv->dest, + "text", + priv->next_hop, + "text", + priv->metric, + "text", + G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); + + G_OBJECT_CLASS(nmt_route_entry_parent_class)->constructed(object); } static newtComponent -nmt_route_entry_get_focus_component (NmtNewtWidget *widget) +nmt_route_entry_get_focus_component(NmtNewtWidget *widget) { - NmtRouteEntryPrivate *priv = NMT_ROUTE_ENTRY_GET_PRIVATE (widget); + NmtRouteEntryPrivate *priv = NMT_ROUTE_ENTRY_GET_PRIVATE(widget); - return nmt_newt_widget_get_focus_component (priv->dest); + return nmt_newt_widget_get_focus_component(priv->dest); } static void -nmt_route_entry_finalize (GObject *object) +nmt_route_entry_finalize(GObject *object) { - NmtRouteEntryPrivate *priv = NMT_ROUTE_ENTRY_GET_PRIVATE (object); + NmtRouteEntryPrivate *priv = NMT_ROUTE_ENTRY_GET_PRIVATE(object); - nm_clear_pointer (&priv->route, nm_ip_route_unref); + nm_clear_pointer(&priv->route, nm_ip_route_unref); - G_OBJECT_CLASS (nmt_route_entry_parent_class)->finalize (object); + G_OBJECT_CLASS(nmt_route_entry_parent_class)->finalize(object); } static void -nmt_route_entry_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) +nmt_route_entry_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { - NmtRouteEntryPrivate *priv = NMT_ROUTE_ENTRY_GET_PRIVATE (object); - - switch (prop_id) { - case PROP_FAMILY: - priv->family = g_value_get_int (value); - break; - case PROP_IP_ENTRY_WIDTH: - priv->ip_entry_width = g_value_get_int (value); - break; - case PROP_METRIC_ENTRY_WIDTH: - priv->metric_entry_width = g_value_get_int (value); - break; - case PROP_ROUTE: - if (priv->route) - nm_ip_route_unref (priv->route); - priv->route = g_value_dup_boxed (value); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtRouteEntryPrivate *priv = NMT_ROUTE_ENTRY_GET_PRIVATE(object); + + switch (prop_id) { + case PROP_FAMILY: + priv->family = g_value_get_int(value); + break; + case PROP_IP_ENTRY_WIDTH: + priv->ip_entry_width = g_value_get_int(value); + break; + case PROP_METRIC_ENTRY_WIDTH: + priv->metric_entry_width = g_value_get_int(value); + break; + case PROP_ROUTE: + if (priv->route) + nm_ip_route_unref(priv->route); + priv->route = g_value_dup_boxed(value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_route_entry_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) +nmt_route_entry_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - NmtRouteEntryPrivate *priv = NMT_ROUTE_ENTRY_GET_PRIVATE (object); - - switch (prop_id) { - case PROP_FAMILY: - g_value_set_int (value, priv->family); - break; - case PROP_IP_ENTRY_WIDTH: - g_value_set_int (value, priv->ip_entry_width); - break; - case PROP_METRIC_ENTRY_WIDTH: - g_value_set_int (value, priv->metric_entry_width); - break; - case PROP_ROUTE: - g_value_set_boxed (value, priv->route); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtRouteEntryPrivate *priv = NMT_ROUTE_ENTRY_GET_PRIVATE(object); + + switch (prop_id) { + case PROP_FAMILY: + g_value_set_int(value, priv->family); + break; + case PROP_IP_ENTRY_WIDTH: + g_value_set_int(value, priv->ip_entry_width); + break; + case PROP_METRIC_ENTRY_WIDTH: + g_value_set_int(value, priv->metric_entry_width); + break; + case PROP_ROUTE: + g_value_set_boxed(value, priv->route); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_route_entry_class_init (NmtRouteEntryClass *entry_class) +nmt_route_entry_class_init(NmtRouteEntryClass *entry_class) { - GObjectClass *object_class = G_OBJECT_CLASS (entry_class); - NmtNewtWidgetClass *widget_class = NMT_NEWT_WIDGET_CLASS (entry_class); + GObjectClass * object_class = G_OBJECT_CLASS(entry_class); + NmtNewtWidgetClass *widget_class = NMT_NEWT_WIDGET_CLASS(entry_class); - g_type_class_add_private (entry_class, sizeof (NmtRouteEntryPrivate)); + g_type_class_add_private(entry_class, sizeof(NmtRouteEntryPrivate)); - /* virtual methods */ - object_class->constructed = nmt_route_entry_constructed; - object_class->set_property = nmt_route_entry_set_property; - object_class->get_property = nmt_route_entry_get_property; - object_class->finalize = nmt_route_entry_finalize; + /* virtual methods */ + object_class->constructed = nmt_route_entry_constructed; + object_class->set_property = nmt_route_entry_set_property; + object_class->get_property = nmt_route_entry_get_property; + object_class->finalize = nmt_route_entry_finalize; - widget_class->get_focus_component = nmt_route_entry_get_focus_component; + widget_class->get_focus_component = nmt_route_entry_get_focus_component; - /** + /** * NmtRouteEntry:family: * * The address family of the route, eg, %AF_INET */ - g_object_class_install_property - (object_class, PROP_FAMILY, - g_param_spec_int ("family", "", "", - 0, G_MAXINT, 0, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); - /** + g_object_class_install_property( + object_class, + PROP_FAMILY, + g_param_spec_int("family", + "", + "", + 0, + G_MAXINT, + 0, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); + /** * NmtRouteEntry:ip-entry-width: * * The width in characters of the IP address entries */ - g_object_class_install_property - (object_class, PROP_IP_ENTRY_WIDTH, - g_param_spec_int ("ip-entry-width", "", "", - 0, G_MAXINT, 0, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); - /** + g_object_class_install_property( + object_class, + PROP_IP_ENTRY_WIDTH, + g_param_spec_int("ip-entry-width", + "", + "", + 0, + G_MAXINT, + 0, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); + /** * NmtRouteEntry:metric-entry-width: * * The width in characters of the metric entry */ - g_object_class_install_property - (object_class, PROP_METRIC_ENTRY_WIDTH, - g_param_spec_int ("metric-entry-width", "", "", - 0, G_MAXINT, 0, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); - /** + g_object_class_install_property( + object_class, + PROP_METRIC_ENTRY_WIDTH, + g_param_spec_int("metric-entry-width", + "", + "", + 0, + G_MAXINT, + 0, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); + /** * NmtRouteEntry:route: * * The contents of the entries, as an #NMIPRoute. */ - g_object_class_install_property - (object_class, PROP_ROUTE, - g_param_spec_boxed ("route", "", "", - nm_ip_route_get_type (), - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS)); + g_object_class_install_property(object_class, + PROP_ROUTE, + g_param_spec_boxed("route", + "", + "", + nm_ip_route_get_type(), + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); } diff --git a/clients/tui/nmt-route-entry.h b/clients/tui/nmt-route-entry.h index bffa004ae3..16b861d945 100644 --- a/clients/tui/nmt-route-entry.h +++ b/clients/tui/nmt-route-entry.h @@ -8,27 +8,28 @@ #include "nmt-newt.h" -#define NMT_TYPE_ROUTE_ENTRY (nmt_route_entry_get_type ()) -#define NMT_ROUTE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NMT_TYPE_ROUTE_ENTRY, NmtRouteEntry)) -#define NMT_ROUTE_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NMT_TYPE_ROUTE_ENTRY, NmtRouteEntryClass)) -#define NMT_IS_ROUTE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NMT_TYPE_ROUTE_ENTRY)) -#define NMT_IS_ROUTE_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NMT_TYPE_ROUTE_ENTRY)) -#define NMT_ROUTE_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NMT_TYPE_ROUTE_ENTRY, NmtRouteEntryClass)) +#define NMT_TYPE_ROUTE_ENTRY (nmt_route_entry_get_type()) +#define NMT_ROUTE_ENTRY(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), NMT_TYPE_ROUTE_ENTRY, NmtRouteEntry)) +#define NMT_ROUTE_ENTRY_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), NMT_TYPE_ROUTE_ENTRY, NmtRouteEntryClass)) +#define NMT_IS_ROUTE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), NMT_TYPE_ROUTE_ENTRY)) +#define NMT_IS_ROUTE_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), NMT_TYPE_ROUTE_ENTRY)) +#define NMT_ROUTE_ENTRY_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), NMT_TYPE_ROUTE_ENTRY, NmtRouteEntryClass)) typedef struct { - NmtNewtGrid parent; + NmtNewtGrid parent; } NmtRouteEntry; typedef struct { - NmtNewtGridClass parent; + NmtNewtGridClass parent; } NmtRouteEntryClass; -GType nmt_route_entry_get_type (void); +GType nmt_route_entry_get_type(void); -NmtNewtWidget *nmt_route_entry_new (int family, - int ip_entry_width, - int metric_entry_width); +NmtNewtWidget *nmt_route_entry_new(int family, int ip_entry_width, int metric_entry_width); #endif /* NMT_ROUTE_ENTRY_H */ diff --git a/clients/tui/nmt-route-table.c b/clients/tui/nmt-route-table.c index 88cbde926a..d0f0283512 100644 --- a/clients/tui/nmt-route-table.c +++ b/clients/tui/nmt-route-table.c @@ -21,26 +21,27 @@ #include "nmt-route-entry.h" #include "nmt-widget-list.h" -G_DEFINE_TYPE (NmtRouteTable, nmt_route_table, NMT_TYPE_NEWT_GRID) +G_DEFINE_TYPE(NmtRouteTable, nmt_route_table, NMT_TYPE_NEWT_GRID) -#define NMT_ROUTE_TABLE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NMT_TYPE_ROUTE_TABLE, NmtRouteTablePrivate)) +#define NMT_ROUTE_TABLE_GET_PRIVATE(o) \ + (G_TYPE_INSTANCE_GET_PRIVATE((o), NMT_TYPE_ROUTE_TABLE, NmtRouteTablePrivate)) typedef struct { - int family; + int family; - int ip_entry_width; - int metric_entry_width; + int ip_entry_width; + int metric_entry_width; - GPtrArray *routes; - NmtNewtWidget *list; + GPtrArray * routes; + NmtNewtWidget *list; } NmtRouteTablePrivate; enum { - PROP_0, - PROP_FAMILY, - PROP_ROUTES, + PROP_0, + PROP_FAMILY, + PROP_ROUTES, - LAST_PROP + LAST_PROP }; /** @@ -52,254 +53,240 @@ enum { * Returns: a new #NmtRouteTable */ NmtNewtWidget * -nmt_route_table_new (int family) +nmt_route_table_new(int family) { - return g_object_new (NMT_TYPE_ROUTE_TABLE, - "family", family, - NULL); + return g_object_new(NMT_TYPE_ROUTE_TABLE, "family", family, NULL); } static gboolean -route_list_transform_to_route (GBinding *binding, - const GValue *source_value, - GValue *target_value, - gpointer user_data) +route_list_transform_to_route(GBinding * binding, + const GValue *source_value, + GValue * target_value, + gpointer user_data) { - NmtRouteTable *table = NMT_ROUTE_TABLE (g_binding_get_source (binding)); - NmtRouteTablePrivate *priv = NMT_ROUTE_TABLE_GET_PRIVATE (table); - int n = GPOINTER_TO_INT (user_data); - NMIPRoute *route; + NmtRouteTable * table = NMT_ROUTE_TABLE(g_binding_get_source(binding)); + NmtRouteTablePrivate *priv = NMT_ROUTE_TABLE_GET_PRIVATE(table); + int n = GPOINTER_TO_INT(user_data); + NMIPRoute * route; - if (n >= priv->routes->len) - return FALSE; + if (n >= priv->routes->len) + return FALSE; - route = priv->routes->pdata[n]; - g_value_set_boxed (target_value, route); - return TRUE; + route = priv->routes->pdata[n]; + g_value_set_boxed(target_value, route); + return TRUE; } static gboolean -route_list_transform_from_route (GBinding *binding, - const GValue *source_value, - GValue *target_value, - gpointer user_data) +route_list_transform_from_route(GBinding * binding, + const GValue *source_value, + GValue * target_value, + gpointer user_data) { - NmtRouteTable *table = NMT_ROUTE_TABLE (g_binding_get_source (binding)); - NmtRouteTablePrivate *priv = NMT_ROUTE_TABLE_GET_PRIVATE (table); - int n = GPOINTER_TO_INT (user_data); - GPtrArray *routes; - NMIPRoute *route; + NmtRouteTable * table = NMT_ROUTE_TABLE(g_binding_get_source(binding)); + NmtRouteTablePrivate *priv = NMT_ROUTE_TABLE_GET_PRIVATE(table); + int n = GPOINTER_TO_INT(user_data); + GPtrArray * routes; + NMIPRoute * route; - if (n >= priv->routes->len) - return FALSE; - route = priv->routes->pdata[n]; + if (n >= priv->routes->len) + return FALSE; + route = priv->routes->pdata[n]; - routes = priv->routes; - priv->routes = g_ptr_array_new_with_free_func ((GDestroyNotify) nm_ip_route_unref); + routes = priv->routes; + priv->routes = g_ptr_array_new_with_free_func((GDestroyNotify) nm_ip_route_unref); - if (route) - nm_ip_route_unref (route); - routes->pdata[n] = g_value_dup_boxed (source_value); + if (route) + nm_ip_route_unref(route); + routes->pdata[n] = g_value_dup_boxed(source_value); - g_value_take_boxed (target_value, routes); - return TRUE; + g_value_take_boxed(target_value, routes); + return TRUE; } static NmtNewtWidget * -create_route_entry (NmtWidgetList *list, - int num, - gpointer table) +create_route_entry(NmtWidgetList *list, int num, gpointer table) { - NmtRouteTablePrivate *priv = NMT_ROUTE_TABLE_GET_PRIVATE (table); - NmtNewtWidget *entry; - - entry = nmt_route_entry_new (priv->family, - priv->ip_entry_width, - priv->metric_entry_width); - - g_object_bind_property_full (table, "routes", - entry, "route", - G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE, - route_list_transform_to_route, - route_list_transform_from_route, - GINT_TO_POINTER (num), NULL); - return entry; + NmtRouteTablePrivate *priv = NMT_ROUTE_TABLE_GET_PRIVATE(table); + NmtNewtWidget * entry; + + entry = nmt_route_entry_new(priv->family, priv->ip_entry_width, priv->metric_entry_width); + + g_object_bind_property_full(table, + "routes", + entry, + "route", + G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE, + route_list_transform_to_route, + route_list_transform_from_route, + GINT_TO_POINTER(num), + NULL); + return entry; } static void -add_route (NmtWidgetList *list, - gpointer table) +add_route(NmtWidgetList *list, gpointer table) { - NmtRouteTablePrivate *priv = NMT_ROUTE_TABLE_GET_PRIVATE (table); - NMIPRoute *route; - - if (priv->family == AF_INET) - route = nm_ip_route_new (AF_INET, "0.0.0.0", 32, NULL, -1, NULL); - else - route = nm_ip_route_new (AF_INET6, "::", 128, NULL, -1, NULL); - g_ptr_array_add (priv->routes, route); - nmt_widget_list_set_length (list, priv->routes->len); - g_object_notify (table, "routes"); + NmtRouteTablePrivate *priv = NMT_ROUTE_TABLE_GET_PRIVATE(table); + NMIPRoute * route; + + if (priv->family == AF_INET) + route = nm_ip_route_new(AF_INET, "0.0.0.0", 32, NULL, -1, NULL); + else + route = nm_ip_route_new(AF_INET6, "::", 128, NULL, -1, NULL); + g_ptr_array_add(priv->routes, route); + nmt_widget_list_set_length(list, priv->routes->len); + g_object_notify(table, "routes"); } static void -remove_route (NmtWidgetList *list, - int num, - gpointer table) +remove_route(NmtWidgetList *list, int num, gpointer table) { - NmtRouteTablePrivate *priv = NMT_ROUTE_TABLE_GET_PRIVATE (table); + NmtRouteTablePrivate *priv = NMT_ROUTE_TABLE_GET_PRIVATE(table); - if (num >= priv->routes->len) - return; + if (num >= priv->routes->len) + return; - g_ptr_array_remove_index (priv->routes, num); - nmt_widget_list_set_length (list, priv->routes->len); + g_ptr_array_remove_index(priv->routes, num); + nmt_widget_list_set_length(list, priv->routes->len); - g_object_notify (table, "routes"); + g_object_notify(table, "routes"); } static void -nmt_route_table_init (NmtRouteTable *table) +nmt_route_table_init(NmtRouteTable *table) { - NmtRouteTablePrivate *priv = NMT_ROUTE_TABLE_GET_PRIVATE (table); - NmtNewtWidget *header, *empty; - NmtNewtWidget *dest_prefix_label, *next_hop_label, *metric_label; - int dest_prefix_width, next_hop_width, metric_width; - char *text; - - priv->routes = g_ptr_array_new_with_free_func ((GDestroyNotify) nm_ip_route_unref); - - header = nmt_newt_grid_new (); - - text = g_strdup_printf ("%s/%s", _("Destination"), _("Prefix")); - dest_prefix_width = nmt_newt_text_width (text); - dest_prefix_label = g_object_new (NMT_TYPE_NEWT_LABEL, - "text", text, - "style", NMT_NEWT_LABEL_PLAIN, - NULL); - g_free (text); - nmt_newt_grid_add (NMT_NEWT_GRID (header), dest_prefix_label, 0, 0); - - text = _("Next Hop"); - next_hop_label = g_object_new (NMT_TYPE_NEWT_LABEL, - "text", text, - "style", NMT_NEWT_LABEL_PLAIN, - NULL); - next_hop_width = nmt_newt_text_width (text); - nmt_newt_grid_add (NMT_NEWT_GRID (header), next_hop_label, 1, 0); - - text = _("Metric"); - metric_label = g_object_new (NMT_TYPE_NEWT_LABEL, - "text", text, - "style", NMT_NEWT_LABEL_PLAIN, - NULL); - metric_width = nmt_newt_text_width (text); - nmt_newt_grid_add (NMT_NEWT_GRID (header), metric_label, 2, 0); - - priv->ip_entry_width = MAX (20, MAX (dest_prefix_width, next_hop_width)); - priv->metric_entry_width = MAX (7, metric_width); - - nmt_newt_widget_set_padding (dest_prefix_label, - 0, 0, priv->ip_entry_width - dest_prefix_width, 0); - nmt_newt_widget_set_padding (next_hop_label, - 2, 0, priv->ip_entry_width - next_hop_width, 0); - nmt_newt_widget_set_padding (metric_label, - 2, 0, priv->metric_entry_width - metric_width, 0); - - nmt_newt_grid_add (NMT_NEWT_GRID (table), header, 0, 0); - - empty = nmt_newt_label_new (_("No custom routes are defined.")); - priv->list = nmt_widget_list_new (create_route_entry, table, NULL, empty); - g_signal_connect (priv->list, "add-clicked", G_CALLBACK (add_route), table); - g_signal_connect (priv->list, "remove-clicked", G_CALLBACK (remove_route), table); - nmt_newt_grid_add (NMT_NEWT_GRID (table), priv->list, 0, 1); + NmtRouteTablePrivate *priv = NMT_ROUTE_TABLE_GET_PRIVATE(table); + NmtNewtWidget * header, *empty; + NmtNewtWidget * dest_prefix_label, *next_hop_label, *metric_label; + int dest_prefix_width, next_hop_width, metric_width; + char * text; + + priv->routes = g_ptr_array_new_with_free_func((GDestroyNotify) nm_ip_route_unref); + + header = nmt_newt_grid_new(); + + text = g_strdup_printf("%s/%s", _("Destination"), _("Prefix")); + dest_prefix_width = nmt_newt_text_width(text); + dest_prefix_label = + g_object_new(NMT_TYPE_NEWT_LABEL, "text", text, "style", NMT_NEWT_LABEL_PLAIN, NULL); + g_free(text); + nmt_newt_grid_add(NMT_NEWT_GRID(header), dest_prefix_label, 0, 0); + + text = _("Next Hop"); + next_hop_label = + g_object_new(NMT_TYPE_NEWT_LABEL, "text", text, "style", NMT_NEWT_LABEL_PLAIN, NULL); + next_hop_width = nmt_newt_text_width(text); + nmt_newt_grid_add(NMT_NEWT_GRID(header), next_hop_label, 1, 0); + + text = _("Metric"); + metric_label = + g_object_new(NMT_TYPE_NEWT_LABEL, "text", text, "style", NMT_NEWT_LABEL_PLAIN, NULL); + metric_width = nmt_newt_text_width(text); + nmt_newt_grid_add(NMT_NEWT_GRID(header), metric_label, 2, 0); + + priv->ip_entry_width = MAX(20, MAX(dest_prefix_width, next_hop_width)); + priv->metric_entry_width = MAX(7, metric_width); + + nmt_newt_widget_set_padding(dest_prefix_label, + 0, + 0, + priv->ip_entry_width - dest_prefix_width, + 0); + nmt_newt_widget_set_padding(next_hop_label, 2, 0, priv->ip_entry_width - next_hop_width, 0); + nmt_newt_widget_set_padding(metric_label, 2, 0, priv->metric_entry_width - metric_width, 0); + + nmt_newt_grid_add(NMT_NEWT_GRID(table), header, 0, 0); + + empty = nmt_newt_label_new(_("No custom routes are defined.")); + priv->list = nmt_widget_list_new(create_route_entry, table, NULL, empty); + g_signal_connect(priv->list, "add-clicked", G_CALLBACK(add_route), table); + g_signal_connect(priv->list, "remove-clicked", G_CALLBACK(remove_route), table); + nmt_newt_grid_add(NMT_NEWT_GRID(table), priv->list, 0, 1); } static void -nmt_route_table_finalize (GObject *object) +nmt_route_table_finalize(GObject *object) { - NmtRouteTablePrivate *priv = NMT_ROUTE_TABLE_GET_PRIVATE (object); + NmtRouteTablePrivate *priv = NMT_ROUTE_TABLE_GET_PRIVATE(object); - g_ptr_array_unref (priv->routes); + g_ptr_array_unref(priv->routes); - G_OBJECT_CLASS (nmt_route_table_parent_class)->finalize (object); + G_OBJECT_CLASS(nmt_route_table_parent_class)->finalize(object); } static void -nmt_route_table_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) +nmt_route_table_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { - NmtRouteTablePrivate *priv = NMT_ROUTE_TABLE_GET_PRIVATE (object); - GPtrArray *array; - int i; - - switch (prop_id) { - case PROP_FAMILY: - priv->family = g_value_get_int (value); - break; - case PROP_ROUTES: - array = g_value_get_boxed (value); - g_ptr_array_set_size (priv->routes, 0); - for (i = 0; i < array->len; i++) { - nm_ip_route_ref (array->pdata[i]); - g_ptr_array_add (priv->routes, array->pdata[i]); - } - nmt_widget_list_set_length (NMT_WIDGET_LIST (priv->list), priv->routes->len); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtRouteTablePrivate *priv = NMT_ROUTE_TABLE_GET_PRIVATE(object); + GPtrArray * array; + int i; + + switch (prop_id) { + case PROP_FAMILY: + priv->family = g_value_get_int(value); + break; + case PROP_ROUTES: + array = g_value_get_boxed(value); + g_ptr_array_set_size(priv->routes, 0); + for (i = 0; i < array->len; i++) { + nm_ip_route_ref(array->pdata[i]); + g_ptr_array_add(priv->routes, array->pdata[i]); + } + nmt_widget_list_set_length(NMT_WIDGET_LIST(priv->list), priv->routes->len); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_route_table_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) +nmt_route_table_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - NmtRouteTablePrivate *priv = NMT_ROUTE_TABLE_GET_PRIVATE (object); - - switch (prop_id) { - case PROP_FAMILY: - g_value_set_int (value, priv->family); - break; - case PROP_ROUTES: - g_value_set_boxed (value, priv->routes); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtRouteTablePrivate *priv = NMT_ROUTE_TABLE_GET_PRIVATE(object); + + switch (prop_id) { + case PROP_FAMILY: + g_value_set_int(value, priv->family); + break; + case PROP_ROUTES: + g_value_set_boxed(value, priv->routes); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_route_table_class_init (NmtRouteTableClass *table_class) +nmt_route_table_class_init(NmtRouteTableClass *table_class) { - GObjectClass *object_class = G_OBJECT_CLASS (table_class); + GObjectClass *object_class = G_OBJECT_CLASS(table_class); - g_type_class_add_private (table_class, sizeof (NmtRouteTablePrivate)); + g_type_class_add_private(table_class, sizeof(NmtRouteTablePrivate)); - /* virtual methods */ - object_class->set_property = nmt_route_table_set_property; - object_class->get_property = nmt_route_table_get_property; - object_class->finalize = nmt_route_table_finalize; + /* virtual methods */ + object_class->set_property = nmt_route_table_set_property; + object_class->get_property = nmt_route_table_get_property; + object_class->finalize = nmt_route_table_finalize; - /** + /** * NmtRouteTable:family: * * The network address family of the routes, eg %AF_INET */ - g_object_class_install_property - (object_class, PROP_FAMILY, - g_param_spec_int ("family", "", "", - -1, G_MAXINT, -1, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); - /** + g_object_class_install_property( + object_class, + PROP_FAMILY, + g_param_spec_int("family", + "", + "", + -1, + G_MAXINT, + -1, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); + /** * NmtRouteTable:routes: * * The array of routes, suitable for binding to #NMSettingIP4Config:routes @@ -307,10 +294,11 @@ nmt_route_table_class_init (NmtRouteTableClass *table_class) * * Element-type: NMIPRoute */ - g_object_class_install_property - (object_class, PROP_ROUTES, - g_param_spec_boxed ("routes", "", "", - G_TYPE_PTR_ARRAY, - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS)); + g_object_class_install_property(object_class, + PROP_ROUTES, + g_param_spec_boxed("routes", + "", + "", + G_TYPE_PTR_ARRAY, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); } diff --git a/clients/tui/nmt-route-table.h b/clients/tui/nmt-route-table.h index 4126a2a422..76966a87c4 100644 --- a/clients/tui/nmt-route-table.h +++ b/clients/tui/nmt-route-table.h @@ -8,25 +8,28 @@ #include "nmt-newt.h" -#define NMT_TYPE_ROUTE_TABLE (nmt_route_table_get_type ()) -#define NMT_ROUTE_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NMT_TYPE_ROUTE_TABLE, NmtRouteTable)) -#define NMT_ROUTE_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NMT_TYPE_ROUTE_TABLE, NmtRouteTableClass)) -#define NMT_IS_ROUTE_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NMT_TYPE_ROUTE_TABLE)) -#define NMT_IS_ROUTE_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NMT_TYPE_ROUTE_TABLE)) -#define NMT_ROUTE_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NMT_TYPE_ROUTE_TABLE, NmtRouteTableClass)) +#define NMT_TYPE_ROUTE_TABLE (nmt_route_table_get_type()) +#define NMT_ROUTE_TABLE(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), NMT_TYPE_ROUTE_TABLE, NmtRouteTable)) +#define NMT_ROUTE_TABLE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), NMT_TYPE_ROUTE_TABLE, NmtRouteTableClass)) +#define NMT_IS_ROUTE_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), NMT_TYPE_ROUTE_TABLE)) +#define NMT_IS_ROUTE_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), NMT_TYPE_ROUTE_TABLE)) +#define NMT_ROUTE_TABLE_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), NMT_TYPE_ROUTE_TABLE, NmtRouteTableClass)) typedef struct { - NmtNewtGrid parent; + NmtNewtGrid parent; } NmtRouteTable; typedef struct { - NmtNewtGridClass parent; + NmtNewtGridClass parent; } NmtRouteTableClass; -GType nmt_route_table_get_type (void); +GType nmt_route_table_get_type(void); -NmtNewtWidget *nmt_route_table_new (int family); +NmtNewtWidget *nmt_route_table_new(int family); #endif /* NMT_ROUTE_TABLE_H */ diff --git a/clients/tui/nmt-slave-list.c b/clients/tui/nmt-slave-list.c index 2f167359da..aab4f4ca03 100644 --- a/clients/tui/nmt-slave-list.c +++ b/clients/tui/nmt-slave-list.c @@ -15,30 +15,31 @@ #include "nmt-slave-list.h" -G_DEFINE_TYPE (NmtSlaveList, nmt_slave_list, NMT_TYPE_EDIT_CONNECTION_LIST) +G_DEFINE_TYPE(NmtSlaveList, nmt_slave_list, NMT_TYPE_EDIT_CONNECTION_LIST) -#define NMT_SLAVE_LIST_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NMT_TYPE_SLAVE_LIST, NmtSlaveListPrivate)) +#define NMT_SLAVE_LIST_GET_PRIVATE(o) \ + (G_TYPE_INSTANCE_GET_PRIVATE((o), NMT_TYPE_SLAVE_LIST, NmtSlaveListPrivate)) typedef struct { - NMConnection *master; - const char *master_type, *master_uuid; + NMConnection *master; + const char * master_type, *master_uuid; - NmtAddConnectionTypeFilter type_filter; - gpointer type_filter_data; + NmtAddConnectionTypeFilter type_filter; + gpointer type_filter_data; } NmtSlaveListPrivate; enum { - PROP_0, - PROP_MASTER, - PROP_TYPE_FILTER, - PROP_TYPE_FILTER_DATA, + PROP_0, + PROP_MASTER, + PROP_TYPE_FILTER, + PROP_TYPE_FILTER_DATA, - LAST_PROP + LAST_PROP }; -static gboolean nmt_slave_list_connection_filter (NmtEditConnectionList *list, - NMConnection *connection, - gpointer user_data); +static gboolean nmt_slave_list_connection_filter(NmtEditConnectionList *list, + NMConnection * connection, + gpointer user_data); /** * nmt_slave_list_new: @@ -58,168 +59,168 @@ static gboolean nmt_slave_list_connection_filter (NmtEditConnectionList *list, * Returns: a new #NmtSlaveList. */ NmtNewtWidget * -nmt_slave_list_new (NMConnection *master, - NmtAddConnectionTypeFilter type_filter, - gpointer type_filter_data) +nmt_slave_list_new(NMConnection * master, + NmtAddConnectionTypeFilter type_filter, + gpointer type_filter_data) { - return g_object_new (NMT_TYPE_SLAVE_LIST, - "master", master, - "type-filter", type_filter, - "type-filter-data", type_filter_data, - "grouped", FALSE, - "connection-filter", nmt_slave_list_connection_filter, - NULL); + return g_object_new(NMT_TYPE_SLAVE_LIST, + "master", + master, + "type-filter", + type_filter, + "type-filter-data", + type_filter_data, + "grouped", + FALSE, + "connection-filter", + nmt_slave_list_connection_filter, + NULL); } static void -nmt_slave_list_init (NmtSlaveList *list) -{ -} +nmt_slave_list_init(NmtSlaveList *list) +{} static void -nmt_slave_list_finalize (GObject *object) +nmt_slave_list_finalize(GObject *object) { - NmtSlaveListPrivate *priv = NMT_SLAVE_LIST_GET_PRIVATE (object); + NmtSlaveListPrivate *priv = NMT_SLAVE_LIST_GET_PRIVATE(object); - g_object_unref (priv->master); + g_object_unref(priv->master); - G_OBJECT_CLASS (nmt_slave_list_parent_class)->finalize (object); + G_OBJECT_CLASS(nmt_slave_list_parent_class)->finalize(object); } static gboolean -nmt_slave_list_connection_filter (NmtEditConnectionList *list, - NMConnection *connection, - gpointer user_data) +nmt_slave_list_connection_filter(NmtEditConnectionList *list, + NMConnection * connection, + gpointer user_data) { - NmtSlaveListPrivate *priv = NMT_SLAVE_LIST_GET_PRIVATE (list); - NMSettingConnection *s_con; - const char *master, *master_ifname, *slave_type; + NmtSlaveListPrivate *priv = NMT_SLAVE_LIST_GET_PRIVATE(list); + NMSettingConnection *s_con; + const char * master, *master_ifname, *slave_type; - s_con = nm_connection_get_setting_connection (connection); - g_return_val_if_fail (s_con != NULL, FALSE); + s_con = nm_connection_get_setting_connection(connection); + g_return_val_if_fail(s_con != NULL, FALSE); - slave_type = nm_setting_connection_get_slave_type (s_con); - if (g_strcmp0 (slave_type, priv->master_type) != 0) - return FALSE; + slave_type = nm_setting_connection_get_slave_type(s_con); + if (g_strcmp0(slave_type, priv->master_type) != 0) + return FALSE; - master = nm_setting_connection_get_master (s_con); - if (!master) - return FALSE; + master = nm_setting_connection_get_master(s_con); + if (!master) + return FALSE; - master_ifname = nm_connection_get_interface_name (priv->master); - if (g_strcmp0 (master, master_ifname) != 0 && g_strcmp0 (master, priv->master_uuid) != 0) - return FALSE; + master_ifname = nm_connection_get_interface_name(priv->master); + if (g_strcmp0(master, master_ifname) != 0 && g_strcmp0(master, priv->master_uuid) != 0) + return FALSE; - return TRUE; + return TRUE; } static void -nmt_slave_list_add_connection (NmtEditConnectionList *list) +nmt_slave_list_add_connection(NmtEditConnectionList *list) { - NmtSlaveListPrivate *priv = NMT_SLAVE_LIST_GET_PRIVATE (list); + NmtSlaveListPrivate *priv = NMT_SLAVE_LIST_GET_PRIVATE(list); - nmt_add_connection_full (_("Select the type of slave connection you wish to add."), NULL, - priv->master, priv->type_filter, priv->type_filter_data); + nmt_add_connection_full(_("Select the type of slave connection you wish to add."), + NULL, + priv->master, + priv->type_filter, + priv->type_filter_data); } static void -nmt_slave_list_edit_connection (NmtEditConnectionList *list, - NMConnection *connection) +nmt_slave_list_edit_connection(NmtEditConnectionList *list, NMConnection *connection) { - nmt_edit_connection (connection); + nmt_edit_connection(connection); } static void -nmt_slave_list_remove_connection (NmtEditConnectionList *list, - NMRemoteConnection *connection) +nmt_slave_list_remove_connection(NmtEditConnectionList *list, NMRemoteConnection *connection) { - nmt_remove_connection (connection); + nmt_remove_connection(connection); } static void -nmt_slave_list_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) +nmt_slave_list_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { - NmtSlaveListPrivate *priv = NMT_SLAVE_LIST_GET_PRIVATE (object); - - switch (prop_id) { - case PROP_MASTER: - priv->master = g_value_dup_object (value); - if (priv->master) { - NMSettingConnection *s_con = nm_connection_get_setting_connection (priv->master); - - priv->master_type = nm_setting_connection_get_connection_type (s_con); - priv->master_uuid = nm_setting_connection_get_uuid (s_con); - } - break; - case PROP_TYPE_FILTER: - priv->type_filter = g_value_get_pointer (value); - break; - case PROP_TYPE_FILTER_DATA: - priv->type_filter_data = g_value_get_pointer (value); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtSlaveListPrivate *priv = NMT_SLAVE_LIST_GET_PRIVATE(object); + + switch (prop_id) { + case PROP_MASTER: + priv->master = g_value_dup_object(value); + if (priv->master) { + NMSettingConnection *s_con = nm_connection_get_setting_connection(priv->master); + + priv->master_type = nm_setting_connection_get_connection_type(s_con); + priv->master_uuid = nm_setting_connection_get_uuid(s_con); + } + break; + case PROP_TYPE_FILTER: + priv->type_filter = g_value_get_pointer(value); + break; + case PROP_TYPE_FILTER_DATA: + priv->type_filter_data = g_value_get_pointer(value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_slave_list_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) +nmt_slave_list_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - NmtSlaveListPrivate *priv = NMT_SLAVE_LIST_GET_PRIVATE (object); - - switch (prop_id) { - case PROP_MASTER: - g_value_set_object (value, priv->master); - break; - case PROP_TYPE_FILTER: - g_value_set_pointer (value, priv->type_filter); - break; - case PROP_TYPE_FILTER_DATA: - g_value_set_pointer (value, priv->type_filter_data); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtSlaveListPrivate *priv = NMT_SLAVE_LIST_GET_PRIVATE(object); + + switch (prop_id) { + case PROP_MASTER: + g_value_set_object(value, priv->master); + break; + case PROP_TYPE_FILTER: + g_value_set_pointer(value, priv->type_filter); + break; + case PROP_TYPE_FILTER_DATA: + g_value_set_pointer(value, priv->type_filter_data); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_slave_list_class_init (NmtSlaveListClass *list_class) +nmt_slave_list_class_init(NmtSlaveListClass *list_class) { - GObjectClass *object_class = G_OBJECT_CLASS (list_class); - NmtEditConnectionListClass *connection_list_class = NMT_EDIT_CONNECTION_LIST_CLASS (list_class); + GObjectClass * object_class = G_OBJECT_CLASS(list_class); + NmtEditConnectionListClass *connection_list_class = NMT_EDIT_CONNECTION_LIST_CLASS(list_class); - g_type_class_add_private (list_class, sizeof (NmtSlaveListPrivate)); + g_type_class_add_private(list_class, sizeof(NmtSlaveListPrivate)); - /* virtual methods */ - object_class->set_property = nmt_slave_list_set_property; - object_class->get_property = nmt_slave_list_get_property; - object_class->finalize = nmt_slave_list_finalize; + /* virtual methods */ + object_class->set_property = nmt_slave_list_set_property; + object_class->get_property = nmt_slave_list_get_property; + object_class->finalize = nmt_slave_list_finalize; - connection_list_class->add_connection = nmt_slave_list_add_connection; - connection_list_class->edit_connection = nmt_slave_list_edit_connection; - connection_list_class->remove_connection = nmt_slave_list_remove_connection; + connection_list_class->add_connection = nmt_slave_list_add_connection; + connection_list_class->edit_connection = nmt_slave_list_edit_connection; + connection_list_class->remove_connection = nmt_slave_list_remove_connection; - /** + /** * NmtSlaveList:master: * * The master #NMConnection whose slaves are being displayed. */ - g_object_class_install_property - (object_class, PROP_MASTER, - g_param_spec_object ("master", "", "", - NM_TYPE_CONNECTION, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); - /** + g_object_class_install_property( + object_class, + PROP_MASTER, + g_param_spec_object("master", + "", + "", + NM_TYPE_CONNECTION, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); + /** * NmtSlaveList:type-filter: * * If non-%NULL, this will be used to limit the connection types @@ -230,21 +231,23 @@ nmt_slave_list_class_init (NmtSlaveListClass *list_class) * taken to an editor window for the new slave after clicking * "Add". */ - g_object_class_install_property - (object_class, PROP_TYPE_FILTER, - g_param_spec_pointer ("type-filter", "", "", - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); - /** + g_object_class_install_property( + object_class, + PROP_TYPE_FILTER, + g_param_spec_pointer("type-filter", + "", + "", + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); + /** * NmtSlaveList:type-filter-data: * * User data passed to #NmtSlaveList:type-filter */ - g_object_class_install_property - (object_class, PROP_TYPE_FILTER_DATA, - g_param_spec_pointer ("type-filter-data", "", "", - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); + g_object_class_install_property( + object_class, + PROP_TYPE_FILTER_DATA, + g_param_spec_pointer("type-filter-data", + "", + "", + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); } diff --git a/clients/tui/nmt-slave-list.h b/clients/tui/nmt-slave-list.h index fa3634152d..43b7a32b67 100644 --- a/clients/tui/nmt-slave-list.h +++ b/clients/tui/nmt-slave-list.h @@ -9,27 +9,29 @@ #include "nmt-edit-connection-list.h" #include "nmtui-edit.h" -#define NMT_TYPE_SLAVE_LIST (nmt_slave_list_get_type ()) -#define NMT_SLAVE_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NMT_TYPE_SLAVE_LIST, NmtSlaveList)) -#define NMT_SLAVE_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NMT_TYPE_SLAVE_LIST, NmtSlaveListClass)) -#define NMT_IS_SLAVE_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NMT_TYPE_SLAVE_LIST)) -#define NMT_IS_SLAVE_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NMT_TYPE_SLAVE_LIST)) -#define NMT_SLAVE_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NMT_TYPE_SLAVE_LIST, NmtSlaveListClass)) +#define NMT_TYPE_SLAVE_LIST (nmt_slave_list_get_type()) +#define NMT_SLAVE_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), NMT_TYPE_SLAVE_LIST, NmtSlaveList)) +#define NMT_SLAVE_LIST_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), NMT_TYPE_SLAVE_LIST, NmtSlaveListClass)) +#define NMT_IS_SLAVE_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), NMT_TYPE_SLAVE_LIST)) +#define NMT_IS_SLAVE_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), NMT_TYPE_SLAVE_LIST)) +#define NMT_SLAVE_LIST_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), NMT_TYPE_SLAVE_LIST, NmtSlaveListClass)) typedef struct { - NmtEditConnectionList parent; + NmtEditConnectionList parent; } NmtSlaveList; typedef struct { - NmtEditConnectionListClass parent; + NmtEditConnectionListClass parent; } NmtSlaveListClass; -GType nmt_slave_list_get_type (void); +GType nmt_slave_list_get_type(void); -NmtNewtWidget *nmt_slave_list_new (NMConnection *master, - NmtAddConnectionTypeFilter type_filter, - gpointer type_filter_data); +NmtNewtWidget *nmt_slave_list_new(NMConnection * master, + NmtAddConnectionTypeFilter type_filter, + gpointer type_filter_data); #endif /* NMT_SLAVE_LIST_H */ diff --git a/clients/tui/nmt-utils.c b/clients/tui/nmt-utils.c index b2424fc264..39d0ba199f 100644 --- a/clients/tui/nmt-utils.c +++ b/clients/tui/nmt-utils.c @@ -41,9 +41,9 @@ */ typedef struct { - gpointer result; - GError *error; - gpointer complete; + gpointer result; + GError * error; + gpointer complete; } NmtSyncOpReal; /** @@ -53,9 +53,9 @@ typedef struct { * Initializes @op before use. */ void -nmt_sync_op_init (NmtSyncOp *op) +nmt_sync_op_init(NmtSyncOp *op) { - memset (op, 0, sizeof (*op)); + memset(op, 0, sizeof(*op)); } /** @@ -69,10 +69,9 @@ nmt_sync_op_init (NmtSyncOp *op) * Returns: the result of the operation. */ gboolean -nmt_sync_op_wait_boolean (NmtSyncOp *op, - GError **error) +nmt_sync_op_wait_boolean(NmtSyncOp *op, GError **error) { - return GPOINTER_TO_UINT (nmt_sync_op_wait_pointer (op, error)); + return GPOINTER_TO_UINT(nmt_sync_op_wait_pointer(op, error)); } /** @@ -84,11 +83,9 @@ nmt_sync_op_wait_boolean (NmtSyncOp *op, * Completes @op and returns @result and/or @error to the caller. */ void -nmt_sync_op_complete_boolean (NmtSyncOp *op, - gboolean result, - GError *error) +nmt_sync_op_complete_boolean(NmtSyncOp *op, gboolean result, GError *error) { - nmt_sync_op_complete_pointer (op, GUINT_TO_POINTER (result), error); + nmt_sync_op_complete_pointer(op, GUINT_TO_POINTER(result), error); } /** @@ -102,17 +99,16 @@ nmt_sync_op_complete_boolean (NmtSyncOp *op, * Returns: the result of the operation. */ gpointer -nmt_sync_op_wait_pointer (NmtSyncOp *op, - GError **error) +nmt_sync_op_wait_pointer(NmtSyncOp *op, GError **error) { - NmtSyncOpReal *real = (NmtSyncOpReal *)op; + NmtSyncOpReal *real = (NmtSyncOpReal *) op; - while (!real->complete) - g_main_context_iteration (NULL, TRUE); + while (!real->complete) + g_main_context_iteration(NULL, TRUE); - if (real->error) - g_propagate_error (error, real->error); - return real->result; + if (real->error) + g_propagate_error(error, real->error); + return real->result; } /** @@ -124,13 +120,11 @@ nmt_sync_op_wait_pointer (NmtSyncOp *op, * Completes @op and returns @result and/or @error to the caller. */ void -nmt_sync_op_complete_pointer (NmtSyncOp *op, - gpointer result, - GError *error) +nmt_sync_op_complete_pointer(NmtSyncOp *op, gpointer result, GError *error) { - NmtSyncOpReal *real = (NmtSyncOpReal *)op; + NmtSyncOpReal *real = (NmtSyncOpReal *) op; - real->result = result; - real->error = error ? g_error_copy (error) : NULL; - real->complete = GUINT_TO_POINTER (TRUE); + real->result = result; + real->error = error ? g_error_copy(error) : NULL; + real->complete = GUINT_TO_POINTER(TRUE); } diff --git a/clients/tui/nmt-utils.h b/clients/tui/nmt-utils.h index 1002f5a3ce..b685eea9ba 100644 --- a/clients/tui/nmt-utils.h +++ b/clients/tui/nmt-utils.h @@ -7,21 +7,15 @@ #define NMT_UTILS_H typedef struct { - gpointer private[3]; + gpointer private[3]; } NmtSyncOp; -void nmt_sync_op_init (NmtSyncOp *op); +void nmt_sync_op_init(NmtSyncOp *op); -gboolean nmt_sync_op_wait_boolean (NmtSyncOp *op, - GError **error); -void nmt_sync_op_complete_boolean (NmtSyncOp *op, - gboolean result, - GError *error); +gboolean nmt_sync_op_wait_boolean(NmtSyncOp *op, GError **error); +void nmt_sync_op_complete_boolean(NmtSyncOp *op, gboolean result, GError *error); -gpointer nmt_sync_op_wait_pointer (NmtSyncOp *op, - GError **error); -void nmt_sync_op_complete_pointer (NmtSyncOp *op, - gpointer result, - GError *error); +gpointer nmt_sync_op_wait_pointer(NmtSyncOp *op, GError **error); +void nmt_sync_op_complete_pointer(NmtSyncOp *op, gpointer result, GError *error); #endif /* NMT_UTILS_H */ diff --git a/clients/tui/nmt-widget-list.c b/clients/tui/nmt-widget-list.c index df68b95a2f..3a8676789f 100644 --- a/clients/tui/nmt-widget-list.c +++ b/clients/tui/nmt-widget-list.c @@ -27,48 +27,49 @@ #include "nmt-newt.h" -G_DEFINE_TYPE (NmtWidgetList, nmt_widget_list, NMT_TYPE_NEWT_GRID) +G_DEFINE_TYPE(NmtWidgetList, nmt_widget_list, NMT_TYPE_NEWT_GRID) -#define NMT_WIDGET_LIST_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NMT_TYPE_WIDGET_LIST, NmtWidgetListPrivate)) +#define NMT_WIDGET_LIST_GET_PRIVATE(o) \ + (G_TYPE_INSTANCE_GET_PRIVATE((o), NMT_TYPE_WIDGET_LIST, NmtWidgetListPrivate)) typedef struct { - int length; + int length; - NmtWidgetListCallback create_callback; - gpointer user_data; - GDestroyNotify destroy_notify; + NmtWidgetListCallback create_callback; + gpointer user_data; + GDestroyNotify destroy_notify; - NmtNewtWidget *empty_widget; + NmtNewtWidget *empty_widget; - GPtrArray *widgets; - GPtrArray *remove_buttons; + GPtrArray *widgets; + GPtrArray *remove_buttons; - NmtNewtWidget *add_button; - GBinding *add_sensitivity; + NmtNewtWidget *add_button; + GBinding * add_sensitivity; } NmtWidgetListPrivate; enum { - PROP_0, - PROP_CREATE_CALLBACK, - PROP_USER_DATA, - PROP_DESTROY_NOTIFY, - PROP_EMPTY_WIDGET, - PROP_LENGTH, - - LAST_PROP + PROP_0, + PROP_CREATE_CALLBACK, + PROP_USER_DATA, + PROP_DESTROY_NOTIFY, + PROP_EMPTY_WIDGET, + PROP_LENGTH, + + LAST_PROP }; enum { - ADD_CLICKED, - REMOVE_CLICKED, + ADD_CLICKED, + REMOVE_CLICKED, - LAST_SIGNAL + LAST_SIGNAL }; -static guint signals[LAST_SIGNAL] = { 0 }; +static guint signals[LAST_SIGNAL] = {0}; -static void add_clicked (NmtNewtButton *button, gpointer user_data); -static void remove_clicked (NmtNewtButton *button, gpointer user_data); +static void add_clicked(NmtNewtButton *button, gpointer user_data); +static void remove_clicked(NmtNewtButton *button, gpointer user_data); /** * NmtWidgetListCallback: @@ -102,165 +103,168 @@ static void remove_clicked (NmtNewtButton *button, gpointer user_data); * Returns: a new #NmtWidgetList. */ NmtNewtWidget * -nmt_widget_list_new (NmtWidgetListCallback create_callback, - gpointer user_data, - GDestroyNotify destroy_notify, - NmtNewtWidget *empty_widget) +nmt_widget_list_new(NmtWidgetListCallback create_callback, + gpointer user_data, + GDestroyNotify destroy_notify, + NmtNewtWidget * empty_widget) { - return g_object_new (NMT_TYPE_WIDGET_LIST, - "create-callback", create_callback, - "user-data", user_data, - "destroy-notify", destroy_notify, - "empty-widget", empty_widget, - NULL); + return g_object_new(NMT_TYPE_WIDGET_LIST, + "create-callback", + create_callback, + "user-data", + user_data, + "destroy-notify", + destroy_notify, + "empty-widget", + empty_widget, + NULL); } static void -nmt_widget_list_init (NmtWidgetList *list) +nmt_widget_list_init(NmtWidgetList *list) { - NmtWidgetListPrivate *priv = NMT_WIDGET_LIST_GET_PRIVATE (list); + NmtWidgetListPrivate *priv = NMT_WIDGET_LIST_GET_PRIVATE(list); - priv->widgets = g_ptr_array_new (); - priv->remove_buttons = g_ptr_array_new (); + priv->widgets = g_ptr_array_new(); + priv->remove_buttons = g_ptr_array_new(); - priv->add_button = nmt_newt_button_new (_("Add...")); - g_signal_connect (priv->add_button, "clicked", - G_CALLBACK (add_clicked), list); - nmt_newt_grid_add (NMT_NEWT_GRID (list), priv->add_button, 0, 0); + priv->add_button = nmt_newt_button_new(_("Add...")); + g_signal_connect(priv->add_button, "clicked", G_CALLBACK(add_clicked), list); + nmt_newt_grid_add(NMT_NEWT_GRID(list), priv->add_button, 0, 0); } static void -nmt_widget_list_constructed (GObject *object) +nmt_widget_list_constructed(GObject *object) { - NmtWidgetListPrivate *priv = NMT_WIDGET_LIST_GET_PRIVATE (object); + NmtWidgetListPrivate *priv = NMT_WIDGET_LIST_GET_PRIVATE(object); - if (priv->length == 0 && priv->empty_widget) { - nmt_newt_widget_set_visible (priv->empty_widget, TRUE); - nmt_newt_grid_move (NMT_NEWT_GRID (object), priv->add_button, 0, 1); - } + if (priv->length == 0 && priv->empty_widget) { + nmt_newt_widget_set_visible(priv->empty_widget, TRUE); + nmt_newt_grid_move(NMT_NEWT_GRID(object), priv->add_button, 0, 1); + } - G_OBJECT_CLASS (nmt_widget_list_parent_class)->constructed (object); + G_OBJECT_CLASS(nmt_widget_list_parent_class)->constructed(object); } static void -nmt_widget_list_finalize (GObject *object) +nmt_widget_list_finalize(GObject *object) { - NmtWidgetListPrivate *priv = NMT_WIDGET_LIST_GET_PRIVATE (object); + NmtWidgetListPrivate *priv = NMT_WIDGET_LIST_GET_PRIVATE(object); - g_ptr_array_unref (priv->widgets); - g_ptr_array_unref (priv->remove_buttons); + g_ptr_array_unref(priv->widgets); + g_ptr_array_unref(priv->remove_buttons); - if (priv->user_data && priv->destroy_notify) - priv->destroy_notify (priv->user_data); + if (priv->user_data && priv->destroy_notify) + priv->destroy_notify(priv->user_data); - g_clear_object (&priv->empty_widget); + g_clear_object(&priv->empty_widget); - G_OBJECT_CLASS (nmt_widget_list_parent_class)->finalize (object); + G_OBJECT_CLASS(nmt_widget_list_parent_class)->finalize(object); } static void -ensure_widgets (NmtWidgetList *list) +ensure_widgets(NmtWidgetList *list) { - NmtWidgetListPrivate *priv = NMT_WIDGET_LIST_GET_PRIVATE (list); - NmtNewtWidget *widget, *button, *focus; - gboolean was_empty; - NmtNewtForm *form; - int i; - - was_empty = priv->widgets->len == 0; - - if (priv->length < priv->widgets->len) { - /* remove excess widgets */ - for (i = priv->length; i < priv->widgets->len; i++) { - nmt_newt_container_remove (NMT_NEWT_CONTAINER (list), priv->widgets->pdata[i]); - nmt_newt_container_remove (NMT_NEWT_CONTAINER (list), priv->remove_buttons->pdata[i]); - } - g_ptr_array_set_size (priv->widgets, priv->length); - g_ptr_array_set_size (priv->remove_buttons, priv->length); - - } else if (priv->length > priv->widgets->len) { - /* add new widgets */ - for (i = priv->widgets->len; i < priv->length; i++) { - widget = NMT_WIDGET_LIST_GET_CLASS (list)->create_widget (list, i); - - nmt_newt_grid_add (NMT_NEWT_GRID (list), widget, 0, i); - g_ptr_array_add (priv->widgets, widget); - - button = nmt_newt_button_new (_("Remove")); - g_signal_connect (button, "clicked", - G_CALLBACK (remove_clicked), list); - - nmt_newt_grid_add (NMT_NEWT_GRID (list), button, 1, i); - nmt_newt_widget_set_padding (button, 1, 0, 0, 0); - g_ptr_array_add (priv->remove_buttons, button); - } - - } else - return; - - if (priv->widgets->len == 0 && priv->empty_widget) { - nmt_newt_widget_set_visible (priv->empty_widget, TRUE); - nmt_newt_grid_move (NMT_NEWT_GRID (list), priv->add_button, 0, 1); - } else { - if (was_empty && priv->empty_widget) - nmt_newt_widget_set_visible (priv->empty_widget, FALSE); - nmt_newt_grid_move (NMT_NEWT_GRID (list), priv->add_button, 0, priv->length); - } - - form = nmt_newt_widget_get_form (NMT_NEWT_WIDGET (list)); - if (form) { - if (priv->widgets->len) { - if (was_empty) - focus = priv->widgets->pdata[0]; - else - focus = priv->widgets->pdata[priv->widgets->len - 1]; - } else - focus = priv->add_button; - nmt_newt_form_set_focus (form, focus); - } - - g_clear_object (&priv->add_sensitivity); - if (priv->widgets->len) { - widget = priv->widgets->pdata[priv->widgets->len - 1]; - priv->add_sensitivity = g_object_bind_property (widget, "valid", - priv->add_button, "sensitive", - G_BINDING_SYNC_CREATE); - g_object_add_weak_pointer (G_OBJECT (priv->add_sensitivity), - (gpointer *)&priv->add_sensitivity); - } else - nmt_newt_component_set_sensitive (NMT_NEWT_COMPONENT (priv->add_button), TRUE); + NmtWidgetListPrivate *priv = NMT_WIDGET_LIST_GET_PRIVATE(list); + NmtNewtWidget * widget, *button, *focus; + gboolean was_empty; + NmtNewtForm * form; + int i; + + was_empty = priv->widgets->len == 0; + + if (priv->length < priv->widgets->len) { + /* remove excess widgets */ + for (i = priv->length; i < priv->widgets->len; i++) { + nmt_newt_container_remove(NMT_NEWT_CONTAINER(list), priv->widgets->pdata[i]); + nmt_newt_container_remove(NMT_NEWT_CONTAINER(list), priv->remove_buttons->pdata[i]); + } + g_ptr_array_set_size(priv->widgets, priv->length); + g_ptr_array_set_size(priv->remove_buttons, priv->length); + + } else if (priv->length > priv->widgets->len) { + /* add new widgets */ + for (i = priv->widgets->len; i < priv->length; i++) { + widget = NMT_WIDGET_LIST_GET_CLASS(list)->create_widget(list, i); + + nmt_newt_grid_add(NMT_NEWT_GRID(list), widget, 0, i); + g_ptr_array_add(priv->widgets, widget); + + button = nmt_newt_button_new(_("Remove")); + g_signal_connect(button, "clicked", G_CALLBACK(remove_clicked), list); + + nmt_newt_grid_add(NMT_NEWT_GRID(list), button, 1, i); + nmt_newt_widget_set_padding(button, 1, 0, 0, 0); + g_ptr_array_add(priv->remove_buttons, button); + } + + } else + return; + + if (priv->widgets->len == 0 && priv->empty_widget) { + nmt_newt_widget_set_visible(priv->empty_widget, TRUE); + nmt_newt_grid_move(NMT_NEWT_GRID(list), priv->add_button, 0, 1); + } else { + if (was_empty && priv->empty_widget) + nmt_newt_widget_set_visible(priv->empty_widget, FALSE); + nmt_newt_grid_move(NMT_NEWT_GRID(list), priv->add_button, 0, priv->length); + } + + form = nmt_newt_widget_get_form(NMT_NEWT_WIDGET(list)); + if (form) { + if (priv->widgets->len) { + if (was_empty) + focus = priv->widgets->pdata[0]; + else + focus = priv->widgets->pdata[priv->widgets->len - 1]; + } else + focus = priv->add_button; + nmt_newt_form_set_focus(form, focus); + } + + g_clear_object(&priv->add_sensitivity); + if (priv->widgets->len) { + widget = priv->widgets->pdata[priv->widgets->len - 1]; + priv->add_sensitivity = g_object_bind_property(widget, + "valid", + priv->add_button, + "sensitive", + G_BINDING_SYNC_CREATE); + g_object_add_weak_pointer(G_OBJECT(priv->add_sensitivity), + (gpointer *) &priv->add_sensitivity); + } else + nmt_newt_component_set_sensitive(NMT_NEWT_COMPONENT(priv->add_button), TRUE); } static void -add_clicked (NmtNewtButton *button, gpointer list) +add_clicked(NmtNewtButton *button, gpointer list) { - g_signal_emit (G_OBJECT (list), signals[ADD_CLICKED], 0, NULL); + g_signal_emit(G_OBJECT(list), signals[ADD_CLICKED], 0, NULL); } static void -remove_clicked (NmtNewtButton *button, gpointer list) +remove_clicked(NmtNewtButton *button, gpointer list) { - NmtWidgetListPrivate *priv = NMT_WIDGET_LIST_GET_PRIVATE (list); - int i; + NmtWidgetListPrivate *priv = NMT_WIDGET_LIST_GET_PRIVATE(list); + int i; - for (i = 0; i < priv->remove_buttons->len; i++) { - if (priv->remove_buttons->pdata[i] == (gpointer)button) - break; - } - g_return_if_fail (i < priv->remove_buttons->len); + for (i = 0; i < priv->remove_buttons->len; i++) { + if (priv->remove_buttons->pdata[i] == (gpointer) button) + break; + } + g_return_if_fail(i < priv->remove_buttons->len); - g_signal_emit (G_OBJECT (list), signals[REMOVE_CLICKED], 0, i, NULL); + g_signal_emit(G_OBJECT(list), signals[REMOVE_CLICKED], 0, i, NULL); } static NmtNewtWidget * -nmt_widget_list_real_create_widget (NmtWidgetList *list, - int n) +nmt_widget_list_real_create_widget(NmtWidgetList *list, int n) { - NmtWidgetListPrivate *priv = NMT_WIDGET_LIST_GET_PRIVATE (list); + NmtWidgetListPrivate *priv = NMT_WIDGET_LIST_GET_PRIVATE(list); - g_return_val_if_fail (priv->create_callback != NULL, NULL); + g_return_val_if_fail(priv->create_callback != NULL, NULL); - return priv->create_callback (list, n, priv->user_data); + return priv->create_callback(list, n, priv->user_data); } /** @@ -272,11 +276,11 @@ nmt_widget_list_real_create_widget (NmtWidgetList *list, * Returns: the number of widgets in the list. */ int -nmt_widget_list_get_length (NmtWidgetList *list) +nmt_widget_list_get_length(NmtWidgetList *list) { - NmtWidgetListPrivate *priv = NMT_WIDGET_LIST_GET_PRIVATE (list); + NmtWidgetListPrivate *priv = NMT_WIDGET_LIST_GET_PRIVATE(list); - return priv->length; + return priv->length; } /** @@ -288,102 +292,95 @@ nmt_widget_list_get_length (NmtWidgetList *list) * deleted as necessary. */ void -nmt_widget_list_set_length (NmtWidgetList *list, - int length) +nmt_widget_list_set_length(NmtWidgetList *list, int length) { - NmtWidgetListPrivate *priv = NMT_WIDGET_LIST_GET_PRIVATE (list); + NmtWidgetListPrivate *priv = NMT_WIDGET_LIST_GET_PRIVATE(list); - if (priv->length != length) { - priv->length = length; - g_object_notify (G_OBJECT (list), "length"); - } + if (priv->length != length) { + priv->length = length; + g_object_notify(G_OBJECT(list), "length"); + } - ensure_widgets (list); + ensure_widgets(list); } static void -nmt_widget_list_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) +nmt_widget_list_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { - NmtWidgetListPrivate *priv = NMT_WIDGET_LIST_GET_PRIVATE (object); - - switch (prop_id) { - case PROP_CREATE_CALLBACK: - priv->create_callback = g_value_get_pointer (value); - break; - case PROP_USER_DATA: - priv->user_data = g_value_get_pointer (value); - break; - case PROP_DESTROY_NOTIFY: - priv->destroy_notify = g_value_get_pointer (value); - break; - case PROP_LENGTH: - priv->length = g_value_get_int (value); - ensure_widgets (NMT_WIDGET_LIST (object)); - break; - case PROP_EMPTY_WIDGET: - priv->empty_widget = g_value_get_object (value); - if (priv->empty_widget) { - g_object_ref_sink (priv->empty_widget); - nmt_newt_grid_add (NMT_NEWT_GRID (object), priv->empty_widget, 0, 0); - } - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtWidgetListPrivate *priv = NMT_WIDGET_LIST_GET_PRIVATE(object); + + switch (prop_id) { + case PROP_CREATE_CALLBACK: + priv->create_callback = g_value_get_pointer(value); + break; + case PROP_USER_DATA: + priv->user_data = g_value_get_pointer(value); + break; + case PROP_DESTROY_NOTIFY: + priv->destroy_notify = g_value_get_pointer(value); + break; + case PROP_LENGTH: + priv->length = g_value_get_int(value); + ensure_widgets(NMT_WIDGET_LIST(object)); + break; + case PROP_EMPTY_WIDGET: + priv->empty_widget = g_value_get_object(value); + if (priv->empty_widget) { + g_object_ref_sink(priv->empty_widget); + nmt_newt_grid_add(NMT_NEWT_GRID(object), priv->empty_widget, 0, 0); + } + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_widget_list_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) +nmt_widget_list_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - NmtWidgetListPrivate *priv = NMT_WIDGET_LIST_GET_PRIVATE (object); - - switch (prop_id) { - case PROP_CREATE_CALLBACK: - g_value_set_pointer (value, priv->create_callback); - break; - case PROP_USER_DATA: - g_value_set_pointer (value, priv->user_data); - break; - case PROP_DESTROY_NOTIFY: - g_value_set_pointer (value, priv->destroy_notify); - break; - case PROP_LENGTH: - g_value_set_int (value, priv->length); - break; - case PROP_EMPTY_WIDGET: - g_value_set_object (value, priv->empty_widget); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtWidgetListPrivate *priv = NMT_WIDGET_LIST_GET_PRIVATE(object); + + switch (prop_id) { + case PROP_CREATE_CALLBACK: + g_value_set_pointer(value, priv->create_callback); + break; + case PROP_USER_DATA: + g_value_set_pointer(value, priv->user_data); + break; + case PROP_DESTROY_NOTIFY: + g_value_set_pointer(value, priv->destroy_notify); + break; + case PROP_LENGTH: + g_value_set_int(value, priv->length); + break; + case PROP_EMPTY_WIDGET: + g_value_set_object(value, priv->empty_widget); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_widget_list_class_init (NmtWidgetListClass *list_class) +nmt_widget_list_class_init(NmtWidgetListClass *list_class) { - GObjectClass *object_class = G_OBJECT_CLASS (list_class); + GObjectClass *object_class = G_OBJECT_CLASS(list_class); - g_type_class_add_private (list_class, sizeof (NmtWidgetListPrivate)); + g_type_class_add_private(list_class, sizeof(NmtWidgetListPrivate)); - /* virtual methods */ - object_class->constructed = nmt_widget_list_constructed; - object_class->set_property = nmt_widget_list_set_property; - object_class->get_property = nmt_widget_list_get_property; - object_class->finalize = nmt_widget_list_finalize; + /* virtual methods */ + object_class->constructed = nmt_widget_list_constructed; + object_class->set_property = nmt_widget_list_set_property; + object_class->get_property = nmt_widget_list_get_property; + object_class->finalize = nmt_widget_list_finalize; - list_class->create_widget = nmt_widget_list_real_create_widget; + list_class->create_widget = nmt_widget_list_real_create_widget; - /* signals */ + /* signals */ - /** + /** * NmtNewtWidget::add-clicked: * @list: the #NmtNewtWidgetList * @@ -394,14 +391,16 @@ nmt_widget_list_class_init (NmtWidgetListClass *list_class) * FIXME: the "Add" button should be insensitive if it's * not going to work. */ - signals[ADD_CLICKED] = - g_signal_new ("add-clicked", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NmtWidgetListClass, add_clicked), - NULL, NULL, NULL, - G_TYPE_NONE, 0); - /** + signals[ADD_CLICKED] = g_signal_new("add-clicked", + G_OBJECT_CLASS_TYPE(object_class), + G_SIGNAL_RUN_FIRST, + G_STRUCT_OFFSET(NmtWidgetListClass, add_clicked), + NULL, + NULL, + NULL, + G_TYPE_NONE, + 0); + /** * NmtNewtWidget::remove-clicked: * @list: the #NmtNewtWidgetList * @n: the widget being removed @@ -413,69 +412,76 @@ nmt_widget_list_class_init (NmtWidgetListClass *list_class) * FIXME: the "Remove" button should be insensitive if it's not * going to work. */ - signals[REMOVE_CLICKED] = - g_signal_new ("remove-clicked", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NmtWidgetListClass, remove_clicked), - NULL, NULL, NULL, - G_TYPE_NONE, 1, G_TYPE_INT); - - /* properties */ - - /** + signals[REMOVE_CLICKED] = g_signal_new("remove-clicked", + G_OBJECT_CLASS_TYPE(object_class), + G_SIGNAL_RUN_FIRST, + G_STRUCT_OFFSET(NmtWidgetListClass, remove_clicked), + NULL, + NULL, + NULL, + G_TYPE_NONE, + 1, + G_TYPE_INT); + + /* properties */ + + /** * NmtWidgetList:create-callback: * * Callback called to create a new widget. */ - g_object_class_install_property - (object_class, PROP_CREATE_CALLBACK, - g_param_spec_pointer ("create-callback", "", "", - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS)); - /** + g_object_class_install_property( + object_class, + PROP_CREATE_CALLBACK, + g_param_spec_pointer("create-callback", + "", + "", + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** * NmtWidgetList:user-data: * * User data for #NmtWidgetList:create-callback */ - g_object_class_install_property - (object_class, PROP_USER_DATA, - g_param_spec_pointer ("user-data", "", "", - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS)); - /** + g_object_class_install_property( + object_class, + PROP_USER_DATA, + g_param_spec_pointer("user-data", "", "", G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** * NmtWidgetList:destroy-notify: * * #GDestroyNotify for #NmtWidgetList:user-data */ - g_object_class_install_property - (object_class, PROP_DESTROY_NOTIFY, - g_param_spec_pointer ("destroy-notify", "", "", - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS)); - /** + g_object_class_install_property( + object_class, + PROP_DESTROY_NOTIFY, + g_param_spec_pointer("destroy-notify", "", "", G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** * NmtWidgetList:length: * * The length of the widget list; changing this value will add or * remove widgets from the list. */ - g_object_class_install_property - (object_class, PROP_LENGTH, - g_param_spec_int ("length", "", "", - 0, G_MAXINT, 0, - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS)); - /** + g_object_class_install_property(object_class, + PROP_LENGTH, + g_param_spec_int("length", + "", + "", + 0, + G_MAXINT, + 0, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** * NmtWidgetList:empty-widget: * * If non-%NULL, this widget will be displayed when there are * no "real" widgets in the list. */ - g_object_class_install_property - (object_class, PROP_EMPTY_WIDGET, - g_param_spec_object ("empty-widget", "", "", - NMT_TYPE_NEWT_WIDGET, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); + g_object_class_install_property( + object_class, + PROP_EMPTY_WIDGET, + g_param_spec_object("empty-widget", + "", + "", + NMT_TYPE_NEWT_WIDGET, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); } diff --git a/clients/tui/nmt-widget-list.h b/clients/tui/nmt-widget-list.h index 27c881a67d..dae3bdc5db 100644 --- a/clients/tui/nmt-widget-list.h +++ b/clients/tui/nmt-widget-list.h @@ -8,45 +8,43 @@ #include "nmt-newt-grid.h" -#define NMT_TYPE_WIDGET_LIST (nmt_widget_list_get_type ()) -#define NMT_WIDGET_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NMT_TYPE_WIDGET_LIST, NmtWidgetList)) -#define NMT_WIDGET_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NMT_TYPE_WIDGET_LIST, NmtWidgetListClass)) -#define NMT_IS_WIDGET_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NMT_TYPE_WIDGET_LIST)) -#define NMT_IS_WIDGET_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NMT_TYPE_WIDGET_LIST)) -#define NMT_WIDGET_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NMT_TYPE_WIDGET_LIST, NmtWidgetListClass)) +#define NMT_TYPE_WIDGET_LIST (nmt_widget_list_get_type()) +#define NMT_WIDGET_LIST(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), NMT_TYPE_WIDGET_LIST, NmtWidgetList)) +#define NMT_WIDGET_LIST_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), NMT_TYPE_WIDGET_LIST, NmtWidgetListClass)) +#define NMT_IS_WIDGET_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), NMT_TYPE_WIDGET_LIST)) +#define NMT_IS_WIDGET_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), NMT_TYPE_WIDGET_LIST)) +#define NMT_WIDGET_LIST_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), NMT_TYPE_WIDGET_LIST, NmtWidgetListClass)) typedef struct { - NmtNewtGrid parent; + NmtNewtGrid parent; } NmtWidgetList; typedef struct { - NmtNewtGridClass parent; + NmtNewtGridClass parent; - /* signals */ - void (*add_clicked) (NmtWidgetList *list); - void (*remove_clicked) (NmtWidgetList *list, - int n); + /* signals */ + void (*add_clicked)(NmtWidgetList *list); + void (*remove_clicked)(NmtWidgetList *list, int n); - /* methods */ - NmtNewtWidget * (*create_widget) (NmtWidgetList *list, - int n); + /* methods */ + NmtNewtWidget *(*create_widget)(NmtWidgetList *list, int n); } NmtWidgetListClass; -GType nmt_widget_list_get_type (void); +GType nmt_widget_list_get_type(void); -typedef NmtNewtWidget * (*NmtWidgetListCallback) (NmtWidgetList *list, - int n, - gpointer user_data); +typedef NmtNewtWidget *(*NmtWidgetListCallback)(NmtWidgetList *list, int n, gpointer user_data); -NmtNewtWidget *nmt_widget_list_new (NmtWidgetListCallback create_callback, - gpointer user_data, - GDestroyNotify destroy_notify, - NmtNewtWidget *empty_widget); +NmtNewtWidget *nmt_widget_list_new(NmtWidgetListCallback create_callback, + gpointer user_data, + GDestroyNotify destroy_notify, + NmtNewtWidget * empty_widget); -int nmt_widget_list_get_length (NmtWidgetList *list); -void nmt_widget_list_set_length (NmtWidgetList *list, - int length); +int nmt_widget_list_get_length(NmtWidgetList *list); +void nmt_widget_list_set_length(NmtWidgetList *list, int length); #endif /* NMT_WIDGET_LIST_H */ diff --git a/clients/tui/nmtui-connect.c b/clients/tui/nmtui-connect.c index ea332096c9..8948b1d695 100644 --- a/clients/tui/nmtui-connect.c +++ b/clients/tui/nmtui-connect.c @@ -31,453 +31,458 @@ * before starting the command and restored after it returns. */ static gboolean -openconnect_authenticate (NMConnection *connection, char **cookie, char **gateway, char **gwcert) +openconnect_authenticate(NMConnection *connection, char **cookie, char **gateway, char **gwcert) { - GError *error = NULL; - NMSettingVpn *s_vpn; - gboolean ret; - int status = 0; - const char *gw, *port; - - nmt_newt_message_dialog (_("openconnect will be run to authenticate.\nIt will return to nmtui when completed.")); - - /* Get port */ - s_vpn = nm_connection_get_setting_vpn (connection); - gw = nm_setting_vpn_get_data_item (s_vpn, "gateway"); - port = gw ? strrchr (gw, ':') : NULL; - - newtSuspend (); - - ret = nm_vpn_openconnect_authenticate_helper (gw, cookie, gateway, gwcert, &status, &error); - - newtResume (); - - if (!ret) { - nmt_newt_message_dialog (_("Error: openconnect failed: %s"), error->message); - g_clear_error (&error); - return FALSE; - } - - if (WIFEXITED (status)) { - if (WEXITSTATUS (status) != 0) { - nmt_newt_message_dialog (_("openconnect failed with status %d"), WEXITSTATUS (status)); - return FALSE; - } - } else if (WIFSIGNALED (status)) { - nmt_newt_message_dialog (_("openconnect failed with signal %d"), WTERMSIG (status)); - return FALSE; - } - - if (gateway && *gateway && port) { - char *tmp = *gateway; - *gateway = g_strdup_printf ("%s%s", *gateway, port); - g_free (tmp); - } - - return TRUE; + GError * error = NULL; + NMSettingVpn *s_vpn; + gboolean ret; + int status = 0; + const char * gw, *port; + + nmt_newt_message_dialog( + _("openconnect will be run to authenticate.\nIt will return to nmtui when completed.")); + + /* Get port */ + s_vpn = nm_connection_get_setting_vpn(connection); + gw = nm_setting_vpn_get_data_item(s_vpn, "gateway"); + port = gw ? strrchr(gw, ':') : NULL; + + newtSuspend(); + + ret = nm_vpn_openconnect_authenticate_helper(gw, cookie, gateway, gwcert, &status, &error); + + newtResume(); + + if (!ret) { + nmt_newt_message_dialog(_("Error: openconnect failed: %s"), error->message); + g_clear_error(&error); + return FALSE; + } + + if (WIFEXITED(status)) { + if (WEXITSTATUS(status) != 0) { + nmt_newt_message_dialog(_("openconnect failed with status %d"), WEXITSTATUS(status)); + return FALSE; + } + } else if (WIFSIGNALED(status)) { + nmt_newt_message_dialog(_("openconnect failed with signal %d"), WTERMSIG(status)); + return FALSE; + } + + if (gateway && *gateway && port) { + char *tmp = *gateway; + *gateway = g_strdup_printf("%s%s", *gateway, port); + g_free(tmp); + } + + return TRUE; } static void -secrets_requested (NMSecretAgentSimple *agent, - const char *request_id, - const char *title, - const char *msg, - GPtrArray *secrets, - gpointer user_data) +secrets_requested(NMSecretAgentSimple *agent, + const char * request_id, + const char * title, + const char * msg, + GPtrArray * secrets, + gpointer user_data) { - NmtNewtForm *form; - NMConnection *connection = NM_CONNECTION (user_data); - int i; - - /* Get secrets for OpenConnect VPN */ - if ( connection - && nm_connection_is_type (connection, NM_SETTING_VPN_SETTING_NAME)) { - NMSettingVpn *s_vpn = nm_connection_get_setting_vpn (connection); - - if (nm_streq0 (nm_setting_vpn_get_service_type (s_vpn), NM_SECRET_AGENT_VPN_TYPE_OPENCONNECT)) { - gs_free char *cookie = NULL; - gs_free char *gateway = NULL; - gs_free char *gwcert = NULL; - - openconnect_authenticate (connection, &cookie, &gateway, &gwcert); - - for (i = 0; i < secrets->len; i++) { - NMSecretAgentSimpleSecret *secret = secrets->pdata[i]; - - if (secret->secret_type != NM_SECRET_AGENT_SECRET_TYPE_VPN_SECRET) - continue; - if (!nm_streq0 (secret->vpn_type, NM_SECRET_AGENT_VPN_TYPE_OPENCONNECT)) - continue; - if (nm_streq0 (secret->entry_id, NM_SECRET_AGENT_ENTRY_ID_PREFX_VPN_SECRETS "cookie")) { - g_free (secret->value); - secret->value = g_steal_pointer (&cookie); - } else if (nm_streq0 (secret->entry_id, NM_SECRET_AGENT_ENTRY_ID_PREFX_VPN_SECRETS "gateway")) { - g_free (secret->value); - secret->value = g_steal_pointer (&gateway); - } else if (nm_streq0 (secret->entry_id, NM_SECRET_AGENT_ENTRY_ID_PREFX_VPN_SECRETS "gwcert")) { - g_free (secret->value); - secret->value = g_steal_pointer (&gwcert); - } - } - } - } - - form = nmt_password_dialog_new (request_id, title, msg, secrets); - nmt_newt_form_run_sync (form); - - if (nmt_password_dialog_succeeded (NMT_PASSWORD_DIALOG (form))) - nm_secret_agent_simple_response (agent, request_id, secrets); - else - nm_secret_agent_simple_response (agent, request_id, NULL); - - g_object_unref (form); + NmtNewtForm * form; + NMConnection *connection = NM_CONNECTION(user_data); + int i; + + /* Get secrets for OpenConnect VPN */ + if (connection && nm_connection_is_type(connection, NM_SETTING_VPN_SETTING_NAME)) { + NMSettingVpn *s_vpn = nm_connection_get_setting_vpn(connection); + + if (nm_streq0(nm_setting_vpn_get_service_type(s_vpn), + NM_SECRET_AGENT_VPN_TYPE_OPENCONNECT)) { + gs_free char *cookie = NULL; + gs_free char *gateway = NULL; + gs_free char *gwcert = NULL; + + openconnect_authenticate(connection, &cookie, &gateway, &gwcert); + + for (i = 0; i < secrets->len; i++) { + NMSecretAgentSimpleSecret *secret = secrets->pdata[i]; + + if (secret->secret_type != NM_SECRET_AGENT_SECRET_TYPE_VPN_SECRET) + continue; + if (!nm_streq0(secret->vpn_type, NM_SECRET_AGENT_VPN_TYPE_OPENCONNECT)) + continue; + if (nm_streq0(secret->entry_id, + NM_SECRET_AGENT_ENTRY_ID_PREFX_VPN_SECRETS "cookie")) { + g_free(secret->value); + secret->value = g_steal_pointer(&cookie); + } else if (nm_streq0(secret->entry_id, + NM_SECRET_AGENT_ENTRY_ID_PREFX_VPN_SECRETS "gateway")) { + g_free(secret->value); + secret->value = g_steal_pointer(&gateway); + } else if (nm_streq0(secret->entry_id, + NM_SECRET_AGENT_ENTRY_ID_PREFX_VPN_SECRETS "gwcert")) { + g_free(secret->value); + secret->value = g_steal_pointer(&gwcert); + } + } + } + } + + form = nmt_password_dialog_new(request_id, title, msg, secrets); + nmt_newt_form_run_sync(form); + + if (nmt_password_dialog_succeeded(NMT_PASSWORD_DIALOG(form))) + nm_secret_agent_simple_response(agent, request_id, secrets); + else + nm_secret_agent_simple_response(agent, request_id, NULL); + + g_object_unref(form); } typedef struct { - NMDevice *device; - NMActiveConnection *active; - NmtSyncOp *op; + NMDevice * device; + NMActiveConnection *active; + NmtSyncOp * op; } ActivateConnectionInfo; static void -connect_cancelled (NmtNewtForm *form, - gpointer user_data) +connect_cancelled(NmtNewtForm *form, gpointer user_data) { - ActivateConnectionInfo *info = user_data; - GError *error = NULL; + ActivateConnectionInfo *info = user_data; + GError * error = NULL; - error = g_error_new_literal (G_IO_ERROR, G_IO_ERROR_CANCELLED, "Cancelled"); - nmt_sync_op_complete_boolean (info->op, FALSE, error); - g_clear_error (&error); + error = g_error_new_literal(G_IO_ERROR, G_IO_ERROR_CANCELLED, "Cancelled"); + nmt_sync_op_complete_boolean(info->op, FALSE, error); + g_clear_error(&error); } static void -check_activated (ActivateConnectionInfo *info) +check_activated(ActivateConnectionInfo *info) { - NMActiveConnectionState ac_state; - const char *reason = NULL; - gs_free_error GError *error = NULL; - - ac_state = nmc_activation_get_effective_state (info->active, info->device, &reason); - if (!NM_IN_SET (ac_state, - NM_ACTIVE_CONNECTION_STATE_ACTIVATED, - NM_ACTIVE_CONNECTION_STATE_DEACTIVATED)) - return; - - if (ac_state == NM_ACTIVE_CONNECTION_STATE_DEACTIVATED) { - nm_assert (reason); - error = g_error_new (NM_CLIENT_ERROR, NM_CLIENT_ERROR_FAILED, - _("Activation failed: %s"), reason); - } - - nmt_sync_op_complete_boolean (info->op, error == NULL, error); + NMActiveConnectionState ac_state; + const char * reason = NULL; + gs_free_error GError *error = NULL; + + ac_state = nmc_activation_get_effective_state(info->active, info->device, &reason); + if (!NM_IN_SET(ac_state, + NM_ACTIVE_CONNECTION_STATE_ACTIVATED, + NM_ACTIVE_CONNECTION_STATE_DEACTIVATED)) + return; + + if (ac_state == NM_ACTIVE_CONNECTION_STATE_DEACTIVATED) { + nm_assert(reason); + error = g_error_new(NM_CLIENT_ERROR, + NM_CLIENT_ERROR_FAILED, + _("Activation failed: %s"), + reason); + } + + nmt_sync_op_complete_boolean(info->op, error == NULL, error); } static void -activate_ac_state_changed (GObject *object, - GParamSpec *pspec, - gpointer user_data) +activate_ac_state_changed(GObject *object, GParamSpec *pspec, gpointer user_data) { - check_activated (user_data); + check_activated(user_data); } static void -activate_device_state_changed (GObject *object, - GParamSpec *pspec, - gpointer user_data) +activate_device_state_changed(GObject *object, GParamSpec *pspec, gpointer user_data) { - check_activated (user_data); + check_activated(user_data); } static void -activate_callback (GObject *client, - GAsyncResult *result, - gpointer user_data) +activate_callback(GObject *client, GAsyncResult *result, gpointer user_data) { - NmtSyncOp *op = user_data; - NMActiveConnection *ac; - GError *error = NULL; - - ac = nm_client_activate_connection_finish (NM_CLIENT (client), result, &error); - if (error) - nmt_sync_op_complete_pointer (op, NULL, error); - else - nmt_sync_op_complete_pointer (op, ac, NULL); + NmtSyncOp * op = user_data; + NMActiveConnection *ac; + GError * error = NULL; + + ac = nm_client_activate_connection_finish(NM_CLIENT(client), result, &error); + if (error) + nmt_sync_op_complete_pointer(op, NULL, error); + else + nmt_sync_op_complete_pointer(op, ac, NULL); } static void -add_and_activate_callback (GObject *client, - GAsyncResult *result, - gpointer user_data) +add_and_activate_callback(GObject *client, GAsyncResult *result, gpointer user_data) { - NmtSyncOp *op = user_data; - NMActiveConnection *ac; - GError *error = NULL; - - ac = nm_client_add_and_activate_connection_finish (NM_CLIENT (client), result, &error); - if (error) - nmt_sync_op_complete_pointer (op, NULL, error); - else - nmt_sync_op_complete_pointer (op, ac, NULL); + NmtSyncOp * op = user_data; + NMActiveConnection *ac; + GError * error = NULL; + + ac = nm_client_add_and_activate_connection_finish(NM_CLIENT(client), result, &error); + if (error) + nmt_sync_op_complete_pointer(op, NULL, error); + else + nmt_sync_op_complete_pointer(op, ac, NULL); } static void -deactivate_connection (NMActiveConnection *ac) +deactivate_connection(NMActiveConnection *ac) { - GError *error = NULL; + GError *error = NULL; - if (!nm_client_deactivate_connection (nm_client, ac, NULL, &error)) { - nmt_newt_message_dialog (_("Could not deactivate connection: %s"), error->message); - g_clear_error (&error); - } + if (!nm_client_deactivate_connection(nm_client, ac, NULL, &error)) { + nmt_newt_message_dialog(_("Could not deactivate connection: %s"), error->message); + g_clear_error(&error); + } } static void -activate_connection (NMConnection *connection, - NMDevice *device, - NMObject *specific_object) +activate_connection(NMConnection *connection, NMDevice *device, NMObject *specific_object) { - NmtNewtForm *form; - gs_unref_object NMSecretAgentSimple *agent = NULL; - NmtNewtWidget *label; - NmtSyncOp op; - const char *specific_object_path; - NMActiveConnection *ac; - GError *error = NULL; - ActivateConnectionInfo info = { }; - - form = g_object_new (NMT_TYPE_NEWT_FORM, - "escape-exits", TRUE, - NULL); - label = nmt_newt_label_new (_("Connecting...")); - nmt_newt_form_set_content (form, label); - - agent = nm_secret_agent_simple_new ("nmtui"); - if (agent) { - if (connection) { - nm_secret_agent_simple_enable (agent, - nm_object_get_path (NM_OBJECT (connection))); - } - g_signal_connect (agent, - NM_SECRET_AGENT_SIMPLE_REQUEST_SECRETS, - G_CALLBACK (secrets_requested), - connection); - } - - specific_object_path = specific_object ? nm_object_get_path (specific_object) : NULL; - - /* There's no way to cancel an nm_client_activate_connection() / + NmtNewtForm * form; + gs_unref_object NMSecretAgentSimple *agent = NULL; + NmtNewtWidget * label; + NmtSyncOp op; + const char * specific_object_path; + NMActiveConnection * ac; + GError * error = NULL; + ActivateConnectionInfo info = {}; + + form = g_object_new(NMT_TYPE_NEWT_FORM, "escape-exits", TRUE, NULL); + label = nmt_newt_label_new(_("Connecting...")); + nmt_newt_form_set_content(form, label); + + agent = nm_secret_agent_simple_new("nmtui"); + if (agent) { + if (connection) { + nm_secret_agent_simple_enable(agent, nm_object_get_path(NM_OBJECT(connection))); + } + g_signal_connect(agent, + NM_SECRET_AGENT_SIMPLE_REQUEST_SECRETS, + G_CALLBACK(secrets_requested), + connection); + } + + specific_object_path = specific_object ? nm_object_get_path(specific_object) : NULL; + + /* There's no way to cancel an nm_client_activate_connection() / * nm_client_add_and_activate_connection() call, so we always let them * complete, even if the user hits Esc; they shouldn't normally take long * to complete anyway. */ - nmt_sync_op_init (&op); - if (connection) { - nm_client_activate_connection_async (nm_client, - connection, device, specific_object_path, - NULL, activate_callback, &op); - } else { - nm_client_add_and_activate_connection_async (nm_client, - NULL, device, specific_object_path, - NULL, add_and_activate_callback, &op); - } - - nmt_newt_form_show (form); - - ac = nmt_sync_op_wait_pointer (&op, &error); - if (!ac) { - nmt_newt_message_dialog (_("Could not activate connection: %s"), error->message); - g_clear_error (&error); - goto done; - } else if (nm_active_connection_get_state (ac) == NM_ACTIVE_CONNECTION_STATE_ACTIVATED) { - /* Already active */ - goto done; - } else if (!nmt_newt_widget_get_realized (NMT_NEWT_WIDGET (form))) { - /* User already hit Esc */ - goto done; - } - - if (agent && !connection) { - connection = NM_CONNECTION (nm_active_connection_get_connection (ac)); - if (connection) { - nm_secret_agent_simple_enable (agent, - nm_object_get_path (NM_OBJECT (connection))); - } - } - - /* Now wait for the connection to actually reach the ACTIVATED state, + nmt_sync_op_init(&op); + if (connection) { + nm_client_activate_connection_async(nm_client, + connection, + device, + specific_object_path, + NULL, + activate_callback, + &op); + } else { + nm_client_add_and_activate_connection_async(nm_client, + NULL, + device, + specific_object_path, + NULL, + add_and_activate_callback, + &op); + } + + nmt_newt_form_show(form); + + ac = nmt_sync_op_wait_pointer(&op, &error); + if (!ac) { + nmt_newt_message_dialog(_("Could not activate connection: %s"), error->message); + g_clear_error(&error); + goto done; + } else if (nm_active_connection_get_state(ac) == NM_ACTIVE_CONNECTION_STATE_ACTIVATED) { + /* Already active */ + goto done; + } else if (!nmt_newt_widget_get_realized(NMT_NEWT_WIDGET(form))) { + /* User already hit Esc */ + goto done; + } + + if (agent && !connection) { + connection = NM_CONNECTION(nm_active_connection_get_connection(ac)); + if (connection) { + nm_secret_agent_simple_enable(agent, nm_object_get_path(NM_OBJECT(connection))); + } + } + + /* Now wait for the connection to actually reach the ACTIVATED state, * allowing the user to cancel if it takes too long. */ - nmt_sync_op_init (&op); - info.active = ac; - info.device = device; - info.op = &op; - - g_signal_connect (form, "quit", G_CALLBACK (connect_cancelled), &info); - g_signal_connect (ac, "notify::" NM_ACTIVE_CONNECTION_STATE, - G_CALLBACK (activate_ac_state_changed), &info); - if (device) { - g_signal_connect (device, "notify::" NM_DEVICE_STATE, - G_CALLBACK (activate_device_state_changed), &info); - } - - if (!nmt_sync_op_wait_boolean (&op, &error)) { - if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) - nmt_newt_message_dialog (_("Could not activate connection: %s"), error->message); - g_clear_error (&error); - } - - g_signal_handlers_disconnect_by_func (form, G_CALLBACK (connect_cancelled), &info); - g_signal_handlers_disconnect_by_func (ac, G_CALLBACK (activate_ac_state_changed), &info); - if (device) - g_signal_handlers_disconnect_by_func (device, G_CALLBACK (activate_device_state_changed), &info); - - done: - if (nmt_newt_widget_get_realized (NMT_NEWT_WIDGET (form))) - nmt_newt_form_quit (form); - g_object_unref (form); - - if (agent) - nm_secret_agent_old_unregister (NM_SECRET_AGENT_OLD (agent), NULL, NULL); + nmt_sync_op_init(&op); + info.active = ac; + info.device = device; + info.op = &op; + + g_signal_connect(form, "quit", G_CALLBACK(connect_cancelled), &info); + g_signal_connect(ac, + "notify::" NM_ACTIVE_CONNECTION_STATE, + G_CALLBACK(activate_ac_state_changed), + &info); + if (device) { + g_signal_connect(device, + "notify::" NM_DEVICE_STATE, + G_CALLBACK(activate_device_state_changed), + &info); + } + + if (!nmt_sync_op_wait_boolean(&op, &error)) { + if (!g_error_matches(error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) + nmt_newt_message_dialog(_("Could not activate connection: %s"), error->message); + g_clear_error(&error); + } + + g_signal_handlers_disconnect_by_func(form, G_CALLBACK(connect_cancelled), &info); + g_signal_handlers_disconnect_by_func(ac, G_CALLBACK(activate_ac_state_changed), &info); + if (device) + g_signal_handlers_disconnect_by_func(device, + G_CALLBACK(activate_device_state_changed), + &info); + +done: + if (nmt_newt_widget_get_realized(NMT_NEWT_WIDGET(form))) + nmt_newt_form_quit(form); + g_object_unref(form); + + if (agent) + nm_secret_agent_old_unregister(NM_SECRET_AGENT_OLD(agent), NULL, NULL); } static void -listbox_activated (NmtNewtListbox *listbox, - gpointer user_data) +listbox_activated(NmtNewtListbox *listbox, gpointer user_data) { - NmtConnectConnectionList *list = NMT_CONNECT_CONNECTION_LIST (listbox); - NMConnection *connection; - NMDevice *device; - NMObject *specific_object; - NMActiveConnection *ac; - - if (!nmt_connect_connection_list_get_selection (list, - &connection, - &device, - &specific_object, - &ac)) - return; - - if (ac) - deactivate_connection (ac); - else - activate_connection (connection, device, specific_object); + NmtConnectConnectionList *list = NMT_CONNECT_CONNECTION_LIST(listbox); + NMConnection * connection; + NMDevice * device; + NMObject * specific_object; + NMActiveConnection * ac; + + if (!nmt_connect_connection_list_get_selection(list, + &connection, + &device, + &specific_object, + &ac)) + return; + + if (ac) + deactivate_connection(ac); + else + activate_connection(connection, device, specific_object); } static void -activate_clicked (NmtNewtButton *button, - gpointer listbox) +activate_clicked(NmtNewtButton *button, gpointer listbox) { - listbox_activated (listbox, NULL); + listbox_activated(listbox, NULL); } static void -listbox_active_changed (GObject *object, - GParamSpec *pspec, - gpointer button) +listbox_active_changed(GObject *object, GParamSpec *pspec, gpointer button) { - NmtConnectConnectionList *list = NMT_CONNECT_CONNECTION_LIST (object); - static const char *activate, *deactivate; - static int deactivate_padding, activate_padding; - NMActiveConnection *ac; - gboolean has_selection; - - if (G_UNLIKELY (activate == NULL)) { - int activate_width, deactivate_width; - - activate = _("Activate"); - activate_width = nmt_newt_text_width (activate); - deactivate = _("Deactivate"); - deactivate_width = nmt_newt_text_width (deactivate); - - activate_padding = MAX (0, deactivate_width - activate_width); - deactivate_padding = MAX (0, activate_width - deactivate_width); - } - - has_selection = nmt_connect_connection_list_get_selection (list, NULL, NULL, NULL, &ac); - - nmt_newt_component_set_sensitive (button, has_selection); - if (has_selection && ac) { - nmt_newt_button_set_label (button, deactivate); - nmt_newt_widget_set_padding (button, 0, 0, deactivate_padding, 0); - } else { - nmt_newt_button_set_label (button, activate); - nmt_newt_widget_set_padding (button, 0, 0, activate_padding, 0); - } + NmtConnectConnectionList *list = NMT_CONNECT_CONNECTION_LIST(object); + static const char * activate, *deactivate; + static int deactivate_padding, activate_padding; + NMActiveConnection * ac; + gboolean has_selection; + + if (G_UNLIKELY(activate == NULL)) { + int activate_width, deactivate_width; + + activate = _("Activate"); + activate_width = nmt_newt_text_width(activate); + deactivate = _("Deactivate"); + deactivate_width = nmt_newt_text_width(deactivate); + + activate_padding = MAX(0, deactivate_width - activate_width); + deactivate_padding = MAX(0, activate_width - deactivate_width); + } + + has_selection = nmt_connect_connection_list_get_selection(list, NULL, NULL, NULL, &ac); + + nmt_newt_component_set_sensitive(button, has_selection); + if (has_selection && ac) { + nmt_newt_button_set_label(button, deactivate); + nmt_newt_widget_set_padding(button, 0, 0, deactivate_padding, 0); + } else { + nmt_newt_button_set_label(button, activate); + nmt_newt_widget_set_padding(button, 0, 0, activate_padding, 0); + } } static NmtNewtForm * -nmt_connect_connection_list (gboolean is_top) +nmt_connect_connection_list(gboolean is_top) { - int screen_width, screen_height; - NmtNewtForm *form; - NmtNewtWidget *list, *activate, *quit, *bbox, *grid; - - newtGetScreenSize (&screen_width, &screen_height); - - form = g_object_new (NMT_TYPE_NEWT_FORM, - "y", 2, - "height", screen_height - 4, - "escape-exits", TRUE, - NULL); - - grid = nmt_newt_grid_new (); - - list = nmt_connect_connection_list_new (); - nmt_newt_grid_add (NMT_NEWT_GRID (grid), list, 0, 0); - nmt_newt_grid_set_flags (NMT_NEWT_GRID (grid), list, - NMT_NEWT_GRID_FILL_X | NMT_NEWT_GRID_FILL_Y | - NMT_NEWT_GRID_EXPAND_X | NMT_NEWT_GRID_EXPAND_Y); - g_signal_connect (list, "activated", G_CALLBACK (listbox_activated), NULL); - - bbox = nmt_newt_button_box_new (NMT_NEWT_BUTTON_BOX_VERTICAL); - nmt_newt_grid_add (NMT_NEWT_GRID (grid), bbox, 1, 0); - nmt_newt_widget_set_padding (bbox, 1, 1, 0, 1); - - activate = nmt_newt_button_box_add_start (NMT_NEWT_BUTTON_BOX (bbox), _("Activate")); - g_signal_connect (list, "notify::active", G_CALLBACK (listbox_active_changed), activate); - listbox_active_changed (G_OBJECT (list), NULL, activate); - g_signal_connect (activate, "clicked", G_CALLBACK (activate_clicked), list); - - quit = nmt_newt_button_box_add_end (NMT_NEWT_BUTTON_BOX (bbox), is_top ? _("Quit") : _("Back")); - nmt_newt_widget_set_exit_on_activate (quit, TRUE); - - nmt_newt_form_set_content (form, grid); - return form; + int screen_width, screen_height; + NmtNewtForm * form; + NmtNewtWidget *list, *activate, *quit, *bbox, *grid; + + newtGetScreenSize(&screen_width, &screen_height); + + form = g_object_new(NMT_TYPE_NEWT_FORM, + "y", + 2, + "height", + screen_height - 4, + "escape-exits", + TRUE, + NULL); + + grid = nmt_newt_grid_new(); + + list = nmt_connect_connection_list_new(); + nmt_newt_grid_add(NMT_NEWT_GRID(grid), list, 0, 0); + nmt_newt_grid_set_flags(NMT_NEWT_GRID(grid), + list, + NMT_NEWT_GRID_FILL_X | NMT_NEWT_GRID_FILL_Y | NMT_NEWT_GRID_EXPAND_X + | NMT_NEWT_GRID_EXPAND_Y); + g_signal_connect(list, "activated", G_CALLBACK(listbox_activated), NULL); + + bbox = nmt_newt_button_box_new(NMT_NEWT_BUTTON_BOX_VERTICAL); + nmt_newt_grid_add(NMT_NEWT_GRID(grid), bbox, 1, 0); + nmt_newt_widget_set_padding(bbox, 1, 1, 0, 1); + + activate = nmt_newt_button_box_add_start(NMT_NEWT_BUTTON_BOX(bbox), _("Activate")); + g_signal_connect(list, "notify::active", G_CALLBACK(listbox_active_changed), activate); + listbox_active_changed(G_OBJECT(list), NULL, activate); + g_signal_connect(activate, "clicked", G_CALLBACK(activate_clicked), list); + + quit = nmt_newt_button_box_add_end(NMT_NEWT_BUTTON_BOX(bbox), is_top ? _("Quit") : _("Back")); + nmt_newt_widget_set_exit_on_activate(quit, TRUE); + + nmt_newt_form_set_content(form, grid); + return form; } static NmtNewtForm * -nmt_connect_connection (const char *identifier) +nmt_connect_connection(const char *identifier) { - NmtNewtWidget *list; - NMConnection *connection; - NMDevice *device; - NMObject *specific_object; - NMActiveConnection *ac; - - list = nmt_connect_connection_list_new (); - if (!nmt_connect_connection_list_get_connection (NMT_CONNECT_CONNECTION_LIST (list), - identifier, - &connection, - &device, - &specific_object, - &ac)) - nmt_newt_message_dialog (_("No such connection '%s'"), identifier); - else if (ac) - nmt_newt_message_dialog (_("Connection is already active")); - else - activate_connection (connection, device, specific_object); - g_object_unref (list); - - return NULL; + NmtNewtWidget * list; + NMConnection * connection; + NMDevice * device; + NMObject * specific_object; + NMActiveConnection *ac; + + list = nmt_connect_connection_list_new(); + if (!nmt_connect_connection_list_get_connection(NMT_CONNECT_CONNECTION_LIST(list), + identifier, + &connection, + &device, + &specific_object, + &ac)) + nmt_newt_message_dialog(_("No such connection '%s'"), identifier); + else if (ac) + nmt_newt_message_dialog(_("Connection is already active")); + else + activate_connection(connection, device, specific_object); + g_object_unref(list); + + return NULL; } NmtNewtForm * -nmtui_connect (gboolean is_top, int argc, char **argv) +nmtui_connect(gboolean is_top, int argc, char **argv) { - if (argc == 2) - return nmt_connect_connection (argv[1]); - else - return nmt_connect_connection_list (is_top); + if (argc == 2) + return nmt_connect_connection(argv[1]); + else + return nmt_connect_connection_list(is_top); } diff --git a/clients/tui/nmtui-connect.h b/clients/tui/nmtui-connect.h index c7f590cccb..7769f63a31 100644 --- a/clients/tui/nmtui-connect.h +++ b/clients/tui/nmtui-connect.h @@ -6,6 +6,6 @@ #ifndef NMTUI_CONNECT_H #define NMTUI_CONNECT_H -NmtNewtForm *nmtui_connect (gboolean is_top, int argc, char **argv); +NmtNewtForm *nmtui_connect(gboolean is_top, int argc, char **argv); #endif /* NMTUI_CONNECT_H */ diff --git a/clients/tui/nmtui-edit.c b/clients/tui/nmtui-edit.c index c493c5e410..4aee2bb0b1 100644 --- a/clients/tui/nmtui-edit.c +++ b/clients/tui/nmtui-edit.c @@ -23,544 +23,546 @@ #include "nm-editor-utils.h" static void -list_add_connection (NmtEditConnectionList *list, - gpointer form) +list_add_connection(NmtEditConnectionList *list, gpointer form) { - nmt_add_connection (); - nmt_newt_form_set_focus (form, NMT_NEWT_WIDGET (list)); + nmt_add_connection(); + nmt_newt_form_set_focus(form, NMT_NEWT_WIDGET(list)); } static void -list_edit_connection (NmtEditConnectionList *list, - NMConnection *connection, - gpointer form) +list_edit_connection(NmtEditConnectionList *list, NMConnection *connection, gpointer form) { - nmt_edit_connection (connection); - nmt_newt_form_set_focus (form, NMT_NEWT_WIDGET (list)); + nmt_edit_connection(connection); + nmt_newt_form_set_focus(form, NMT_NEWT_WIDGET(list)); } static void -list_remove_connection (NmtEditConnectionList *list, - NMRemoteConnection *connection, - gpointer form) +list_remove_connection(NmtEditConnectionList *list, NMRemoteConnection *connection, gpointer form) { - nmt_remove_connection (connection); - nmt_newt_form_set_focus (form, NMT_NEWT_WIDGET (list)); + nmt_remove_connection(connection); + nmt_newt_form_set_focus(form, NMT_NEWT_WIDGET(list)); } static gboolean -edit_connection_list_filter (NmtEditConnectionList *list, - NMConnection *connection, - gpointer user_data) +edit_connection_list_filter(NmtEditConnectionList *list, + NMConnection * connection, + gpointer user_data) { - NMSettingConnection *s_con; - const char *master, *slave_type; - const char *uuid, *ifname; - const GPtrArray *conns; - int i; - gboolean found_master = FALSE; - - s_con = nm_connection_get_setting_connection (connection); - g_return_val_if_fail (s_con != NULL, FALSE); - - master = nm_setting_connection_get_master (s_con); - if (!master) - return TRUE; - slave_type = nm_setting_connection_get_slave_type (s_con); - if ( g_strcmp0 (slave_type, NM_SETTING_BOND_SETTING_NAME) != 0 - && g_strcmp0 (slave_type, NM_SETTING_TEAM_SETTING_NAME) != 0 - && g_strcmp0 (slave_type, NM_SETTING_BRIDGE_SETTING_NAME) != 0) - return TRUE; - - conns = nm_client_get_connections (nm_client); - for (i = 0; i < conns->len; i++) { - NMConnection *candidate = conns->pdata[i]; - - uuid = nm_connection_get_uuid (candidate); - ifname = nm_connection_get_interface_name (candidate); - if (!g_strcmp0 (master, uuid) || !g_strcmp0 (master, ifname)) { - found_master = TRUE; - break; - } - } - - return !found_master; + NMSettingConnection *s_con; + const char * master, *slave_type; + const char * uuid, *ifname; + const GPtrArray * conns; + int i; + gboolean found_master = FALSE; + + s_con = nm_connection_get_setting_connection(connection); + g_return_val_if_fail(s_con != NULL, FALSE); + + master = nm_setting_connection_get_master(s_con); + if (!master) + return TRUE; + slave_type = nm_setting_connection_get_slave_type(s_con); + if (g_strcmp0(slave_type, NM_SETTING_BOND_SETTING_NAME) != 0 + && g_strcmp0(slave_type, NM_SETTING_TEAM_SETTING_NAME) != 0 + && g_strcmp0(slave_type, NM_SETTING_BRIDGE_SETTING_NAME) != 0) + return TRUE; + + conns = nm_client_get_connections(nm_client); + for (i = 0; i < conns->len; i++) { + NMConnection *candidate = conns->pdata[i]; + + uuid = nm_connection_get_uuid(candidate); + ifname = nm_connection_get_interface_name(candidate); + if (!g_strcmp0(master, uuid) || !g_strcmp0(master, ifname)) { + found_master = TRUE; + break; + } + } + + return !found_master; } static NmtNewtForm * -nmt_edit_main_connection_list (gboolean is_top) +nmt_edit_main_connection_list(gboolean is_top) { - int screen_width, screen_height; - NmtNewtForm *form; - NmtNewtWidget *quit, *list; - - newtGetScreenSize (&screen_width, &screen_height); - - form = g_object_new (NMT_TYPE_NEWT_FORM, - "y", 2, - "height", screen_height - 4, - "escape-exits", TRUE, - NULL); - - quit = nmt_newt_button_new (is_top ? _("Quit") : _("Back")); - nmt_newt_widget_set_exit_on_activate (quit, TRUE); - - list = g_object_new (NMT_TYPE_EDIT_CONNECTION_LIST, - "extra-widget", quit, - "connection-filter", edit_connection_list_filter, - NULL); - - g_signal_connect (list, "add-connection", - G_CALLBACK (list_add_connection), form); - g_signal_connect (list, "edit-connection", - G_CALLBACK (list_edit_connection), form); - g_signal_connect (list, "remove-connection", - G_CALLBACK (list_remove_connection), form); - - nmt_newt_form_set_content (form, list); - return form; + int screen_width, screen_height; + NmtNewtForm * form; + NmtNewtWidget *quit, *list; + + newtGetScreenSize(&screen_width, &screen_height); + + form = g_object_new(NMT_TYPE_NEWT_FORM, + "y", + 2, + "height", + screen_height - 4, + "escape-exits", + TRUE, + NULL); + + quit = nmt_newt_button_new(is_top ? _("Quit") : _("Back")); + nmt_newt_widget_set_exit_on_activate(quit, TRUE); + + list = g_object_new(NMT_TYPE_EDIT_CONNECTION_LIST, + "extra-widget", + quit, + "connection-filter", + edit_connection_list_filter, + NULL); + + g_signal_connect(list, "add-connection", G_CALLBACK(list_add_connection), form); + g_signal_connect(list, "edit-connection", G_CALLBACK(list_edit_connection), form); + g_signal_connect(list, "remove-connection", G_CALLBACK(list_remove_connection), form); + + nmt_newt_form_set_content(form, list); + return form; } -#define NMT_TYPE_ADD_CONNECTION (nmt_add_connection_get_type ()) -#define NMT_ADD_CONNECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NMT_TYPE_ADD_CONNECTION, NmtAddConnection)) -#define NMT_IS_ADD_CONNECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NMT_TYPE_ADD_CONNECTION)) +#define NMT_TYPE_ADD_CONNECTION (nmt_add_connection_get_type()) +#define NMT_ADD_CONNECTION(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), NMT_TYPE_ADD_CONNECTION, NmtAddConnection)) +#define NMT_IS_ADD_CONNECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), NMT_TYPE_ADD_CONNECTION)) -typedef NmtNewtForm NmtAddConnection; +typedef NmtNewtForm NmtAddConnection; typedef NmtNewtFormClass NmtAddConnectionClass; -GType nmt_add_connection_get_type (void); +GType nmt_add_connection_get_type(void); -G_DEFINE_TYPE (NmtAddConnection, nmt_add_connection, NMT_TYPE_NEWT_FORM) +G_DEFINE_TYPE(NmtAddConnection, nmt_add_connection, NMT_TYPE_NEWT_FORM) -#define NMT_ADD_CONNECTION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NMT_TYPE_ADD_CONNECTION, NmtAddConnectionPrivate)) +#define NMT_ADD_CONNECTION_GET_PRIVATE(o) \ + (G_TYPE_INSTANCE_GET_PRIVATE((o), NMT_TYPE_ADD_CONNECTION, NmtAddConnectionPrivate)) typedef struct { - NmtNewtTextbox *textbox; - NmtNewtListbox *listbox; + NmtNewtTextbox *textbox; + NmtNewtListbox *listbox; - char *primary_text; - char *secondary_text; - NMConnection *master; - NmtAddConnectionTypeFilter type_filter; - gpointer type_filter_data; + char * primary_text; + char * secondary_text; + NMConnection * master; + NmtAddConnectionTypeFilter type_filter; + gpointer type_filter_data; - gboolean single_type; + gboolean single_type; } NmtAddConnectionPrivate; enum { - PROP_0, + PROP_0, - PROP_PRIMARY_TEXT, - PROP_SECONDARY_TEXT, - PROP_MASTER, - PROP_TYPE_FILTER, - PROP_TYPE_FILTER_DATA, + PROP_PRIMARY_TEXT, + PROP_SECONDARY_TEXT, + PROP_MASTER, + PROP_TYPE_FILTER, + PROP_TYPE_FILTER_DATA, - LAST_PROP + LAST_PROP }; static void -create_connection (NmtNewtWidget *widget, gpointer list) +create_connection(NmtNewtWidget *widget, gpointer list) { - NmtAddConnectionPrivate *priv = NMT_ADD_CONNECTION_GET_PRIVATE (list); - GType type = (GType) GPOINTER_TO_SIZE (nmt_newt_listbox_get_active_key (priv->listbox)); - NMConnection *connection; + NmtAddConnectionPrivate *priv = NMT_ADD_CONNECTION_GET_PRIVATE(list); + GType type = (GType) GPOINTER_TO_SIZE(nmt_newt_listbox_get_active_key(priv->listbox)); + NMConnection *connection; - connection = nm_editor_utils_create_connection (type, priv->master, nm_client); - nmt_edit_connection (connection); - g_object_unref (connection); + connection = nm_editor_utils_create_connection(type, priv->master, nm_client); + nmt_edit_connection(connection); + g_object_unref(connection); } static void -create_connection_and_quit (NmtNewtWidget *widget, gpointer list) +create_connection_and_quit(NmtNewtWidget *widget, gpointer list) { - create_connection (widget, list); - nmt_newt_form_quit (list); + create_connection(widget, list); + nmt_newt_form_quit(list); } static void -nmt_add_connection_init (NmtAddConnection *form) +nmt_add_connection_init(NmtAddConnection *form) { - NmtAddConnectionPrivate *priv = NMT_ADD_CONNECTION_GET_PRIVATE (form); - NmtNewtWidget *textbox, *listbox, *button; - NmtNewtGrid *grid, *buttons; - - grid = NMT_NEWT_GRID (nmt_newt_grid_new ()); - - textbox = nmt_newt_textbox_new (0, 60); - priv->textbox = NMT_NEWT_TEXTBOX (textbox); - nmt_newt_grid_add (grid, textbox, 0, 0); - - listbox = nmt_newt_listbox_new (5, NMT_NEWT_LISTBOX_SCROLL); - priv->listbox = NMT_NEWT_LISTBOX (listbox); - g_signal_connect (priv->listbox, "activated", G_CALLBACK (create_connection_and_quit), form); - nmt_newt_grid_add (grid, listbox, 0, 1); - nmt_newt_widget_set_padding (listbox, 0, 1, 0, 0); - nmt_newt_grid_set_flags (grid, listbox, NMT_NEWT_GRID_EXPAND_X); - - // FIXME: VPN description textbox - - buttons = NMT_NEWT_GRID (nmt_newt_grid_new ()); - nmt_newt_grid_add (grid, NMT_NEWT_WIDGET (buttons), 0, 2); - nmt_newt_widget_set_padding (NMT_NEWT_WIDGET (buttons), 0, 1, 0, 0); - - button = g_object_ref_sink (nmt_newt_button_new (_("Cancel"))); - nmt_newt_widget_set_exit_on_activate (button, TRUE); - nmt_newt_grid_add (NMT_NEWT_GRID (buttons), button, 0, 0); - nmt_newt_widget_set_padding (button, 0, 0, 1, 0); - nmt_newt_grid_set_flags (NMT_NEWT_GRID (buttons), button, - NMT_NEWT_GRID_EXPAND_X | NMT_NEWT_GRID_ANCHOR_RIGHT | - NMT_NEWT_GRID_FILL_Y); - - button = g_object_ref_sink (nmt_newt_button_new (_("Create"))); - g_signal_connect (button, "clicked", G_CALLBACK (create_connection_and_quit), form); - nmt_newt_grid_add (NMT_NEWT_GRID (buttons), button, 1, 0); - - nmt_newt_form_set_content (NMT_NEWT_FORM (form), NMT_NEWT_WIDGET (grid)); + NmtAddConnectionPrivate *priv = NMT_ADD_CONNECTION_GET_PRIVATE(form); + NmtNewtWidget * textbox, *listbox, *button; + NmtNewtGrid * grid, *buttons; + + grid = NMT_NEWT_GRID(nmt_newt_grid_new()); + + textbox = nmt_newt_textbox_new(0, 60); + priv->textbox = NMT_NEWT_TEXTBOX(textbox); + nmt_newt_grid_add(grid, textbox, 0, 0); + + listbox = nmt_newt_listbox_new(5, NMT_NEWT_LISTBOX_SCROLL); + priv->listbox = NMT_NEWT_LISTBOX(listbox); + g_signal_connect(priv->listbox, "activated", G_CALLBACK(create_connection_and_quit), form); + nmt_newt_grid_add(grid, listbox, 0, 1); + nmt_newt_widget_set_padding(listbox, 0, 1, 0, 0); + nmt_newt_grid_set_flags(grid, listbox, NMT_NEWT_GRID_EXPAND_X); + + // FIXME: VPN description textbox + + buttons = NMT_NEWT_GRID(nmt_newt_grid_new()); + nmt_newt_grid_add(grid, NMT_NEWT_WIDGET(buttons), 0, 2); + nmt_newt_widget_set_padding(NMT_NEWT_WIDGET(buttons), 0, 1, 0, 0); + + button = g_object_ref_sink(nmt_newt_button_new(_("Cancel"))); + nmt_newt_widget_set_exit_on_activate(button, TRUE); + nmt_newt_grid_add(NMT_NEWT_GRID(buttons), button, 0, 0); + nmt_newt_widget_set_padding(button, 0, 0, 1, 0); + nmt_newt_grid_set_flags(NMT_NEWT_GRID(buttons), + button, + NMT_NEWT_GRID_EXPAND_X | NMT_NEWT_GRID_ANCHOR_RIGHT + | NMT_NEWT_GRID_FILL_Y); + + button = g_object_ref_sink(nmt_newt_button_new(_("Create"))); + g_signal_connect(button, "clicked", G_CALLBACK(create_connection_and_quit), form); + nmt_newt_grid_add(NMT_NEWT_GRID(buttons), button, 1, 0); + + nmt_newt_form_set_content(NMT_NEWT_FORM(form), NMT_NEWT_WIDGET(grid)); } static void -nmt_add_connection_constructed (GObject *object) +nmt_add_connection_constructed(GObject *object) { - NmtAddConnectionPrivate *priv = NMT_ADD_CONNECTION_GET_PRIVATE (object); - NMEditorConnectionTypeData **types; - char *text; - int i, num_types; - - if (priv->secondary_text) { - text = g_strdup_printf ("%s\n\n%s", - priv->primary_text, - priv->secondary_text); - } else - text = g_strdup (priv->primary_text); - nmt_newt_textbox_set_text (priv->textbox, text); - g_free (text); - - types = nm_editor_utils_get_connection_type_list (); - for (i = num_types = 0; types[i]; i++) { - if (priv->type_filter && !priv->type_filter (types[i]->setting_type, priv->type_filter_data)) - continue; - nmt_newt_listbox_append (priv->listbox, types[i]->name, - GSIZE_TO_POINTER (types[i]->setting_type)); - num_types++; - } - - if (num_types == 1) - priv->single_type = TRUE; - - G_OBJECT_CLASS (nmt_add_connection_parent_class)->constructed (object); + NmtAddConnectionPrivate * priv = NMT_ADD_CONNECTION_GET_PRIVATE(object); + NMEditorConnectionTypeData **types; + char * text; + int i, num_types; + + if (priv->secondary_text) { + text = g_strdup_printf("%s\n\n%s", priv->primary_text, priv->secondary_text); + } else + text = g_strdup(priv->primary_text); + nmt_newt_textbox_set_text(priv->textbox, text); + g_free(text); + + types = nm_editor_utils_get_connection_type_list(); + for (i = num_types = 0; types[i]; i++) { + if (priv->type_filter && !priv->type_filter(types[i]->setting_type, priv->type_filter_data)) + continue; + nmt_newt_listbox_append(priv->listbox, + types[i]->name, + GSIZE_TO_POINTER(types[i]->setting_type)); + num_types++; + } + + if (num_types == 1) + priv->single_type = TRUE; + + G_OBJECT_CLASS(nmt_add_connection_parent_class)->constructed(object); } static void -nmt_add_connection_show (NmtNewtForm *form) +nmt_add_connection_show(NmtNewtForm *form) { - NmtAddConnectionPrivate *priv = NMT_ADD_CONNECTION_GET_PRIVATE (form); + NmtAddConnectionPrivate *priv = NMT_ADD_CONNECTION_GET_PRIVATE(form); - if (priv->single_type) { - nmt_newt_listbox_set_active (priv->listbox, 0); - create_connection (NMT_NEWT_WIDGET (priv->listbox), g_object_ref (form)); - } else - NMT_NEWT_FORM_CLASS (nmt_add_connection_parent_class)->show (form); + if (priv->single_type) { + nmt_newt_listbox_set_active(priv->listbox, 0); + create_connection(NMT_NEWT_WIDGET(priv->listbox), g_object_ref(form)); + } else + NMT_NEWT_FORM_CLASS(nmt_add_connection_parent_class)->show(form); } static void -nmt_add_connection_finalize (GObject *object) +nmt_add_connection_finalize(GObject *object) { - NmtAddConnectionPrivate *priv = NMT_ADD_CONNECTION_GET_PRIVATE (object); + NmtAddConnectionPrivate *priv = NMT_ADD_CONNECTION_GET_PRIVATE(object); - g_free (priv->primary_text); - g_free (priv->secondary_text); - g_clear_object (&priv->master); + g_free(priv->primary_text); + g_free(priv->secondary_text); + g_clear_object(&priv->master); - G_OBJECT_CLASS (nmt_add_connection_parent_class)->finalize (object); + G_OBJECT_CLASS(nmt_add_connection_parent_class)->finalize(object); } static void -nmt_add_connection_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) +nmt_add_connection_set_property(GObject * object, + guint prop_id, + const GValue *value, + GParamSpec * pspec) { - NmtAddConnectionPrivate *priv = NMT_ADD_CONNECTION_GET_PRIVATE (object); - - switch (prop_id) { - case PROP_PRIMARY_TEXT: - priv->primary_text = g_value_dup_string (value); - break; - case PROP_SECONDARY_TEXT: - priv->secondary_text = g_value_dup_string (value); - break; - case PROP_MASTER: - priv->master = g_value_dup_object (value); - break; - case PROP_TYPE_FILTER: - priv->type_filter = g_value_get_pointer (value); - break; - case PROP_TYPE_FILTER_DATA: - priv->type_filter_data = g_value_get_pointer (value); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtAddConnectionPrivate *priv = NMT_ADD_CONNECTION_GET_PRIVATE(object); + + switch (prop_id) { + case PROP_PRIMARY_TEXT: + priv->primary_text = g_value_dup_string(value); + break; + case PROP_SECONDARY_TEXT: + priv->secondary_text = g_value_dup_string(value); + break; + case PROP_MASTER: + priv->master = g_value_dup_object(value); + break; + case PROP_TYPE_FILTER: + priv->type_filter = g_value_get_pointer(value); + break; + case PROP_TYPE_FILTER_DATA: + priv->type_filter_data = g_value_get_pointer(value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_add_connection_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) +nmt_add_connection_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - NmtAddConnectionPrivate *priv = NMT_ADD_CONNECTION_GET_PRIVATE (object); - - switch (prop_id) { - case PROP_PRIMARY_TEXT: - g_value_set_string (value, priv->primary_text); - break; - case PROP_SECONDARY_TEXT: - g_value_set_string (value, priv->secondary_text); - break; - case PROP_MASTER: - g_value_set_object (value, priv->master); - break; - case PROP_TYPE_FILTER: - g_value_set_pointer (value, priv->type_filter); - break; - case PROP_TYPE_FILTER_DATA: - g_value_set_pointer (value, priv->type_filter_data); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + NmtAddConnectionPrivate *priv = NMT_ADD_CONNECTION_GET_PRIVATE(object); + + switch (prop_id) { + case PROP_PRIMARY_TEXT: + g_value_set_string(value, priv->primary_text); + break; + case PROP_SECONDARY_TEXT: + g_value_set_string(value, priv->secondary_text); + break; + case PROP_MASTER: + g_value_set_object(value, priv->master); + break; + case PROP_TYPE_FILTER: + g_value_set_pointer(value, priv->type_filter); + break; + case PROP_TYPE_FILTER_DATA: + g_value_set_pointer(value, priv->type_filter_data); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void -nmt_add_connection_class_init (NmtAddConnectionClass *add_class) +nmt_add_connection_class_init(NmtAddConnectionClass *add_class) { - GObjectClass *object_class = G_OBJECT_CLASS (add_class); - NmtNewtFormClass *form_class = NMT_NEWT_FORM_CLASS (add_class); - - g_type_class_add_private (add_class, sizeof (NmtAddConnectionPrivate)); - - /* virtual methods */ - object_class->constructed = nmt_add_connection_constructed; - object_class->set_property = nmt_add_connection_set_property; - object_class->get_property = nmt_add_connection_get_property; - object_class->finalize = nmt_add_connection_finalize; - - form_class->show = nmt_add_connection_show; - - g_object_class_install_property - (object_class, PROP_PRIMARY_TEXT, - g_param_spec_string ("primary-text", "", "", - _("Select the type of connection you wish to create."), - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); - g_object_class_install_property - (object_class, PROP_SECONDARY_TEXT, - g_param_spec_string ("secondary-text", "", "", + GObjectClass * object_class = G_OBJECT_CLASS(add_class); + NmtNewtFormClass *form_class = NMT_NEWT_FORM_CLASS(add_class); + + g_type_class_add_private(add_class, sizeof(NmtAddConnectionPrivate)); + + /* virtual methods */ + object_class->constructed = nmt_add_connection_constructed; + object_class->set_property = nmt_add_connection_set_property; + object_class->get_property = nmt_add_connection_get_property; + object_class->finalize = nmt_add_connection_finalize; + + form_class->show = nmt_add_connection_show; + + g_object_class_install_property( + object_class, + PROP_PRIMARY_TEXT, + g_param_spec_string("primary-text", + "", + "", + _("Select the type of connection you wish to create."), + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property( + object_class, + PROP_SECONDARY_TEXT, + g_param_spec_string("secondary-text", + "", + "", #if 0 _("If you are creating a VPN, and the VPN connection you " "wish to create does not appear in the list, you may " "not have the correct VPN plugin installed."), #else - NULL, + NULL, #endif - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); - g_object_class_install_property - (object_class, PROP_MASTER, - g_param_spec_object ("master", "", "", - NM_TYPE_CONNECTION, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); - g_object_class_install_property - (object_class, PROP_TYPE_FILTER, - g_param_spec_pointer ("type-filter", "", "", - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); - g_object_class_install_property - (object_class, PROP_TYPE_FILTER_DATA, - g_param_spec_pointer ("type-filter-data", "", "", - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property( + object_class, + PROP_MASTER, + g_param_spec_object("master", + "", + "", + NM_TYPE_CONNECTION, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property( + object_class, + PROP_TYPE_FILTER, + g_param_spec_pointer("type-filter", + "", + "", + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property( + object_class, + PROP_TYPE_FILTER_DATA, + g_param_spec_pointer("type-filter-data", + "", + "", + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); } void -nmt_add_connection (void) +nmt_add_connection(void) { - NmtNewtForm *form; + NmtNewtForm *form; - form = g_object_new (NMT_TYPE_ADD_CONNECTION, - "title", _("New Connection"), - NULL); - nmt_newt_form_show (form); - g_object_unref (form); + form = g_object_new(NMT_TYPE_ADD_CONNECTION, "title", _("New Connection"), NULL); + nmt_newt_form_show(form); + g_object_unref(form); } void -nmt_add_connection_full (const char *primary_text, - const char *secondary_text, - NMConnection *master, - NmtAddConnectionTypeFilter type_filter, - gpointer type_filter_data) +nmt_add_connection_full(const char * primary_text, + const char * secondary_text, + NMConnection * master, + NmtAddConnectionTypeFilter type_filter, + gpointer type_filter_data) { - NmtNewtForm *form; - - form = g_object_new (NMT_TYPE_ADD_CONNECTION, - "title", _("New Connection"), - "primary-text", primary_text, - "secondary-text", secondary_text, - "master", master, - "type-filter", type_filter, - "type-filter-data", type_filter_data, - NULL); - nmt_newt_form_show (form); - g_object_unref (form); + NmtNewtForm *form; + + form = g_object_new(NMT_TYPE_ADD_CONNECTION, + "title", + _("New Connection"), + "primary-text", + primary_text, + "secondary-text", + secondary_text, + "master", + master, + "type-filter", + type_filter, + "type-filter-data", + type_filter_data, + NULL); + nmt_newt_form_show(form); + g_object_unref(form); } void -nmt_edit_connection (NMConnection *connection) +nmt_edit_connection(NMConnection *connection) { - NmtNewtForm *editor; + NmtNewtForm *editor; - editor = nmt_editor_new (connection); - if (!editor) - return; + editor = nmt_editor_new(connection); + if (!editor) + return; - nmt_newt_form_show (editor); - g_object_unref (editor); + nmt_newt_form_show(editor); + g_object_unref(editor); } typedef struct { - NmtSyncOp op; - gboolean got_callback, got_signal; - NMRemoteConnection *connection; + NmtSyncOp op; + gboolean got_callback, got_signal; + NMRemoteConnection *connection; } ConnectionDeleteData; static void -connection_deleted_callback (GObject *connection, - GAsyncResult *result, - gpointer user_data) +connection_deleted_callback(GObject *connection, GAsyncResult *result, gpointer user_data) { - ConnectionDeleteData *data = user_data; - GError *error = NULL; - - if (!nm_remote_connection_delete_finish (data->connection, result, &error)) { - nmt_newt_message_dialog (_("Unable to delete connection: %s"), - error->message); - } else - data->got_callback = TRUE; - - if (error || (data->got_callback && data->got_signal)) - nmt_sync_op_complete_boolean (&data->op, error == NULL, error); - g_clear_error (&error); + ConnectionDeleteData *data = user_data; + GError * error = NULL; + + if (!nm_remote_connection_delete_finish(data->connection, result, &error)) { + nmt_newt_message_dialog(_("Unable to delete connection: %s"), error->message); + } else + data->got_callback = TRUE; + + if (error || (data->got_callback && data->got_signal)) + nmt_sync_op_complete_boolean(&data->op, error == NULL, error); + g_clear_error(&error); } static void -connection_removed_signal (NMClient *client, - NMRemoteConnection *connection, - gpointer user_data) +connection_removed_signal(NMClient *client, NMRemoteConnection *connection, gpointer user_data) { - ConnectionDeleteData *data = user_data; + ConnectionDeleteData *data = user_data; - if (connection == data->connection) { - data->got_signal = TRUE; - if (data->got_callback && data->got_signal) - nmt_sync_op_complete_boolean (&data->op, TRUE, NULL); - } + if (connection == data->connection) { + data->got_signal = TRUE; + if (data->got_callback && data->got_signal) + nmt_sync_op_complete_boolean(&data->op, TRUE, NULL); + } } static void -remove_one_connection (NMRemoteConnection *connection) +remove_one_connection(NMRemoteConnection *connection) { - ConnectionDeleteData data; - GError *error = NULL; - - data.got_callback = data.got_signal = FALSE; - nmt_sync_op_init (&data.op); - - data.connection = connection; - g_signal_connect (nm_client, NM_CLIENT_CONNECTION_REMOVED, - G_CALLBACK (connection_removed_signal), &data); - nm_remote_connection_delete_async (connection, NULL, connection_deleted_callback, &data); - - if (!nmt_sync_op_wait_boolean (&data.op, &error)) { - nmt_newt_message_dialog (_("Could not delete connection '%s': %s"), - nm_connection_get_id (NM_CONNECTION (connection)), - error->message); - g_error_free (error); - } - - g_signal_handlers_disconnect_by_func (nm_client, G_CALLBACK (connection_removed_signal), &data); + ConnectionDeleteData data; + GError * error = NULL; + + data.got_callback = data.got_signal = FALSE; + nmt_sync_op_init(&data.op); + + data.connection = connection; + g_signal_connect(nm_client, + NM_CLIENT_CONNECTION_REMOVED, + G_CALLBACK(connection_removed_signal), + &data); + nm_remote_connection_delete_async(connection, NULL, connection_deleted_callback, &data); + + if (!nmt_sync_op_wait_boolean(&data.op, &error)) { + nmt_newt_message_dialog(_("Could not delete connection '%s': %s"), + nm_connection_get_id(NM_CONNECTION(connection)), + error->message); + g_error_free(error); + } + + g_signal_handlers_disconnect_by_func(nm_client, G_CALLBACK(connection_removed_signal), &data); } void -nmt_remove_connection (NMRemoteConnection *connection) +nmt_remove_connection(NMRemoteConnection *connection) { - const GPtrArray *all_conns; - GSList *slaves, *iter; - int i; - NMRemoteConnection *slave; - NMSettingConnection *s_con; - const char *uuid, *iface, *master; - int choice; - - choice = nmt_newt_choice_dialog (_("Cancel"), - _("Delete"), - _("Are you sure you want to delete the connection '%s'?"), - nm_connection_get_id (NM_CONNECTION (connection))); - if (choice == 1) - return; - - g_object_ref (connection); - remove_one_connection (connection); - - uuid = nm_connection_get_uuid (NM_CONNECTION (connection)); - iface = nm_connection_get_interface_name (NM_CONNECTION (connection)); - - all_conns = nm_client_get_connections (nm_client); - slaves = NULL; - for (i = 0; i < all_conns->len; i++) { - slave = all_conns->pdata[i]; - s_con = nm_connection_get_setting_connection (NM_CONNECTION (slave)); - master = nm_setting_connection_get_master (s_con); - if (master) { - if (!g_strcmp0 (master, uuid) || !g_strcmp0 (master, iface)) - slaves = g_slist_prepend (slaves, g_object_ref (slave)); - } - } - - for (iter = slaves; iter; iter = iter->next) - remove_one_connection (iter->data); - g_slist_free_full (slaves, g_object_unref); - - g_object_unref (connection); + const GPtrArray * all_conns; + GSList * slaves, *iter; + int i; + NMRemoteConnection * slave; + NMSettingConnection *s_con; + const char * uuid, *iface, *master; + int choice; + + choice = nmt_newt_choice_dialog(_("Cancel"), + _("Delete"), + _("Are you sure you want to delete the connection '%s'?"), + nm_connection_get_id(NM_CONNECTION(connection))); + if (choice == 1) + return; + + g_object_ref(connection); + remove_one_connection(connection); + + uuid = nm_connection_get_uuid(NM_CONNECTION(connection)); + iface = nm_connection_get_interface_name(NM_CONNECTION(connection)); + + all_conns = nm_client_get_connections(nm_client); + slaves = NULL; + for (i = 0; i < all_conns->len; i++) { + slave = all_conns->pdata[i]; + s_con = nm_connection_get_setting_connection(NM_CONNECTION(slave)); + master = nm_setting_connection_get_master(s_con); + if (master) { + if (!g_strcmp0(master, uuid) || !g_strcmp0(master, iface)) + slaves = g_slist_prepend(slaves, g_object_ref(slave)); + } + } + + for (iter = slaves; iter; iter = iter->next) + remove_one_connection(iter->data); + g_slist_free_full(slaves, g_object_unref); + + g_object_unref(connection); } NmtNewtForm * -nmtui_edit (gboolean is_top, int argc, char **argv) +nmtui_edit(gboolean is_top, int argc, char **argv) { - NMConnection *conn = NULL; - - if (argc == 2) { - if (nm_utils_is_uuid (argv[1])) - conn = NM_CONNECTION (nm_client_get_connection_by_uuid (nm_client, argv[1])); - if (!conn) - conn = NM_CONNECTION (nm_client_get_connection_by_id (nm_client, argv[1])); - - if (!conn) { - nmt_newt_message_dialog ("%s: no such connection '%s'\n", argv[0], argv[1]); - return NULL; - } - - return nmt_editor_new (conn); - } else - return nmt_edit_main_connection_list (is_top); + NMConnection *conn = NULL; + + if (argc == 2) { + if (nm_utils_is_uuid(argv[1])) + conn = NM_CONNECTION(nm_client_get_connection_by_uuid(nm_client, argv[1])); + if (!conn) + conn = NM_CONNECTION(nm_client_get_connection_by_id(nm_client, argv[1])); + + if (!conn) { + nmt_newt_message_dialog("%s: no such connection '%s'\n", argv[0], argv[1]); + return NULL; + } + + return nmt_editor_new(conn); + } else + return nmt_edit_main_connection_list(is_top); } diff --git a/clients/tui/nmtui-edit.h b/clients/tui/nmtui-edit.h index f6fe16aef4..c3af206025 100644 --- a/clients/tui/nmtui-edit.h +++ b/clients/tui/nmtui-edit.h @@ -8,20 +8,19 @@ #include "nmt-newt.h" -typedef gboolean (*NmtAddConnectionTypeFilter) (GType connection_type, - gpointer user_data); +typedef gboolean (*NmtAddConnectionTypeFilter)(GType connection_type, gpointer user_data); -NmtNewtForm *nmtui_edit (gboolean is_top, int argc, char **argv); +NmtNewtForm *nmtui_edit(gboolean is_top, int argc, char **argv); -void nmt_add_connection (void); -void nmt_add_connection_full (const char *primary_text, - const char *secondary_text, - NMConnection *master, - NmtAddConnectionTypeFilter type_filter, - gpointer type_filter_data); +void nmt_add_connection(void); +void nmt_add_connection_full(const char * primary_text, + const char * secondary_text, + NMConnection * master, + NmtAddConnectionTypeFilter type_filter, + gpointer type_filter_data); -void nmt_edit_connection (NMConnection *connection); +void nmt_edit_connection(NMConnection *connection); -void nmt_remove_connection (NMRemoteConnection *connection); +void nmt_remove_connection(NMRemoteConnection *connection); #endif /* NMTUI_EDIT_H */ diff --git a/clients/tui/nmtui-hostname.c b/clients/tui/nmtui-hostname.c index eaf47a4b57..dcca4a1ad8 100644 --- a/clients/tui/nmtui-hostname.c +++ b/clients/tui/nmtui-hostname.c @@ -19,95 +19,88 @@ #include "nmt-utils.h" static char * -nmtui_hostname_run_dialog (void) +nmtui_hostname_run_dialog(void) { - NmtNewtForm *form; - NmtNewtWidget *widget, *ok, *cancel; - NmtNewtGrid *grid; - NmtNewtEntry *entry; - NmtNewtButtonBox *bbox; - char *hostname, *ret = NULL; - - form = g_object_new (NMT_TYPE_NEWT_FORM, - "title", _("Set Hostname"), - "escape-exits", TRUE, - NULL); - - widget = nmt_newt_grid_new (); - nmt_newt_form_set_content (form, widget); - grid = NMT_NEWT_GRID (widget); - - widget = nmt_newt_label_new (_("Hostname")); - nmt_newt_grid_add (grid, widget, 0, 0); - - widget = nmt_newt_entry_new (40, 0); - nmt_newt_widget_set_exit_on_activate (widget, TRUE); - nmt_newt_grid_add (grid, widget, 1, 0); - nmt_newt_widget_set_padding (widget, 1, 0, 0, 0); - entry = NMT_NEWT_ENTRY (widget); - - widget = nmt_newt_button_box_new (NMT_NEWT_BUTTON_BOX_HORIZONTAL); - nmt_newt_grid_add (grid, widget, 1, 1); - nmt_newt_widget_set_padding (widget, 0, 1, 0, 0); - bbox = NMT_NEWT_BUTTON_BOX (widget); - - cancel = nmt_newt_button_box_add_end (bbox, _("Cancel")); - nmt_newt_widget_set_exit_on_activate (cancel, TRUE); - ok = nmt_newt_button_box_add_end (bbox, _("OK")); - nmt_newt_widget_set_exit_on_activate (ok, TRUE); - - g_object_get (G_OBJECT (nm_client), - NM_CLIENT_HOSTNAME, &hostname, - NULL); - nmt_newt_entry_set_text (entry, hostname); - g_free (hostname); - - widget = nmt_newt_form_run_sync (form); - if (widget == (NmtNewtWidget *)entry || widget == ok) - ret = g_strdup (nmt_newt_entry_get_text (entry)); - - g_object_unref (form); - return ret; + NmtNewtForm * form; + NmtNewtWidget * widget, *ok, *cancel; + NmtNewtGrid * grid; + NmtNewtEntry * entry; + NmtNewtButtonBox *bbox; + char * hostname, *ret = NULL; + + form = g_object_new(NMT_TYPE_NEWT_FORM, "title", _("Set Hostname"), "escape-exits", TRUE, NULL); + + widget = nmt_newt_grid_new(); + nmt_newt_form_set_content(form, widget); + grid = NMT_NEWT_GRID(widget); + + widget = nmt_newt_label_new(_("Hostname")); + nmt_newt_grid_add(grid, widget, 0, 0); + + widget = nmt_newt_entry_new(40, 0); + nmt_newt_widget_set_exit_on_activate(widget, TRUE); + nmt_newt_grid_add(grid, widget, 1, 0); + nmt_newt_widget_set_padding(widget, 1, 0, 0, 0); + entry = NMT_NEWT_ENTRY(widget); + + widget = nmt_newt_button_box_new(NMT_NEWT_BUTTON_BOX_HORIZONTAL); + nmt_newt_grid_add(grid, widget, 1, 1); + nmt_newt_widget_set_padding(widget, 0, 1, 0, 0); + bbox = NMT_NEWT_BUTTON_BOX(widget); + + cancel = nmt_newt_button_box_add_end(bbox, _("Cancel")); + nmt_newt_widget_set_exit_on_activate(cancel, TRUE); + ok = nmt_newt_button_box_add_end(bbox, _("OK")); + nmt_newt_widget_set_exit_on_activate(ok, TRUE); + + g_object_get(G_OBJECT(nm_client), NM_CLIENT_HOSTNAME, &hostname, NULL); + nmt_newt_entry_set_text(entry, hostname); + g_free(hostname); + + widget = nmt_newt_form_run_sync(form); + if (widget == (NmtNewtWidget *) entry || widget == ok) + ret = g_strdup(nmt_newt_entry_get_text(entry)); + + g_object_unref(form); + return ret; } static void -hostname_set (GObject *object, - GAsyncResult *result, - gpointer op) +hostname_set(GObject *object, GAsyncResult *result, gpointer op) { - GError *error = NULL; + GError *error = NULL; - nm_client_save_hostname_finish (NM_CLIENT (object), result, &error); - nmt_sync_op_complete_boolean (op, error == NULL, error); - g_clear_error (&error); + nm_client_save_hostname_finish(NM_CLIENT(object), result, &error); + nmt_sync_op_complete_boolean(op, error == NULL, error); + g_clear_error(&error); } NmtNewtForm * -nmtui_hostname (gboolean is_top, int argc, char **argv) +nmtui_hostname(gboolean is_top, int argc, char **argv) { - const char *hostname; - char *tmp = NULL; - NmtSyncOp op; - GError *error = NULL; - - if (argc == 2) - hostname = argv[1]; - else - hostname = tmp = nmtui_hostname_run_dialog (); - - if (hostname) { - nmt_sync_op_init (&op); - nm_client_save_hostname_async (nm_client, hostname, NULL, hostname_set, &op); - if (nmt_sync_op_wait_boolean (&op, &error)) { - /* TRANSLATORS: this indicates the result. ie, "I have set the hostname to ..." */ - nmt_newt_message_dialog (_("Set hostname to '%s'"), hostname); - } else { - nmt_newt_message_dialog (_("Unable to set hostname: %s"), error->message); - g_error_free (error); - } - - g_free (tmp); - } - - return NULL; + const char *hostname; + char * tmp = NULL; + NmtSyncOp op; + GError * error = NULL; + + if (argc == 2) + hostname = argv[1]; + else + hostname = tmp = nmtui_hostname_run_dialog(); + + if (hostname) { + nmt_sync_op_init(&op); + nm_client_save_hostname_async(nm_client, hostname, NULL, hostname_set, &op); + if (nmt_sync_op_wait_boolean(&op, &error)) { + /* TRANSLATORS: this indicates the result. ie, "I have set the hostname to ..." */ + nmt_newt_message_dialog(_("Set hostname to '%s'"), hostname); + } else { + nmt_newt_message_dialog(_("Unable to set hostname: %s"), error->message); + g_error_free(error); + } + + g_free(tmp); + } + + return NULL; } diff --git a/clients/tui/nmtui-hostname.h b/clients/tui/nmtui-hostname.h index 0fc9284abd..1d4fae403a 100644 --- a/clients/tui/nmtui-hostname.h +++ b/clients/tui/nmtui-hostname.h @@ -6,6 +6,6 @@ #ifndef NMTUI_HOSTNAME_H #define NMTUI_HOSTNAME_H -NmtNewtForm *nmtui_hostname (gboolean is_top, int argc, char **argv); +NmtNewtForm *nmtui_hostname(gboolean is_top, int argc, char **argv); #endif /* NMTUI_HOSTNAME_H */ diff --git a/clients/tui/nmtui.c b/clients/tui/nmtui.c index a6ea6f7f52..16f99c9fef 100644 --- a/clients/tui/nmtui.c +++ b/clients/tui/nmtui.c @@ -27,106 +27,100 @@ #include "nmtui-connect.h" #include "nmtui-hostname.h" -NMClient *nm_client; +NMClient * nm_client; static GMainLoop *loop; -typedef NmtNewtForm * (*NmtuiSubprogram) (gboolean is_top, int argc, char **argv); +typedef NmtNewtForm *(*NmtuiSubprogram)(gboolean is_top, int argc, char **argv); static const struct { - const char *name, *shortcut, *arg; - const char *display_name; - NmtuiSubprogram func; + const char * name, *shortcut, *arg; + const char * display_name; + NmtuiSubprogram func; } subprograms[] = { - { "edit", "nmtui-edit", N_("connection"), - N_("Edit a connection"), - nmtui_edit }, - { "connect", "nmtui-connect", N_("connection"), - N_("Activate a connection"), - nmtui_connect }, - { "hostname", "nmtui-hostname", N_("new hostname"), - N_("Set system hostname"), - nmtui_hostname } -}; -static const int num_subprograms = G_N_ELEMENTS (subprograms); + {"edit", "nmtui-edit", N_("connection"), N_("Edit a connection"), nmtui_edit}, + {"connect", "nmtui-connect", N_("connection"), N_("Activate a connection"), nmtui_connect}, + {"hostname", "nmtui-hostname", N_("new hostname"), N_("Set system hostname"), nmtui_hostname}}; +static const int num_subprograms = G_N_ELEMENTS(subprograms); static NmtNewtForm *toplevel_form; static NmtNewtForm * -quit_func (int argc, char **argv) +quit_func(int argc, char **argv) { - if (toplevel_form) - nmt_newt_form_quit (toplevel_form); + if (toplevel_form) + nmt_newt_form_quit(toplevel_form); - nmtui_quit (); + nmtui_quit(); - return NULL; + return NULL; } static void -main_list_activated (NmtNewtWidget *widget, NmtNewtListbox *listbox) +main_list_activated(NmtNewtWidget *widget, NmtNewtListbox *listbox) { - NmtNewtForm *form; - NmtuiSubprogram sub; - - sub = nmt_newt_listbox_get_active_key (listbox); - if (sub) { - form = sub (FALSE, 0, NULL); - if (form) { - nmt_newt_form_show (form); - g_object_unref (form); - } - } + NmtNewtForm * form; + NmtuiSubprogram sub; + + sub = nmt_newt_listbox_get_active_key(listbox); + if (sub) { + form = sub(FALSE, 0, NULL); + if (form) { + nmt_newt_form_show(form); + g_object_unref(form); + } + } } static NmtNewtForm * -nmtui_main (gboolean is_top, int argc, char **argv) +nmtui_main(gboolean is_top, int argc, char **argv) { - NmtNewtForm *form; - NmtNewtWidget *widget, *ok; - NmtNewtGrid *grid; - NmtNewtListbox *listbox; - NmtNewtButtonBox *bbox; - int i; - - form = g_object_new (NMT_TYPE_NEWT_FORM, - "title", _("NetworkManager TUI"), - "escape-exits", TRUE, - NULL); - - widget = nmt_newt_grid_new (); - nmt_newt_form_set_content (form, widget); - grid = NMT_NEWT_GRID (widget); - - widget = nmt_newt_label_new (_("Please select an option")); - nmt_newt_grid_add (grid, widget, 0, 0); - - widget = g_object_new (NMT_TYPE_NEWT_LISTBOX, - "height", num_subprograms + 2, - "skip-null-keys", TRUE, - NULL); - nmt_newt_grid_add (grid, widget, 0, 1); - nmt_newt_widget_set_padding (widget, 0, 1, 0, 1); - listbox = NMT_NEWT_LISTBOX (widget); - g_signal_connect (widget, "activated", - G_CALLBACK (main_list_activated), listbox); - - for (i = 0; i < num_subprograms; i++) { - nmt_newt_listbox_append (listbox, _(subprograms[i].display_name), - subprograms[i].func); - } - nmt_newt_listbox_append (listbox, "", NULL); - nmt_newt_listbox_append (listbox, _("Quit"), quit_func); - - widget = nmt_newt_button_box_new (NMT_NEWT_BUTTON_BOX_HORIZONTAL); - nmt_newt_grid_add (grid, widget, 0, 2); - bbox = NMT_NEWT_BUTTON_BOX (widget); - - ok = nmt_newt_button_box_add_end (bbox, _("OK")); - g_signal_connect (ok, "activated", - G_CALLBACK (main_list_activated), listbox); - - toplevel_form = form; - - return form; + NmtNewtForm * form; + NmtNewtWidget * widget, *ok; + NmtNewtGrid * grid; + NmtNewtListbox * listbox; + NmtNewtButtonBox *bbox; + int i; + + form = g_object_new(NMT_TYPE_NEWT_FORM, + "title", + _("NetworkManager TUI"), + "escape-exits", + TRUE, + NULL); + + widget = nmt_newt_grid_new(); + nmt_newt_form_set_content(form, widget); + grid = NMT_NEWT_GRID(widget); + + widget = nmt_newt_label_new(_("Please select an option")); + nmt_newt_grid_add(grid, widget, 0, 0); + + widget = g_object_new(NMT_TYPE_NEWT_LISTBOX, + "height", + num_subprograms + 2, + "skip-null-keys", + TRUE, + NULL); + nmt_newt_grid_add(grid, widget, 0, 1); + nmt_newt_widget_set_padding(widget, 0, 1, 0, 1); + listbox = NMT_NEWT_LISTBOX(widget); + g_signal_connect(widget, "activated", G_CALLBACK(main_list_activated), listbox); + + for (i = 0; i < num_subprograms; i++) { + nmt_newt_listbox_append(listbox, _(subprograms[i].display_name), subprograms[i].func); + } + nmt_newt_listbox_append(listbox, "", NULL); + nmt_newt_listbox_append(listbox, _("Quit"), quit_func); + + widget = nmt_newt_button_box_new(NMT_NEWT_BUTTON_BOX_HORIZONTAL); + nmt_newt_grid_add(grid, widget, 0, 2); + bbox = NMT_NEWT_BUTTON_BOX(widget); + + ok = nmt_newt_button_box_add_end(bbox, _("OK")); + g_signal_connect(ok, "activated", G_CALLBACK(main_list_activated), listbox); + + toplevel_form = form; + + return form; } /** @@ -135,163 +129,169 @@ nmtui_main (gboolean is_top, int argc, char **argv) * Causes nmtui to exit. */ void -nmtui_quit (void) +nmtui_quit(void) { - g_main_loop_quit (loop); + g_main_loop_quit(loop); } static void -usage (void) +usage(void) { - const char *argv0 = g_get_prgname (); - const char *usage_str = _("Usage"); - int i; - - for (i = 0; i < num_subprograms; i++) { - if (!strcmp (argv0, subprograms[i].shortcut)) { - g_printerr ("%s: %s [%s]\n", usage_str, argv0, _(subprograms[i].arg)); - exit (1); - } - } - - g_printerr ("%s: nmtui\n", usage_str); - for (i = 0; i < num_subprograms; i++) { - g_printerr ("%*s nmtui %s [%s]\n", - nmt_newt_text_width (usage_str), " ", - subprograms[i].name, - _(subprograms[i].arg)); - } - exit (1); + const char *argv0 = g_get_prgname(); + const char *usage_str = _("Usage"); + int i; + + for (i = 0; i < num_subprograms; i++) { + if (!strcmp(argv0, subprograms[i].shortcut)) { + g_printerr("%s: %s [%s]\n", usage_str, argv0, _(subprograms[i].arg)); + exit(1); + } + } + + g_printerr("%s: nmtui\n", usage_str); + for (i = 0; i < num_subprograms; i++) { + g_printerr("%*s nmtui %s [%s]\n", + nmt_newt_text_width(usage_str), + " ", + subprograms[i].name, + _(subprograms[i].arg)); + } + exit(1); } typedef struct { - NmtuiSubprogram subprogram; - int argc; - char **argv; + NmtuiSubprogram subprogram; + int argc; + char ** argv; } NmtuiStartupData; static void -toplevel_form_quit (NmtNewtForm *form, - gpointer user_data) +toplevel_form_quit(NmtNewtForm *form, gpointer user_data) { - nmtui_quit (); + nmtui_quit(); } static gboolean -idle_run_subprogram (gpointer user_data) +idle_run_subprogram(gpointer user_data) { - NmtuiStartupData *data = user_data; - NmtNewtForm *form; - - form = data->subprogram (TRUE, data->argc, data->argv); - if (form) { - g_signal_connect (form, "quit", G_CALLBACK (toplevel_form_quit), NULL); - nmt_newt_form_show (form); - g_object_unref (form); - } else - nmtui_quit (); - - return FALSE; + NmtuiStartupData *data = user_data; + NmtNewtForm * form; + + form = data->subprogram(TRUE, data->argc, data->argv); + if (form) { + g_signal_connect(form, "quit", G_CALLBACK(toplevel_form_quit), NULL); + nmt_newt_form_show(form); + g_object_unref(form); + } else + nmtui_quit(); + + return FALSE; } gboolean sleep_on_startup = FALSE; -gboolean noinit = FALSE; - -GOptionEntry entries[] = { - { "sleep", 's', G_OPTION_FLAG_HIDDEN, G_OPTION_ARG_NONE, &sleep_on_startup, - "Sleep on startup", NULL }, - { "noinit", 'n', G_OPTION_FLAG_HIDDEN, G_OPTION_ARG_NONE, &noinit, - "Don't initialize newt", NULL }, - { NULL } -}; +gboolean noinit = FALSE; + +GOptionEntry entries[] = {{"sleep", + 's', + G_OPTION_FLAG_HIDDEN, + G_OPTION_ARG_NONE, + &sleep_on_startup, + "Sleep on startup", + NULL}, + {"noinit", + 'n', + G_OPTION_FLAG_HIDDEN, + G_OPTION_ARG_NONE, + &noinit, + "Don't initialize newt", + NULL}, + {NULL}}; int -main (int argc, char **argv) +main(int argc, char **argv) { - GOptionContext *opts; - GError *error = NULL; - NmtuiStartupData startup_data; - const char *prgname; - int i; - - setlocale (LC_ALL, ""); - bindtextdomain (GETTEXT_PACKAGE, NMLOCALEDIR); - bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); - textdomain (GETTEXT_PACKAGE); - - opts = g_option_context_new (NULL); - g_option_context_add_main_entries (opts, entries, NULL); - - if (!g_option_context_parse (opts, &argc, &argv, &error)) { - g_printerr ("%s: %s: %s\n", - argv[0], - _("Could not parse arguments"), - error->message); - exit (1); - } - g_option_context_free (opts); - - nm_editor_bindings_init (); - - if (!nmc_client_new_waitsync (NULL, - &nm_client, - &error, - NM_CLIENT_INSTANCE_FLAGS, (guint) NM_CLIENT_INSTANCE_FLAGS_NO_AUTO_FETCH_PERMISSIONS, - NULL)) { - g_printerr (_("Could not contact NetworkManager: %s.\n"), error->message); - g_error_free (error); - exit (1); - } - if (!nm_client_get_nm_running (nm_client)) { - g_printerr ("%s\n", _("NetworkManager is not running.")); - exit (1); - } - - if (sleep_on_startup) - sleep (5); - - startup_data.subprogram = NULL; - prgname = g_get_prgname (); - if (g_str_has_prefix (prgname, "lt-")) - prgname += 3; - if (!strcmp (prgname, "nmtui")) { - if (argc > 1) { - for (i = 0; i < num_subprograms; i++) { - if (!strcmp (argv[1], subprograms[i].name)) { - argc--; - argv[0] = (char *) subprograms[i].shortcut; - memmove (&argv[1], &argv[2], argc * sizeof (char *)); - startup_data.subprogram = subprograms[i].func; - break; - } - } - } else - startup_data.subprogram = nmtui_main; - } else { - for (i = 0; i < num_subprograms; i++) { - if (!strcmp (prgname, subprograms[i].shortcut)) { - startup_data.subprogram = subprograms[i].func; - break; - } - } - } - if (!startup_data.subprogram) - usage (); - - if (!noinit) - nmt_newt_init (); - - startup_data.argc = argc; - startup_data.argv = argv; - g_idle_add (idle_run_subprogram, &startup_data); - loop = g_main_loop_new (NULL, FALSE); - g_main_loop_run (loop); - g_main_loop_unref (loop); - - if (!noinit) - nmt_newt_finished (); - - g_object_unref (nm_client); - - return 0; + GOptionContext * opts; + GError * error = NULL; + NmtuiStartupData startup_data; + const char * prgname; + int i; + + setlocale(LC_ALL, ""); + bindtextdomain(GETTEXT_PACKAGE, NMLOCALEDIR); + bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8"); + textdomain(GETTEXT_PACKAGE); + + opts = g_option_context_new(NULL); + g_option_context_add_main_entries(opts, entries, NULL); + + if (!g_option_context_parse(opts, &argc, &argv, &error)) { + g_printerr("%s: %s: %s\n", argv[0], _("Could not parse arguments"), error->message); + exit(1); + } + g_option_context_free(opts); + + nm_editor_bindings_init(); + + if (!nmc_client_new_waitsync(NULL, + &nm_client, + &error, + NM_CLIENT_INSTANCE_FLAGS, + (guint) NM_CLIENT_INSTANCE_FLAGS_NO_AUTO_FETCH_PERMISSIONS, + NULL)) { + g_printerr(_("Could not contact NetworkManager: %s.\n"), error->message); + g_error_free(error); + exit(1); + } + if (!nm_client_get_nm_running(nm_client)) { + g_printerr("%s\n", _("NetworkManager is not running.")); + exit(1); + } + + if (sleep_on_startup) + sleep(5); + + startup_data.subprogram = NULL; + prgname = g_get_prgname(); + if (g_str_has_prefix(prgname, "lt-")) + prgname += 3; + if (!strcmp(prgname, "nmtui")) { + if (argc > 1) { + for (i = 0; i < num_subprograms; i++) { + if (!strcmp(argv[1], subprograms[i].name)) { + argc--; + argv[0] = (char *) subprograms[i].shortcut; + memmove(&argv[1], &argv[2], argc * sizeof(char *)); + startup_data.subprogram = subprograms[i].func; + break; + } + } + } else + startup_data.subprogram = nmtui_main; + } else { + for (i = 0; i < num_subprograms; i++) { + if (!strcmp(prgname, subprograms[i].shortcut)) { + startup_data.subprogram = subprograms[i].func; + break; + } + } + } + if (!startup_data.subprogram) + usage(); + + if (!noinit) + nmt_newt_init(); + + startup_data.argc = argc; + startup_data.argv = argv; + g_idle_add(idle_run_subprogram, &startup_data); + loop = g_main_loop_new(NULL, FALSE); + g_main_loop_run(loop); + g_main_loop_unref(loop); + + if (!noinit) + nmt_newt_finished(); + + g_object_unref(nm_client); + + return 0; } diff --git a/clients/tui/nmtui.h b/clients/tui/nmtui.h index 0eed180d02..675fb5273f 100644 --- a/clients/tui/nmtui.h +++ b/clients/tui/nmtui.h @@ -8,6 +8,6 @@ extern NMClient *nm_client; -void nmtui_quit (void); +void nmtui_quit(void); #endif /* NMTUI_H */ |