summaryrefslogtreecommitdiff
path: root/utils/viewer-pangocairo.c
diff options
context:
space:
mode:
Diffstat (limited to 'utils/viewer-pangocairo.c')
-rw-r--r--utils/viewer-pangocairo.c354
1 files changed, 177 insertions, 177 deletions
diff --git a/utils/viewer-pangocairo.c b/utils/viewer-pangocairo.c
index 2bf2e0d6..bd6ca9a5 100644
--- a/utils/viewer-pangocairo.c
+++ b/utils/viewer-pangocairo.c
@@ -1,4 +1,4 @@
-/* viewer-pangocairo.c: PangoCairo viewer backend.
+/* viewer-pangocairo.c: Pango2Cairo viewer backend.
*
* Copyright (C) 1999,2004,2005 Red Hat, Inc.
* Copyright (C) 2001 Sun Microsystems
@@ -41,13 +41,13 @@ typedef struct
gpointer backend;
- PangoFontMap *fontmap;
+ Pango2FontMap *fontmap;
cairo_font_options_t *font_options;
gboolean subpixel_positions;
} CairoViewer;
static gpointer
-pangocairo_view_create (const PangoViewer *klass G_GNUC_UNUSED)
+pangocairo_view_create (const Pango2Viewer *klass G_GNUC_UNUSED)
{
CairoViewer *instance;
@@ -57,40 +57,40 @@ pangocairo_view_create (const PangoViewer *klass G_GNUC_UNUSED)
if (opt_font_file != NULL)
{
- PangoFontFace *first = NULL;
+ Pango2FontFace *first = NULL;
- instance->fontmap = pango_font_map_new ();
+ instance->fontmap = pango2_font_map_new ();
for (int i = 0; opt_font_file[i]; i++)
{
- PangoFontFace *face;
+ Pango2FontFace *face;
- face = PANGO_FONT_FACE (pango_hb_face_new_from_file (opt_font_file[i],
+ face = PANGO2_FONT_FACE (pango2_hb_face_new_from_file (opt_font_file[i],
0, -1,
NULL, NULL));
- pango_font_map_add_face (instance->fontmap, face);
+ pango2_font_map_add_face (instance->fontmap, face);
if (!first)
first = face;
}
- /* We always need monospace, or Pango will complain */
- if (!pango_font_map_get_family (instance->fontmap, "monospace"))
+ /* We always need monospace, or Pango2 will complain */
+ if (!pango2_font_map_get_family (instance->fontmap, "monospace"))
{
- PangoGenericFamily *family;
+ Pango2GenericFamily *family;
- family = pango_generic_family_new ("monospace");
- pango_generic_family_add_family (family, pango_font_face_get_family (first));
- pango_font_map_add_family (instance->fontmap, PANGO_FONT_FAMILY (family));
+ family = pango2_generic_family_new ("monospace");
+ pango2_generic_family_add_family (family, pango2_font_face_get_family (first));
+ pango2_font_map_add_family (instance->fontmap, PANGO2_FONT_FAMILY (family));
}
}
else
{
- instance->fontmap = pango_font_map_new_default ();
+ instance->fontmap = pango2_font_map_new_default ();
}
- pango_font_map_set_resolution (PANGO_FONT_MAP (instance->fontmap), opt_dpi);
+ pango2_font_map_set_resolution (PANGO2_FONT_MAP (instance->fontmap), opt_dpi);
if (opt_userfont)
add_userfont (instance->fontmap);
@@ -137,15 +137,15 @@ pangocairo_view_destroy (gpointer instance)
g_slice_free (CairoViewer, c);
}
-static PangoContext *
+static Pango2Context *
pangocairo_view_get_context (gpointer instance)
{
CairoViewer *c = (CairoViewer *) instance;
- PangoContext *context;
+ Pango2Context *context;
- context = pango_context_new_with_font_map (c->fontmap);
- pango_cairo_context_set_font_options (context, c->font_options);
- pango_context_set_round_glyph_positions (context, !c->subpixel_positions);
+ context = pango2_context_new_with_font_map (c->fontmap);
+ pango2_cairo_context_set_font_options (context, c->font_options);
+ pango2_context_set_round_glyph_positions (context, !c->subpixel_positions);
return context;
}
@@ -231,7 +231,7 @@ static const char *annotate_arg_help =
"\t\t\t\t\t\t run, cluster, char, glyph, caret, slope\n";
static void
-render_callback (PangoLayout *layout,
+render_callback (Pango2Layout *layout,
int x,
int y,
gpointer context,
@@ -246,27 +246,27 @@ render_callback (PangoLayout *layout,
if (annotate != 0)
{
cairo_pattern_t *pattern;
- PangoRectangle ink, logical;
+ Pango2Rectangle ink, logical;
double lw = cairo_get_line_width (cr);
- PangoLineIter *iter;
+ Pango2LineIter *iter;
- pango_lines_get_extents (pango_layout_get_lines (layout), &ink, &logical);
+ pango2_lines_get_extents (pango2_layout_get_lines (layout), &ink, &logical);
if (annotate & ANNOTATE_GRAVITY_ROOF)
{
/* draw resolved gravity "roof" in blue */
cairo_save (cr);
cairo_translate (cr,
- (double)logical.x / PANGO_SCALE,
- (double)logical.y / PANGO_SCALE);
+ (double)logical.x / PANGO2_SCALE,
+ (double)logical.y / PANGO2_SCALE);
cairo_scale (cr,
- (double)logical.width / PANGO_SCALE * 0.5,
- (double)logical.height / PANGO_SCALE * 0.5);
+ (double)logical.width / PANGO2_SCALE * 0.5,
+ (double)logical.height / PANGO2_SCALE * 0.5);
cairo_translate (cr, 1.0, 1.0);
cairo_rotate (cr,
- pango_gravity_to_rotation (
- pango_context_get_gravity (
- pango_layout_get_context (layout))));
+ pango2_gravity_to_rotation (
+ pango2_context_get_gravity (
+ pango2_layout_get_context (layout))));
cairo_move_to (cr, -1.0, -1.0);
cairo_rel_line_to (cr, +1.0, -0.2); /* / */
cairo_rel_line_to (cr, +1.0, +0.2); /* \ */
@@ -293,11 +293,11 @@ render_callback (PangoLayout *layout,
/* draw block progression arrow in green */
cairo_save (cr);
cairo_translate (cr,
- (double)logical.x / PANGO_SCALE,
- (double)logical.y / PANGO_SCALE);
+ (double)logical.x / PANGO2_SCALE,
+ (double)logical.y / PANGO2_SCALE);
cairo_scale (cr,
- (double)logical.width / PANGO_SCALE * 0.5,
- (double)logical.height / PANGO_SCALE * 0.5);
+ (double)logical.width / PANGO2_SCALE * 0.5,
+ (double)logical.height / PANGO2_SCALE * 0.5);
cairo_translate (cr, 1.0, 1.0);
cairo_move_to (cr, -0.4, -0.7);
cairo_rel_line_to (cr, +0.8, 0.0); /* -- */
@@ -325,18 +325,18 @@ render_callback (PangoLayout *layout,
/* draw baselines with line direction arrow in orange */
cairo_save (cr);
cairo_set_source_rgba (cr, 1.0, 0.5, 0.0, 0.5);
- iter = pango_layout_get_iter (layout);
+ iter = pango2_layout_get_iter (layout);
do
{
- PangoLine *line = pango_line_iter_get_line (iter);
- double width = (double)logical.width / PANGO_SCALE;
+ Pango2Line *line = pango2_line_iter_get_line (iter);
+ double width = (double)logical.width / PANGO2_SCALE;
- y = pango_line_iter_get_line_baseline (iter);
+ y = pango2_line_iter_get_line_baseline (iter);
cairo_save (cr);
cairo_translate (cr,
- (double)logical.x / PANGO_SCALE + width * 0.5,
- (double)y / PANGO_SCALE);
- if (pango_line_get_resolved_direction (line))
+ (double)logical.x / PANGO2_SCALE + width * 0.5,
+ (double)y / PANGO2_SCALE);
+ if (pango2_line_get_resolved_direction (line))
cairo_scale (cr, -1, 1);
cairo_move_to (cr, -width * .5, -lw*0.2);
cairo_rel_line_to (cr, +width * .9, -lw*0.3);
@@ -349,8 +349,8 @@ render_callback (PangoLayout *layout,
cairo_fill (cr);
cairo_restore (cr);
}
- while (pango_line_iter_next_line (iter));
- pango_line_iter_free (iter);
+ while (pango2_line_iter_next_line (iter));
+ pango2_line_iter_free (iter);
cairo_restore (cr);
}
@@ -362,13 +362,13 @@ render_callback (PangoLayout *layout,
cairo_save (cr);
cairo_set_source_rgba (cr, 0.0, 0.0, 1.0, 0.5);
- iter = pango_layout_get_iter (layout);
+ iter = pango2_layout_get_iter (layout);
do
{
- PangoRun *run;
- PangoItem *item;
- const PangoAnalysis *analysis;
- PangoRectangle rect;
+ Pango2Run *run;
+ Pango2Item *item;
+ const Pango2Analysis *analysis;
+ Pango2Rectangle rect;
hb_font_t *hb_font;
hb_ot_layout_baseline_tag_t baselines[] = {
HB_OT_LAYOUT_BASELINE_TAG_ROMAN,
@@ -384,35 +384,35 @@ render_callback (PangoLayout *layout,
hb_tag_t script, lang;
hb_position_t coord;
- run = pango_line_iter_get_run (iter);
+ run = pango2_line_iter_get_run (iter);
if (!run)
{
baseline_tag = 0;
continue;
}
- item = pango_run_get_item (run);
- analysis = pango_item_get_analysis (item);
+ item = pango2_run_get_item (run);
+ analysis = pango2_item_get_analysis (item);
if (baseline_tag == 0)
{
- hb_script_t script = (hb_script_t) g_unicode_script_to_iso15924 (pango_analysis_get_script (analysis));
+ hb_script_t script = (hb_script_t) g_unicode_script_to_iso15924 (pango2_analysis_get_script (analysis));
- if (pango_analysis_get_flags (analysis) & PANGO_ANALYSIS_FLAG_CENTERED_BASELINE)
+ if (pango2_analysis_get_flags (analysis) & PANGO2_ANALYSIS_FLAG_CENTERED_BASELINE)
baseline_tag = HB_OT_LAYOUT_BASELINE_TAG_IDEO_EMBOX_CENTRAL;
else
baseline_tag = hb_ot_layout_get_horizontal_baseline_tag_for_script (script);
}
- y = pango_line_iter_get_run_baseline (iter);
- pango_line_iter_get_run_extents (iter, NULL, &rect);
+ y = pango2_line_iter_get_run_baseline (iter);
+ pango2_line_iter_get_run_extents (iter, NULL, &rect);
- hb_font = pango_font_get_hb_font (pango_analysis_get_font (analysis));
- if (pango_analysis_get_flags (analysis) & PANGO_ANALYSIS_FLAG_CENTERED_BASELINE)
+ hb_font = pango2_font_get_hb_font (pango2_analysis_get_font (analysis));
+ if (pango2_analysis_get_flags (analysis) & PANGO2_ANALYSIS_FLAG_CENTERED_BASELINE)
dir = HB_DIRECTION_TTB;
else
dir = HB_DIRECTION_LTR;
- script = (hb_script_t) g_unicode_script_to_iso15924 (pango_analysis_get_script (analysis));
+ script = (hb_script_t) g_unicode_script_to_iso15924 (pango2_analysis_get_script (analysis));
lang = HB_TAG_NONE;
for (int i = 0; i < G_N_ELEMENTS (baselines); i++)
@@ -454,21 +454,21 @@ render_callback (PangoLayout *layout,
cairo_set_line_cap (cr, CAIRO_LINE_CAP_SQUARE);
}
cairo_move_to (cr,
- (double)rect.x / PANGO_SCALE,
- (double)(y - coord) / PANGO_SCALE);
- cairo_rel_line_to (cr, (double)rect.width / PANGO_SCALE, 0);
+ (double)rect.x / PANGO2_SCALE,
+ (double)(y - coord) / PANGO2_SCALE);
+ cairo_rel_line_to (cr, (double)rect.width / PANGO2_SCALE, 0);
cairo_stroke (cr);
cairo_set_source_rgb (cr, 0, 0, 0);
cairo_move_to (cr,
- (double)rect.x / PANGO_SCALE - 5,
- (double)(y - coord) / PANGO_SCALE - 5);
+ (double)rect.x / PANGO2_SCALE - 5,
+ (double)(y - coord) / PANGO2_SCALE - 5);
cairo_show_text (cr, buf);
cairo_restore (cr);
}
}
- while (pango_line_iter_next_run (iter));
- pango_line_iter_free (iter);
+ while (pango2_line_iter_next_run (iter));
+ pango2_line_iter_free (iter);
cairo_restore (cr);
}
#endif
@@ -480,10 +480,10 @@ render_callback (PangoLayout *layout,
cairo_set_source_rgba (cr, 1.0, 0.0, 0.0, 0.5);
cairo_rectangle (cr,
- (double)logical.x / PANGO_SCALE - lw / 2,
- (double)logical.y / PANGO_SCALE - lw / 2,
- (double)logical.width / PANGO_SCALE + lw,
- (double)logical.height / PANGO_SCALE + lw);
+ (double)logical.x / PANGO2_SCALE - lw / 2,
+ (double)logical.y / PANGO2_SCALE - lw / 2,
+ (double)logical.width / PANGO2_SCALE + lw,
+ (double)logical.height / PANGO2_SCALE + lw);
cairo_stroke (cr);
cairo_restore (cr);
@@ -491,10 +491,10 @@ render_callback (PangoLayout *layout,
cairo_save (cr);
cairo_set_source_rgba (cr, 0.0, 1.0, 0.0, 0.5);
cairo_rectangle (cr,
- (double)ink.x / PANGO_SCALE - lw / 2,
- (double)ink.y / PANGO_SCALE - lw / 2,
- (double)ink.width / PANGO_SCALE + lw,
- (double)ink.height / PANGO_SCALE + lw);
+ (double)ink.x / PANGO2_SCALE - lw / 2,
+ (double)ink.y / PANGO2_SCALE - lw / 2,
+ (double)ink.width / PANGO2_SCALE + lw,
+ (double)ink.height / PANGO2_SCALE + lw);
cairo_stroke (cr);
cairo_restore (cr);
}
@@ -505,21 +505,21 @@ render_callback (PangoLayout *layout,
cairo_save (cr);
cairo_set_source_rgba (cr, 1.0, 0.0, 0.0, 0.5);
- iter = pango_layout_get_iter (layout);
+ iter = pango2_layout_get_iter (layout);
do
{
- PangoRectangle rect;
+ Pango2Rectangle rect;
- pango_line_iter_get_line_extents (iter, NULL, &rect);
+ pango2_line_iter_get_line_extents (iter, NULL, &rect);
cairo_rectangle (cr,
- (double)rect.x / PANGO_SCALE - lw / 2,
- (double)rect.y / PANGO_SCALE - lw / 2,
- (double)rect.width / PANGO_SCALE + lw,
- (double)rect.height / PANGO_SCALE + lw);
+ (double)rect.x / PANGO2_SCALE - lw / 2,
+ (double)rect.y / PANGO2_SCALE - lw / 2,
+ (double)rect.width / PANGO2_SCALE + lw,
+ (double)rect.height / PANGO2_SCALE + lw);
cairo_stroke (cr);
}
- while (pango_line_iter_next_line (iter));
- pango_line_iter_free (iter);
+ while (pango2_line_iter_next_line (iter));
+ pango2_line_iter_free (iter);
cairo_restore (cr);
}
@@ -529,26 +529,26 @@ render_callback (PangoLayout *layout,
cairo_save (cr);
cairo_set_source_rgba (cr, 0.0, 0.0, 1.0, 0.5);
- iter = pango_layout_get_iter (layout);
+ iter = pango2_layout_get_iter (layout);
do
{
- PangoRun *run;
- PangoRectangle rect;
+ Pango2Run *run;
+ Pango2Rectangle rect;
- run = pango_line_iter_get_run (iter);
+ run = pango2_line_iter_get_run (iter);
if (!run)
continue;
- pango_line_iter_get_run_extents (iter, NULL, &rect);
+ pango2_line_iter_get_run_extents (iter, NULL, &rect);
cairo_rectangle (cr,
- (double)rect.x / PANGO_SCALE - lw / 2,
- (double)rect.y / PANGO_SCALE - lw / 2,
- (double)rect.width / PANGO_SCALE + lw,
- (double)rect.height / PANGO_SCALE + lw);
+ (double)rect.x / PANGO2_SCALE - lw / 2,
+ (double)rect.y / PANGO2_SCALE - lw / 2,
+ (double)rect.width / PANGO2_SCALE + lw,
+ (double)rect.height / PANGO2_SCALE + lw);
cairo_stroke (cr);
}
- while (pango_line_iter_next_run (iter));
- pango_line_iter_free (iter);
+ while (pango2_line_iter_next_run (iter));
+ pango2_line_iter_free (iter);
cairo_restore (cr);
}
@@ -558,21 +558,21 @@ render_callback (PangoLayout *layout,
cairo_save (cr);
cairo_set_source_rgba (cr, 1.0, 0.0, 1.0, 0.5);
- iter = pango_layout_get_iter (layout);
+ iter = pango2_layout_get_iter (layout);
do
{
- PangoRectangle rect;
+ Pango2Rectangle rect;
- pango_line_iter_get_cluster_extents (iter, NULL, &rect);
+ pango2_line_iter_get_cluster_extents (iter, NULL, &rect);
cairo_rectangle (cr,
- (double)rect.x / PANGO_SCALE - lw / 2,
- (double)rect.y / PANGO_SCALE - lw / 2,
- (double)rect.width / PANGO_SCALE + lw,
- (double)rect.height / PANGO_SCALE + lw);
+ (double)rect.x / PANGO2_SCALE - lw / 2,
+ (double)rect.y / PANGO2_SCALE - lw / 2,
+ (double)rect.width / PANGO2_SCALE + lw,
+ (double)rect.height / PANGO2_SCALE + lw);
cairo_stroke (cr);
}
- while (pango_line_iter_next_cluster (iter));
- pango_line_iter_free (iter);
+ while (pango2_line_iter_next_cluster (iter));
+ pango2_line_iter_free (iter);
cairo_restore (cr);
}
@@ -582,21 +582,21 @@ render_callback (PangoLayout *layout,
cairo_save (cr);
cairo_set_source_rgba (cr, 1.0, 0.5, 0.0, 0.5);
- iter = pango_layout_get_iter (layout);
+ iter = pango2_layout_get_iter (layout);
do
{
- PangoRectangle rect;
+ Pango2Rectangle rect;
- pango_line_iter_get_char_extents (iter, &rect);
+ pango2_line_iter_get_char_extents (iter, &rect);
cairo_rectangle (cr,
- (double)rect.x / PANGO_SCALE - lw / 2,
- (double)rect.y / PANGO_SCALE - lw / 2,
- (double)rect.width / PANGO_SCALE + lw,
- (double)rect.height / PANGO_SCALE + lw);
+ (double)rect.x / PANGO2_SCALE - lw / 2,
+ (double)rect.y / PANGO2_SCALE - lw / 2,
+ (double)rect.width / PANGO2_SCALE + lw,
+ (double)rect.height / PANGO2_SCALE + lw);
cairo_stroke (cr);
}
- while (pango_line_iter_next_cluster (iter));
- pango_line_iter_free (iter);
+ while (pango2_line_iter_next_cluster (iter));
+ pango2_line_iter_free (iter);
cairo_restore (cr);
}
@@ -606,34 +606,34 @@ render_callback (PangoLayout *layout,
cairo_save (cr);
cairo_set_source_rgba (cr, 0.0, 0.0, 1.0, 0.5);
- iter = pango_layout_get_iter (layout);
+ iter = pango2_layout_get_iter (layout);
do
{
- PangoRun *run;
- PangoItem *item;
- const PangoAnalysis *analysis;
- PangoGlyphString *glyphs;
- PangoRectangle rect;
+ Pango2Run *run;
+ Pango2Item *item;
+ const Pango2Analysis *analysis;
+ Pango2GlyphString *glyphs;
+ Pango2Rectangle rect;
int x_pos, y_pos;
- run = pango_line_iter_get_run (iter);
+ run = pango2_line_iter_get_run (iter);
if (!run)
continue;
- item = pango_run_get_item (run);
- analysis = pango_item_get_analysis (item);
- glyphs = pango_run_get_glyphs (run);
+ item = pango2_run_get_item (run);
+ analysis = pango2_item_get_analysis (item);
+ glyphs = pango2_run_get_glyphs (run);
- pango_line_iter_get_run_extents (iter, NULL, &rect);
+ pango2_line_iter_get_run_extents (iter, NULL, &rect);
x_pos = rect.x;
- y_pos = pango_line_iter_get_run_baseline (iter);
+ y_pos = pango2_line_iter_get_run_baseline (iter);
for (int i = 0; i < glyphs->num_glyphs; i++)
{
- PangoRectangle extents;
+ Pango2Rectangle extents;
- pango_font_get_glyph_extents (pango_analysis_get_font (analysis),
+ pango2_font_get_glyph_extents (pango2_analysis_get_font (analysis),
glyphs->glyphs[i].glyph,
&extents, NULL);
@@ -643,29 +643,29 @@ render_callback (PangoLayout *layout,
rect.height = extents.height;
cairo_rectangle (cr,
- (double)rect.x / PANGO_SCALE - lw / 2,
- (double)rect.y / PANGO_SCALE - lw / 2,
- (double)rect.width / PANGO_SCALE + lw,
- (double)rect.height / PANGO_SCALE + lw);
+ (double)rect.x / PANGO2_SCALE - lw / 2,
+ (double)rect.y / PANGO2_SCALE - lw / 2,
+ (double)rect.width / PANGO2_SCALE + lw,
+ (double)rect.height / PANGO2_SCALE + lw);
cairo_stroke (cr);
cairo_arc (cr,
- (double) (x_pos + glyphs->glyphs[i].geometry.x_offset) / PANGO_SCALE,
- (double) (y_pos + glyphs->glyphs[i].geometry.y_offset) / PANGO_SCALE,
+ (double) (x_pos + glyphs->glyphs[i].geometry.x_offset) / PANGO2_SCALE,
+ (double) (y_pos + glyphs->glyphs[i].geometry.y_offset) / PANGO2_SCALE,
3.0, 0, 2*G_PI);
cairo_fill (cr);
x_pos += glyphs->glyphs[i].geometry.width;
}
}
- while (pango_line_iter_next_run (iter));
- pango_line_iter_free (iter);
+ while (pango2_line_iter_next_run (iter));
+ pango2_line_iter_free (iter);
cairo_restore (cr);
}
if (annotate & ANNOTATE_CARET_POSITIONS)
{
- const PangoLogAttr *attrs;
+ const Pango2LogAttr *attrs;
int n_attrs;
int offset;
int num = 0;
@@ -674,64 +674,64 @@ render_callback (PangoLayout *layout,
cairo_save (cr);
cairo_set_source_rgba (cr, 1.0, 0.0, 1.0, 0.5);
- attrs = pango_layout_get_log_attrs (layout, &n_attrs);
+ attrs = pango2_layout_get_log_attrs (layout, &n_attrs);
- iter = pango_layout_get_iter (layout);
+ iter = pango2_layout_get_iter (layout);
do
{
- PangoRectangle rect;
- PangoRun *run;
- PangoItem *item;
- PangoGlyphString *glyphs;
+ Pango2Rectangle rect;
+ Pango2Run *run;
+ Pango2Item *item;
+ Pango2GlyphString *glyphs;
const char *text, *start, *p;
int x, y;
gboolean trailing;
- pango_line_iter_get_run_extents (iter, NULL, &rect);
- run = pango_line_iter_get_run (iter);
+ pango2_line_iter_get_run_extents (iter, NULL, &rect);
+ run = pango2_line_iter_get_run (iter);
if (!run)
continue;
- item = pango_run_get_item (run);
- glyphs = pango_run_get_glyphs (run);
+ item = pango2_run_get_item (run);
+ glyphs = pango2_run_get_glyphs (run);
- text = pango_layout_get_text (layout);
- start = text + pango_item_get_char_offset (item);
+ text = pango2_layout_get_text (layout);
+ start = text + pango2_item_get_char_offset (item);
offset = g_utf8_strlen (text, start - text);
- y = pango_line_iter_get_run_baseline (iter);
+ y = pango2_line_iter_get_run_baseline (iter);
trailing = FALSE;
p = start;
- for (int i = 0; i <= pango_item_get_char_length (item); i++)
+ for (int i = 0; i <= pango2_item_get_char_length (item); i++)
{
if (attrs[offset + i].is_cursor_position)
{
- pango_glyph_string_index_to_x_full (glyphs,
- text + pango_item_get_byte_offset (item),
- pango_item_get_byte_length (item),
- pango_item_get_analysis (item),
- (PangoLogAttr *)attrs + offset,
+ pango2_glyph_string_index_to_x_full (glyphs,
+ text + pango2_item_get_byte_offset (item),
+ pango2_item_get_byte_length (item),
+ pango2_item_get_analysis (item),
+ (Pango2LogAttr *)attrs + offset,
p - start,
trailing,
&x);
x += rect.x;
cairo_set_source_rgba (cr, 1.0, 0.0, 1.0, 0.5);
- cairo_arc (cr, x / PANGO_SCALE, y / PANGO_SCALE, 3.0, 0, 2*G_PI);
+ cairo_arc (cr, x / PANGO2_SCALE, y / PANGO2_SCALE, 3.0, 0, 2*G_PI);
cairo_close_path (cr);
cairo_fill (cr);
char *s = g_strdup_printf ("%d", num);
cairo_set_source_rgb (cr, 0, 0, 0);
- cairo_move_to (cr, x / PANGO_SCALE - 5, y / PANGO_SCALE + 15);
+ cairo_move_to (cr, x / PANGO2_SCALE - 5, y / PANGO2_SCALE + 15);
cairo_show_text (cr, s);
g_free (s);
}
- if (i < pango_item_get_char_length (item))
+ if (i < pango2_item_get_char_length (item))
{
num++;
p = g_utf8_next_char (p);
@@ -741,16 +741,16 @@ render_callback (PangoLayout *layout,
}
}
- while (pango_line_iter_next_run (iter));
- pango_line_iter_free (iter);
+ while (pango2_line_iter_next_run (iter));
+ pango2_line_iter_free (iter);
cairo_restore (cr);
}
if (annotate & ANNOTATE_CARET_SLOPE)
{
- const char *text = pango_layout_get_text (layout);
+ const char *text = pango2_layout_get_text (layout);
int length = g_utf8_strlen (text, -1);
- const PangoLogAttr *attrs;
+ const Pango2LogAttr *attrs;
int n_attrs;
const char *p;
int i;
@@ -759,23 +759,23 @@ render_callback (PangoLayout *layout,
cairo_save (cr);
cairo_set_source_rgba (cr, 0.0, 0.0, 0.0, 0.5);
- attrs = pango_layout_get_log_attrs (layout, &n_attrs);
+ attrs = pango2_layout_get_log_attrs (layout, &n_attrs);
for (i = 0, p = text; i <= length; i++, p = g_utf8_next_char (p))
{
- PangoRectangle rect;
+ Pango2Rectangle rect;
if (!attrs[i].is_cursor_position)
continue;
- pango_lines_get_caret_pos (pango_layout_get_lines (layout), NULL, p - text, &rect, NULL);
+ pango2_lines_get_caret_pos (pango2_layout_get_lines (layout), NULL, p - text, &rect, NULL);
cairo_move_to (cr,
- (double)rect.x / PANGO_SCALE + (double)rect.width / PANGO_SCALE - lw / 2,
- (double)rect.y / PANGO_SCALE - lw / 2);
+ (double)rect.x / PANGO2_SCALE + (double)rect.width / PANGO2_SCALE - lw / 2,
+ (double)rect.y / PANGO2_SCALE - lw / 2);
cairo_line_to (cr,
- (double)rect.x / PANGO_SCALE - lw / 2,
- (double)rect.y / PANGO_SCALE + (double)rect.height / PANGO_SCALE - lw / 2);
+ (double)rect.x / PANGO2_SCALE - lw / 2,
+ (double)rect.y / PANGO2_SCALE + (double)rect.height / PANGO2_SCALE - lw / 2);
cairo_stroke (cr);
}
@@ -784,7 +784,7 @@ render_callback (PangoLayout *layout,
}
cairo_move_to (cr, 0, 0);
- pango_cairo_show_layout (cr, layout);
+ pango2_cairo_show_layout (cr, layout);
cairo_restore (cr);
@@ -792,8 +792,8 @@ render_callback (PangoLayout *layout,
}
static void
-transform_callback (PangoContext *context,
- PangoMatrix *matrix,
+transform_callback (Pango2Context *context,
+ Pango2Matrix *matrix,
gpointer cr_context,
gpointer state G_GNUC_UNUSED)
{
@@ -816,13 +816,13 @@ transform_callback (PangoContext *context,
cairo_set_matrix (cr, &cairo_matrix);
- pango_cairo_update_context (cr, context);
+ pango2_cairo_update_context (cr, context);
}
static void
pangocairo_view_render (gpointer instance,
gpointer surface,
- PangoContext *context,
+ Pango2Context *context,
int *width,
int *height,
gpointer state)
@@ -966,7 +966,7 @@ parse_annotate_arg (const char *option_name,
}
static GOptionGroup *
-pangocairo_view_get_option_group (const PangoViewer *klass G_GNUC_UNUSED)
+pangocairo_view_get_option_group (const Pango2Viewer *klass G_GNUC_UNUSED)
{
GOptionEntry entries[] =
{
@@ -990,8 +990,8 @@ pangocairo_view_get_option_group (const PangoViewer *klass G_GNUC_UNUSED)
return group;
}
-const PangoViewer pangocairo_viewer = {
- "PangoCairo",
+const Pango2Viewer pangocairo_viewer = {
+ "Pango2Cairo",
"cairo",
#ifdef HAVE_CAIRO_PNG
"png",