summaryrefslogtreecommitdiff
path: root/pango/pangowin32.c
Commit message (Collapse)AuthorAgeFilesLines
* Call pango_font_description_set_absolute_size() instead ofTor Lillqvist2006-05-231-1/+1
| | | | | | | | | | | | 2006-05-23 Tor Lillqvist <tml@novell.com> * pango/pangowin32.c (pango_win32_font_describe): Call pango_font_description_set_absolute_size() instead of pango_font_description_set_size() as the PangoWin32Font::size is in pixels, not points. There has been several bugs opened around this issue, with more or less misleading guesses. See for instance #314114. Thanks to Behdad for finally noticing the real problem here.
* Bug 342525 – With PangoFc and PangoWin32, approximate digit width is notBehdad Esfahbod2006-05-221-3/+25
| | | | | | | | | | | | | | | | | | | 2006-05-22 Behdad Esfahbod <behdad@gnome.org> Bug 342525 – With PangoFc and PangoWin32, approximate digit width is not what it says * pango/pangocairo-win32font.c (max_glyph_width), (create_metrics_for_context): Use max digit width instead of average. Reverted the following changes: * pango/pangowin32.c (pango_win32_font_get_metrics): Calculate average digit width correctly, not as max of the digit widths. (#342525) Note that this code doesn't really get much used currently (instead the code in pangocairo-win32font.c is used), fixed only for completeness. (max_glpyh_with): Now unused, drop.
* Calculate average digit width correctly, not as max of the digit widths.Tor Lillqvist2006-05-211-25/+3
| | | | | | | | | | | 2006-05-22 Tor Lillqvist <tml@novell.com> * pango/pangowin32.c (pango_win32_font_get_metrics): Calculate average digit width correctly, not as max of the digit widths. (#342525) Note that this code doesn't really get much used currently (instead the code in pangocairo-win32font.c is used), fixed only for completeness. (max_glpyh_with): Now unused, drop.
* pango/pangowin32-private.h (PING) pango/pangowin32.c Use g_print() insteadTor Lillqvist2006-02-281-18/+18
| | | | | | | | | | 2006-02-28 Tor Lillqvist <tml@novell.com> * pango/pangowin32-private.h (PING) * pango/pangowin32.c * modules/basic/basic-win32.c: Use g_print() instead of printf() for debugging output, to enable easy redirection using GLib facilities. (#332855)
* Change g_critical to g_warning. We already handle them gracefully.Behdad Esfahbod2006-02-211-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | 2006-02-21 Behdad Esfahbod <behdad@gnome.org> * pango/fonts.c, pango/glyphstring.c, pango/pango-fontmap.c, pango/pango-ot-buffer.c, pango/pangocairo-font.c, pango/pangoft2.c, pango/pangoxft-font.c, pango/shape.c: Change g_critical to g_warning. We already handle them gracefully. Bug 331994 – --disable-debug removes G_DISABLE_CAST_CHECKS Patch from charlet@act-europe.fr * configure.in: Do not lose PANGO_DEBUG_FLAGS when reassigning. Bug 331995 – pango_layout_set_text optimization Patch from charlet@act-europe.fr * pango/pango-layout.c: Do not validate input text if asserts are disabled. Moreover, do not truncate input text on invalid sequence. Bug 331996 – avoid crashes in win32 font handling Patch from charlet@act-europe.fr * pango/pangofc-fontmap.c, pango/pangowin32-fontmap.c, pango/pangowin32.c: if (!font) return NULL in a number of places.
* Change PANGO_GLYPH_EMPTY to 0x0FFFFFFF, to not overlap withBehdad Esfahbod2006-02-051-1/+3
| | | | | | | | | | | | | | | | | | | | | | | 2006-02-04 Behdad Esfahbod <behdad@gnome.org> * pango/pango-types.h: Change PANGO_GLYPH_EMPTY to 0x0FFFFFFF, to not overlap with PANGO_GLYPH_UNKNOWN_FLAG (0x10000000). Define PANGO_GET_UNKNOWN_GLYPH(wc) that simply returns wc|PANGO_GLYPH_UNKNOWN_FLAG. * docs/pango-sections.txt, docs/tmpl/glyphs.sgml: Document new symbols. * modules/*/*.c: Use PANGO_GET_UNKNOWN_GLYPH instead of various backend-specific functions. * pango/pangofc-font.c, pango/pangoft.c, pango/pangoxft-font.c, * pango/pangowin32.c, pango/pangox.c: Suggest using PANGO_GET_UNKNOWN_GLYPH in docs. * pango/pangofc-font.h: Deprecate pango_fc_font_get_unknown_glyph(). * pango/pangowin32.h: Deprecate pango_win32_get_unknown_glyph().
* Finish the 'glyph 0' work of this morning: PANGO_GLYPH_NULL that IBehdad Esfahbod2006-02-031-20/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2006-02-02 Behdad Esfahbod <behdad@gnome.org> Finish the 'glyph 0' work of this morning: PANGO_GLYPH_NULL that I introduced is renamed to PANGO_GLYPH_EMPTY. It means, no rendering should be performed. The backends however, still return 0 if a glyph is not found. The modules then are free to replace this 0 glyph with an unknown character. * modules/arabic/arabic-fc.c, modules/basic/basic-atsui.c, modules/basic/basic-fc.c, modules/basic/basic-win32.c, modules/basic/basic-x.c, modules/hangul/hangul-fc.c, modules/hebrew/hebrew-fc.c, modules/indic/indic-fc.c, modules/khmer/khmer-fc.c, modules/syriac/syriac-fc.c, modules/thai/thai-fc.c, modules/tibetan/tibetan-fc.c, pango/pangox.c, pango/pangowin32.c: Adapt to above change. Backends return 0 if glyph not found. * pango/fonts.c (pango_font_get_glyph_extents): If font is not usable (!PANGO_IS_FONT (font)), return the generic UNKNOWN_GLYPH metrics. This is used when your backends are misconfigured and you don't find *any* font at all. * pango/pango-engince.c: Add unknown glyphs in fallback shaper, instead of empty glyphs. * pango/shape.c: Call the fall-back shaper if shaper fails, instead of generating a dummy glyph string ourselves. * pango/pango-layout.c (imposed_shape, shape_tab): Use PANGO_GLYPH_EMPTY instead of glyph 0. * pango/pango-renderer.c (pango_renderer_draw_glyph): No-op on PANGO_GLYPH_EMPTY instead of glyph 0. * pango/pangocairo-atsuifont.c, pango/pangocairo-win32font.c, pango/pangocairo-fcfont.c, pango/pangocairo-font.c, pango/pangocairo-private.h: install_font returns a boolean now. * pango/pangocairo-render.c, pango/pangoxft-render.c: Handle font and hex-box failures more gracefully by drawing a generic unknown-box glyph. * pango/pangoft2.c, pango/pangoft2-render.c: Draw the generic unknown-box glyph here too. For unknown glyphs though, if the font is TTF (FT_IS_SFNT), use the zero-indexed glyph, otherwise, draw a box of proper size.
* Use PANGO_GLYPH_NULL for when no glyph should be drawn. UseBehdad Esfahbod2006-02-021-13/+11
| | | | | | | | | | | | | | | | | | | | | | | 2006-02-02 Behdad Esfahbod <behdad@gnome.org> * modules/arabic/arabic-fc.c, modules/basic/basic-atsui.c, modules/basic/basic-fc.c, modules/basic/basic-win32.c, modules/basic/basic-x.c, modules/hangul/hangul-fc.c, modules/hebrew/hebrew-fc.c, modules/indic/indic-fc.c, modules/khmer/khmer-fc.c, modules/syriac/syriac-fc.c, modules/thai/thai-fc.c, modules/tibetan/tibetan-fc.c, pango/fonts.c, pango/pango-engine-private.h pango/pango-types.h, pango/pangocairo-fcfont.c, pango/pangocairo-font.c, pango/pangocairo-private.h, pango/pangocairo-render.c, pango/pangofc-decoder.c, pango/pangofc-font.c, pango/pangoft2-render.c, pango/pangoft2.c pango/pangowin32.c, pango/pangox.c, pango/pangoxft-font.c pango/pangoxft-private.h, pango/pangoxft-render.c, pango/shape.c: Use PANGO_GLYPH_NULL for when no glyph should be drawn. Use PANGO_GLYPH_UNKNOWN_FLAG for all backends to mark unknown flags. There's no need for pango_font_get_unknown_glyph() anymore, since all backends know how to handle PANGO_GLYPH_UNKNOWN_FLAG gracefully. We may add that in the future however. (fixes bug #73147, closes bug #329524)
* Documentation improvements.Behdad Esfahbod2006-01-281-0/+18
| | | | | | | | 2006-01-28 Behdad Esfahbod <behdad@gnome.org> * pango/pangofc-font.h, pango/pangoft2-render.c, pango/pangowin32.c, pango/pangoxft-render.c, docs/tmpl/xft-fonts.sgml, docs/tmp/atsui-fonts.sgml: Documentation improvements.
* Make matrix parameter const.Behdad Esfahbod2006-01-211-2/+2
| | | | | | | | | | | | | | | 2006-01-21 Behdad Esfahbod <behdad@gnome.org> * pango/pango-types.h, pango/pango-utils.h (pango_matrix_get_font_scale_factor): Make matrix parameter const. * pango/fonts.c, pango/pango-context.c, pango/pango-coverage.c, pango/pango-fontset.c, pango/pango-layout.c, pango/pango-renderer.c, pango/pango-types.h, pango/pango-utils.c, pango/pangocairo-atsuifont.c, pango/pangofc-font.c, pango/pangoft2-fontmap.c, pango/pangowin32-fontmap.c, pango/pangowin32.c, pango/pangox-fontmap.c, pango/pangoxft-font.c: Replace "Returns:" with "Return value:" in docs.
* Make sure #include <config.h> is the first include in the file. (bugBehdad Esfahbod2006-01-141-1/+1
| | | | | | | 2006-01-14 Behdad Esfahbod <behdad@gnome.org> * */*.c, */*/*.c: Make sure #include <config.h> is the first include in the file. (bug #158870, based on patch by Luis Menina)
* Have a list of metrics by language instead of just one metrics.Tor Lillqvist2005-09-141-8/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2005-09-14 Tor Lillqvist <tml@novell.com> * pango/pangocairo-win32font.c (struct _PangoCairoWin32Font): Have a list of metrics by language instead of just one metrics. (pango_cairo_win32_font_get_scaled_font): Use the name cwfont instead of cffont. (free_metrics_info, pango_cairo_win32_font_finalize): Free the metrics by language list. (create_metrics_for_context): New helper function. Approximate the character and digit widths correctly. (#314114) (pango_cairo_win32_font_get_metrics): Use the list of metrics by language. Call create_metrics_for_context() to measure metrics. (_pango_cairo_win32_font_new): Keep the PangoWin32Font objects in the PangoWin32Face::cached_fonts, like the pangowin32 backend does. PangoWin32Face::cached_fonts isn't really a proper cache. It's a list with unbound length, one PangoWin32Font per size. Once there is cacheing in cairo this can be dropped presumably? What does the pangofc backend do? There are too many levels of cacheing going on: we have the stuff in pangowin32-fontcache.c (unused now with cairo), the PangoWin32FontMap::freed_fonts cache, and the PangoWin32::cached_fonts list. * pango/pangowin32-fontmap.c (pango_win32_fontmap_cache_remove, pango_win32_fontmap_cache_clear): Use GQueue API instead of manipulating pointers manually. * pango/pangowin32-private.h * pango/pangowin32.c: Move PangoWin32MetricsInfo to the private header file, as also pangocairo-win32font.c uses it.
* No need to include modules.h here any longer. (pango_win32_get_context):Tor Lillqvist2005-07-221-5/+9
| | | | | | | | | | | | | | 2005-07-22 Tor Lillqvist <tml@novell.com> * pango/pangowin32.c: No need to include modules.h here any longer. (pango_win32_get_context): Remove unused variable. (pango_win32_render_layout_line): Fix underlining. (#304692) Mention in the doc comment that the DC's text alignment needs to have TA_BASELINE and TA_LEFT for underlining to be correct. * pango/pangowin32-fontmap.c: Include modules.h here instead. (pango_win32_font_map_class_init): Define variable i.
* pango/pangowin32-fontmap.c (pango_win32_font_map_class_init) MoveOwen Taylor2005-07-211-9/+0
| | | | | | | | | 2005-07-21 Owen Taylor <otaylor@redhat.com> * pango/pangowin32-fontmap.c (pango_win32_font_map_class_init) Move registration of included modules to here from pango/pangowin32.c (pango_win32_get_context). (#309337, Hans Breuer)
* Rework handling of context-specific options: drop get_render_key() and addOwen Taylor2005-07-211-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2005-07-19 Owen Taylor <otaylor@redhat.com> * pango/pango-fcfontmap.[ch]: Rework handling of context-specific options: drop get_render_key() and add a opaque "context key" (get_context_key() and friends). Also add a function to get the resolution. * pango/pango-fcfontmap.c pango/pangofc-font.h: - Move the 'lang' into the fontset key lookup and get rid of the funky list-of-hash-tables - Make lookups of fontsets and fonts dependent on the context key for the context. - Simplify the pattern/fontset caching to have one finite-size cache rather than an infinite first-level and a finite-size second level. * pango/pangocairo.h pango/pangocairo-private.h pango/pangocairo-fontmap.c: Add pango_cairo_context_get/set_resolution(), pango_cairo_context_set/get_font_options to allow controlling the resolution and font rendering options for a specific PangoContext. * pango/pangocairo-fcfont.c pango/pangocairo-fcfontmap pango/pangocairo-win32font.c: Implement resolution and font options handling adapt to related Cairo changes. * docs/pango-sections.txt docs/Makefile.am pango/pangowin32.c: Doc updates and build fixes. * pango/pangofc-fontmap.c (pango_fc_make_pattern): Create patterns with FC_SIZE as well as FC_PIXEL_SIZE to work around a libgnomeprint bug. (#309477)
* Correct parameters passed to MultiByteToWideChar(). Pass -1 as sourceTor Lillqvist2005-04-281-121/+238
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2005-04-28 Tor Lillqvist <tml@novell.com> * pango/pangocairo-win32font.c (pango_cairo_win32_font_get_font_face): Correct parameters passed to MultiByteToWideChar(). Pass -1 as source string length so that the target string gets zero-terminated. Size of target array is in number of WCHARs, not number of bytes. Add support to pangowin32 for TrueType fonts with coverage outside the BMP. Fix handling of surrogate pairs in the Uniscribe shaper. (#302238) * pango/pangowin32-private.h (PangoWin32Face): Rename the unicode_table field to cmap. Keep track of its format (4 or 12). (format_12_cmap): Add struct for a format 12 cmap. * pango/pangowin32.c: Corresponding changes. Rename internal functions a bit. (get_format_12_cmap): New function, reads a format 12 cmap. (font_get_cmap): Look for both format 12 (which is preferred) and format 4 cmaps. (pango_win32_font_get_glyph_index, pango_win32_font_calc_coverage): Handle also format 12 cmaps. * modules/basic/basic-win32.c: Handle surrogate pairs in wchar_t strings properly. (unichar_index): New function. Given a wchar_t string and an index into it, calculate the index of the corresponding Unicode character. Each surrogate pair in the wchar_t is just one Unicode character. (set_up_pango_log_clusters, itemize_shape_and_place): Use unichar_index() instead of direct index into wchar_t string.
* Update to new Cairo font API.Owen Taylor2005-04-071-10/+10
| | | | | | | | | | | 2005-04-07 Owen Taylor <otaylor@redhat.com> * pango/pangocairo-fcfont.c pango/pangocairo-win32font.c pango/pangocairo-render.c: Update to new Cairo font API. * pangpopangowin32.h pango/pangowin32-private.h pango/pangowin32.c pango/pangocairo-win32font.c modules/basic/basic-win32.c: Rename get_scale_factor() to get_metrics_factor() to match Cairo
* updated externalsHans Breuer2005-03-181-2/+2
| | | | | | | | | 2005-03-18 Hans Breuer <hans@breuer.org> * pango/pango.def pango/pangocairo.def : updated externals * pango/pangowin32.c(pango_win32_render_transformed) : matrix elements xy and yx are needed the other way around for XFORM
* PangoCairoFontMap for win32 fonts.Owen Taylor2005-02-241-17/+115
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2005-02-24 Owen Taylor <otaylor@redhat.com> * pango/pangocairo-win32.h pango/pangocairo-win32font.c pango/pangocairo-win32fontmap.c pango/Makefile.am: PangoCairoFontMap for win32 fonts. * pango/pangocairo-fontmap.c: Use PangoCairoWin32FontMap when available. * pango/pangowin32.h pango/pangowin32-fontmap.h pango/pangowin32.c: Add virtual pango_win32_font_select_font() to prepare a DC for use with a PangoWin32Font, and to release, pango_win32_font_scale_font() to get logical unit => Pango units scale, pango_win32_font_done_font() to release resources. * pango/pangowin32-fontmap.[ch]: Add a find_font() virtual method to allow subclasses that change how PangoFont lookup and creation happens. * pango/pangowin32-fontmap.c: Move initialization into pango_win32_font_map_init() to facilitate derivation. * pango/pangowin2.c pango/pangowin32-fontmap.c pango/pangowin32-private.h: Move PangoWin32Font/PangoWin32FontMap definitions into pangowin32-private.h to allow derivation for PangoCairoWin32Font. * modules/basic/basic-win32.c: Use pango_win32_font_select_font() and friends. * modules/basic/basic-win32.c: Use g_utf8_to_utf16 instead of g_convert for simplicity and speed. * pango/fonts.c (pango_font_get_font_map) pango/pango-font.h pango/pangofc-font.c pango/pangowin32.c pango/pango.c pango/pango.def docs/pango-sections.txt: Add a virtual function to get the fontmap for a font. * pango/pangocairo-render.c: Use pango_font_get_font_map() rather than PangoFcFontMap hack. * pango/pango-types.h: Move the declaration of PangoFontMap here to avoid interactions between pango-font.h and pango-fontmap.h. * pango/pangocairo.h: Remove accidental include of pangofc-fontmap.h.
* pango/pangowin32-private.h Cache metrics by language, like the otherTor Lillqvist2004-12-181-47/+90
| | | | | | | | | 2004-12-18 Tor Lillqvist <tml@iki.fi> * pango/pangowin32-private.h * pango/pangowin32.c (pango_win32_font_get_metrics): Cache metrics by language, like the other backends do. Don't try to get the width of the 0..9 digit string if the font doesn't cover digits.
* Set also underline and strikethrough position and thickness. (#161205)Tor Lillqvist2004-12-141-6/+13
| | | | | | | 2004-12-14 Tor Lillqvist <tml@iki.fi> * pango/pangowin32.c (pango_win32_font_get_metrics): Set also underline and strikethrough position and thickness. (#161205)
* updatedHans Breuer2004-11-211-0/+35
| | | | | | | | | | 2004-11-21 Hans Breuer <hans@breuer.org> * pango/makefile.msc : updated * pango/pangowin32.[ch] pango/pangowin32.def : implement pango_win32_render_transformed() by using the transformation capabilities of GDI (not available on win9x)
* updatedHans Breuer2004-08-061-7/+2
| | | | | | | | | | | | | | | | | | | 2004-08-06 Hans Breuer <hans@breuer.org> * pango/pango.def pango/pangoft2.def pango/pangowin32.def pango/makefile.msc : updated * pango/pangofc-decoder.c : static the pango_fc_decoder_*init implementations * pango/pangowin32.c : remove the duplicated, empty implementation of pango_win32_font_init(), also replace parent_class variable with pango_win32_font_parent_class as defined by G_DEFINE_TYPE * modules/basic/basic-win32.c : implement basic_engine_covers * pango/testfonts.c : iterate three common font names as was intended orginally and said in the comment for years
* Make PangoMatrix arguments const where appropriate.Owen Taylor2004-07-101-33/+6
| | | | | | | | | | | | | | | | | Sat Jul 10 17:33:38 2004 Owen Taylor <otaylor@redhat.com> * pango/pangoft2-private.h pango/pangoft2-render.c pango/pango-context.[ch] pango/pangoft2.[ch] pango/pango-utils. pango/pango-types.h pango/pangofc-fontmap.c: Make PangoMatrix arguments const where appropriate. * pango/pango-context.c pango/fonts.c pango/pangofc-font.c pangofc-fontmap.c pango/pangoft2.c pango/pangoft2-fontmap.c pango/pangoxft-font.c pango/pangoxft-fontmap.c pango/pangowin32-fontmap.c: Use G_DEFINE_TYPE comprehensively. * pango/pangoft2-private.h pangoft2.c: Un-staticify pango_ft2_font_get_type.
* Fix up off-by-one for right bound when drawing PANGO_UNDERLINE_ERROR.Owen Taylor2004-02-291-1/+1
| | | | | | | | Sun Feb 29 15:54:51 2004 Owen Taylor <otaylor@redhat.com> * pango/pangowin32.c pango/pangox.c pango/pangoft2.c: Fix up off-by-one for right bound when drawing PANGO_UNDERLINE_ERROR.
* un Feb 29 15:31:09 2004 Owen Taylor <otaylor@redhat.com>Owen Taylor2004-02-291-0/+23
| | | | | | | | | | | | | Patch from Nicolas Setton, #114237 * pango/pango-attributes.h pango/pango-markup.c: Add a new underline type, PANGO_UNDERLINE_ERROR. * pango/pangowin32.c pango/pangox.c pango/pangoft2.c: Implement drawing of PANGO_UNDERLINE_ERROR. * pango/pango-layout.c (pango_layout_run_get_extents): Handle PANGO_UNDERLINE_ERROR.
* Make approximate_digit_width the width of the widest digit, rather thanNoah Levitt2004-02-191-4/+25
| | | | | | | | | 2003-02-19 Noah Levitt <nlevitt@columbia.edu> * pango/pangofc-font.c (pango_fc_font_get_metrics): * pango/pangowin32.c (pango_win32_font_get_metrics): Make approximate_digit_width the width of the widest digit, rather than the average.
* moved pango_fc_* to the latter where they live on *nix too.Hans Breuer2003-12-131-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | 2003-12-13 Hans Breuer <hans@breuer.org> * pango/pango.def pangoft2.def : moved pango_fc_* to the latter where they live on *nix too. * pango/makefile.msc : make it build again (including the Ft2 backend) * pango/module-defs-fc.c.win32 : if PANGO_MODULE_PREFIX is defined include the basic backend shaper * pango/pangowin32.c (pango_win32_render_layout) : initialize iter before first usage to avoid immediate crashing * pango/opentype/makefile.msc pango/modules/makefile.msc : finally build with mscv, too. [completely untested cause I'm not able to type, write or read any of these languages] * modules/modules.def : follow module function renaming/changes * modules/basic/basic-win32.c : register the right engine, i.e. make it compile
* pango/pangoft2.c (pango_ft2_render_layout) pango/pangowin32.cSven Neumann2003-04-021-61/+19
| | | | | | | | | | 2003-04-02 Sven Neumann <sven@gimp.org> * pango/pangoft2.c (pango_ft2_render_layout) * pango/pangowin32.c (pango_win32_render_layout) * pango/pangox.c (pango_x_render_layout): use a PangoLayoutIter to iterate over the lines and let render_layout_line() do the actual rendering. Fixes bug #105292.
* Break out of loop if char is 0xFFFF. Some fonts have tables terminatedTor Lillqvist2003-01-291-0/+3
| | | | | | | | 2003-01-29 Tor Lillqvist <tml@iki.fi> * pango/pangowin32.c (pango_win32_font_calc_coverage): Break out of loop if char is 0xFFFF. Some fonts have tables terminated like this.
* Document PangoIndicScript. Document.Matthias Clasen2002-12-071-0/+7
| | | | | * docs/tmpl/pango-indic.sgml: Document PangoIndicScript. * pango/pangowin32.c (pango_win32_get_dc): Document.
* Mark 1.2 API additions, fix some doc comments.Matthias Clasen2002-11-281-0/+9
| | | | | | | | | | | | * pango/pangoxft-fontmap.c: * pango/pangoxft-font.c: * pango/pangowin32.c: * pango/pangoft2-fontmap.c: Mark 1.2 API additions, fix some doc comments. * pango/pangoft2-fontmap.c (pango_ft2_font_map_set_default_substitute): Implement this function. (#99850)
* Add --with-usp10 flag to indicate where to find the usp10.h header, forTor Lillqvist2002-10-211-77/+172
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2002-10-22 Tor Lillqvist <tml@iki.fi> * configure.in: Add --with-usp10 flag to indicate where to find the usp10.h header, for using Uniscribe on Win32. Set USP10_H autoconf variable, HAVE_USP10_H config.h macro and HAVE_USP10_H automake conditional. * acconfig.h: Add HAVE_USP10_H. * pango/pangowin32-private.h (PANGO_WIN32_DEBUGGING): Change semantics of this flag. If defined, also need to set env var PANGO_WIN32_DEBUG to get the copious debugging output. Change PING() macro accordingly. Add variable pango_win32_debug. * pango/pangowin32.c (pango_win32_get_dc): New function. Code factored out from pango_win32_font_class_init() and pango_win32_font_map_class_init(). (pango_win32_get_debug_flag): New function. (pango_win32_render): Handle y offsets, too. Potentially need to call ExtTextOutW several times, one for each run of sequential glyphs with the same y offset. * pango/pangowin32.h: Declare above new functions, in the part only for shaper engine use. * pango/pangowin32.def: Export above new functions. * pango/pangowin32-fontmap.c (pango_win32_font_map_class_init): Call pango_win32_get_dc() as mentioned above. * modules/basic/Makefile.am: If HAVE_USP10_H, let basic-win32.lo depend on usp10.h. * modules/basic/basic-win32.c: If HAVE_USP10_H, and the Uniscribe DLL usp10.dll is present, use Uniscribe. (uniscribe_shape, itemize_shape_and_place, set_up_pango_log_clusters, convert_log_clusters_to_byte_offsets, make_langid, init_uniscribe): New functions. (dump_glyphs_and_log_clusters, lang_name, charset_name): Debugging functions.
* Get rid of unnecessary casts for g_object_{ref,unref}Manish Singh2002-10-141-4/+4
| | | | | | | | | | Mon Oct 14 15:39:41 2002 Manish Singh <yosh@gimp.org> * pango/pango-context.c pango/pango-layout.c pango/pangoft2.c pango/pangowin32-fontmap.c pango/pangowin32.c pango/pangox-fontmap.c pango/pangox.c pango/pangoxft-font.c pango/pangoxft-fontmap.c pango/testfonts.c pango/opentype/pango-ot-ruleset.c: Get rid of unnecessary casts for g_object_{ref,unref}
* Merge from pango-1-0:Tor Lillqvist2002-09-241-31/+93
| | | | | | | | | | | | | | | | | | | | | | | 2002-09-24 Tor Lillqvist <tml@iki.fi> * pango/pangowin32.c: Use PANGO_PIXELS macro throughout instead of dividing by PANGO_SCALE. (pango_win32_render): New try. This time handle both glyphs at code point 0, specifically put there by PangoLayout to indicate spacing (for tab handling), and actual invalid glyphs noticed by the shaper. Invalid glyphs are indicated by the flag PANGO_WIN32_UNKNOWN_FLAG. (Idea taken frompangoxft-font.c) (pango_win32_get_unknown_glyph): Take also the char as parameter, return the same char with the above flag ORed in. (pango_win32_font_get_glyph_extents): If the glyph is flagged as invalid, look for glyph 0 instead. Use g_win32_error_message() in warning message instead of numeric error code. * pango/pangowin32.h: Add the new parameter to the pango_win32_get_unknown_glyph() declaration. Surround the API used by shape engines with #ifdef PANGO_ENABLE_ENGINE. * modules/basic/basic-win32.c: Change call accordingly.
* Distribute specifically pango.aliases and pango.modules, not the wholeTor Lillqvist2002-09-211-98/+210
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2002-09-21 Tor Lillqvist <tml@iki.fi> * pango-zip.sh.in: Distribute specifically pango.aliases and pango.modules, not the whole etc/pango which might contain editor backup files. * pango/pangowin32-private.h * pango/pangowin32*.c: Rename DEBUGGING to PANGO_WIN32_DEBUGGING. Use plain printf instrad of g_print in the PING macro for debugging output (to avoid UTF-8 requirement). * pango/pangowin32.h: Guard against redefinition of _WIN32_WINNT. * pango/pangowin32-private.h: Remove the FS_VIETNAMESE define, not needed. Rename PangoWin32Font::face to win32face. Add enum PangoWin32CoverageLanguageClass, used to classify PangoLanguages that might have locale-specific coverage of fonts (i.e. CJKV). Change PangoWin32Face::coverage into an array, coverages. Move some TrueType macro and struct defines from pangowin32.c here. Rename them a bit to match the names used in the specs better. Add declarations for new functions (see below). * pango/pangowin32.c (pango_win32_get_hfont): Convert LOGFONT::lfFaceName to UTF-8 before printing. (pango_win32_render): Revert the change from 2002-09-05. Characters not in a font are supposed to show up at this stage as invalid glyphs (usually a box). It's up to the higher layers to filter out TABs and other characters that shouldn't be visible. (pango_win32_get_name_header, pango_win32_get_name_record): New functions, to read the name table header and records from a TrueType font. (font_name_in): New function, checks if a font has a name in one of the spoecial-case languages, or actually locales (zh_TW, zh_CN, ja, ko, vi). Checks the TrueType name table. (pango_win32_font_calc_coverage): Take a PangoLanguage parameter, too. Use it to decide whether to hide the Unified CJKV Ideographs block in case the font is not for the specified locale. If so, the coverage for these characters is set to PANGO_COVERAGE_APPROXIMATE. * pango/pangowin32-fontmap.c: Remove PangoWin32FontMap::faces, unused. Remove dead _WE_WANT_GLOBAL_ALIASES_ code. Rename parent_class to font_map_parent_class to match pangox-fontmap.c. (get_family_name, get_family_name_lowercase): New functions. Search for an English name for a TrueType font, in case the font name in LOGFONT::lfFaceName is non-ASCII. (Can one assume that if it is ASCII, it is the English name? Do some TrueType fonts have different names in French, German, etc, and does the system return these if the locale is set to use French, German, etc?) (pango_win32_insert_font): Don't store LOGFONTs that differ only in charset. What charset we specify when calling CreateFontIndirect() is irrelevant, as we are going to use ExtTextOutW() anyway, i.e. Unicode. Use the English family name from get_family_name_lowercase(), not the one returned in the LOGFONT from font enumeration. Bypass the code that sets up the mapping for monospace, serif and sans, and the recignition of plain "courier" for "courier new". We need a pango.aliases anyhow, so let it handle that. (pango_win32_coverage_language_classify): New function. (pango_win32_font_entry_set_coverage, pango_win32_font_entry_get_coverage): Take also a PangoLanguage parameter, use the corresponding entry in the PangoWin32Face::coverages array. * pango/pango-utils.c (pango_get_lib_subdirectory, pango_get_sysconf_subdirectory): Fix doc comment on Win32 behaviour.
* Render only valid glyphs. Fix by Florent Duguet. Don't know if this isTor Lillqvist2002-09-041-4/+11
| | | | | | | | | | 2002-09-05 Tor Lillqvist <tml@iki.fi> * pango/pangowin32.c (pango_win32_render): Render only valid glyphs. Fix by Florent Duguet. Don't know if this is quite the correct way to fix the problem of default glyphs (ugly boxes) showing up, maybe invalid glyphs never should get this far, but be noticed earlier?
* Set the right font when computing the average digit width.Owen Taylor2002-03-251-5/+9
| | | | | | | Mon Mar 25 15:31:17 2002 Owen Taylor <otaylor@redhat.com> * pango/pangowin32.c (pango_win32_font_get_metrics): Set the right font when computing the average digit width.
* Add pango_win32_os_version_info variable, an OSVERSIONINFO struct.Tor Lillqvist2002-03-171-1/+9
| | | | | | | | | | | | | | | | | 2002-03-17 Tor Lillqvist <tml@iki.fi> * pango/pangowin32-private.h: Add pango_win32_os_version_info variable, an OSVERSIONINFO struct. * pango/pangowin32.c: Initialise it. * pango/pangowin32.h: Set _WIN32_WINNT to 0x0501 before including <windows.h> to get the ClearType-related macros defined (if recent enough headers are used). * pango/pangowin32-fontcache.c (pango_win32_font_cache_load): Set desired font quality to CLEARTYPE_QUALITY if on XP (or later), and the system settings ask for ClearType.
* Silence gcc -Wall, initialise a couple of variables.Tor Lillqvist2002-01-011-2/+2
| | | | | | | | | | | | 2002-01-02 Tor Lillqvist <tml@iki.fi> * pango/pangowin32.c (pango_win32_render_layout_line): Silence gcc -Wall, initialise a couple of variables. * pango/pangowin32-fontmap.c: (pango_win32_insert_font): Store "courier new" also under the name "courier", as that is what gtk-demo (and presumably often other applications, too?) looks for.
* Fix problem with returned width on lines other than the first lineOwen Taylor2001-12-101-1/+1
| | | | | | | | | | Mon Dec 10 09:18:09 2001 Owen Taylor <otaylor@redhat.com> * pango/pango-layout.c (pango_layout_index_to_pos): Fix problem with returned width on lines other than the first line (#66274). * pango/pangox,ft2,win32.c (pango_*_render_layout): Fix problem where indent wasn't honored (#66275). [ Note, however, there are remaining problems - see, #66626 ]
* removed the arbitrary limit to 10 fonts. Instead make the command lineHans Breuer2001-11-231-7/+7
| | | | | | | | | | | | | | | | | | | | 2001-11-23 Hans Breuer <hans@breuer.org> * testfonts.c : removed the arbitrary limit to 10 fonts. Instead make the command line params useful again and reduce the default result bitmap size by decreasing the default font size. * pango/pangowin32-fontcache.c (pango_win32_font_cache_load): Don't always turn on anti-aliasing. Respect the users settings from 'Properties of Display/Effects'. * pango/makefile.msc : updated, version 0.22 * pango/pango.def : updated externals * pango/font.c pango/pango-coverage.c pango-utils.c pango/pangowin32.c pango/shape.c : coding style and static correctness
* Check for LEX and YACC. This will be made optional later, with the buildAlexander Larsson2001-11-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2001-11-17 Alexander Larsson <alla@lysator.liu.se> * configure.in: Check for LEX and YACC. This will be made optional later, with the build sources checked in to cvs. Generate pango/mini-xft/Makefile * modules/basic/basic-ft2.c: Use the new pangoft2 API. * pango/Makefile.am: Build mini-xft. Add new files. * pango/pango-context.[ch]: Support only one fontmap per context. Use pango_font_map_load_fontset() and PangoFontset instead of internal fontset. * pango/pango-fontmap.[ch]: New virtual function pango_font_map_load_fontset() and default implementation that uses pango_font_map_load_font(). * pango/pango-utils.[ch] (pango_lookup_aliases): Utility function for looking up aliases. This can be used by backend that has no backend specific aliases. * pango/pangoft2-fontcache.c: Removed file. * pango/pangoft2-fontmap.c: * pango/pangoft2-private.h: * pango/pangoft2.c: * pango/pangoft2.h: Major rewrite. Doesn't handle fontsets. Uses mini-xft so that it will always match the PangoXft backend. Simplified the public API. * pango/pangowin32.c: * pango/pangox.c: pango_context_add_font_map -> pango_context_set_font_map * pango/pangoxft-font.c: * pango/pangoxft-fontmap.c: * pango/pangoxft-private.h: New code to handle fontsets. * pango/mini-xft/*: Mini version of libXft from XFree86 in order to have the pangoFT2 and pangXft backends have same config files and generate the same fonts.
* Documentation updates.Matthias Clasen2001-10-261-0/+9
| | | | | | | | | | | | * pango/fonts.c, pango/pangoft2.c, pango/pangowin32.c, pango/pangoxft-font.c, pango/pangox-fontmap.c, pango/pangoft2-fontmap.c, pango/pangoxft-fontmap.c, pango/pangowin32-fontmap.c, docs/pango-sections.txt, docs/tmpl/coverage-maps.sgml, docs/tmpl/fonts.sgml, docs/tmpl/freetype-fonts.sgml, docs/tmpl/glyphs.sgml, docs/tmpl/layout.sgml, docs/tmpl/main.sgml, docs/tmpl/modules.sgml, docs/tmpl/tab-stops.sgml, docs/tmpl/text-attributes.sgml, docs/tmpl/win32-fonts.sgml: Documentation updates.
* Add the Win32 GDI Pango backend to autoconfiguration:Tor Lillqvist2001-10-031-8/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2001-10-03 Tor Lillqvist <tml@iki.fi> Add the Win32 GDI Pango backend to autoconfiguration: * configure.in: Call AC_LIBTOOL_WIN32_DLL. Check for native Win32 or Cygwin, set automake conditional PLATFORM_WIN32. Check for native Win32, set OS_WIN32. Refactor the Xrender+Xft+Xft+FreeType.h checks not to use AC_CHECK_LIBs inside eachother, autoconf 2.52e on Cygwin generated bad shell code for that. Check for gdi32 library, set automake conditional HAVE_WIN32. Add the basic-win32 module, add INCLUDED_WIN32_MODULES and INCLUDE_BASIC_WIN32. Write pango/module-defs-win32.c. Generate pangowin32*.pc. * pangowin32.pc.in * pangowin32-uninstalled.pc.in: New files. * Makefile.am: Add pangowin32*.pc.in. * .cvsignore: Add pangowin32*.pc. * modules/basic/Makefile.am: Add the basic-win32 backend. Use -no-undefined on PLATFORM_WIN32. * pango/Makefile.am: Add the Win32 backend. Use -no-undefined on PLATFORM_WIN32. Use the .def files on OS_WIN32. Link libpangoft2 with GLIB_LIBS. * pango/pango-utils.c: (DllMain): New function, on G_OS_WIN32. Used to get the actual DLL name, which is tucked away. (pango_get_sysconf_subdirectory, pango_get_lib_subdirectory): (Win32): Append VERSION to the registry key passed to g_win32_get_package_installation_subdirectory(). Use the real DLL name from above instead of assuming the DLL has a certain name. Other Win32 backend fixes: * pango/pangowin32-fontmap.c: (free_coverages_foreach): Remove, unused. * pango/pangowin32.c: Remove unused variables. * pango/pangowin32.def: Add pango_win32_font_get_glyph_index. * pango/pangowin32.h: Remove pango_win32_font_get_coverage, which is static.
* updated externalsHans Breuer2001-09-211-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | 2001-09-21 Hans Breuer <hans@breuer.org> * pango/pango.def : updated externals * pango/makefile.msc : build ft2 backend too. * pango/pangowin32-fontmap.c - Convert PangoWin32FamilyEntry into PangoWin32Family deriving from PangoFontFamily. - Convert PangoWin32FontEntry into PangoWin32Face deriving from PangoFontFace. - Change the list_families() method of the PangoWin32FontMap to list PangoFontFamily * rather than names. * pango/pangowin32.c : reflect PangoFontDescription api change * pango/pangowin32.h : don't include pango.h but only the required headers * modules/basic/basic-win32.c : #include "pango-engine.h" * pango/testfonts.c : reflect recent pango api changes
* Up to 0.19.Owen Taylor2001-09-181-7/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Tue Sep 18 15:47:08 2001 Owen Taylor <otaylor@redhat.com> * configure.in (PANGO_MINOR_VERSION): Up to 0.19. * pango/pango-font.h pango/pango-fontmap.[ch] pango/fonts.c pango/pangoxft-fontmap.c pango/pangoft-fontmap.c pango/pango-context.[ch] pango/pangox-fontmap.c: Add new PangoFontFace and PangoFontFamily object types, and change the font listing API to list faces and families, instead of face names and font descriptions. * pango/pango-font.h pango/fonts.c: Make PangoFontDescription an opaque heap-allocated structure, add accessors and convenience functions. * pango/pango-font.h pango/pango-private.h: Make PangoFontMetrics heap allocated, protect the structure definition with #ifdef PANGO_ENABLE_BACKEND, and add getters for the fields. * pango/pango-attributes.[ch] ( pango_attr_iterator_get_font): instead of providing a base font description and one to fill in, provide a single font description to modify based on the attributes. * pango/pango-attributes.[ch]: Fix PangoAttrFontDesc to have a PangoFontDescription by reference, not by value. * pango/pango-utils.[ch]: make pango_parse_style() and friends take pointers to individual enumerations instead of to a PangoFontDescription structure. * pango/*.c: Fix for the PangoFontDescription and PangoFontMetrics changes. * pango/pango-{break,engine,indic,ot,xft}.h pango/Makefile.am pango/opentype/Makefile.am: Protect portions with PANGO_ENABLE_ENGINE to shrink the public API. * modules/*/Makefile.am: -DPANGO_ENABLE_ENGINE. * pango/{pangox.h,pangox-private.h} modules/basic/basic-x.c: Move pango_x_font_get_unknown_glyph() into public header since it is used from modules. * pango/pango-{context,font,fontmap,modules.utils}.h pango/Makefile.am: Protect portions with PANGO_ENABLE_BACKEND to shrink the public API. * pango/*.h: Use G_BEGIN/END_DECLS * examples/viewer-qt.[cc,h]: Fix for changes to font listing API, PangoFontDescription. * pango/pango-indic.h modules/indic/*: Since we install this header fix it up to Pango conventions, namespece ZERO_WIDTH_JOINER, ZERO_WIDTH_NON_JOINER. * docs/pango-sections.txt: Updated.
* Fully convert the truetype unicode table to host endianness when readingAlexander Larsson2001-08-161-17/+35
| | | | | | | | 2001-08-16 Alexander Larsson <alexl@redhat.com> * pango/pangowin32.c: Fully convert the truetype unicode table to host endianness when reading it. Add a cache of one to find_segment since it showed up on a profile.
* restore the previously selected font into the device context.Hans Breuer2001-08-091-3/+5
| | | | | | | | | | | | | | | | | | | 2001-08-10 Hans Breuer <hans@breuer.org> * pango/pangowin32.c (pango_win32_render) : restore the previously selected font into the device context. (pango_win32_font_get_glyph_extents) : info->ink_rect.y needs to be negative to get underlines right * pango/pangowin32-fontmap.c (pango_win32_font_map_list_fonts) : Don't g_assert_not_reached () on !family case. This is what the X version does as well. Testcase for win32: testfonts.c * pango/testfonts.c : (new file) simple test program for win32 which renders all or selected fonts into a bitmap * pango/makefile.msc : re-enable testfonts compiling
* Large rewrite of the win32 backend to use real glyph indexes instead ofAlexander Larsson2001-08-091-957/+488
| | | | | | | | | | | | | | | | | | | 2001-08-09 Alexander Larsson <alexl@redhat.com> * pango/pangowin32.h: * pango/pangowin32-private.h: * pango/pangowin32.c: * pango/pangowin32-fontmap.c: * modules/basic/basic-win32.c: * pango/pangowin32.def: Large rewrite of the win32 backend to use real glyph indexes instead of unicode codes. Also drops the subfont thing, thereby simplifying the code immensely. This looses some functionality, but i will add that back soon using global (non backend-specific) aliases. This is the first cut, and is not perfect. It still has some issues and imperfections, but it so clearly better than the current imlementation that I'm checking it in anyway.