aboutsummaryrefslogtreecommitdiffstats
path: root/packages/gtk+/gtk+-2.6.4-1.osso7/gtklabel.c.diff
diff options
context:
space:
mode:
Diffstat (limited to 'packages/gtk+/gtk+-2.6.4-1.osso7/gtklabel.c.diff')
-rw-r--r--packages/gtk+/gtk+-2.6.4-1.osso7/gtklabel.c.diff390
1 files changed, 0 insertions, 390 deletions
diff --git a/packages/gtk+/gtk+-2.6.4-1.osso7/gtklabel.c.diff b/packages/gtk+/gtk+-2.6.4-1.osso7/gtklabel.c.diff
deleted file mode 100644
index e730b66b7f..0000000000
--- a/packages/gtk+/gtk+-2.6.4-1.osso7/gtklabel.c.diff
+++ /dev/null
@@ -1,390 +0,0 @@
---- gtk+-2.6.4/gtk/gtklabel.c 2005-02-28 06:32:03.000000000 +0200
-+++ gtk+-2.6.4/gtk/gtklabel.c 2005-04-06 16:19:36.878931912 +0300
-@@ -23,6 +23,11 @@
- * GTK+ at ftp://ftp.gtk.org/pub/gtk/.
- */
-
-+
-+/* Modified for Nokia Oyj during 2004. See CHANGES file for list
-+ * of changes.
-+ */
-+
- #include <config.h>
- #include <math.h>
- #include <string.h>
-@@ -52,6 +57,7 @@
- guint single_line_mode : 1;
- guint have_transform : 1;
- gdouble angle;
-+ gboolean request_full_width;
- }
- GtkLabelPrivate;
-
-@@ -75,6 +81,9 @@
- LAST_SIGNAL
- };
-
-+/* Hildon mod.
-+ A property PROP_TRANSLATABLE has been added here. If new Gtk+
-+ versions add items here, the compability will break. */
- enum {
- PROP_0,
- PROP_LABEL,
-@@ -89,6 +98,7 @@
- PROP_MNEMONIC_WIDGET,
- PROP_CURSOR_POSITION,
- PROP_SELECTION_BOUND,
-+ PROP_TRANSLATABLE,
- PROP_ELLIPSIZE,
- PROP_WIDTH_CHARS,
- PROP_SINGLE_LINE_MODE,
-@@ -96,6 +106,12 @@
- PROP_MAX_WIDTH_CHARS
- };
-
-+/* Hildon mod. A few keys. These are used to store data for label
-+ * without changing the private structures. */
-+#define LABEL_KEY_TRANSLATABLE "label_translatable"
-+#define LABEL_KEY_TRANSLATABLETEXT "label_translatabletext"
-+#define LABEL_KEY_ORIGINAL_LAYOUT "label_original_layout"
-+
- static guint signals[LAST_SIGNAL] = { 0 };
-
- static void gtk_label_class_init (GtkLabelClass *klass);
-@@ -149,7 +165,7 @@
- static void gtk_label_set_uline_text_internal (GtkLabel *label,
- const gchar *str);
- static void gtk_label_set_pattern_internal (GtkLabel *label,
-- const gchar *pattern);
-+ const gchar *pattern);
- static void set_markup (GtkLabel *label,
- const gchar *str,
- gboolean with_uline);
-@@ -516,6 +532,24 @@
- G_MAXINT,
- -1,
- G_PARAM_READWRITE));
-+ /* Hildon mod. Add property for a widget - whether it supports run-time
-+ + locale change. Please note that this functionality is not yet
-+ + completed and may change. */
-+ g_object_class_install_property (gobject_class,
-+ PROP_TRANSLATABLE,
-+ g_param_spec_boolean ("translatable",
-+ _("Is translatable"),
-+ _("Whether label should be translatable."),
-+ FALSE,
-+ G_PARAM_READWRITE));
-+
-+ /* Hildonlike class property */
-+ gtk_widget_class_install_style_property (widget_class,
-+ g_param_spec_boolean ("hildonlike",
-+ _("hildonlike looks"),
-+ _("Changes wrapping etc behaviour, 1/0"),
-+ FALSE,
-+ G_PARAM_READABLE));
- /*
- * Key bindings
- */
-@@ -650,6 +684,10 @@
- case PROP_MAX_WIDTH_CHARS:
- gtk_label_set_max_width_chars (label, g_value_get_int (value));
- break;
-+/* Hildon add. */
-+ case PROP_TRANSLATABLE:
-+ gtk_label_set_translatable (label, g_value_get_boolean (value));
-+ break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
-@@ -730,6 +768,10 @@
- case PROP_MAX_WIDTH_CHARS:
- g_value_set_int (value, gtk_label_get_max_width_chars (label));
- break;
-+/* Hildon mod. */
-+ case PROP_TRANSLATABLE:
-+ g_value_set_boolean (value, gtk_label_get_translatable (label));
-+ break;
-
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-@@ -748,6 +790,7 @@
- priv->width_chars = -1;
- priv->angle = 0.0;
- priv->max_width_chars = -1;
-+ priv->request_full_width = FALSE;
- label->label = NULL;
-
- label->jtype = GTK_JUSTIFY_LEFT;
-@@ -766,6 +809,15 @@
- label->mnemonic_window = NULL;
-
- gtk_label_set_text (label, "");
-+
-+/* Hildon Addition. */
-+
-+ g_object_set_data (G_OBJECT (label), LABEL_KEY_TRANSLATABLE, FALSE);
-+ g_object_set_data (G_OBJECT (label), LABEL_KEY_TRANSLATABLETEXT, NULL);
-+ g_object_set_data (G_OBJECT (label), LABEL_KEY_ORIGINAL_LAYOUT, NULL);
-+
-+/* /Hildon Addition. */
-+
- }
-
- /**
-@@ -822,7 +874,7 @@
-
- if (str && *str)
- gtk_label_set_text_with_mnemonic (label, str);
--
-+
- return GTK_WIDGET (label);
- }
-
-@@ -1257,7 +1309,7 @@
- GError *error = NULL;
- PangoAttrList *attrs = NULL;
- gunichar accel_char = 0;
--
-+
- if (!pango_parse_markup (str,
- -1,
- with_uline ? '_' : 0,
-@@ -1340,12 +1392,14 @@
- g_return_if_fail (GTK_IS_LABEL (label));
-
- last_keyval = label->mnemonic_keyval;
-+
- gtk_label_set_label_internal (label, g_strdup (str ? str : ""));
- gtk_label_set_use_markup_internal (label, TRUE);
- gtk_label_set_use_underline_internal (label, TRUE);
--
- gtk_label_recalculate (label);
-+
- gtk_label_setup_mnemonic (label, last_keyval);
-+
- }
-
- /**
-@@ -1409,7 +1463,7 @@
-
- static void
- gtk_label_set_pattern_internal (GtkLabel *label,
-- const gchar *pattern)
-+ const gchar *pattern)
- {
- PangoAttrList *attrs;
- g_return_if_fail (GTK_IS_LABEL (label));
-@@ -1421,7 +1475,16 @@
-
- if (label->effective_attrs)
- pango_attr_list_unref (label->effective_attrs);
-+/* Following will disable undercores from
-+ keyboard shortcuts if DISABLE_KEYBOARD_SHORTCUTS
-+ is enabled during compile time
-+ */
-+#ifndef DISABLE_KEYBOARD_SHORTCUTS
- label->effective_attrs = attrs;
-+#else
-+ pango_attr_list_unref (attrs);
-+#endif /* DISABLE_KEYBOARD_SHORTCUTS */
-+
- }
-
- void
-@@ -1742,8 +1805,13 @@
- {
- PangoLayout *layout;
- GtkStyle *style = GTK_WIDGET (label)->style;
--
-+
-+ gboolean hildonlike;
- LabelWrapWidth *wrap_width = g_object_get_data (G_OBJECT (style), "gtk-label-wrap-width");
-+
-+ /* Hildon: get hildonlike property */
-+ gtk_widget_style_get (GTK_WIDGET (label), "hildonlike", &hildonlike, NULL);
-+
- if (!wrap_width)
- {
- wrap_width = g_new0 (LabelWrapWidth, 1);
-@@ -1763,7 +1831,12 @@
- "This long string gives a good enough length for any line to have.");
- pango_layout_get_size (layout, &wrap_width->width, NULL);
- g_object_unref (layout);
--
-+ /* A hildon mod for "fixing line wrapping". Remember to remove this
-+ when GtkLabel will implement width for height size negotiation.*/
-+ if (hildonlike)
-+ {
-+ wrap_width->width = wrap_width->width * 1.25;
-+ }
- return wrap_width->width;
- }
-
-@@ -1774,8 +1847,12 @@
- PangoRectangle logical_rect;
- gint rwidth, rheight;
- gboolean rtl;
-+ gboolean hildonlike;
-
- widget = GTK_WIDGET (label);
-+
-+ /* Hildon: get hildonlike property */
-+ gtk_widget_style_get (widget, "hildonlike", &hildonlike, NULL);
-
- rtl = gtk_widget_get_direction(widget) == GTK_TEXT_DIR_RTL;
- rwidth = label->misc.xpad * 2;
-@@ -1864,8 +1941,18 @@
-
- wrap_width = get_label_wrap_width (label);
- width = MIN (width, wrap_width);
-- width = MIN (width,
-+
-+ if (!hildonlike)
-+ {
-+ width = MIN (width,
- PANGO_SCALE * (gdk_screen_get_width (screen) + 1) / 2);
-+ }
-+ else
-+ {
-+ width = MIN (width,
-+ PANGO_SCALE * (gdk_screen_get_width (screen) + 1));
-+ }
-+
-
- pango_layout_set_width (label->layout, width);
- pango_layout_get_extents (label->layout, NULL, &logical_rect);
-@@ -1910,6 +1997,7 @@
- else /* !label->wrap */
- pango_layout_set_width (label->layout, -1);
- }
-+
- }
-
- /* Gets the bounds of a layout in device coordinates. Note cut-and-paste
-@@ -2017,7 +2105,8 @@
- priv->width_chars > 0 || priv->max_width_chars > 0) &&
- aux_info && aux_info->width > 0)
- width += aux_info->width;
-- else if (label->ellipsize || priv->width_chars > 0 || priv->max_width_chars > 0)
-+ else if ((label->ellipsize || priv->width_chars > 0 || priv->max_width_chars > 0) &&
-+ !priv->request_full_width)
- {
- PangoContext *context;
- PangoFontMetrics *metrics;
-@@ -2081,11 +2170,24 @@
- GtkAllocation *allocation)
- {
- GtkLabel *label;
-+ GtkRequisition req;
-+ GtkLabelPrivate *priv;
-
- label = GTK_LABEL (widget);
-+ priv = GTK_LABEL_GET_PRIVATE (label);
-
- (* GTK_WIDGET_CLASS (parent_class)->size_allocate) (widget, allocation);
-
-+ gtk_widget_get_child_requisition (widget, &req);
-+
-+ if (allocation->width < req.width && !label->wrap)
-+ {
-+ gtk_label_set_ellipsize (label, PANGO_ELLIPSIZE_END);
-+ priv->request_full_width = TRUE;
-+ }
-+ else
-+ priv->request_full_width = FALSE;
-+
- if (label->ellipsize)
- {
- if (label->layout)
-@@ -2479,7 +2581,7 @@
- }
- *dest = 0;
- *pattern_dest = 0;
--
-+
- gtk_label_set_text_internal (label, new_str);
- gtk_label_set_pattern_internal (label, pattern);
-
-@@ -2541,13 +2643,11 @@
- last_keyval = label->mnemonic_keyval;
-
- g_object_freeze_notify (G_OBJECT (label));
--
- gtk_label_set_label_internal (label, g_strdup (str ? str : ""));
- gtk_label_set_use_markup_internal (label, FALSE);
- gtk_label_set_use_underline_internal (label, TRUE);
--
-- gtk_label_recalculate (label);
-
-+ gtk_label_recalculate (label);
- gtk_label_setup_mnemonic (label, last_keyval);
-
- g_object_thaw_notify (G_OBJECT (label));
-@@ -3948,3 +4048,67 @@
- popup_position_func, label,
- 0, gtk_get_current_event_time ());
- }
-+
-+/* Hildon mod.
-+ * Functions for run-time locale changing. Beware though that this
-+ functionality is not yet completed. Therefore it's suggested
-+ that these functions shouldn't be used yet outside testing. */
-+
-+void gtk_label_set_translatable (GtkLabel *label, gboolean newstatus)
-+{
-+ if (newstatus == gtk_label_get_translatable (label)) return;
-+
-+ if (newstatus == TRUE)
-+ {
-+ if (g_object_get_data (G_OBJECT (label), LABEL_KEY_TRANSLATABLETEXT) != NULL)
-+ g_free (g_object_get_data (G_OBJECT (label), LABEL_KEY_TRANSLATABLETEXT));
-+ g_object_set_data (G_OBJECT (label), LABEL_KEY_TRANSLATABLETEXT, g_strdup (label->label));
-+ g_object_set_data (G_OBJECT (label), LABEL_KEY_TRANSLATABLE, (void*) TRUE);
-+ if (label->text != NULL)
-+ g_free (label->text);
-+ if (label->label != NULL)
-+ g_free (label->label);
-+ label->text = g_strdup(_(g_object_get_data (G_OBJECT (label), LABEL_KEY_TRANSLATABLETEXT)));
-+ label->label = g_strdup(_(g_object_get_data (G_OBJECT (label), LABEL_KEY_TRANSLATABLETEXT)));
-+ }
-+ else
-+ {
-+ if (label->text != NULL)
-+ g_free (label->text);
-+ if (label->label != NULL)
-+ g_free (label->label);
-+ label->text = g_strdup (g_object_get_data (G_OBJECT (label), LABEL_KEY_TRANSLATABLETEXT));
-+ label->label = g_strdup (g_object_get_data (G_OBJECT (label), LABEL_KEY_TRANSLATABLETEXT));
-+ g_object_set_data (G_OBJECT (label), LABEL_KEY_TRANSLATABLE, FALSE);
-+ if (g_object_get_data (G_OBJECT (label), LABEL_KEY_TRANSLATABLETEXT) != NULL)
-+ g_free (g_object_get_data (G_OBJECT (label), LABEL_KEY_TRANSLATABLETEXT));
-+ g_object_set_data (G_OBJECT (label), LABEL_KEY_TRANSLATABLETEXT, NULL);
-+ }
-+ gtk_label_recalculate (label);
-+}
-+
-+gboolean gtk_label_get_translatable (GtkLabel *label)
-+{
-+ return (gboolean) (g_object_get_data (G_OBJECT (label), LABEL_KEY_TRANSLATABLE));
-+}
-+
-+
-+void gtk_label_retranslate (GtkLabel *label)
-+{
-+ g_object_freeze_notify (G_OBJECT (label));
-+ if (gtk_label_get_translatable (label) == TRUE)
-+ {
-+ if (label->label != NULL)
-+ g_free (label->label);
-+ label->label = g_strdup(gettext(g_object_get_data (G_OBJECT (label), LABEL_KEY_TRANSLATABLETEXT)));
-+ }
-+ if (g_object_get_data (G_OBJECT (label), LABEL_KEY_ORIGINAL_LAYOUT)) g_object_unref (g_object_get_data (G_OBJECT (label), LABEL_KEY_ORIGINAL_LAYOUT));
-+ g_object_set_data (G_OBJECT (label), LABEL_KEY_ORIGINAL_LAYOUT, NULL);
-+ g_object_notify (G_OBJECT (label), "label");
-+ gtk_label_recalculate (label);
-+ g_object_thaw_notify (G_OBJECT (label));
-+ gtk_label_set_text (label, label->label);
-+}
-+
-+/* End of hildon mods for run-time locale change. */
-+