summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2008-09-04 14:14:11 +0000
committerMatthias Clasen <matthiasc@src.gnome.org>2008-09-04 14:14:11 +0000
commit861ac4ad76814883b1133ef486dfed6dda05d434 (patch)
treecd46a8e1c3b7ec1eccf2ef2e55ccca59b6d697aa
parent49416a2c4034fd26a12baae6b949854a01d7c96e (diff)
downloadgtk+-861ac4ad76814883b1133ef486dfed6dda05d434.tar.gz
Add nicks for the GtkNumberUpLayout values.
2008-09-04 Matthias Clasen <mclasen@redhat.com> * gtk/gtkenums.h: Add nicks for the GtkNumberUpLayout values. * gtk/gtkprintunixdialog.c: * gtk/gtkprintsettings.c: Simplify the handling of GtkNumberUpLayout values. Followup on #535158, proposed by Christian Persch. 2008-09-04 Matthias Clasen <mclasen@redhat.com> * INSTALL.in: Update required versions svn path=/trunk/; revision=21289
-rw-r--r--ChangeLog12
-rw-r--r--gtk/gtkenums.h16
-rw-r--r--gtk/gtkprintsettings.c73
-rw-r--r--gtk/gtkprintunixdialog.c88
4 files changed, 64 insertions, 125 deletions
diff --git a/ChangeLog b/ChangeLog
index f44a69bbf9..423ee9fedb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2008-09-04 Matthias Clasen <mclasen@redhat.com>
+
+ * gtk/gtkenums.h: Add nicks for the GtkNumberUpLayout values.
+
+ * gtk/gtkprintunixdialog.c:
+ * gtk/gtkprintsettings.c: Simplify the handling of GtkNumberUpLayout
+ values. Followup on #535158, proposed by Christian Persch.
+
+2008-09-04 Matthias Clasen <mclasen@redhat.com>
+
+ * INSTALL.in: Update required versions
+
2008-09-04 Michael Natterer <mitch@imendio.com>
* gtk/gtkhandlebox.c: events return gboolean not gint.
diff --git a/gtk/gtkenums.h b/gtk/gtkenums.h
index 75b7384ae8..59996c181a 100644
--- a/gtk/gtkenums.h
+++ b/gtk/gtkenums.h
@@ -489,14 +489,14 @@ typedef enum
typedef enum
{
- GTK_NUMBER_UP_LAYOUT_LEFT_TO_RIGHT_TOP_TO_BOTTOM,
- GTK_NUMBER_UP_LAYOUT_LEFT_TO_RIGHT_BOTTOM_TO_TOP,
- GTK_NUMBER_UP_LAYOUT_RIGHT_TO_LEFT_TOP_TO_BOTTOM,
- GTK_NUMBER_UP_LAYOUT_RIGHT_TO_LEFT_BOTTOM_TO_TOP,
- GTK_NUMBER_UP_LAYOUT_TOP_TO_BOTTOM_LEFT_TO_RIGHT,
- GTK_NUMBER_UP_LAYOUT_TOP_TO_BOTTOM_RIGHT_TO_LEFT,
- GTK_NUMBER_UP_LAYOUT_BOTTOM_TO_TOP_LEFT_TO_RIGHT,
- GTK_NUMBER_UP_LAYOUT_BOTTOM_TO_TOP_RIGHT_TO_LEFT
+ GTK_NUMBER_UP_LAYOUT_LEFT_TO_RIGHT_TOP_TO_BOTTOM, /*< nick=lrtb >*/
+ GTK_NUMBER_UP_LAYOUT_LEFT_TO_RIGHT_BOTTOM_TO_TOP, /*< nick=lrbt >*/
+ GTK_NUMBER_UP_LAYOUT_RIGHT_TO_LEFT_TOP_TO_BOTTOM, /*< nick=rltb >*/
+ GTK_NUMBER_UP_LAYOUT_RIGHT_TO_LEFT_BOTTOM_TO_TOP, /*< nick=rlbt >*/
+ GTK_NUMBER_UP_LAYOUT_TOP_TO_BOTTOM_LEFT_TO_RIGHT, /*< nick=tblr >*/
+ GTK_NUMBER_UP_LAYOUT_TOP_TO_BOTTOM_RIGHT_TO_LEFT, /*< nick=tbrl >*/
+ GTK_NUMBER_UP_LAYOUT_BOTTOM_TO_TOP_LEFT_TO_RIGHT, /*< nick=btlr >*/
+ GTK_NUMBER_UP_LAYOUT_BOTTOM_TO_TOP_RIGHT_TO_LEFT /*< nick=btrl >*/
} GtkNumberUpLayout;
typedef enum
diff --git a/gtk/gtkprintsettings.c b/gtk/gtkprintsettings.c
index e1fccb20fd..e34e0dd6a1 100644
--- a/gtk/gtkprintsettings.c
+++ b/gtk/gtkprintsettings.c
@@ -1054,8 +1054,12 @@ gtk_print_settings_get_number_up_layout (GtkPrintSettings *settings)
{
GtkNumberUpLayout layout;
GtkTextDirection text_direction;
+ GEnumClass *enum_class;
+ GEnumValue *enum_value;
const gchar *val;
+ g_return_val_if_fail (GTK_IS_PRINT_SETTINGS (settings), GTK_NUMBER_UP_LAYOUT_LEFT_TO_RIGHT_TOP_TO_BOTTOM);
+
val = gtk_print_settings_get (settings, GTK_PRINT_SETTINGS_NUMBER_UP_LAYOUT);
text_direction = gtk_widget_get_default_direction ();
@@ -1067,29 +1071,11 @@ gtk_print_settings_get_number_up_layout (GtkPrintSettings *settings)
if (val == NULL)
return layout;
- if (strcmp (val, "lrtb") == 0)
- return GTK_NUMBER_UP_LAYOUT_LEFT_TO_RIGHT_TOP_TO_BOTTOM;
-
- if (strcmp (val, "lrbt") == 0)
- return GTK_NUMBER_UP_LAYOUT_LEFT_TO_RIGHT_BOTTOM_TO_TOP;
-
- if (strcmp (val, "rltb") == 0)
- return GTK_NUMBER_UP_LAYOUT_RIGHT_TO_LEFT_TOP_TO_BOTTOM;
-
- if (strcmp (val, "rlbt") == 0)
- return GTK_NUMBER_UP_LAYOUT_RIGHT_TO_LEFT_BOTTOM_TO_TOP;
-
- if (strcmp (val, "tblr") == 0)
- return GTK_NUMBER_UP_LAYOUT_TOP_TO_BOTTOM_LEFT_TO_RIGHT;
-
- if (strcmp (val, "tbrl") == 0)
- return GTK_NUMBER_UP_LAYOUT_TOP_TO_BOTTOM_RIGHT_TO_LEFT;
-
- if (strcmp (val, "btlr") == 0)
- return GTK_NUMBER_UP_LAYOUT_BOTTOM_TO_TOP_LEFT_TO_RIGHT;
-
- if (strcmp (val, "btrl") == 0)
- return GTK_NUMBER_UP_LAYOUT_BOTTOM_TO_TOP_RIGHT_TO_LEFT;
+ enum_class = g_type_class_ref (GTK_TYPE_NUMBER_UP_LAYOUT);
+ enum_value = g_enum_get_value_by_nick (enum_class, val);
+ if (enum_value)
+ layout = enum_value->value;
+ g_type_class_unref (enum_class);
return layout;
}
@@ -1107,38 +1093,17 @@ void
gtk_print_settings_set_number_up_layout (GtkPrintSettings *settings,
GtkNumberUpLayout number_up_layout)
{
- const gchar *str;
+ GEnumClass *enum_class;
+ GEnumValue *enum_value;
- switch (number_up_layout)
- {
- default:
- case GTK_NUMBER_UP_LAYOUT_LEFT_TO_RIGHT_TOP_TO_BOTTOM:
- str = "lrtb";
- break;
- case GTK_NUMBER_UP_LAYOUT_LEFT_TO_RIGHT_BOTTOM_TO_TOP:
- str = "lrbt";
- break;
- case GTK_NUMBER_UP_LAYOUT_RIGHT_TO_LEFT_TOP_TO_BOTTOM:
- str = "rltb";
- break;
- case GTK_NUMBER_UP_LAYOUT_RIGHT_TO_LEFT_BOTTOM_TO_TOP:
- str = "rlbt";
- break;
- case GTK_NUMBER_UP_LAYOUT_TOP_TO_BOTTOM_LEFT_TO_RIGHT:
- str = "tblr";
- break;
- case GTK_NUMBER_UP_LAYOUT_TOP_TO_BOTTOM_RIGHT_TO_LEFT:
- str = "tbrl";
- break;
- case GTK_NUMBER_UP_LAYOUT_BOTTOM_TO_TOP_LEFT_TO_RIGHT:
- str = "btlr";
- break;
- case GTK_NUMBER_UP_LAYOUT_BOTTOM_TO_TOP_RIGHT_TO_LEFT:
- str = "btrl";
- break;
- }
-
- gtk_print_settings_set (settings, GTK_PRINT_SETTINGS_NUMBER_UP_LAYOUT, str);
+ g_return_if_fail (GTK_IS_PRINT_SETTINGS (settings));
+
+ enum_class = g_type_class_ref (GTK_TYPE_NUMBER_UP_LAYOUT);
+ enum_value = g_enum_get_value (enum_class, number_up_layout);
+ g_return_if_fail (enum_value != NULL);
+
+ gtk_print_settings_set (settings, GTK_PRINT_SETTINGS_NUMBER_UP_LAYOUT, enum_value->value_nick);
+ g_type_class_unref (enum_class);
}
/**
diff --git a/gtk/gtkprintunixdialog.c b/gtk/gtkprintunixdialog.c
index 9c20fca396..2f80bf1829 100644
--- a/gtk/gtkprintunixdialog.c
+++ b/gtk/gtkprintunixdialog.c
@@ -2128,50 +2128,30 @@ dialog_get_number_up_layout (GtkPrintUnixDialog *dialog)
GtkPrintUnixDialogPrivate *priv = dialog->priv;
GtkPrintCapabilities caps;
GtkNumberUpLayout layout;
- GtkTextDirection text_direction;
const gchar *val;
+ GEnumClass *enum_class;
+ GEnumValue *enum_value;
val = gtk_printer_option_widget_get_value (priv->number_up_layout);
- text_direction = gtk_widget_get_default_direction ();
caps = priv->manual_capabilities | priv->printer_capabilities;
- if (caps & GTK_PRINT_CAPABILITY_NUMBER_UP_LAYOUT)
- {
- if (text_direction == GTK_TEXT_DIR_LTR)
- layout = GTK_NUMBER_UP_LAYOUT_LEFT_TO_RIGHT_TOP_TO_BOTTOM;
- else
- layout = GTK_NUMBER_UP_LAYOUT_RIGHT_TO_LEFT_TOP_TO_BOTTOM;
- }
- else
+ if ((caps & GTK_PRINT_CAPABILITY_NUMBER_UP_LAYOUT) == 0)
+ return GTK_NUMBER_UP_LAYOUT_LEFT_TO_RIGHT_TOP_TO_BOTTOM;
+
+ if (gtk_widget_get_direction (GTK_WIDGET (dialog)) == GTK_TEXT_DIR_LTR)
layout = GTK_NUMBER_UP_LAYOUT_LEFT_TO_RIGHT_TOP_TO_BOTTOM;
+ else
+ layout = GTK_NUMBER_UP_LAYOUT_RIGHT_TO_LEFT_TOP_TO_BOTTOM;
if (val == NULL)
return layout;
- if (strcmp (val, "lrtb") == 0)
- return GTK_NUMBER_UP_LAYOUT_LEFT_TO_RIGHT_TOP_TO_BOTTOM;
-
- if (strcmp (val, "lrbt") == 0)
- return GTK_NUMBER_UP_LAYOUT_LEFT_TO_RIGHT_BOTTOM_TO_TOP;
-
- if (strcmp (val, "rltb") == 0)
- return GTK_NUMBER_UP_LAYOUT_RIGHT_TO_LEFT_TOP_TO_BOTTOM;
-
- if (strcmp (val, "rlbt") == 0)
- return GTK_NUMBER_UP_LAYOUT_RIGHT_TO_LEFT_BOTTOM_TO_TOP;
-
- if (strcmp (val, "tblr") == 0)
- return GTK_NUMBER_UP_LAYOUT_TOP_TO_BOTTOM_LEFT_TO_RIGHT;
-
- if (strcmp (val, "tbrl") == 0)
- return GTK_NUMBER_UP_LAYOUT_TOP_TO_BOTTOM_RIGHT_TO_LEFT;
-
- if (strcmp (val, "btlr") == 0)
- return GTK_NUMBER_UP_LAYOUT_BOTTOM_TO_TOP_LEFT_TO_RIGHT;
-
- if (strcmp (val, "btrl") == 0)
- return GTK_NUMBER_UP_LAYOUT_BOTTOM_TO_TOP_RIGHT_TO_LEFT;
+ enum_class = g_type_class_ref (GTK_TYPE_NUMBER_UP_LAYOUT);
+ enum_value = g_enum_get_value_by_nick (enum_class, val);
+ if (enum_value)
+ layout = enum_value->value;
+ g_type_class_unref (enum_class);
return layout;
}
@@ -2204,7 +2184,7 @@ draw_page_cb (GtkWidget *widget,
(orientation == GTK_PAGE_ORIENTATION_REVERSE_LANDSCAPE);
number_up_layout = dialog_get_number_up_layout (dialog);
-
+
cr = gdk_cairo_create (widget->window);
cairo_translate (cr, widget->allocation.x, widget->allocation.y);
@@ -2451,6 +2431,10 @@ update_number_up_layout (GtkPrintUnixDialog *dialog)
if (dialog_get_pages_per_sheet (dialog) != 1)
{
+ GEnumClass *enum_class;
+ GEnumValue *enum_value;
+ enum_class = g_type_class_ref (GTK_TYPE_NUMBER_UP_LAYOUT);
+
if (dialog_get_pages_per_sheet (dialog) == 2)
{
option = priv->number_up_layout_2_option;
@@ -2459,43 +2443,21 @@ update_number_up_layout (GtkPrintUnixDialog *dialog)
layout == GTK_NUMBER_UP_LAYOUT_LEFT_TO_RIGHT_BOTTOM_TO_TOP ||
layout == GTK_NUMBER_UP_LAYOUT_TOP_TO_BOTTOM_LEFT_TO_RIGHT ||
layout == GTK_NUMBER_UP_LAYOUT_BOTTOM_TO_TOP_LEFT_TO_RIGHT)
- gtk_printer_option_set (option, "lrtb");
+ enum_value = g_enum_get_value (enum_class, GTK_NUMBER_UP_LAYOUT_LEFT_TO_RIGHT_TOP_TO_BOTTOM);
else
- gtk_printer_option_set (option, "rltb");
+ enum_value = g_enum_get_value (enum_class, GTK_NUMBER_UP_LAYOUT_RIGHT_TO_LEFT_TOP_TO_BOTTOM);
}
else
{
option = priv->number_up_layout_n_option;
- switch (layout)
- {
- case GTK_NUMBER_UP_LAYOUT_LEFT_TO_RIGHT_TOP_TO_BOTTOM:
- gtk_printer_option_set (option, "lrtb");
- break;
- case GTK_NUMBER_UP_LAYOUT_LEFT_TO_RIGHT_BOTTOM_TO_TOP:
- gtk_printer_option_set (option, "lrbt");
- break;
- case GTK_NUMBER_UP_LAYOUT_RIGHT_TO_LEFT_TOP_TO_BOTTOM:
- gtk_printer_option_set (option, "rltb");
- break;
- case GTK_NUMBER_UP_LAYOUT_RIGHT_TO_LEFT_BOTTOM_TO_TOP:
- gtk_printer_option_set (option, "rlbt");
- break;
- case GTK_NUMBER_UP_LAYOUT_TOP_TO_BOTTOM_LEFT_TO_RIGHT:
- gtk_printer_option_set (option, "tblr");
- break;
- case GTK_NUMBER_UP_LAYOUT_TOP_TO_BOTTOM_RIGHT_TO_LEFT:
- gtk_printer_option_set (option, "tbrl");
- break;
- case GTK_NUMBER_UP_LAYOUT_BOTTOM_TO_TOP_LEFT_TO_RIGHT:
- gtk_printer_option_set (option, "btlr");
- break;
- case GTK_NUMBER_UP_LAYOUT_BOTTOM_TO_TOP_RIGHT_TO_LEFT:
- gtk_printer_option_set (option, "btrl");
- break;
- }
+ enum_value = g_enum_get_value (enum_class, layout);
}
+ g_assert (enum_value != NULL);
+ gtk_printer_option_set (option, enum_value->value_nick);
+ g_type_class_unref (enum_class);
+
gtk_printer_option_set_add (set, option);
}
}