summaryrefslogtreecommitdiff
path: root/pango/pango-layout-private.h
Commit message (Collapse)AuthorAgeFilesLines
* Add horizontal displacementMatthias Clasen2021-08-311-2/+3
| | | | | | | | | | | Apply horizontal displacements for superscripts and subscripts that are provided in font metrics. This noticably improves the placement of superscripts in italics. Currently, we only apply these displacements in post-processing, and ignore the width changes during line-breaking. This could be improved by moving the baseline handling into the line-breaking proper.
* Add pango_justify_last_lineMatthias Clasen2021-08-101-0/+1
| | | | | | | Add a way to justify the last line in a justified paragraph. Fixes: #74
* Use shape flags for ellipsisMatthias Clasen2019-11-031-0/+1
| | | | | | | When shaping the ellipsis, use the same shape flags we use for the rest of the layout, otherwise we end up with subtle size differences between an ellipsized text and a plain …
* layout: Add line-spacingMatthias Clasen2019-07-051-0/+1
| | | | | | | | | | | | | | If line-spacing is set to a non-zero value, we place lines so that baseline2 = baseline1 + line-spacing * height2 where height2 is the line height of the second line. In this case, we ignore spacing. If line-spacing is set to zero, spacing is applied as before.
* PangoLayoutIter: Allocate an array of Extents instead of a linked listTimm Bäder2017-10-271-2/+13
| | | | | | | | Since PangoLayout caches the amount of lines it contains in ->line_count, we can use this to pre-allocate an Extents array of the appropriate size. https://bugzilla.gnome.org/show_bug.cgi?id=788643
* layout: Move PangoLayouIter struct to private headerTimm Bäder2017-10-271-0/+53
| | | | | | | And add _pango_layout_get_iter as well as _pango_layout_iter_destroy that can be used for internal, stack allocated PangoLayoutIters. https://bugzilla.gnome.org/show_bug.cgi?id=788643
* Track changes in layout and dependencies via serialsAlexander Larsson2012-12-061-0/+3
| | | | | | | | | We track changes in the PangoContext and automatically call pango_layout_context_changed() when needed, plus we track changes in the layout and let apps know via pango_layout_get_serial when the layout changed and needs to be redrawn. https://bugzilla.gnome.org/show_bug.cgi?id=340066
* Bug 594934 - pango_layout_copyBehdad Esfahbod2009-09-111-12/+15
| | | | Use memcpy() to copy value fields so we don't miss any.
* Bug 549003 – pango_layout_set_height(): layout should not be clearedBehdad Esfahbod2008-08-221-0/+1
| | | | | | | | | | | | | | | | 2008-08-22 Behdad Esfahbod <behdad@gnome.org> Bug 549003 – pango_layout_set_height(): layout should not be cleared unless required * pango/pango-layout-private.h: * pango/pango-layout.c (pango_layout_init), (pango_layout_set_height), (pango_layout_get_line_count), (pango_layout_clear_lines), (add_line): Don't invalidate layout if the new height does not force ellipsization. svn path=/trunk/; revision=2707
* Bug 469313 – Add pango_layout_set_height() Bug 508179 – PangoGlyphUnitBehdad Esfahbod2008-01-151-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2008-01-14 Behdad Esfahbod <behdad@gnome.org> Bug 469313 – Add pango_layout_set_height() Bug 508179 – PangoGlyphUnit confusion * pango/pango-layout.h: * pango/pango-layout-private.h: * pango/pango-layout.c: * pango/ellipsize.c (_pango_layout_line_ellipsize): New public API: pango_layout_set_height() See docs for semantics. Currently only negative height values (number of lines) is implemented. * pango-view/viewer-render.c (make_layout), (output_body), (parse_options): Implement --height. * pango/pango.def: * docs/pango-sections.txt: * docs/tmpl/layout.sgml: Update. 2008-01-14 Behdad Esfahbod <behdad@gnome.org> Bug 508179 – PangoGlyphUnit confusion * pango/pangowin32.c: * pango/glyphstring.c: * pango/pango-layout.c (process_item): Remove all traces of #PangoGlyphUnit svn path=/trunk/; revision=2542
* MinorBehdad Esfahbod2007-05-021-3/+3
| | | | svn path=/trunk/; revision=2244
* Remove stale prototype of _pango_layout_iter_get_line_readonly().Behdad Esfahbod2007-05-021-1/+0
| | | | | | | | | | 2007-05-02 Behdad Esfahbod <behdad@gnome.org> * pango/pango-layout-private.h: Remove stale prototype of _pango_layout_iter_get_line_readonly(). svn path=/trunk/; revision=2243
* *.c, *.h: Drop trailing whitespace.Behdad Esfahbod2007-01-161-4/+4
| | | | | | | | | 2007-01-16 Behdad Esfahbod <behdad@gnome.org> *.c, *.h: Drop trailing whitespace. svn path=/trunk/; revision=2163
* Bug 328585 – Need to know if a layout has unknown glyphs Patch fromBehdad Esfahbod2007-01-161-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | 2007-01-16 Behdad Esfahbod <behdad@gnome.org> Bug 328585 – Need to know if a layout has unknown glyphs Patch from LingNing Zhang * pango/pango-layout-private.h: * pango/pango-layout.c (pango_layout_init), (pango_layout_copy), (pango_layout_get_unknown_glyphs_count), (pango_layout_clear_lines): * pango/pango-layout.h: New public function: pango_layout_get_unknown_glyphs_count() * pango/pango.def: * docs/tmpl/layout.sgml: * docs/pango-sections.txt: Update. svn path=/trunk/; revision=2162
* Part of Bug 326693 – PangoLayouts should be query-able about theirBehdad Esfahbod2007-01-161-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | 2007-01-16 Behdad Esfahbod <behdad@gnome.org> Part of Bug 326693 – PangoLayouts should be query-able about their effective properties (width / wrapped / ellipsized / etc) * pango/pango-layout-private.h: * pango/pango-layout.c (pango_layout_init), (pango_layout_copy), (pango_layout_is_wrapped), (pango_layout_clear_lines), (process_line): * pango/pango-layout.h: New public function: pango_layout_is_wrapped() * pango/pango.def: * docs/tmpl/layout.sgml: * docs/pango-sections.txt: Update. svn path=/trunk/; revision=2160
* Bug 363510 – Ability to query whether a PangoLayout is effectivelyBehdad Esfahbod2007-01-161-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | 2007-01-16 Behdad Esfahbod <behdad@gnome.org> Bug 363510 – Ability to query whether a PangoLayout is effectively ellipsized (as opposed to the set_ellpisize()/get_ellipsize() methods which only set a request, or return the set request respectively) Patch from Milosz Derezynski * pango/pango-layout.h: * pango/ellipsize.c (_pango_layout_line_ellipsize): * pango/pango-layout-private.h: * pango/pango-layout.c (pango_layout_init), (pango_layout_copy), (pango_layout_is_ellipsized), (pango_layout_clear_lines), (pango_layout_line_postprocess): New public function: pango_layout_is_ellipsized() * pango/pango.def: * docs/tmpl/layout.sgml: * docs/pango-sections.txt: Update. svn path=/trunk/; revision=2150
* Cache layout ink and logical extents.Behdad Esfahbod2006-12-071-1/+8
| | | | | | | | | | | | 2006-12-07 Behdad Esfahbod <behdad@gnome.org> * pango/pango-layout-private.h: * pango/pango-layout.c (pango_layout_get_extents_internal), (pango_layout_get_extents), (pango_layout_clear_lines), (pango_layout_line_leaked), (pango_layout_line_get_extents), (pango_layout_iter_copy), (pango_layout_get_iter), (pango_layout_iter_get_layout_extents): Cache layout ink and logical extents.
* Bug 135683 – Cache glyphstring extentsBehdad Esfahbod2006-12-041-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | 2006-12-04 Behdad Esfahbod <behdad@gnome.org> Bug 135683 – Cache glyphstring extents * pango/pango-layout.c (pango_layout_get_lines), (pango_layout_get_line), (pango_layout_line_leaked), (pango_layout_line_get_extents), (pango_layout_line_new), (pango_layout_iter_get_run), (pango_layout_iter_get_line): Cache line extents. Line extents are cached only if the user doesn't have a pointer to the line or any of its runs. Functions that give away such pointers mark the line as "leak"ed. * pango/pango-layout.c (pango_layout_index_to_line_and_extents), (pango_layout_xy_to_index), (pango_layout_index_to_pos): Use _pango_layout_iter_get_line() which is like pango_layout_iter_get_line() but doesn't leak the line. * pango/pango-layout-private.h: Add pango_layout_iter_get_line() duplicate _pango_layout_iter_get_line_readonly() that doesn't leak the line. * pango/pango-renderer.c (pango_renderer_draw_layout): Use _pango_layout_iter_get_line_readonly().
* Add PangoEllipsizeMode, pango_layout_set_ellipsize(), implement. (#59071)Owen Taylor2004-07-141-0/+71
Wed Jul 14 17:47:38 2004 Owen Taylor <otaylor@redhat.com> * pango/pango-layout.[ch] pango/ellipsize.c pango/Makefile.am: Add PangoEllipsizeMode, pango_layout_set_ellipsize(), implement. (#59071) * pango/pango-layout-private.h pango/pango-layout.c: Move PangoLayout structure into a separate header file. * pango/pango-glyph-item.[ch]: Add pango_glyph_item_free(). * pango/pango-glyph-item-private.h pango/pango-glyph-item.c: Internally export the PangoGlyphItemIter functionality. * examples/renderdemo.[ch]: Add --ellipsize option.