diff options
author | Behdad Esfahbod <behdad@gnome.org> | 2006-08-15 13:03:04 +0000 |
---|---|---|
committer | Behdad Esfahbod <behdad@src.gnome.org> | 2006-08-15 13:03:04 +0000 |
commit | 7101c5c12a1c0d1b3e28a5cdf0849a6d16d1f9c6 (patch) | |
tree | 5d867f7ca5e6612fe90ad6725972e256be01479d | |
parent | 8de44f9dc7712a7ce258b70a7b8283b3ebca094e (diff) | |
download | pango-7101c5c12a1c0d1b3e28a5cdf0849a6d16d1f9c6.tar.gz |
Oops. Exchange west<->east and north<->south gravities. The gravity is the
2006-08-15 Behdad Esfahbod <behdad@gnome.org>
* docs/pango-sections.txt:
* docs/tmpl/main.sgml:
* examples/renderdemo.c (parse_gravity), (parse_options):
* pango/pango-context.c (pango_context_init),
(pango_context_get_base_gravity), (itemize_state_add_character):
* pango/pango-types.h:
* pango/pangocairo-fcfont.c (pango_cairo_fc_font_get_scaled_font):
* pango/pangofc-fontmap.c (pango_fc_make_pattern):
Oops. Exchange west<->east and north<->south gravities. The gravity
is the side that the glyph sits on. So, for normal Latin text for
example, gravity is south, not north.
-rw-r--r-- | ChangeLog | 14 | ||||
-rw-r--r-- | docs/pango-sections.txt | 1 | ||||
-rw-r--r-- | docs/tmpl/main.sgml | 35 | ||||
-rw-r--r-- | examples/renderdemo.c | 6 | ||||
-rw-r--r-- | pango/pango-context.c | 12 | ||||
-rw-r--r-- | pango/pango-types.h | 20 | ||||
-rw-r--r-- | pango/pangocairo-fcfont.c | 10 | ||||
-rw-r--r-- | pango/pangofc-fontmap.c | 4 |
8 files changed, 76 insertions, 26 deletions
@@ -1,5 +1,19 @@ 2006-08-15 Behdad Esfahbod <behdad@gnome.org> + * docs/pango-sections.txt: + * docs/tmpl/main.sgml: + * examples/renderdemo.c (parse_gravity), (parse_options): + * pango/pango-context.c (pango_context_init), + (pango_context_get_base_gravity), (itemize_state_add_character): + * pango/pango-types.h: + * pango/pangocairo-fcfont.c (pango_cairo_fc_font_get_scaled_font): + * pango/pangofc-fontmap.c (pango_fc_make_pattern): + Oops. Exchange west<->east and north<->south gravities. The gravity + is the side that the glyph sits on. So, for normal Latin text for + example, gravity is south, not north. + +2006-08-15 Behdad Esfahbod <behdad@gnome.org> + * examples/renderdemo.c (do_output), (parse_gravity), (parse_options): Support --gravity. diff --git a/docs/pango-sections.txt b/docs/pango-sections.txt index edd813eb..7364aa08 100644 --- a/docs/pango-sections.txt +++ b/docs/pango-sections.txt @@ -60,6 +60,7 @@ pango_shape <SUBSECTION Private> pango_direction_get_type pango_context_get_type +pango_gravity_get_type pango_item_get_type </SECTION> diff --git a/docs/tmpl/main.sgml b/docs/tmpl/main.sgml index ab47b4df..0751fc77 100644 --- a/docs/tmpl/main.sgml +++ b/docs/tmpl/main.sgml @@ -50,6 +50,7 @@ fields: @lang_engine: the engine for doing rendering-system-independent processing. @font: the font for this segment. @level: the bidrectional level for this segment. +@gravity: the glyph orientation for this segment. @language: the detected language for this segment. @extra_attrs: extra attributes for this segment. @@ -72,6 +73,22 @@ The #GObject type for #PangoDirection. +<!-- ##### ENUM PangoGravity ##### --> +<para> +</para> + +@PANGO_GRAVITY_SOUTH: +@PANGO_GRAVITY_EAST: +@PANGO_GRAVITY_NORTH: +@PANGO_GRAVITY_WEST: + +<!-- ##### MACRO PANGO_TYPE_GRAVITY ##### --> +<para> +The #GObject type for #PangoGravity. +</para> + + + <!-- ##### FUNCTION pango_itemize ##### --> <para> @@ -226,6 +243,24 @@ The #GObject type for #PangoDirection. @direction: +<!-- ##### FUNCTION pango_context_get_base_gravity ##### --> +<para> + +</para> + +@context: +@Returns: + + +<!-- ##### FUNCTION pango_context_set_base_gravity ##### --> +<para> + +</para> + +@context: +@gravity: + + <!-- ##### FUNCTION pango_context_get_matrix ##### --> <para> diff --git a/examples/renderdemo.c b/examples/renderdemo.c index 13781614..e77ddcec 100644 --- a/examples/renderdemo.c +++ b/examples/renderdemo.c @@ -56,7 +56,7 @@ int opt_width = -1; int opt_indent = 0; int opt_runs = 1; PangoEllipsizeMode opt_ellipsize = PANGO_ELLIPSIZE_NONE; -PangoGravity opt_gravity = PANGO_GRAVITY_NORTH; +PangoGravity opt_gravity = PANGO_GRAVITY_SOUTH; HintMode opt_hinting = HINT_DEFAULT; PangoWrapMode opt_wrap = PANGO_WRAP_WORD_CHAR; gboolean opt_wrap_set = FALSE; @@ -401,7 +401,7 @@ parse_gravity (const char *name, g_set_error(error, G_OPTION_ERROR, G_OPTION_ERROR_BAD_VALUE, - "Argument for --gravity must be one of north/west/south/east"); + "Argument for --gravity must be one of south/east/north/west"); ret = FALSE; } @@ -582,7 +582,7 @@ parse_options (int argc, char *argv[]) {"font", 0, 0, G_OPTION_ARG_STRING, &opt_font, "Set the font description", "description"}, {"gravity", 0, 0, G_OPTION_ARG_CALLBACK, &parse_gravity, - "Gravity", "north/west/south/east"}, + "Gravity", "south/east/north/west"}, {"header", 0, 0, G_OPTION_ARG_NONE, &opt_header, "Display the options in the output", NULL}, {"hinting", 0, 0, G_OPTION_ARG_CALLBACK, &parse_hinting, diff --git a/pango/pango-context.c b/pango/pango-context.c index 34a91f4b..f0fae76d 100644 --- a/pango/pango-context.c +++ b/pango/pango-context.c @@ -59,7 +59,7 @@ static void pango_context_init (PangoContext *context) { context->base_dir = PANGO_DIRECTION_WEAK_LTR; - context->base_gravity = PANGO_GRAVITY_NORTH; + context->base_gravity = PANGO_GRAVITY_SOUTH; context->language = NULL; context->font_map = NULL; @@ -435,7 +435,7 @@ pango_context_set_base_gravity (PangoContext *context, PangoGravity pango_context_get_base_gravity (PangoContext *context) { - g_return_val_if_fail (context != NULL, PANGO_GRAVITY_NORTH); + g_return_val_if_fail (context != NULL, PANGO_GRAVITY_SOUTH); return context->base_gravity; } @@ -887,12 +887,12 @@ itemize_state_add_character (ItemizeState *state, */ switch (state->item->analysis.gravity) { - case PANGO_GRAVITY_NORTH: - case PANGO_GRAVITY_WEST: - default: - break; case PANGO_GRAVITY_SOUTH: case PANGO_GRAVITY_EAST: + default: + break; + case PANGO_GRAVITY_NORTH: + case PANGO_GRAVITY_WEST: state->item->analysis.level++; } diff --git a/pango/pango-types.h b/pango/pango-types.h index 4ab528cd..3c8233d5 100644 --- a/pango/pango-types.h +++ b/pango/pango-types.h @@ -183,21 +183,21 @@ typedef enum { /** * PangoGravity: - * @PANGO_GRAVITY_NORTH: Glyphs stand upright (default) - * @PANGO_GRAVITY_WEST: Glyphs are rotated 90 degrees clockwise - * @PANGO_GRAVITY_SOUTH: Glyphs are upside-down - * @PANGO_GRAVITY_EAST: Glyphs are rotated 90 degrees counter-clockwise + * @PANGO_GRAVITY_SOUTH: Glyphs stand upright (default) + * @PANGO_GRAVITY_EAST: Glyphs are rotated 90 degrees clockwise + * @PANGO_GRAVITY_NORTH: Glyphs are upside-down + * @PANGO_GRAVITY_WEST: Glyphs are rotated 90 degrees counter-clockwise * - * The #PangoGravity type represents the direction that the glyphs are - * rotated. This is useful when rendering vertical text layouts. In + * The #PangoGravity type represents the orientation of glyphs in a segment + * of text. This is useful when rendering vertical text layouts. In * those situations, the layout is rotated using a non-identity PangoMatrix, - * and then glyph rotation is controlled using #PangoGravity. + * and then glyph orientation is controlled using #PangoGravity. **/ typedef enum { - PANGO_GRAVITY_NORTH, - PANGO_GRAVITY_WEST, PANGO_GRAVITY_SOUTH, - PANGO_GRAVITY_EAST + PANGO_GRAVITY_EAST, + PANGO_GRAVITY_NORTH, + PANGO_GRAVITY_WEST } PangoGravity; #define PANGO_TYPE_LANGUAGE (pango_language_get_type ()) diff --git a/pango/pangocairo-fcfont.c b/pango/pangocairo-fcfont.c index 41699306..488dca0d 100644 --- a/pango/pangocairo-fcfont.c +++ b/pango/pangocairo-fcfont.c @@ -134,7 +134,7 @@ pango_cairo_fc_font_get_scaled_font (PangoCairoFont *font) if (!cffont->scaled_font) return NULL; - if (cffont->gravity != PANGO_GRAVITY_NORTH) + if (cffont->gravity != PANGO_GRAVITY_SOUTH) { cairo_font_extents_t metrics; cairo_matrix_t matrix; @@ -147,16 +147,16 @@ pango_cairo_fc_font_get_scaled_font (PangoCairoFont *font) switch (cffont->gravity) { - case PANGO_GRAVITY_NORTH: + case PANGO_GRAVITY_SOUTH: default: break; - case PANGO_GRAVITY_SOUTH: + case PANGO_GRAVITY_NORTH: cairo_matrix_rotate(&matrix, M_PI); break; - case PANGO_GRAVITY_WEST: + case PANGO_GRAVITY_EAST: cairo_matrix_rotate(&matrix, -M_PI_2); break; - case PANGO_GRAVITY_EAST: + case PANGO_GRAVITY_WEST: cairo_matrix_rotate(&matrix, +M_PI_2); break; } diff --git a/pango/pangofc-fontmap.c b/pango/pangofc-fontmap.c index a681eea2..93f4959e 100644 --- a/pango/pangofc-fontmap.c +++ b/pango/pangofc-fontmap.c @@ -814,13 +814,13 @@ pango_fc_make_pattern (const PangoFontDescription *description, switch (gravity) { - case PANGO_GRAVITY_NORTH: case PANGO_GRAVITY_SOUTH: + case PANGO_GRAVITY_NORTH: default: vertical = FcFalse; break; - case PANGO_GRAVITY_WEST: case PANGO_GRAVITY_EAST: + case PANGO_GRAVITY_WEST: vertical = FcTrue; break; } |