summaryrefslogtreecommitdiff
path: root/gtk/gtklabel.c
diff options
context:
space:
mode:
authorOwen Taylor <otaylor@src.gnome.org>2002-09-27 20:50:44 +0000
committerOwen Taylor <otaylor@src.gnome.org>2002-09-27 20:50:44 +0000
commitf3f02c0e1e3ce53986a7e12032f6ce9ddd7d42cd (patch)
treeaa2e6d5c342b414d754e02fb870121fc11b8a73a /gtk/gtklabel.c
parent8be3514f7415fbb638c41e5f386d2301dff18de1 (diff)
downloadgtk+-f3f02c0e1e3ce53986a7e12032f6ce9ddd7d42cd.tar.gz
ri Sep 27 16:23:49 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtklabel.c : Replaced instances where strlen (label->label) is used to get a byte code with strlen (label->text) as label->text contains the actual display text, while label->label contains markup / mnemonics. (#92683, Patch from Shivram U <shivaram.upadhyayula@wipro.com>, with some additions.) * gtk/gtklabel.c (gtk_label_set_uline_text_internal): Fix a leftover, now incorrect comment.
Diffstat (limited to 'gtk/gtklabel.c')
-rw-r--r--gtk/gtklabel.c52
1 files changed, 27 insertions, 25 deletions
diff --git a/gtk/gtklabel.c b/gtk/gtklabel.c
index 90b7230385..db2d04ac78 100644
--- a/gtk/gtklabel.c
+++ b/gtk/gtklabel.c
@@ -539,8 +539,8 @@ gtk_label_get_property (GObject *object,
case PROP_CURSOR_POSITION:
if (label->select_info)
{
- gint offset = g_utf8_pointer_to_offset (label->label,
- label->label + label->select_info->selection_end);
+ gint offset = g_utf8_pointer_to_offset (label->text,
+ label->text + label->select_info->selection_end);
g_value_set_int (value, offset);
}
else
@@ -549,8 +549,8 @@ gtk_label_get_property (GObject *object,
case PROP_SELECTION_BOUND:
if (label->select_info)
{
- gint offset = g_utf8_pointer_to_offset (label->label,
- label->label + label->select_info->selection_anchor);
+ gint offset = g_utf8_pointer_to_offset (label->text,
+ label->text + label->select_info->selection_anchor);
g_value_set_int (value, offset);
}
else
@@ -1851,8 +1851,10 @@ gtk_label_set_uline_text_internal (GtkLabel *label,
g_return_if_fail (GTK_IS_LABEL (label));
g_return_if_fail (str != NULL);
- /* Convert text to wide characters */
-
+ /* Split text into the base text and a separate pattern
+ * of underscores.
+ */
+
new_str = g_new (gchar, strlen (str) + 1);
pattern = g_new (gchar, g_utf8_strlen (str, -1) + 1);
@@ -2167,7 +2169,7 @@ gtk_label_button_press (GtkWidget *widget,
if (event->type == GDK_3BUTTON_PRESS)
{
- gtk_label_select_region_index (label, 0, strlen (label->label));
+ gtk_label_select_region_index (label, 0, strlen (label->text));
return TRUE;
}
@@ -2207,7 +2209,7 @@ gtk_label_button_press (GtkWidget *widget,
else
{
if (event->type == GDK_3BUTTON_PRESS)
- gtk_label_select_region_index (label, 0, strlen (label->label));
+ gtk_label_select_region_index (label, 0, strlen (label->text));
else if (event->type == GDK_2BUTTON_PRESS)
gtk_label_select_word (label);
else
@@ -2799,10 +2801,10 @@ gtk_label_move_logically (GtkLabel *label,
gint start,
gint count)
{
- gint offset = g_utf8_pointer_to_offset (label->label,
- label->label + start);
+ gint offset = g_utf8_pointer_to_offset (label->text,
+ label->text + start);
- if (label->label)
+ if (label->text)
{
PangoLogAttr *log_attrs;
gint n_attrs;
@@ -2810,7 +2812,7 @@ gtk_label_move_logically (GtkLabel *label,
gtk_label_ensure_layout (label);
- length = g_utf8_strlen (label->label, -1);
+ length = g_utf8_strlen (label->text, -1);
pango_layout_get_log_attrs (label->layout, &log_attrs, &n_attrs);
@@ -2834,7 +2836,7 @@ gtk_label_move_logically (GtkLabel *label,
g_free (log_attrs);
}
- return g_utf8_offset_to_pointer (label->label, offset) - label->label;
+ return g_utf8_offset_to_pointer (label->text, offset) - label->text;
}
static gint
@@ -2887,7 +2889,7 @@ gtk_label_move_visually (GtkLabel *label,
index = new_index;
while (new_trailing--)
- index = g_utf8_next_char (label->label + new_index) - label->label;
+ index = g_utf8_next_char (label->text + new_index) - label->text;
}
return index;
@@ -2897,11 +2899,11 @@ static gint
gtk_label_move_forward_word (GtkLabel *label,
gint start)
{
- gint new_pos = g_utf8_pointer_to_offset (label->label,
- label->label + start);
+ gint new_pos = g_utf8_pointer_to_offset (label->text,
+ label->text + start);
gint length;
- length = g_utf8_strlen (label->label, -1);
+ length = g_utf8_strlen (label->text, -1);
if (new_pos < length)
{
PangoLogAttr *log_attrs;
@@ -2919,7 +2921,7 @@ gtk_label_move_forward_word (GtkLabel *label,
g_free (log_attrs);
}
- return g_utf8_offset_to_pointer (label->label, new_pos) - label->label;
+ return g_utf8_offset_to_pointer (label->text, new_pos) - label->text;
}
@@ -2927,11 +2929,11 @@ static gint
gtk_label_move_backward_word (GtkLabel *label,
gint start)
{
- gint new_pos = g_utf8_pointer_to_offset (label->label,
- label->label + start);
+ gint new_pos = g_utf8_pointer_to_offset (label->text,
+ label->text + start);
gint length;
- length = g_utf8_strlen (label->label, -1);
+ length = g_utf8_strlen (label->text, -1);
if (new_pos > 0)
{
@@ -2951,7 +2953,7 @@ gtk_label_move_backward_word (GtkLabel *label,
g_free (log_attrs);
}
- return g_utf8_offset_to_pointer (label->label, new_pos) - label->label;
+ return g_utf8_offset_to_pointer (label->text, new_pos) - label->text;
}
static void
@@ -3004,7 +3006,7 @@ gtk_label_move_cursor (GtkLabel *label,
case GTK_MOVEMENT_PARAGRAPH_ENDS:
case GTK_MOVEMENT_BUFFER_ENDS:
/* FIXME: Can do better here */
- new_pos = count < 0 ? 0 : strlen (label->label);
+ new_pos = count < 0 ? 0 : strlen (label->text);
break;
case GTK_MOVEMENT_DISPLAY_LINES:
case GTK_MOVEMENT_PARAGRAPHS:
@@ -3038,7 +3040,7 @@ gtk_label_move_cursor (GtkLabel *label,
case GTK_MOVEMENT_PARAGRAPH_ENDS:
case GTK_MOVEMENT_BUFFER_ENDS:
/* FIXME: Can do better here */
- new_pos = count < 0 ? 0 : strlen (label->label);
+ new_pos = count < 0 ? 0 : strlen (label->text);
break;
case GTK_MOVEMENT_DISPLAY_LINES:
case GTK_MOVEMENT_PARAGRAPHS:
@@ -3086,7 +3088,7 @@ gtk_label_copy_clipboard (GtkLabel *label)
static void
gtk_label_select_all (GtkLabel *label)
{
- gtk_label_select_region_index (label, 0, strlen (label->label));
+ gtk_label_select_region_index (label, 0, strlen (label->text));
}
/* Quick hack of a popup menu