summaryrefslogtreecommitdiff
path: root/modules/basic/basic-win32.c
Commit message (Collapse)AuthorAgeFilesLines
* Remove unused empty header file basic-common.hBehdad Esfahbod2007-07-051-2/+0
| | | | | | | | | | | | | | 2007-07-05 Behdad Esfahbod <behdad@gnome.org> * modules/basic/Makefile.am: * modules/basic/basic-fc.c: * modules/basic/basic-win32.c: * modules/basic/basic-x.c: * modules/basic/basic-common.h: Remove unused empty header file basic-common.h svn path=/trunk/; revision=2370
* An ISO639 code is always in ASCII, no need to call the wide-characterTor Lillqvist2007-03-071-10/+1
| | | | | | | | | | | 2007-03-07 Tor Lillqvist <tml@novell.com> * modules/basic/basic-win32.c: An ISO639 code is always in ASCII, no need to call the wide-character version of GetLocaleInfo(). svn path=/trunk/; revision=2210
* configure.in modules/basic/Makefile.am Make building with Uniscribe (usingTor Lillqvist2007-03-071-246/+33
| | | | | | | | | | | | | | | | | | | | | | | | 2007-03-07 Tor Lillqvist <tml@novell.com> * configure.in * modules/basic/Makefile.am * modules/basic/basic-win32.c: Make building with Uniscribe (using the <usp10.h> header) mandatory. Mingw's w32api headers do include usp10.h now so one doesn't need to copy it from the Platform SDK any longer. At runtime using Uniscribe is still optional, depending on whether usp10.dll is found or not. I think it isn't necessarily present on Windows 2000 machines, for instance. * modules/basic/basic-win32.c (lang_name): Instead of a hardcoded case statement, use GetLocaleInfo() to get the language ISO639 code. (charset_name): Remove, unused. (itemize_shape_and_place, uniscribe_shape, basic_engine_shape): Constify the PangoAnalysis parameter to match the prototype of PangoEngineShapeClass::script_shape(). svn path=/trunk/; revision=2209
* *.c, *.h: Drop trailing whitespace.Behdad Esfahbod2007-01-161-25/+25
| | | | | | | | | 2007-01-16 Behdad Esfahbod <behdad@gnome.org> *.c, *.h: Drop trailing whitespace. svn path=/trunk/; revision=2163
* pango/pangowin32-private.h (PING) pango/pangowin32.c Use g_print() insteadTor Lillqvist2006-02-281-46/+46
| | | | | | | | | | 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 PANGO_GLYPH_EMPTY to 0x0FFFFFFF, to not overlap withBehdad Esfahbod2006-02-051-3/+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-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-2/+2
| | | | | | | | | | | | | | | | | | | | | | | 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)
* 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)
* Drop unused font_cache variable and the call toTor Lillqvist2005-09-131-5/+0
| | | | | | | | | | 2005-09-13 Tor Lillqvist <tml@novell.com> * modules/basic/basic-win32.c: Drop unused font_cache variable and the call to pango_win32_font_map_for_display() used in its initialization, which caused an extra instance of PangoWin32FontMap to be created, and fonts enumerated an extra time.
* New function added.Behdad Esfahbod2005-07-231-1/+1
| | | | | | | | | | | | | | 2005-07-23 Behdad Esfahbod <pango@behdad.org> * pango/pango-utils.c, pango/pango-utils.h (pango_is_zerowidth): New function added. * modules/basic/basic-common.h, modules/basic/basic-fc.c, modules/basic/basic-win32.c, modules/basic/basic-x.c, modules/hangul/hangul-fc.c, modules/arabic/arabic-fc.c, modules/indic/indic-fc.c, modules/indic/indic-ot.h, modules/syriac/syriac-fc.c: Use the new pango_is_zerowidth function. (#306639, Behnam Esfahbod)
* Correct parameters passed to MultiByteToWideChar(). Pass -1 as sourceTor Lillqvist2005-04-281-12/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-1/+1
| | | | | | | | | | | 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
* Leave out some languages that don't have any own digits.Tor Lillqvist2005-03-201-25/+18
| | | | | | | | | | | | | 2005-03-20 Tor Lillqvist <tml@novell.com> * modules/basic/basic-win32.c (make_langid): Leave out some languages that don't have any own digits. (itemize_shape_and_place): Force fRTL for each item returned from ScriptItemize() to the bidi embedding parity for the whole run. Pango passes us a run that it correctly has analyzed should be of a certain direction, but ScriptItemize() still might split it into items, some of which have neutral direction. (#170931) (text_is_simple): Use g_utf8_to_utf16().
* PangoCairoFontMap for win32 fonts.Owen Taylor2005-02-241-34/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Emergency fix for #151068... if uniscribe shaping comes up with no glyphs,Owen Taylor2004-12-161-1/+1
| | | | | | | | Wed Dec 15 23:13:57 2004 Owen Taylor <otaylor@redhat.com> * modules/basic/basic-win32.c (uniscribe_shape): Emergency fix for #151068... if uniscribe shaping comes up with no glyphs, fall back to non-uniscribe shaping.
* Add the new pango_renderer_* symbols.Tor Lillqvist2004-09-251-11/+0
| | | | | | | | | | | 2004-09-25 Tor Lillqvist <tml@iki.fi> * pango/pango.def: Add the new pango_renderer_* symbols. * modules/basic/basic-win32.c (basic_engine_covers, basic_engine_win32_class_init): Remove the implementation of the covers method. It was wrong anyway, and unnecessary. No need to override the default implementation. (#152997)
* updatedHans Breuer2004-08-061-0/+11
| | | | | | | | | | | | | | | | | | | 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
* use uniscribe_scripts instead of uniscribe_ranges (does show only withHans Breuer2004-02-281-2/+2
| | | | | | | | 2004-02-28 Hans Breuer <hans@breuer.org> * pango/modules/basic/basic-win32.c : use uniscribe_scripts instead of uniscribe_ranges (does show only with HAVE_USP10_H, which I don't) patch from J. Ali Harlow <ali@juiblex.co.uk>, fixes bug #135504
* moved pango_fc_* to the latter where they live on *nix too.Hans Breuer2003-12-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Simplify.Tor Lillqvist2003-12-081-38/+32
| | | | | | | | | | | 2003-12-08 Tor Lillqvist <tml@iki.fi> * modules/basic/basic-win32.c (convert_log_clusters_to_byte_offsets): Simplify. (itemize_shape_and_place): Fix problem with RTL scripts: If ScriptItemize() returns several items, must handle them in reverse order. (#128812, reported by Shoshannah Forbes)
* Modules now declare a list of scripts that they cover instead of a list ofOwen Taylor2003-09-231-78/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Tue Sep 23 18:03:57 2003 Owen Taylor <otaylor@redhat.com> * pango/pango-engines.[ch] pango/pango-engines-private.h: Modules now declare a list of scripts that they cover instead of a list of code point ranges. Also, there is now a ->covers() virtual function that allows a module to decide live whether the font covers a particular codepoint; remove old get_coverage() method. * pango/pango-fontset.[ch]: Add a foreach() function to iterate over all the fonts in a fontset (with a true return stopping iteration). * pango/pango-context.c: Complete rewrite using script-run information to improve language tags. Switch to an approach where we handle one run at a time rather than computing information for each character individually then later breaking the result into runs. * pango/pango-fontset.[ch]: Switch over to using pango-impl-utils.h. * modules/basic/basic-x.c pango/pangox-fontmap.c: Adapt to the change from get_coverage => covers. * pango/pango-modules.h pango/modules.c: Switch PangoMap over to being based on script rather than being based on codepoint. Remove the no longer needed pango_map_get_entry(). * pango/modules.c: Handle new script-based modules. * pango/pango-fc-fontmap.c pango/pango-win32-fontmap.c pango/pang-fontmap.[ch]: Add a shape_engine_type field to PangoFontmapClass, pango_font_map_get_shape_engine_type(); this allows generic code to find a shaper for a particular fontmap. * pango/pango-script.[ch]: Add pango_script_get_sample_language(), pango_language_includes_script(); functions for determining the relationship between scripts and language. * tools/gen-script-for-lang.c: Modify to spit out a useful table. * pango/pango-script-lang-table.h: Version of table generated from current fontconfig data. * pango/pangox.c: Remove complicated code to compute coverages; no longer useful now that we just have the basic shaper as a legacy thing. * modules/*/*.c: Adapt to identifying shape engines by language range. * modules/thai/thai-fc.c modules/thai/thai-shaper.[ch]: Remove now unused "has_glyph" function and XTIS support. * modules/thai/thai-fc.c: Handle non-Thai characters as well, since the Thai module now gets spaces, punctuation, and so forth.
* New function. Uses the Uniscribe ScriptIsSimple() function to check ifTor Lillqvist2003-08-071-7/+50
| | | | | | | | | | | | | | | 2003-08-05 Tor Lillqvist <tml@iki.fi> * modules/basic/basic-win32.c (text_is_simple): New function. Uses the Uniscribe ScriptIsSimple() function to check if Uniscribe shaping is needed for a piece of text. (basic_engine_shape): Use it, to avoid calling Uniscribe to shape non-complex text. Produces dramatic speedup according to tests by Hans Breuer. (init_uniscribe): No need for the PANGO_WIN32_NO_UNISCRIBE environment variable any longer.
* Make PangoEngine{,Lang,Shape} GObjects, and use a GTypeModule-basedOwen Taylor2003-08-031-41/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Sat Aug 2 23:19:16 2003 Owen Taylor <otaylor@redhat.com> * pango/pango-engine.[ch] modules/*/*-{fc,win32,x}.c pango/modules.c pango/break.c pango/pango-context.c pango/pango-layout.c pango/pango-modules.h pango/querymodules.c pango/shape.c: Make PangoEngine{,Lang,Shape} GObjects, and use a GTypeModule-based module-loading system closely based on the one used for GtkIMContext and GtkThemeEngine. * pango/pango-impl-utils.h: OK, I'm tired of typing in get_type() functions. * pango/pango-script.[ch] pango/pango-script-table.h tests/testscript.c tools/gen-script-table.pl: Add port of script-range code from ICU in preparation for future use. (#91542) * tools/gen-script-for-lang.c: Utility program to determine the script for each fontconfig .orth file. * docs/tmpl/{scripts.sgml,pango-engine-lang.sgml, pango-engine-shape.sgml} docs/pango-sections.txt docs/pango-docs.sgml: Redo to go along with the above changes. * configure.in: chmod +x tests/runtests.sh
* updated to generate libtool compatible dll names, define the rightHans Breuer2003-07-201-0/+70
| | | | | | | | | | | | | 2003-07-20 Hans Breuer <hans@breuer.org> * pango/makefile.msc : updated to generate libtool compatible dll names, define the right PANGO_MODULE_PREFIX, pangoft2 still not build with msvc * module/basic-win32.c : some #ifdef's for missing LANG_* constants to make it compile with msvc50 * pango/pango.def : updated externals
* Switch over the way that module entry points work, taking advantage of theOwen Taylor2003-04-141-13/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Mon Apr 14 06:02:34 2003 Owen Taylor <otaylor@redhat.com> * modules/thai/{thai-fc.c,thai-shaper.c,thai-x.c}: * modules/*/*-{xft,x,win32.c} pango/pango-engine.h modules/*/Makefile.am: Switch over the way that module entry points work, taking advantage of the new automake capability for per-target CFLAGS for shared sources. * pango/pangofc-font.[ch] pango/pangoxft-font.c pango/pangoft2.c: Add a base class for PangoXft and PangoFT2 font classes so code can be shared between FT2 and Xft backends. * configure.in modules/*/Makefile.am modules/{arabic,basic,hangul,hebrew,indic,thai}: Move *-xft.c to *-fc.c and share between Xft and FT2 backends; adds FT2 backend capabilities for hangul/indic/thai. * pango/pangoxft.h pango/pangoft2.h: Deprecate APIs that moved into PangoFcFont * modules/basic/basic-fc.c (set_glyph): Add kerning handling from FT2 backend.
* Add more debugging output.Tor Lillqvist2002-11-121-2/+14
| | | | | | | | | | | | | 2002-11-12 Tor Lillqvist <tml@iki.fi> * pango/pangowin32-fontcache.c (free_cache_entry, cache_entry_unref, pango_win32_font_cache_load): Add more debugging output. * modules/basic/basic-win32.c (uniscribe_shape): Plug memory leak: Free return value from pango_win32_font_logfont(). Call pango_win32_font_cache_unload() for the hfont returned from pango_win32_font_cache_load() after using it.
* Update the non-Uniscribe ranges to cover some more simple scripts.Tor Lillqvist2002-10-241-43/+102
| | | | | | | | | | | | | | | | | | | 2002-10-24 Tor Lillqvist <tml@iki.fi> * modules/basic/basic-win32.c: Update the non-Uniscribe ranges to cover some more simple scripts. (itemize_shape_and_place): Handle unknown glyphs. (script_engine_list): Only return the "everything" range if Uniscribe is available. It would be nice to build up a more specific range list based on the information ScriptGetProperties() returns. That function lists information about each script the Uniscribe version used can handle. Unfortunately, though, the information is severely limited. It doesn't tell what Unicode blocks a script covers. It only gives one language that uses that script, and sometimes an charset number, but for most scripts just the totally useless DEFAULT_CHARSET.
* Add --with-usp10 flag to indicate where to find the usp10.h header, forTor Lillqvist2002-10-211-0/+749
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Merge from pango-1-0:Tor Lillqvist2002-09-241-1/+1
| | | | | | | | | | | | | | | | | | | | | | | 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.
* Minor spacing fixes, comment the Unicode ranges covered.Tor Lillqvist2002-09-221-11/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | 2002-09-23 Tor Lillqvist <tml@iki.fi> * modules/basic/basic-win32.c: Minor spacing fixes, comment the Unicode ranges covered. * modules/basic/makefile.mingw.in: Remove. Not maintained. * modules/basic/Makefile.am: Remove from here, too. * pango/makefile.msc * pango/module-defs-win32.c.win32: Change according to change below so that build also with the manually written makefile for MSVC, which always uses included modules, still works. * pango-zip.sh.in: Distribute specifically pango.aliases and pango.modules, not the whole etc/pango which might contain editor backup files. Mon Sep 16 12:03:54 2002 Arnaud Charlet <charlet@gnat.com> * modules/basic/basic-win32.c: Check for correct macro, use correct module entry name, so that --with-included-modules works with autoconfiscated build for Windows. (#93372)
* ue Mar 26 18:22:07 2002 Owen Taylor <otaylor@redhat.com>Owen Taylor2002-03-261-1/+3
| | | | | | | | * modules/basic/basic-*.c modules/basic/basic-common.h: Move ZERO_WIDTH_CHAR() macro into a common header file, add ZERO WIDTH-NO BREAK SPACE (U+FEFF) * modules/basic/Makefile.am (EXTRA_DIST): Add basic-common.h.
* Convert U+00A0 (NON BREAK SPACE) to U+0020 (SPACE)Owen Taylor2002-03-251-0/+3
| | | | | | | | | | Mon Mar 25 15:46:54 2002 Owen Taylor <otaylor@redhat.com> * modules/basic/basic-*.c: Convert U+00A0 (NON BREAK SPACE) to U+0020 (SPACE) * modules/basic/basic-xft.c (basic_engine_shape): Remove some dead code.
* updated externalsHans Breuer2001-09-211-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | 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
* Large rewrite of the win32 backend to use real glyph indexes instead ofAlexander Larsson2001-08-091-65/+6
| | | | | | | | | | | | | | | | | | | 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.
* Add a new PangoLanguage type to represent language tags; these canOwen Taylor2001-06-141-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Sat Jun 9 17:36:09 2001 Owen Taylor <otaylor@redhat.com> * pango/pango-types.h pango/pango-utils.c: Add a new PangoLanguage type to represent language tags; these can efficiently be compared and don't need to be copied. Also add pango_language_matches() to match a language tag against a pattern. * pango/pango-item.[ch] pango/pango-layout.c: Move extra_attrs from PangoItem to PangoAnalysis. Add a language tag field to PangoAnalysis. (#55894) * pango/pango-attributes.[ch] (pango_attr_iterator_get_font): Return the language tag as well. * pango/pango-attributes.[ch]: Rename PangoAttrLang to PangoAttrLanguage, and make it hold a PangoLanguage. * pango/pango-context.[ch]: Rename pango_context_{get,set}_lang() to pango_context_{get,set}_language(). * **.[ch]: Adapt to PangoLanguage and s/lang/language/ changes. * modules/basic/basic-x.c modules/basic/tables-big.i: Add support for ordering character sets differently for different language tags. * pango/itemize.c: Remove old, unused file. * pango/pango-context.c (pango_itemize): Reduce number of mallocs by allocating one array of PangoAnalysis instead of many arrays.
* i2001-01-04 Alexander Larsson <alla@lysator.liu.se>Alexander Larsson2001-01-041-3/+5
| | | | | | | | | | | | | | | | | | | | | * modules/arabic/arabic-x.c: * modules/arabic/arabic-xft.c: * modules/basic/basic-ft2.c: * modules/basic/basic-win32.c: * modules/basic/basic-x.c: * modules/hangul/hangul-x.c: * modules/indic/bengali-x.c: * modules/indic/devanagari-x.c: * modules/indic/gujarati-x.c: * modules/indic/gurmukhi-x.c: * modules/indic/myanmar-x.c: * modules/tamil/tamil-x.c: * modules/thai/thai-x.c: Change all modules to use a define to the script engine name. Also Fixes some errors in the names (they were different in the same module). * pango/.cvsignore: add module-defs*.[ch]
* Only a script engine here.Tor Lillqvist2000-12-211-3/+1
| | | | | | | | | | | | | | | | | | | | 2000-12-21 Tor Lillqvist <tml@iki.fi> * modules/basic/basic-win32.c (script_engine_load): Only a script engine here. * pango/makefile.mingw.in: Add the built pango-enum-types.[ch]. * pango/pango.def * pango/pangoft2.def: Update. * pango/opentype/pango-ot.def * pango/opentype/makefile.mingw.in: New files. * pango/opentype/Makefile.am (EXTRA_DIST): Add them. * configure.in (included_modules): Generate pango/opentype/makefile.mingw.
* Fix build breakage, reported by Alex Larsson and Yasushi ShojiHavoc Pennington2000-12-181-1/+0
| | | | | | | | | | | | | | | | | 2000-12-18 Havoc Pennington <hp@redhat.com> Fix build breakage, reported by Alex Larsson and Yasushi Shoji * pango/pangox.h: don't include pango.h, just individual headers * configure.in: check for perl, add --disable-rebuilds configure option, automatically disable rebuilds if no perl * pango/Makefile.am: use located perl to run makeenums.pl, and don't try to rebuild if we did --disable-rebuilds (EXTRA_DIST): add built headers * modules/*/*.[hc]: don't include pango.h, include specific headers
* delete lang engineHavoc Pennington2000-12-021-34/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-11-30 Havoc Pennington <hp@pobox.com> * modules/thai/thai.c: delete lang engine * modules/tamil/tamil.c: delete lang engine (tamil_engine_x_new): fix type tag for shape engine * modules/indic/myanmar.c: delete lang engine (pango_engine_x_new): fix type tag for shape engine * modules/indic/gurmukhi.c: delete lang engine (pango_indic_engine_x_new): fix type tag for shape engine * modules/indic/gujarati.c: delete lang engine (pango_indic_engine_x_new): fix type tag for shape engine * modules/indic/devanagari.c: delete lang engine (pango_indic_engine_x_new): fix type tag for shape engine * modules/indic/pango-indic-script.h (SCRIPT_ENGINE_DEFINITION): delete lang engine * modules/indic/bengali.c: delete the lang engine (pango_indic_engine_x_new): fix type tag for shape engine * modules/hangul/hangul.c: delete the lang engine (hangul_engine_x_new): fix type tag for shape engine * modules/basic/basic.c: delete the lang engine (basic_engine_x_new): fix type tag for shape engine * modules/basic/basic-win32.c: delete the lang engine (basic_engine_win32_new): this was a shape engine, use correct type tag * modules/basic/basic-ft2.c: delete the lang engine * modules/arabic/arabic.c: Delete the lang engine (arabic_engine_x_new): this is a shape engine, not a lang engine, fix type tag * pango/pango-layout.c (pango_layout_index_to_line_x): handle the fact that paragraph delimiters aren't in the layout lines (pango_layout_index_to_pos): update to handle paragraph delimiters * pango/break.c (pango_find_paragraph_boundary): New function to find paragraph boundaries * pango/pango-layout.c (get_items_log_attrs): don't separate calls to pango_break() when directional level changes * pango/pango-layout.h (struct _PangoLayoutLine): put start index of the line into the struct * pango/pango-layout.c (pango_layout_get_cursor_pos): Fixups to reflect the fact that paragraph separators are removed from the input text. * pango/pango-layout.c (can_break_at): don't special-case start of line and whitespace-following-alphabetic here, because pango_break() already handles that properly * tests/testboundaries.c, tests/Makefile.am, tests/runtests.sh: Add directory for test programs, and a script to run them all * configure.in: Create Makefile in tests * pango/break.c (pango_break): Try for a real implementation of the Unicode text boundary algorithms (pango_get_log_attrs): Allow length to be -1 * pango/pango-context.c (pango_itemize): use pango_item_new(), assert that items added to the list are sane. * pango/pango-layout.c (pango_layout_check_lines): Reimplement to honor the paragraph boundaries from pango_break() * pango/pango-layout.c (process_item): use pango_item_split() here * pango/pango-item.c (pango_item_split): New function to split an item into two items
* Define PANGO_VERSION.Tor Lillqvist2000-11-301-3/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-11-30 Tor Lillqvist <tml@iki.fi> * pango/makefile.mingw.in (DEFINES): Define PANGO_VERSION. Changes by Hans Breuer: * pango/pango-layout.c (shape_tab): Add a FIXME comment. * pango/pango-markup.c (compare_xcolor_entries): Use g_strcasecmp. * pango/pango-utils.c (pango_get_sysconf_subdirectory): Use second fallback location if there is no pango subdir in the Windows directory. * pango/pangowin32-fontmap.c (pango_win32_font_entry_get_coverage): Check if fopen succeeded. * pango/pangowin32-private.h (DEBUGGING): Turn off. * pango/pangowin32.c (pango_win32_unicode_classify): We can in fact get out of the loop. Return invalid value in that case. (subfont_has_glyph): Improve performance a bit. * pango/querymodules.c: Small change for MSVC build. * modules/basic/basic-win32.c (basic_engine_get_coverage): Performance improvement. * examples/viewer-win32.c (main): Disable double buffering on the layout widget.
* Include a stripped-down version of fribidi to avoid the extra dependency.Owen Taylor2000-11-121-3/+3
| | | | | | | | | | | | | | | | | | | | Sun Nov 12 16:07:06 2000 Owen Taylor <otaylor@redhat.com> * configure.in pango/pango-utils.[ch] pango/Makefile.am pango/mini-fribidi/*: Include a stripped-down version of fribidi to avoid the extra dependency. No fribidi symbols are exported so conflicts with the real fribidi should not happen. Library can optionally be compiled with the real libfribidi. * pango/pango-utils.[ch]: Wrappers for fribidi_ functions when compiling with fribiid. * modules/basic/basic-ft2.c modules/basic/basic-win32.c modules/basic/basic.c modules/thai/thai.c pango/Makefile.am pango/itemize.c pango/pango-context.c pango/pangoft2.c pango/pangowin32.c pango/pangox.c: Use pango_ versions of fribidi functions.
* pango/pango.def Add new entry points.Tor Lillqvist2000-10-031-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-10-03 Tor Lillqvist <tml@iki.fi> * pango/pango.def * pango/pangoft2.def: Add new entry points. * pango/pango-coverage.c (pango_coverage_set): Remove unnecessary loop calling memset() with same parameters 64 times ;-) * pango/makefile.mingw.in (PANGO_OBJS): Add pango-tabs.o. Some small changes that have been laying around on my disk. The Win32 and FT2 backends aren't "production quality" yet. For speedup, need to cache at least the coverage info. * pango/pangoft2.c (pango_ft2_get_coverage): New function. * modules/basic/basic-win32.c: Use "BasicScriptEngineLangWin32" to be unique. * modules/basic/basic-ft2.c: Add comments explaining what Unicode ranges the table entries covers. Use "BasicScriptEngineLangFT2" to be unique. (basic_engine_get_coverage): Test calling pango_ft2_get_coverage(). (basic_engine_ft2_new): Set corect engine type. Not that this apparently is used for anything, the X11 basic shaper module also sets its type as TYPE_LANG. * examples/viewer-ft2.c (split_paragraphs): Just end the string upon encountering an invalid character. Don't return.
* Add parameter telling whether to print warning or not if string isn'tTor Lillqvist2000-08-201-7/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-08-20 Tor Lillqvist <tml@iki.fi> * pango/pango-utils.c (pango_parse_*): Add parameter telling whether to print warning or not if string isn't recognised. Use g_strncasecmp(). * pango/pango-utils.h: Change prototype accordingly. * pango/pangox-fontmap.c * pango/pangowin32-fontmap.c: Change calls correspondingly. * pango/pangowin32.h: * pango/pangowin32.c: Cosmetic changes, dead code removal. * pango/pangoft2.h * pango/pangoft2-private.h * pango/pangoft2.c * pango/pangoft2-fontmap.c * pango/pangoft2-fontcache.c: New files implementing a FreeType2 backend. Used only on Win32 so far, but doesn't contain Win32-specific code per se, so if somebody wants to try it out on X11, too, be my guest. It works, more or less, but there are some details still to sort out. Performance needs to be improved. Debugging printouts still present. Font path currently hardcoded to C:\windows\fonts, heh. Owen says he doesn't think it's a good idea to use ths on Win32, but I'll try anyway. If it turns out using the native Win32 GDI backend is better after all, oh well. * pango/makefile.mingw: Delete. Move contents to makefile.mingw.in. * pango/makefile.mingw.in: New file. Add rules for FreeType2 backend. Add FreeType2 CFLAGS and LIBS. * pango/Makefile.am: Generate makefile.mingw. (EXTRA_DIST): Add FreeType2 backend sources, and makefile.mingw{,.in} * modules/basic/basic-win32.c: Couple of cosmetic changes. * modules/basic/Makefile.am: Generate makefile.mingw. (EXTRA_DIST): Add basic-ft2.c, and makefile.mingw{,.in} * modules/basic/makefile.mingw: Delete. Move contents to makefile.mingw.in. * modules/basic/makefile.mingw.in: New file. Add rule for basic-ft2. Add FreeType2 CFLAGS and LIBS. * examples/viewer-win32.c (read_file): Fix error messages. (draw): Get HDC from GDK once for all paragraphs. * examples/viewer-ft2.c: New file. The FT_Bitmap (256-level bitmap) produced by the FreeType2 backend is copied to the GtkLayout window using gdk_draw_gray_image from GdkRGB (!). Yes, this is kinda circular dependency between Pango and GTK+. * examples/makefile.mingw: Delete. Move contents to makefile.mingw.in. * examples/makefile.mingw.in: New file. Add rules for viewer-ft2. Add FreeType2 CFLAGS and LIBS. * examples/Makefile.am: Generate makefile.mingw. (EXTRA_DIST): Add viewer-win32.c and viewer-ft2.c, and makefile.mingw{,.in}
* Add the pangowin32 sources.Tor Lillqvist2000-07-181-62/+4
| | | | | | | | | | | | | | | | | | | | | | | | 2000-07-18 Tor Lillqvist <tml@iki.fi> * pango/Makefile.am (EXTRA_DIST): Add the pangowin32 sources. * pango/pangox.c (lang_texts): Add some Latin-1 to the Finnish and Swedish strings. * modules/module.def: New file. * modules/Makefile.am (EXTRA_DIST): Add it. * modules/basic/Makefile.am (EXTRA_DIST): Add basic-win32.c. * */makefile.mingw: Small updates. * pango/pangowin32.c * pango/pangowin32-fontmap.c * modules/basic/basic-win32.c * examples/viewer-win32.c: Bug fixes. Remove dead code. Now the Win32 implementation seems to work, except for a few glitches.
* pango/pango-utils.h pango/pango-utils.c pango/pangox-fontmap.c Move theTor Lillqvist2000-07-161-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-07-16 Tor Lillqvist <tml@iki.fi> * pango/pango-utils.h * pango/pango-utils.c * pango/pangox-fontmap.c * pango/pangowin32-fontmap.c: Move the get_{style,variant, weight,stretch} functions to pango-utils.c, and rename them to pango_parse_*. Would otherwise be duplicated in pangox and angowin32. * pango/pango.def: Export them. * pango/pango-font.h: Add PANGO_WEIGHT_ULTRALIGHT, PANGO_WEIGHT_LIGHT, PANGO_WEIGHT_EXTRABOLD and PANGO_WEIGHT_HEAVY values to PangoWeight. * pango/pango-utils.c: Recognize the new weight strings. * pango/pangowin32.c (pango_win32_list_subfonts): Don't g_free the subfont_list from the subfonts_by_subrange hash table... * pango/pangowin32-fontmap.c (pango_win32_font_map_read_alias_file): Also set the other properties in the LOGFONT, not only the face name. (pango_win32_insert_font): Insert a pointer to a freshly allocated LOGFONT in the hash table, not the one passed in as a parameter, which could be (and in fact, *is*) a pointer to an auto variable. Quantize the description weight values to exact PANGO_WEIGHT_* values. (pango_win32_get_unknown_glyph): Use subfont 1. * examples/viewer-win32.c: (split_paragraphs): Don't include the newline. (draw): Correct 1st parameter to gdk_win32_hdc_{get,release}.
* pango/pangowin32.h pango/pangowin32-private.h pango/pangowin32-fontcache.cTor Lillqvist2000-07-151-0/+363
2000-07-15 Tor Lillqvist <tml@iki.fi> * pango/pangowin32.h * pango/pangowin32-private.h * pango/pangowin32-fontcache.c * pango/pangowin32-fontmap.c * modules/basic/basic-win32.c * examples/viewer-win32.c * examples/pangowin32.aliases: New files. Start of a Win32 implementation. Does not work yet. * configure.in: Chek for dirent.h and unistd.h. * pango/pango-utils.h * pango/pango-utils.c (pango_get_sysconf_subdirectory, pango_get_lib_subdirectory): New functions, for better portability, to enable installation-time choice of directory (on Windows) instead of compile-time. Use these instead of SYSCONFDIR "/pango" and LIBDIR "/pango". (pango_split_file_list): Fix comment, the function splits on searchpath separators, not commas. Use G_SEARCHPATH_SEPARATOR_S for portability. Don't try to expand '~' as home directory on Windows. (read_config): Use pango_get_sysconf_subdirectory(). * pango/modules.c (read_modules): Use pango_get_sysconf_subdirectory(). Don't crash if a module file cannot be opened. * pango/querymodules.c: Include config.h Conditionalize inclusion of dirent.h and unistd.h. Use platform-specific shared library extension. Use pango_get_lib_subdirectory().