summaryrefslogtreecommitdiff
path: root/pango
diff options
context:
space:
mode:
authorTor Lillqvist <tml@iki.fi>2000-07-18 06:06:41 +0000
committerTor Lillqvist <tml@src.gnome.org>2000-07-18 06:06:41 +0000
commit5232745f652495ec1ab73fcb7368fe858cc0099c (patch)
tree0ef350a68f35220a40eb6dd61a8c1bd991df7ece /pango
parentca5b24d14066ce35f5b92d117beee0e3605b2f4b (diff)
downloadpango-5232745f652495ec1ab73fcb7368fe858cc0099c.tar.gz
Add the pangowin32 sources.
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.
Diffstat (limited to 'pango')
-rw-r--r--pango/Makefile.am7
-rw-r--r--pango/makefile.mingw4
-rw-r--r--pango/pangowin32-fontmap.c10
-rw-r--r--pango/pangowin32-private.h2
-rw-r--r--pango/pangowin32.c12
-rw-r--r--pango/pangox.c4
6 files changed, 26 insertions, 13 deletions
diff --git a/pango/Makefile.am b/pango/Makefile.am
index 99888ace..ee780e98 100644
--- a/pango/Makefile.am
+++ b/pango/Makefile.am
@@ -66,3 +66,10 @@ pango_querymodules_SOURCES = \
querymodules.c
pango_querymodules_LDADD = libpangox.la libpango.la $(GLIB_LIBS) $(FRIBIDI_LIBS) $(UNICODE_LIBS) $(X_LIBS)
+EXTRA_DIST = \
+ pangowin32.h \
+ pangowin32.c \
+ pangowin32-private.h \
+ pangowin32-fontcache.c \
+ pangowin32-fontmap.c
+
diff --git a/pango/makefile.mingw b/pango/makefile.mingw
index e32f72f0..63ef30ea 100644
--- a/pango/makefile.mingw
+++ b/pango/makefile.mingw
@@ -48,10 +48,10 @@ module-defs.c : module-defs.c.win32
cp $< $@
pango-$(PANGO_VER).dll : $(PANGO_OBJS) pango.def
- $(GLIB)/build-dll pango $(PANGO_VER) pango.def $(PANGO_OBJS) $(GLIB_LIBS) $(LIBICONV_LIBS) $(FRIBIDI_LIBS)
+ $(GLIB)/build-dll pango $(PANGO_VER) pango.def $(OPTIMIZE) $(PANGO_OBJS) $(GLIB_LIBS) $(LIBICONV_LIBS) $(FRIBIDI_LIBS)
pangowin32-$(PANGO_VER).dll : $(PANGOWIN32_OBJS) pangowin32.def
- $(GLIB)/build-dll pangowin32 $(PANGO_VER) pangowin32.def $(PANGOWIN32_OBJS) -L . -lpango-$(PANGO_VER) $(GLIB_LIBS) $(FRIBIDI_LIBS) -lgdi32
+ $(GLIB)/build-dll pangowin32 $(PANGO_VER) pangowin32.def $(OPTIMIZE) $(PANGOWIN32_OBJS) -L . -lpango-$(PANGO_VER) $(GLIB_LIBS) $(FRIBIDI_LIBS) -lgdi32
pango-querymodules.exe : $(PANGO_QUERYMODULES_OBJS) pango-$(PANGO_VER).dll pangowin32-$(PANGO_VER).dll
$(CC) -o $@ $(PANGO_QUERYMODULES_OBJS) -L . -lpango-$(PANGO_VER) $(GLIB_LIBS)
diff --git a/pango/pangowin32-fontmap.c b/pango/pangowin32-fontmap.c
index a7b6cde4..85298885 100644
--- a/pango/pangowin32-fontmap.c
+++ b/pango/pangowin32-fontmap.c
@@ -235,6 +235,7 @@ PangoFontMap *
pango_win32_font_map_for_display (void)
{
LOGFONT logfont;
+ RECT rect;
/* Make sure that the type system is initialized */
g_type_init();
@@ -253,7 +254,10 @@ pango_win32_font_map_for_display (void)
pango_win32_font_map_read_aliases (fontmap);
- fontmap->resolution = 0; /* ??? */
+ SystemParametersInfo(SPI_GETWORKAREA, 0, &rect, 0);
+ fontmap->resolution =
+ (PANGO_SCALE * 72.27 / 25.4) * ((double) GetDeviceCaps (pango_win32_hdc, HORZSIZE) /
+ (rect.right - rect.left));
return PANGO_FONT_MAP (fontmap);
}
@@ -1056,6 +1060,8 @@ pango_win32_font_map_read_alias_file (PangoWin32FontMap *win32fontmap,
else
font_entry->lfp[i].lfWeight = FW_HEAVY;
+ font_entry->lfp[i].lfQuality = ANTIALIASED_QUALITY;
+
/* Stretch ? */
/* Charset is ignored anyway when used with the widechar
@@ -1324,7 +1330,9 @@ pango_win32_make_matching_logfont (PangoFontMap *fontmap,
/* OK, we have a match; let's modify it to fit this size */
result = g_new (LOGFONT, 1);
+ *result = *closest_match;
result->lfHeight = (int)((double)size / win32fontmap->resolution + 0.5);
+ result->lfWidth = 0;
}
return result;
diff --git a/pango/pangowin32-private.h b/pango/pangowin32-private.h
index 78d459a3..15c849b7 100644
--- a/pango/pangowin32-private.h
+++ b/pango/pangowin32-private.h
@@ -35,8 +35,6 @@
#define FS_VIETNAMESE 0x100
#endif
-#define PANGO_NOTE(x) x
-
typedef struct _PangoWin32Font PangoWin32Font;
typedef struct _PangoWin32FontEntry PangoWin32FontEntry;
typedef struct _PangoWin32SubfontInfo PangoWin32SubfontInfo;
diff --git a/pango/pangowin32.c b/pango/pangowin32.c
index 2147fef2..a07ca509 100644
--- a/pango/pangowin32.c
+++ b/pango/pangowin32.c
@@ -926,7 +926,7 @@ pango_win32_list_subfonts (PangoFont *font,
gboolean
subfont_has_glyph (PangoWin32SubfontInfo *info,
- wchar_t c)
+ wchar_t wc)
{
struct {
@@ -936,6 +936,7 @@ subfont_has_glyph (PangoWin32SubfontInfo *info,
DIBSECTION ds;
TEXTMETRIC tm;
HFONT hfont;
+ wchar_t default_wc;
if (info->buf_hbm == NULL)
{
@@ -980,8 +981,8 @@ subfont_has_glyph (PangoWin32SubfontInfo *info,
FillRect (info->buf_hdc, &info->buf_rect, white_brush);
info->oldfont = SelectObject (info->buf_hdc, hfont);
- c = tm.tmDefaultChar;
- TextOutW (info->buf_hdc, info->buf_x, info->buf_y, &c, 1);
+ default_wc = tm.tmDefaultChar;
+ TextOutW (info->buf_hdc, info->buf_x, info->buf_y, &default_wc, 1);
info->buf_hbm =
CreateDIBSection (info->buf_hdc, (BITMAPINFO *)&bmi,
@@ -995,8 +996,7 @@ subfont_has_glyph (PangoWin32SubfontInfo *info,
* does not exist in the font.
*/
FillRect (info->buf_hdc, &info->buf_rect, white_brush);
- TextOutW (info->buf_hdc, info->buf_x, info->buf_y,
- &c, 1);
+ TextOutW (info->buf_hdc, info->buf_x, info->buf_y, &wc, 1);
return (memcmp (info->buf, info->default_char_buf, info->buf_size) != 0);
}
@@ -1018,7 +1018,6 @@ pango_win32_has_glyph (PangoFont *font,
PangoWin32SubfontInfo *info;
guint16 char_index = PANGO_WIN32_GLYPH_INDEX (glyph);
guint16 subfont_index = PANGO_WIN32_GLYPH_SUBFONT (glyph);
- wchar_t c;
info = pango_win32_find_subfont (font, subfont_index);
if (!info)
@@ -1193,6 +1192,7 @@ pango_win32_find_glyph (PangoFont *font,
if (!subfont_has_glyph (info, char_index))
return FALSE;
+ hfont = pango_win32_get_hfont (font, info);
oldfont = SelectObject (pango_win32_hdc, hfont);
GetTextExtentPoint32W (pango_win32_hdc, &char_index, 1, &size);
SelectObject (pango_win32_hdc, oldfont);
diff --git a/pango/pangox.c b/pango/pangox.c
index c9388fef..7aa3b638 100644
--- a/pango/pangox.c
+++ b/pango/pangox.c
@@ -574,7 +574,7 @@ LangInfo lang_texts[] = {
{ "eo", "Esperanto Saluton" },
{ "es", "Spanish (Español) ¡Hola!" },
{ "et", "Estonian Tere, Tervist" },
- { "fi", "Finnish (Suomi) Hei" },
+ { "fi", "Finnish (Suomi) Hei, Hyvää päivää" },
{ "fr", "French (Français)" },
{ "de", "German Grüß Gott" },
{ "iw", "Hebrew שלום" },
@@ -587,7 +587,7 @@ LangInfo lang_texts[] = {
{ "pl", "Polish Dzień dobry, Hej" },
{ "ru", "Russian (Русский)" },
{ "sk", "Slovak Dobrý deň" },
- { "sv", "Swedish (Svenska) Hej, Goddag" },
+ { "sv", "Swedish (Svenska) Hej på dej, Goddag" },
{ "tr", "Turkish (Türkçe) Merhaba" },
{ "zh", "Chinese (中文,普通话,汉语)" }
};