summaryrefslogtreecommitdiff
path: root/pango/pangowin32.h
Commit message (Collapse)AuthorAgeFilesLines
* Header cleanupMatthias Clasen2019-07-041-9/+7
| | | | | | | Abolish the PANGO_ENABLE_BACKEND and PANGO_ENABLE_ENGINE defines. All backend-only apis are moved into private headers, all apis that were engine-only are marked as deprecated, since engines are.
* pangowin32: Read the font fallback list from the registry instead of ↵Christoph Reiter2018-12-041-1/+1
| | | | | | | | | | | | | | | hardcoding it for some fonts. We only had a fallback list for "Segoe UI" which is the default Windows font, but not on Chinese or Korean Windows version which use "JhengHei UI" etc. and fall back to "Segoe UI". Instead of hardcoding the fallbacks in the alias list read them from the registry (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink) This should allow us to use the default Windows font by default in gtk+ on Win8+, see https://gitlab.gnome.org/GNOME/gtk/merge_requests/436 for details. This also bumps the required Windows version to Vista for RegGetValueW().
* Decorate the symbols in the headers with version macrosChun-wei Fan2016-06-291-2/+24
| | | | | | | From the last commit, decorate all the symbols with the version macros. Also add the version macros in the docs. https://bugzilla.gnome.org/show_bug.cgi?id=767587
* Bug 685167 - migrate docs to no-tmpl flavourBehdad Esfahbod2013-09-271-0/+6
| | | | Patch from Rafał Mużyło.
* Add deprecation attributes to deprecated functionsMatthias Clasen2011-10-131-0/+2
| | | | | | | | This is using the newly introduce G_DEPRECATED macros from GLib. Traditional deprecation guards are still in place. https://bugzilla.gnome.org/show_bug.cgi?id=661612
* Make the following API public:Behdad Esfahbod2008-08-061-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2008-08-05 Behdad Esfahbod <behdad@gnome.org> * pango/pango-context.c: * pango/pango-context.h: Make the following API public: pango_context_new() pango_context_set_font_map() * pango/pango-fontmap.c (pango_font_map_create_context): * pango/pango-fontmap.h: New public API: pango_font_map_create_context() * pango/pangocairo-context.c (pango_cairo_create_context): * pango/pangocairo-font.c (_pango_cairo_font_get_metrics), (_pango_cairo_font_private_get_hex_box_info): * pango/pangocairo-fontmap.c (pango_cairo_font_map_create_context): * pango/pangocairo.h: Deprecate pango_cairo_font_map_create_context(). * pango/pangofc-font.c (pango_fc_font_get_metrics): * pango/pangofc-fontmap.c (pango_fc_font_map_create_context): * pango/pangofc-fontmap.h: Deprecate pango_fc_font_map_create_context(). * pango/pangoft2-fontmap.c (pango_ft2_font_map_create_context), (pango_ft2_get_context): * pango/pangoft2.h: Deprecate pango_ft2_font_map_create_context(). * pango/pangowin32.c (pango_win32_get_context), (pango_win32_font_get_metrics): * pango/pangowin32.h: Deprecate pango_win32_get_context(). * pango/pangoxft-font.c (_pango_xft_font_get_mini_font): * pango/pangoxft-fontmap.c (pango_xft_get_context): * pango/pangoxft.h: Deprecate pango_xft_get_context(). * pango/pangox-fontmap.c (pango_x_font_map_for_display): * pango/pangox.c (get_context_info), (pango_x_get_context), (pango_x_context_set_funcs), (pango_x_render_layout_line): Deprecate pango_x_get_context(), again. * docs/pango-sections.txt: * docs/tmpl/fonts.sgml: * pango-view/viewer-pangocairo.c (pangocairo_view_get_context): * pango-view/viewer-pangoft2.c (pangoft2_view_get_context): * pango-view/viewer-pangox.c (pangox_view_get_context): * pango-view/viewer-pangoxft.c (pangoxft_view_get_context): * pango/check.defs: * pango/pango.def: Update. svn path=/trunk/; revision=2675
* This change was supposed to go in the trunk before 1.16.0, but it didn'tTor Lillqvist2007-02-271-3/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2007-02-26 Tor Lillqvist <tml@novell.com> This change was supposed to go in the trunk before 1.16.0, but it didn't quite get there in time. So, to have a clear cut for this somewhat fundamental change in underlying workings (although there should be no user-visible changes), I will build and distribute Win32 binaries only starting from 1.16.1. Use wide character API for fonts on Windows. Rename functions and variables that deal with LOGFONTW structs to emphasize this. (#407315) * pango/pangowin32.c * pango/pangowin32-fontcache.c * pango/pangowin32-fontmap.c: Use LOGFONTW all over the place instead of LOGFONT, and adapt code accordingly. Use wide character Win32 API. * pango/pangowin32.c (pango_win32_font_neww): Renamed from pango_win32_font_new(), as it now takes a LOGFONTW pointer. This is a private function and can be renamed though it is exported as it is used from the pangocairo DLL. (pango_win32_font_logfont): Mention explicitly in doc comment that it returns a LOGFONTA, and recommend to use pango_win32_font_logfontw() instead. (pango_win32_font_logfontw): New function. * pango/pangowin32-fontcache.c (pango_win32_font_cache_load): Must keep this function that takes a LOGFONTA pointer as it is declared in the public header. (pango_win32_font_cache_loadw): New public function that takes a LOGFONTW pointer. * pango/pangowin32-fontmap.c (pango_win32_font_description_from_logfont): Mention explicitly in the doc comment that it takes a LOGFONTA pointer. (pango_win32_font_description_from_logfontw): New public function that takes a LOGFONTW pointer. (pango_win32_make_matching_logfontw): Rename from pango_win32_make_matching_logfont() to emphasize it takes a LOGFONTW pointer. * pango/pangowin32.h: Declare new public functions. * pango/pangowin32-private.h: Declare new private functions, drop removed ones. * pango/pangocairo-win32font.c (_pango_cairo_win32_font_new): Simplify now that we call pango_win32_make_matching_logfontw(). * pango/pangowin32.def: Add new functions, rename internal functions that now use LOGFONTW. 2007-02-26 Tor Lillqvist <tml@novell.com> Fix brokenness in the code that tries to ensure that all fonts also have italic variants. Now the code hopefully actually does what it was supposed to. (Which is not necessarily the right thing to do, though. It can be argued that we should not list synthesized italic font styles, we should just silently generate them if asked for. We don't want synthesized italic (or synthesized bold) styles showing up in the font selector. They don't show up when using a fontconfig-based Pango backend either.) (#110521) * pango/pangowin32-fontmap.c (logfont_nosize_hash, logfont_nosize_equal): Don't use the lfItalic field as such, just its nonzeroness. When being enumerated, italic fonts show up with lfItalic=255, but our code looks up italic versions of fonts by passing a key LOGFONT with lfItalic=1. (first_match): Not needed any more, see below. (ensure_italic): This is now called on the entries in the size_infos hash table, not families. The code used to randomly look for the first matching font in size_infoswith the family name being handled. (pango_win32_font_map_init): Iterate through the size_infos hash table with ensure_italic, not through the families table. * pango/pangowin32-fontcache.c (logfontw_hash, logfontw_equal): Look at just nonzeroness of lfItalic here, too. svn path=/trunk/; revision=2204
* *.c, *.h: Removed spaces followed b tabs.Behdad Esfahbod2007-01-161-1/+1
| | | | | | | | | 2007-01-16 Behdad Esfahbod <behdad@gnome.org> *.c, *.h: Removed spaces followed b tabs. svn path=/trunk/; revision=2166
* *.c, *.h: Replace preceding sequences of 8 spaces with tabs.Behdad Esfahbod2007-01-161-6/+6
| | | | | | | | | 2007-01-16 Behdad Esfahbod <behdad@gnome.org> *.c, *.h: Replace preceding sequences of 8 spaces with tabs. svn path=/trunk/; revision=2165
* *.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
* Rename the recently added pango_win32_pango_font_description_from_logfont()Tor Lillqvist2006-02-101-1/+1
| | | | | to pango_win32_font_description_from_logfont(). Add it to pangowin32.def and pango-sections.txt, too.
* Fix #135098 and #322510.Tor Lillqvist2006-02-101-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 2006-02-10 Tor Lillqvist <tml@novell.com> Fix #135098 and #322510. * pango/pangowin32-fontmap.c (case_insensitive_hash) (case_insensitive_equal): New helper functions for string hashing based on ASCII case insensitivity. (logfont_nosize_hash): Use case_insensitive_hash(). (logfont_nosize_equal): Use case_insensitive_equal(). (pango_win32_font_map_init): Use the case-insensitive functions for the PangoWin32FontMap::families hash table. (pango_win32_font_map_load_font): Consequently we don't need to lowercase the name before looking up from the hash table. (get_family_name): Constify parameter. (get_family_name_lowercase): Not needed any longer. (pango_win32_pango_font_description_from_logfont): New public function. Code moved from pango_win32_insert_font(). Use family name as such, don't lowercase it. (pango_win32_insert_font): Use the above new function. Don't bother looking for superfluos copies of the font entry as that shouldn't ever happen. We have pruned out fonts that differ only in charset already earlier. * pango/pangowin32.h: Declare pango_win32_pango_font_description_from_logfont().
* Change PANGO_GLYPH_EMPTY to 0x0FFFFFFF, to not overlap withBehdad Esfahbod2006-02-051-0/+2
| | | | | | | | | | | | | | | | | | | | | | | 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().
* Update to new Cairo font API.Owen Taylor2005-04-071-4/+4
| | | | | | | | | | | 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
* PangoCairoFontMap for win32 fonts.Owen Taylor2005-02-241-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* updatedHans Breuer2004-11-211-0/+6
| | | | | | | | | | 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)
* Add --with-usp10 flag to indicate where to find the usp10.h header, forTor Lillqvist2002-10-211-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-4/+8
| | | | | | | | | | | | | | | | | | | | | | | 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-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Add pango_win32_os_version_info variable, an OSVERSIONINFO struct.Tor Lillqvist2002-03-171-0/+2
| | | | | | | | | | | | | | | | | 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.
* Add the Win32 GDI Pango backend to autoconfiguration:Tor Lillqvist2001-10-031-2/+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-1/+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/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Large rewrite of the win32 backend to use real glyph indexes instead ofAlexander Larsson2001-08-091-105/+8
| | | | | | | | | | | | | | | | | | | 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.
* Define HAVE_FRIBIDI.Tor Lillqvist2000-11-141-0/+1
| | | | | | | | | | 2000-11-15 Tor Lillqvist <tml@iki.fi> * config.h.win32: Define HAVE_FRIBIDI. * pango/pango.def: Add new functions. * pango/pango{win32*,ft2*}.[ch]: Add my name to copyright notice.
* Fix up doc comments not to have obvious errors that gtk-doc barfs on.Owen Taylor2000-10-291-2/+2
| | | | | | | | | | | | | | | Sun Oct 29 01:27:39 2000 Owen Taylor <otaylor@redhat.com> * pango/pangoft2-fontcache.c pango/pangoft2.[ch] pango/pangowin32.h: Fix up doc comments not to have obvious errors that gtk-doc barfs on. Correct parameter descriptions still need to be filled in. * configure.in pango/docs/Makefile.am: upgrade to have a real install rule, etc. * pango/docs/pango-sections.txt: Add various missing functions.
* Add parameter telling whether to print warning or not if string isn'tTor Lillqvist2000-08-201-46/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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}
* pango/pangowin32.h pango/pangowin32-private.h pango/pangowin32-fontcache.cTor Lillqvist2000-07-151-0/+187
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().