Make GTK_JUSTIFY_FILL work, using pango_layout_set_justify() that works
2007-05-03 Behdad Esfahbod <behdad@gnome.org> * gtk/gtklabel.c (gtk_label_ensure_layout): * gtk/gtktextlayout.c (set_para_values): Make GTK_JUSTIFY_FILL work, using pango_layout_set_justify() that works now. (#435675) svn path=/trunk/; revision=17790
This commit is contained in:

committed by
Behdad Esfahbod

parent
7250d57ad6
commit
d77c56a140
@ -1,3 +1,9 @@
|
|||||||
|
2007-05-03 Behdad Esfahbod <behdad@gnome.org>
|
||||||
|
|
||||||
|
* gtk/gtklabel.c (gtk_label_ensure_layout):
|
||||||
|
* gtk/gtktextlayout.c (set_para_values): Make GTK_JUSTIFY_FILL work,
|
||||||
|
using pango_layout_set_justify() that works now. (#435675)
|
||||||
|
|
||||||
2007-05-03 Emmanuele Bassi <ebassi@gnome.org>
|
2007-05-03 Emmanuele Bassi <ebassi@gnome.org>
|
||||||
|
|
||||||
* gtk/gtksearchenginesimple.c (search_engine_simple_finalize): Remove
|
* gtk/gtksearchenginesimple.c (search_engine_simple_finalize): Remove
|
||||||
|
@ -2024,7 +2024,6 @@ gtk_label_ensure_layout (GtkLabel *label)
|
|||||||
align = PANGO_ALIGN_CENTER;
|
align = PANGO_ALIGN_CENTER;
|
||||||
break;
|
break;
|
||||||
case GTK_JUSTIFY_FILL:
|
case GTK_JUSTIFY_FILL:
|
||||||
/* FIXME: This just doesn't work to do this */
|
|
||||||
align = rtl ? PANGO_ALIGN_RIGHT : PANGO_ALIGN_LEFT;
|
align = rtl ? PANGO_ALIGN_RIGHT : PANGO_ALIGN_LEFT;
|
||||||
pango_layout_set_justify (label->layout, TRUE);
|
pango_layout_set_justify (label->layout, TRUE);
|
||||||
break;
|
break;
|
||||||
|
@ -1201,7 +1201,7 @@ set_para_values (GtkTextLayout *layout,
|
|||||||
GtkTextLineDisplay *display)
|
GtkTextLineDisplay *display)
|
||||||
{
|
{
|
||||||
PangoAlignment pango_align = PANGO_ALIGN_LEFT;
|
PangoAlignment pango_align = PANGO_ALIGN_LEFT;
|
||||||
int layout_width;
|
PangoWrapMode pango_wrap = PANGO_WRAP_WORD;
|
||||||
|
|
||||||
switch (base_dir)
|
switch (base_dir)
|
||||||
{
|
{
|
||||||
@ -1241,7 +1241,8 @@ set_para_values (GtkTextLayout *layout,
|
|||||||
pango_align = PANGO_ALIGN_CENTER;
|
pango_align = PANGO_ALIGN_CENTER;
|
||||||
break;
|
break;
|
||||||
case GTK_JUSTIFY_FILL:
|
case GTK_JUSTIFY_FILL:
|
||||||
g_warning ("FIXME we don't support GTK_JUSTIFY_FILL yet");
|
pango_align = (base_dir == PANGO_DIRECTION_LTR) ? PANGO_ALIGN_LEFT : PANGO_ALIGN_RIGHT;
|
||||||
|
pango_layout_set_justify (display->layout, TRUE);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
g_assert_not_reached ();
|
g_assert_not_reached ();
|
||||||
@ -1269,26 +1270,27 @@ set_para_values (GtkTextLayout *layout,
|
|||||||
switch (style->wrap_mode)
|
switch (style->wrap_mode)
|
||||||
{
|
{
|
||||||
case GTK_WRAP_CHAR:
|
case GTK_WRAP_CHAR:
|
||||||
layout_width = layout->screen_width - display->left_margin - display->right_margin;
|
pango_wrap = PANGO_WRAP_CHAR;
|
||||||
pango_layout_set_width (display->layout, layout_width * PANGO_SCALE);
|
|
||||||
pango_layout_set_wrap (display->layout, PANGO_WRAP_CHAR);
|
|
||||||
break;
|
break;
|
||||||
case GTK_WRAP_WORD:
|
case GTK_WRAP_WORD:
|
||||||
layout_width = layout->screen_width - display->left_margin - display->right_margin;
|
pango_wrap = PANGO_WRAP_WORD;
|
||||||
pango_layout_set_width (display->layout, layout_width * PANGO_SCALE);
|
|
||||||
pango_layout_set_wrap (display->layout, PANGO_WRAP_WORD);
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GTK_WRAP_WORD_CHAR:
|
case GTK_WRAP_WORD_CHAR:
|
||||||
layout_width = layout->screen_width - display->left_margin - display->right_margin;
|
pango_wrap = PANGO_WRAP_WORD_CHAR;
|
||||||
pango_layout_set_width (display->layout, layout_width * PANGO_SCALE);
|
|
||||||
pango_layout_set_wrap (display->layout, PANGO_WRAP_WORD_CHAR);
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GTK_WRAP_NONE:
|
case GTK_WRAP_NONE:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (style->wrap_mode != GTK_WRAP_NONE)
|
||||||
|
{
|
||||||
|
int layout_width = (layout->screen_width - display->left_margin - display->right_margin);
|
||||||
|
pango_layout_set_width (display->layout, layout_width * PANGO_SCALE);
|
||||||
|
pango_layout_set_wrap (display->layout, pango_wrap);
|
||||||
|
}
|
||||||
|
|
||||||
display->total_width = MAX (layout->screen_width, layout->width) - display->left_margin - display->right_margin;
|
display->total_width = MAX (layout->screen_width, layout->width) - display->left_margin - display->right_margin;
|
||||||
|
|
||||||
if (style->pg_bg_color)
|
if (style->pg_bg_color)
|
||||||
|
Reference in New Issue
Block a user