+2001-11-08 Tor Lillqvist <tml@iki.fi>
+
+ * README.win32: Add headers. Add section about ActiveIMM.
+
+ * configure.in: Add --with-ie55 flag to specify the location of
+ the "IE55 libs and headers" package downloadable from Microsoft,
+ which contains, among other things, the Active IMM header dimm.h
+ and UUID library uuid.lib. Use test -f instead of AC_CHECK_FILE.
+ Require GLib 1.3.10.
+
+ * config.h.win32.in: New version, produced by merging two
+ configure-generated ones (for gcc and MSVC). Hopefully #defines
+ the same flags that the previous, hand-written one, did.
+
+ * gdk/Makefile.am
+ * gdk/win32/Makefile.am: Handle the uuid library from the IE55 lib.
+
+ * gdk/win32/gdkevents-win32.c: Conditionalize ActiveIMM
+ stuff. Remove unused GdkIOClosure.
+
+ * gdk/win32/surrogate-dimm.h: Remove, use real dimm.h instead (if
+ available).
+
+ * gdk/win32/libie55uuid.la: New file, handwritten libtool wrapper
+ for uuid.lib. (Does it really have to be this hard to use an
+ existing library with libtool? Probably I am missing something.)
+
2001-11-08 Darin Adler <darin@bentspoon.com>
* gtk/gtklabel.c: (gtk_label_ensure_layout): Fix an obvious
+2001-11-08 Tor Lillqvist <tml@iki.fi>
+
+ * README.win32: Add headers. Add section about ActiveIMM.
+
+ * configure.in: Add --with-ie55 flag to specify the location of
+ the "IE55 libs and headers" package downloadable from Microsoft,
+ which contains, among other things, the Active IMM header dimm.h
+ and UUID library uuid.lib. Use test -f instead of AC_CHECK_FILE.
+ Require GLib 1.3.10.
+
+ * config.h.win32.in: New version, produced by merging two
+ configure-generated ones (for gcc and MSVC). Hopefully #defines
+ the same flags that the previous, hand-written one, did.
+
+ * gdk/Makefile.am
+ * gdk/win32/Makefile.am: Handle the uuid library from the IE55 lib.
+
+ * gdk/win32/gdkevents-win32.c: Conditionalize ActiveIMM
+ stuff. Remove unused GdkIOClosure.
+
+ * gdk/win32/surrogate-dimm.h: Remove, use real dimm.h instead (if
+ available).
+
+ * gdk/win32/libie55uuid.la: New file, handwritten libtool wrapper
+ for uuid.lib. (Does it really have to be this hard to use an
+ existing library with libtool? Probably I am missing something.)
+
2001-11-08 Darin Adler <darin@bentspoon.com>
* gtk/gtklabel.c: (gtk_label_ensure_layout): Fix an obvious
+2001-11-08 Tor Lillqvist <tml@iki.fi>
+
+ * README.win32: Add headers. Add section about ActiveIMM.
+
+ * configure.in: Add --with-ie55 flag to specify the location of
+ the "IE55 libs and headers" package downloadable from Microsoft,
+ which contains, among other things, the Active IMM header dimm.h
+ and UUID library uuid.lib. Use test -f instead of AC_CHECK_FILE.
+ Require GLib 1.3.10.
+
+ * config.h.win32.in: New version, produced by merging two
+ configure-generated ones (for gcc and MSVC). Hopefully #defines
+ the same flags that the previous, hand-written one, did.
+
+ * gdk/Makefile.am
+ * gdk/win32/Makefile.am: Handle the uuid library from the IE55 lib.
+
+ * gdk/win32/gdkevents-win32.c: Conditionalize ActiveIMM
+ stuff. Remove unused GdkIOClosure.
+
+ * gdk/win32/surrogate-dimm.h: Remove, use real dimm.h instead (if
+ available).
+
+ * gdk/win32/libie55uuid.la: New file, handwritten libtool wrapper
+ for uuid.lib. (Does it really have to be this hard to use an
+ existing library with libtool? Probably I am missing something.)
+
2001-11-08 Darin Adler <darin@bentspoon.com>
* gtk/gtklabel.c: (gtk_label_ensure_layout): Fix an obvious
+2001-11-08 Tor Lillqvist <tml@iki.fi>
+
+ * README.win32: Add headers. Add section about ActiveIMM.
+
+ * configure.in: Add --with-ie55 flag to specify the location of
+ the "IE55 libs and headers" package downloadable from Microsoft,
+ which contains, among other things, the Active IMM header dimm.h
+ and UUID library uuid.lib. Use test -f instead of AC_CHECK_FILE.
+ Require GLib 1.3.10.
+
+ * config.h.win32.in: New version, produced by merging two
+ configure-generated ones (for gcc and MSVC). Hopefully #defines
+ the same flags that the previous, hand-written one, did.
+
+ * gdk/Makefile.am
+ * gdk/win32/Makefile.am: Handle the uuid library from the IE55 lib.
+
+ * gdk/win32/gdkevents-win32.c: Conditionalize ActiveIMM
+ stuff. Remove unused GdkIOClosure.
+
+ * gdk/win32/surrogate-dimm.h: Remove, use real dimm.h instead (if
+ available).
+
+ * gdk/win32/libie55uuid.la: New file, handwritten libtool wrapper
+ for uuid.lib. (Does it really have to be this hard to use an
+ existing library with libtool? Probably I am missing something.)
+
2001-11-08 Darin Adler <darin@bentspoon.com>
* gtk/gtklabel.c: (gtk_label_ensure_layout): Fix an obvious
+2001-11-08 Tor Lillqvist <tml@iki.fi>
+
+ * README.win32: Add headers. Add section about ActiveIMM.
+
+ * configure.in: Add --with-ie55 flag to specify the location of
+ the "IE55 libs and headers" package downloadable from Microsoft,
+ which contains, among other things, the Active IMM header dimm.h
+ and UUID library uuid.lib. Use test -f instead of AC_CHECK_FILE.
+ Require GLib 1.3.10.
+
+ * config.h.win32.in: New version, produced by merging two
+ configure-generated ones (for gcc and MSVC). Hopefully #defines
+ the same flags that the previous, hand-written one, did.
+
+ * gdk/Makefile.am
+ * gdk/win32/Makefile.am: Handle the uuid library from the IE55 lib.
+
+ * gdk/win32/gdkevents-win32.c: Conditionalize ActiveIMM
+ stuff. Remove unused GdkIOClosure.
+
+ * gdk/win32/surrogate-dimm.h: Remove, use real dimm.h instead (if
+ available).
+
+ * gdk/win32/libie55uuid.la: New file, handwritten libtool wrapper
+ for uuid.lib. (Does it really have to be this hard to use an
+ existing library with libtool? Probably I am missing something.)
+
2001-11-08 Darin Adler <darin@bentspoon.com>
* gtk/gtklabel.c: (gtk_label_ensure_layout): Fix an obvious
+2001-11-08 Tor Lillqvist <tml@iki.fi>
+
+ * README.win32: Add headers. Add section about ActiveIMM.
+
+ * configure.in: Add --with-ie55 flag to specify the location of
+ the "IE55 libs and headers" package downloadable from Microsoft,
+ which contains, among other things, the Active IMM header dimm.h
+ and UUID library uuid.lib. Use test -f instead of AC_CHECK_FILE.
+ Require GLib 1.3.10.
+
+ * config.h.win32.in: New version, produced by merging two
+ configure-generated ones (for gcc and MSVC). Hopefully #defines
+ the same flags that the previous, hand-written one, did.
+
+ * gdk/Makefile.am
+ * gdk/win32/Makefile.am: Handle the uuid library from the IE55 lib.
+
+ * gdk/win32/gdkevents-win32.c: Conditionalize ActiveIMM
+ stuff. Remove unused GdkIOClosure.
+
+ * gdk/win32/surrogate-dimm.h: Remove, use real dimm.h instead (if
+ available).
+
+ * gdk/win32/libie55uuid.la: New file, handwritten libtool wrapper
+ for uuid.lib. (Does it really have to be this hard to use an
+ existing library with libtool? Probably I am missing something.)
+
2001-11-08 Darin Adler <darin@bentspoon.com>
* gtk/gtklabel.c: (gtk_label_ensure_layout): Fix an obvious
+2001-11-08 Tor Lillqvist <tml@iki.fi>
+
+ * README.win32: Add headers. Add section about ActiveIMM.
+
+ * configure.in: Add --with-ie55 flag to specify the location of
+ the "IE55 libs and headers" package downloadable from Microsoft,
+ which contains, among other things, the Active IMM header dimm.h
+ and UUID library uuid.lib. Use test -f instead of AC_CHECK_FILE.
+ Require GLib 1.3.10.
+
+ * config.h.win32.in: New version, produced by merging two
+ configure-generated ones (for gcc and MSVC). Hopefully #defines
+ the same flags that the previous, hand-written one, did.
+
+ * gdk/Makefile.am
+ * gdk/win32/Makefile.am: Handle the uuid library from the IE55 lib.
+
+ * gdk/win32/gdkevents-win32.c: Conditionalize ActiveIMM
+ stuff. Remove unused GdkIOClosure.
+
+ * gdk/win32/surrogate-dimm.h: Remove, use real dimm.h instead (if
+ available).
+
+ * gdk/win32/libie55uuid.la: New file, handwritten libtool wrapper
+ for uuid.lib. (Does it really have to be this hard to use an
+ existing library with libtool? Probably I am missing something.)
+
2001-11-08 Darin Adler <darin@bentspoon.com>
* gtk/gtklabel.c: (gtk_label_ensure_layout): Fix an obvious
has never been claimed to be "production quality", although it works
surprisingly well for the GIMP.)
+Building GTK+ on Win32
+======================
+
There are two ways to build GTK+ for win32:
1) Use the autoconf-generated configure script, and the resulting
Makefiles (which use libtool and gcc to do the compilation). I use
this myself, but it might be hell to setup correctly.
+Personally I run configure with:
+CC='gcc -mpentium -fnative-struct' CPPFLAGS='-I/target/include' CFLAGS=-O2 LDFLAGS='-L/target/lib' ./configure --disable-static --prefix=/target --with-gdktarget=win32 --with-wintab=/src/wtkit126 --with-ie55=/src/workshop/ie55_lib --host=i386-pc-mingw32 --enable-maintainer-mode
+
2) Use the Microsoft compiler, cl and Make, nmake. Say nmake -f
makefile.msc in gdk and gtk.
msc makefiles might not produce compatible or identically named DLLs
and import libraries as the autoconfiscated makefiles and libtool do.
+Using GTK+ on Win32
+===================
+
To use GTK+ on Win32, you also need either one of the above mentioned
compilers. Other compilers might work, but don't count on it. The same
instructions on how to set up a correct version of gcc should also be
prebuilt developer packages (DLLs, import libraries, headers), see the
above website.
+Multi-threaded use of GTK+ on Win32
+===================================
+
+Multi-threaded GTK+ programs might work in special simple cases, but
+not in general. Sorry. If you have all GTK+ and GDK calls in the same
+thread, it might work. Otherwise, probably not at all. Possible ways
+to fix this are being investigated.
+
+Wintab
+======
+
The tablet support uses the Wintab API. The Wintab development kit can
be downloaded from http://www.pointing.com. Pass the --with-wintab
flag to configure if you use that. If you use nmake and you don't care
for Wintab, undefine HAVE_WINTAB in config.h.win32 and remove
references to the wntab32x library from the makefile before building.
+Libintl
+=======
+
GTK wants to be built with the GNU "intl" library for
internationalisation (i18n). Get the version ported to Win32 (not a
very big deal) from the web site mentioned above. The "intl" library
part of it is under the LGPL (like GTK or GLib), as of
gettext-0.10.40.
+ActiveIMM
+=========
+
+If you want to build a GTK+ that supports ActiveIMM (the Input Method
+Manager for non-EastAsia locales that can be used on Win9x/NT4), you
+need the dimm.h header file. That is somewhat difficult to find, but
+http://msdn.microsoft.com/downloads/samples/internet/wizard/ seems to
+be a good place to look nowadays. If you use autoconfiscated build,
+pass the --with-ie55 flag to configure specifyin the location of the
+ie55_lib directory created by downloading the IE5.5 headers and libs
+from the above URL.
+
--Tor Lillqvist <tml@iki.fi>
-/* config.h.win32. Handcrafted for Microsoft C or mingw */
+/* config.h.win32.in. Merged from two versions generated by configure for gcc and MSVC. */
+/* config.h.in. Generated from configure.in by autoheader. */
+/* acconfig.h
+ This file is in the public domain.
-#if ! (defined(_MSC_VER) || defined(__GNUC__))
-#error Unrecognized Win32 compiler, edit config.h.win32 by hand
-#endif
+ Descriptive text for the C preprocessor macros that
+ the distributed Autoconf macros can define.
+ No software package will use all of them; autoheader copies the ones
+ your configure.in uses into your configuration header file templates.
-/* Define if using alloca.c. */
-/* #undef C_ALLOCA */
+ The entries are in sort -df order: alphabetical, case insensitive,
+ ignoring punctuation (such as underscores). Although this order
+ can split up related entries, it makes it easier to check whether
+ a given entry is in the file.
-/* Define to empty if the keyword does not work. */
-/* #undef const */
-
-/* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems.
- This function is required for alloca.c support on those systems. */
-/* #undef CRAY_STACKSEG_END */
-
-/* Define if you have alloca, as a function or macro. */
-#define HAVE_ALLOCA 1
-#ifndef alloca
- #ifdef _MSC_VER
- #define alloca _alloca
- #elif defined (__GNUC__)
- #define alloca __builtin_alloca
- #endif
-#endif
-
-/* Define if you have <alloca.h> and it should be used (not on Ultrix). */
-/* #undef HAVE_ALLOCA_H */
-
-/* Define if you have a working `mmap' system call. */
-/* #undef HAVE_MMAP */
-
-/* Define to empty, or __inline if that's what your compiler wants. */
-#define inline __inline
-
-/* Define to `long' if <sys/types.h> doesn't define. */
-/* #undef off_t */
-
-/* Define if you need to in order for stat and other things to work. */
-/* #undef _POSIX_SOURCE*/
-
-/* Define as the return type of signal handlers (int or void). */
-#define RETSIGTYPE void
-
-/* Define to `unsigned' if <sys/types.h> doesn't define. */
-/* #undef size_t */
-
-/* If using the C implementation of alloca, define if you know the
- direction of stack growth for your system; otherwise it will be
- automatically deduced at run-time.
- STACK_DIRECTION > 0 => grows toward higher addresses
- STACK_DIRECTION < 0 => grows toward lower addresses
- STACK_DIRECTION = 0 => direction of growth unknown
- */
-/* #undef STACK_DIRECTION */
-
-/* Define if you have the ANSI C header files. */
-#define STDC_HEADERS 1
+ Leave the following blank line there!! Autoheader needs it. */
+\f
/* Other stuff */
#define ENABLE_NLS 1
-#define GTK_COMPILED_WITH_DEBUGGING "minimum"
+#define GTK_COMPILED_WITH_DEBUGGING "yes"
/* #undef HAVE_CATGETS */
-/* #undef HAVE_DIRENT_H */
+/* #undef HAVE_DIMM_H */
+#define HAVE_DIRENT_H 1 /* MSVC users: include it from build/win32/dirent */
#define HAVE_GETTEXT 1
/* #undef HAVE_IPC_H */
/* #undef HAVE_LC_MESSAGES */
+#define HAVE_PROGRESSIVE_JPEG 1
/* #undef HAVE_PWD_H */
/* #undef HAVE_SHM_H */
/* #undef HAVE_STPCPY */
/* #undef HAVE_XSHM_H */
-#define HAVE_SHAPE_EXT 1
+/* #undef HAVE_SHAPE_EXT */
/* #undef HAVE_SYS_SELECT_H */
+#ifndef _MSC_VER
+#define HAVE_SYS_TIME_H 1
+#else /* _MSC_VER */
/* #undef HAVE_SYS_TIME_H */
+#endif /* _MSC_VER */
+#define HAVE_WINSOCK_H 1
+#define HAVE_WINTAB 1
/* #undef HAVE_XCONVERTCASE */
+/* #undef HAVE_XFT */
+
+#define NO_FD_SET 1
+
+/* #undef RESOURCE_BASE */
-/* #undef NO_FD_SET */
+#ifndef _MSC_VER
+#define USE_GMODULE 1
+#define USE_MMX 1
+#endif
+
+/* Define to use X11R6 additions to XIM */
+/* #undef USE_X11R6_XIM */
+
+/* Define to use XKB extension */
+/* #undef HAVE_XKB */
+
+/* Define to use shadowfb in the linux-fb port */
+/* #undef ENABLE_SHADOW_FB */
+
+/* Define to use a fb manager in the linux-fb port */
+/* #undef ENABLE_FB_MANAGER */
/* #undef XINPUT_NONE */
/* #undef XINPUT_GXI */
/* #undef XINPUT_XFREE */
-#define XINPUT_WIN32 1
/* Define as the return type of signal handlers (int or void). */
#define RETSIGTYPE void
-/* Define if you have the __argz_count function. */
-/* #undef HAVE___ARGZ_COUNT */
+/* Most machines will be happy with int or void. IRIX requires '...' */
+/* #undef SIGNAL_ARG_TYPE */
-/* Define if you have the __argz_next function. */
-/* #undef HAVE___ARGZ_NEXT */
+#define GETTEXT_PACKAGE "@GETTEXT_PACKAGE@"
-/* Define if you have the __argz_stringify function. */
-/* #undef HAVE___ARGZ_STRINGIFY */
+/* #undef PACKAGE */
+/* #undef VERSION */
+
+\f
+/* Leave that blank line there!! Autoheader needs it.
+ If you're adding to this file, keep in mind:
+ The entries are in sort -df order: alphabetical, case insensitive,
+ ignoring punctuation (such as underscores). */
+
+/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
+ systems. This function is required for `alloca.c' support on those systems.
+ */
+/* #undef CRAY_STACKSEG_END */
+
+/* Define if using `alloca.c'. */
+/* #undef C_ALLOCA */
-/* Define if you have the broken_wctype function. */
+/* Define if you have `alloca', as a function or macro. */
+#define HAVE_ALLOCA 1
+
+/* Define if you have <alloca.h> and it should be used (not on Ultrix). */
+/* #undef HAVE_ALLOCA_H */
+
+/* Define if you have the <argz.h> header file. */
+/* #undef HAVE_ARGZ_H */
+
+/* Define if you have the `bind_textdomain_codeset' function. */
+/* #undef HAVE_BIND_TEXTDOMAIN_CODESET */
+
+/* Is the wctype implementation broken */
/* #undef HAVE_BROKEN_WCTYPE */
-/* Define if you have the dcgettext function. */
-/* #undef HAVE_DCGETTEXT */
+/* Define if you have the `dcgettext' function. */
+#define HAVE_DCGETTEXT 1
+
+/* Define if you have the <dimm.h> header file. */
+/* #undef HAVE_DIMM_H */
-/* Define if you have the getcwd function. */
+/* Define if you have the <dirent.h> header file, and it defines `DIR'. */
+#define HAVE_DIRENT_H 1
+
+/* Define if you have the <dlfcn.h> header file. */
+/* #undef HAVE_DLFCN_H */
+
+/* Define if you have the `getcwd' function. */
#define HAVE_GETCWD 1
-/* Define if you have the getpagesize function. */
+/* Define if you have the `getpagesize' function. */
+#ifndef _MSC_VER
#define HAVE_GETPAGESIZE 1
+#else /* _MSC_VER */
+/* #undef HAVE_GETPAGESIZE */
+#endif /* _MSC_VER */
+
+/* Define if you have the `getresuid' function. */
+/* #undef HAVE_GETRESUID */
+
+/* Define if you have the <inttypes.h> header file. */
+/* #undef HAVE_INTTYPES_H */
+
+/* Define if your <locale.h> file defines LC_MESSAGES. */
+/* #undef HAVE_LC_MESSAGES */
-/* Define if you have the lstat function. */
+/* Define if you have the <limits.h> header file. */
+#define HAVE_LIMITS_H 1
+
+/* Define if you have the <locale.h> header file. */
+#define HAVE_LOCALE_H 1
+
+/* Define if you have the `lstat' function. */
/* #undef HAVE_LSTAT */
-/* Define if you have the munmap function. */
+/* Define if you have the <malloc.h> header file. */
+#define HAVE_MALLOC_H 1
+
+/* Define if you have the <memory.h> header file. */
+#define HAVE_MEMORY_H 1
+
+/* Define if you have the `mkstemp' function. */
+/* #undef HAVE_MKSTEMP */
+
+/* Define if you have a working `mmap' system call. */
+/* #undef HAVE_MMAP */
+
+/* Define if you have the `munmap' function. */
/* #undef HAVE_MUNMAP */
-/* Define if you have the putenv function. */
+/* Define if you have the <ndir.h> header file, and it defines `DIR'. */
+/* #undef HAVE_NDIR_H */
+
+/* Define if you have the <nl_types.h> header file. */
+/* #undef HAVE_NL_TYPES_H */
+
+/* Define if you have the `putenv' function. */
#define HAVE_PUTENV 1
-#define putenv _putenv
-/* Define if you have the setenv function. */
+/* Define if you have the <pwd.h> header file. */
+/* #undef HAVE_PWD_H */
+
+/* Define if you have the `setenv' function. */
/* #undef HAVE_SETENV */
-/* Define if you have the setlocale function. */
+/* Define if you have the `setlocale' function. */
#define HAVE_SETLOCALE 1
-/* Define if you have the stpcpy function. */
-/* #undef HAVE_STPCPY */
+/* Define if you have the `sigsetjmp' function. */
+/* #undef HAVE_SIGSETJMP */
-/* Define if you have the strcasecmp function. */
+/* Define if you have the <stdint.h> header file. */
+#ifndef _MSC_VER
+#define HAVE_STDINT_H 1
+#else /* _MSC_VER */
+/* #undef HAVE_STDINT_H */
+#endif /* _MSC_VER */
+
+/* Define if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define if you have the `strcasecmp' function. */
+#ifndef _MSC_VER
#define HAVE_STRCASECMP 1
-#define strcasecmp _stricmp
+#else /* _MSC_VER */
+/* #undef HAVE_STRCASECMP */
+#endif /* _MSC_VER */
-/* Define if you have the strchr function. */
+/* Define if you have the `strchr' function. */
#define HAVE_STRCHR 1
-/* Define if you have the strdup function. */
+/* Define if you have the `strdup' function. */
#define HAVE_STRDUP 1
-/* Define if you have the <argz.h> header file. */
-/* #undef HAVE_ARGZ_H */
-
-/* Define if you have the <dirent.h> header file. */
-/* #undef HAVE_DIRENT_H */
+/* Define if you have the <strings.h> header file. */
+/* #undef HAVE_STRINGS_H */
-/* Define if you have the <limits.h> header file. */
-#define HAVE_LIMITS_H 1
+/* Define if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
-/* Define if you have the <locale.h> header file. */
-#define HAVE_LOCALE_H 1
+/* Define if you have the <sys/dir.h> header file, and it defines `DIR'. */
+/* #undef HAVE_SYS_DIR_H */
-/* Define if you have the <malloc.h> header file. */
-#define HAVE_MALLOC_H 1
+/* Define if you have the <sys/ndir.h> header file, and it defines `DIR'. */
+/* #undef HAVE_SYS_NDIR_H */
-/* Define if you have the <nl_types.h> header file. */
-/* #undef HAVE_NL_TYPES_H */
+/* Define if you have the <sys/param.h> header file. */
+/* #undef HAVE_SYS_PARAM_H */
-/* Define if you have the <pwd.h> header file. */
-/* #undef HAVE_PWD_H */
+/* Define if you have the <sys/stat.h> header file. */
+#define HAVE_SYS_STAT_H 1
-/* Define if you have the <string.h> header file. */
-#define HAVE_STRING_H 1
+/* Define if you have the <sys/time.h> header file. */
+#ifndef _MSC_VER
+#define HAVE_SYS_TIME_H 1
+#else /* _MSC_VER */
+/* #undef HAVE_SYS_TIME_H */
+#endif /* _MSC_VER */
-/* Define if you have the <sys/param.h> header file. */
-/* #undef HAVE_SYS_PARAM_H */
+/* Define if you have the <sys/types.h> header file. */
+#define HAVE_SYS_TYPES_H 1
-/* Define if you have the <sys/time.h> header file. */
-/* #undef HAVE_SYS_TIME_H */
+/* Define if you have <sys/wait.h> that is POSIX.1 compatible. */
+/* #undef HAVE_SYS_WAIT_H */
-/* Define if you have the <unistd.h> header file. */
+/* Define if you have the <unistd.h> header file. */
+#ifndef _MSC_VER
+#define HAVE_UNISTD_H 1
+#else /* _MSC_VER */
/* #undef HAVE_UNISTD_H */
+#endif /* _MSC_VER */
-/* Define if you have the <wchar.h> header file. */
+/* Have wchar.h include file */
#define HAVE_WCHAR_H 1
-/* Define if you have the <wctype.h> header file. */
-#ifdef _MSC_VER
+/* Have wctype.h include file */
#define HAVE_WCTYPE_H 1
-#endif /* _MSC_VER */
-/* Define if you have the i library (-li). */
-/* #undef HAVE_LIBI */
+/* Define if you have the <winsock.h> header file. */
+#define HAVE_WINSOCK_H 1
-/* Define if you have the intl library (-lintl). */
-#define HAVE_LIBINTL 1
+/* Define if you have the `__argz_count' function. */
+/* #undef HAVE___ARGZ_COUNT */
-/* define if compiled symbols have a leading underscore */
-/* #undef WITH_SYMBOL_UNDERSCORE */
+/* Define if you have the `__argz_next' function. */
+/* #undef HAVE___ARGZ_NEXT */
-/* Define if you have the Wintab programmer's kit */
-#define HAVE_WINTAB 1
+/* Define if you have the `__argz_stringify' function. */
+/* #undef HAVE___ARGZ_STRINGIFY */
-/* Define if you have the <dimm.h> header file
- * (available in the Platform SDK)
-*/
-/* #define HAVE_DIMM_H 1 */
+/* Define as the return type of signal handlers (`int' or `void'). */
+#define RETSIGTYPE void
-#ifndef _MSC_VER
-#define USE_GMODULE 1
-#define USE_MMX 1
-#endif
+/* If using the C implementation of alloca, define if you know the
+ direction of stack growth for your system; otherwise it will be
+ automatically deduced at run-time.
+ STACK_DIRECTION > 0 => grows toward higher addresses
+ STACK_DIRECTION < 0 => grows toward lower addresses
+ STACK_DIRECTION = 0 => direction of growth unknown */
+/* #undef STACK_DIRECTION */
-/* #undef HAVE_SIGSETJMP */
+/* Define if you have the ANSI C header files. */
+#define STDC_HEADERS 1
-#define GETTEXT_PACKAGE "@GETTEXT_PACKAGE@"
+/* Define to empty if `const' does not conform to ANSI C. */
+/* #undef const */
+
+/* Define to `int' if <sys/types.h> doesn't define. */
+#define gid_t int
+
+/* Define as `__inline' if that's what the C compiler calls it, or to nothing
+ if it is not supported. */
+/* #undef inline */
+
+/* Define to `long' if <sys/types.h> does not define. */
+/* #undef off_t */
+
+/* Define to `unsigned' if <sys/types.h> does not define. */
+/* #undef size_t */
+
+/* Define to `int' if <sys/types.h> doesn't define. */
+#define uid_t int
AC_ARG_WITH(xinput, [ --with-xinput=[no/gxi/xfree] support XInput ])
AC_ARG_WITH(wintab, [ --with-wintab=DIRECTORY use Wintab API with win32 backend])
+AC_ARG_WITH(ie55, [ --with-ie55=DIRECTORY IE5.5 libs and headers (for Active IMM)])
GLIB_AC_DIVERT_BEFORE_HELP([
if test "$platform_win32" = yes; then
fi
])
-AC_ARG_WITH(gdktarget, [ --with-gdktarget=[x11/linux-fb/win32] select GDK target [default=$gdktarget]],
+AC_ARG_WITH(gdktarget, [ --with-gdktarget=[[x11/linux-fb/win32]] select GDK target [default=$gdktarget]],
gdktarget=$with_gdktarget)
AC_SUBST(gdktarget)
AC_CHECK_HEADERS(sys/time.h, AC_DEFINE(HAVE_SYS_TIME_H))
AC_CHECK_HEADERS(unistd.h, AC_DEFINE(HAVE_UNISTD_H))
AC_CHECK_HEADERS(winsock.h, AC_DEFINE(HAVE_WINSOCK_H))
-AC_CHECK_HEADERS(dimm.h, AC_DEFINE(HAVE_DIMM_H))
+
+if test "${with_ie55+set}" = set && test $with_ie55 != no; then
+ AC_MSG_CHECKING([for dimm.h])
+ saved_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -idirafter $with_ie55/Include"
+ AC_TRY_COMPILE([#include <windows.h>
+#include <objbase.h>
+#ifdef __GNUC__
+/* The w32api imm.h clashes a bit with the IE5.5 dimm.h */
+#define IMEMENUITEMINFOA hidden_IMEMENUITEMINFOA
+#define IMEMENUITEMINFOW hidden_IMEMENUITEMINFOW
+#include <imm.h>
+#undef IMEMENUITEMINFOA
+#undef IMEMENUITEMINFOW
+#endif
+#include <dimm.h>
+],
+ [],
+ [AC_MSG_RESULT(yes)
+ AC_MSG_CHECKING([for IE55 uuid.lib])
+ if test -f $with_ie55/Lib/uuid.lib ; then
+ AC_MSG_RESULT(yes)
+ have_ie55=yes
+ AC_DEFINE(HAVE_DIMM_H)
+ IE55_UUID_LIB="$with_ie55/Lib/uuid.lib"
+ AC_SUBST(IE55_UUID_LIB)
+ else
+ AC_MSG_RESULT(no)
+ CFLAGS="$saved_CFLAGS"
+ have_ie55=no
+ fi
+ ],
+ [AC_MSG_RESULT(no)
+ CFLAGS="$saved_CFLAGS"
+ have_ie55=no])
+fi
+AM_CONDITIONAL(HAVE_IE55, test x$have_ie55 = xyes)
if test "${with_wintab+set}" = set && test $with_wintab != no; then
AC_MSG_CHECKING([for wintab.h])
#include <wintab.h>],
[],
[AC_MSG_RESULT(yes)
+ AC_MSG_CHECKING([for wntab32x.lib])
if test -f $with_wintab/lib/i386/wntab32x.lib ; then
+ AC_MSG_RESULT(yes)
have_wintab=yes
AC_DEFINE(HAVE_WINTAB)
WINTAB_LIB="$with_wintab/lib/i386/wntab32x.lib"
AC_SUBST(WINTAB_LIB)
else
+ AC_MSG_RESULT(no)
+ CFLAGS="$saved_cflags"
have_wintab=no
fi
],
[AC_MSG_RESULT(no)
+ CFLAGS="$saved_cflags"
have_wintab=no])
- CFLAGS="$saved_cflags"
fi
AM_CONDITIONAL(HAVE_WINTAB, test x$have_wintab = xyes)
if HAVE_WINTAB
wintab_lib = -Lwin32 -lwntab32x
endif
+
+if HAVE_IE55
+ie55uuid_lib = -Lwin32 -lie55uuid
+endif
endif
if OS_WIN32
libgdk_win32_includedir = $(includedir)/gtk-2.0/gdk
libgdk_win32_1_3_la_LIBADD = \
- $(gtarget)/libgdk-$(gtarget).la $(wintab_lib)
+ $(gtarget)/libgdk-$(gtarget).la $(wintab_lib) $(ie55uuid_lib)
libgdk_win32_include_HEADERS = $(gdk_headers)
libgdk_win32_1_3_la_SOURCES = $(gdk_c_sources) gdkenumtypes.c
@STRIP_END@
if HAVE_WINTAB
-noinst_DATA = .libs/libwntab32x.a
+libwntab32x_a = .libs/libwntab32x.a
.libs/libwntab32x.a: @WINTAB_LIB@
cp $< $@
endif
+if HAVE_IE55
+libie55uuid_a = .libs/libie55uuid.a
+
+.libs/libie55uuid.a: @IE55_UUID_LIB@
+ cp $< $@
+endif
+
+noinst_DATA = $(libwntab32x_a) $(libie55uuid_a)
+
noinst_LTLIBRARIES = libgdk-win32.la
SUBDIRS=rc
EXTRA_DIST = \
- makefile.mingw \
- makefile.msc
+ makefile.mingw \
+ makefile.msc \
+ libie55uuid.la \
+ libwntab32x.la
libgdk_win32_la_SOURCES = \
bdfcursor.c \
gdkwin32.h \
gdkwin32id.c \
gdkwindow-win32.c \
- gdkwindow-win32.h \
- surrogate-dimm.h
+ gdkwindow-win32.h
libgdkinclude_HEADERS = \
gdkwin32.h
#include "gdkkeysyms.h"
#include <objbase.h>
+
+#if defined (__GNUC__) && defined (HAVE_DIMM_H)
+/* The w32api imm.h clashes a bit with the IE5.5 dimm.h */
+# define IMEMENUITEMINFOA hidden_IMEMENUITEMINFOA
+# define IMEMENUITEMINFOW hidden_IMEMENUITEMINFOW
+#endif
+
#include <imm.h>
+#if defined (__GNUC__) && defined (HAVE_DIMM_H)
+# undef IMEMENUITEMINFOA
+# undef IMEMENUITEMINFOW
+#endif
+
#ifdef HAVE_DIMM_H
#include <dimm.h>
-#else
-#include "surrogate-dimm.h"
#endif
-typedef struct _GdkIOClosure GdkIOClosure;
typedef struct _GdkEventPrivate GdkEventPrivate;
typedef enum
GDK_EVENT_PENDING = 1 << 0
} GdkEventFlags;
-struct _GdkIOClosure
-{
- GdkInputFunction function;
- GdkInputCondition condition;
- GdkDestroyNotify notify;
- gpointer data;
-};
-
struct _GdkEventPrivate
{
GdkEvent event;
static gboolean ignore_wm_char = FALSE;
static gboolean is_altgr_key = FALSE;
+#ifdef HAVE_DIMM_H
static IActiveIMMApp *active_imm_app = NULL;
static IActiveIMMMessagePumpOwner *active_imm_msgpump_owner = NULL;
+#endif
typedef BOOL (WINAPI *PFN_TrackMouseEvent) (LPTRACKMOUSEEVENT);
static PFN_TrackMouseEvent track_mouse_event = NULL;
return ret_val;
else
{
+#ifndef HAVE_DIMM_H
+ return DefWindowProc (hwnd, message, wparam, lparam);
+#else
if (active_imm_app == NULL
|| (*active_imm_app->lpVtbl->OnDefWindowProc) (active_imm_app, hwnd, message, wparam, lparam, &lres) == S_FALSE)
return DefWindowProc (hwnd, message, wparam, lparam);
else
return lres;
+#endif
}
}
g_source_set_can_recurse (source, TRUE);
g_source_attach (source, NULL);
+#ifdef HAVE_DIMM_H
hres = CoCreateInstance (&CLSID_CActiveIMM,
NULL,
CLSCTX_ALL,
active_imm_msgpump_owner));
(active_imm_msgpump_owner->lpVtbl->Start) (active_imm_msgpump_owner);
}
+#endif
#ifdef USE_TRACKMOUSEEVENT
user32 = GetModuleHandle ("user32.dll");
{
GDK_NOTE (EVENTS, g_print ("PeekMessage: %#lx %s\n",
(gulong) msg.hwnd, gdk_win32_message_name (msg.message)));
-
+#ifndef HAVE_DIMM_H
+ TranslateMessage (&msg);
+#else
if (active_imm_msgpump_owner == NULL
|| (active_imm_msgpump_owner->lpVtbl->OnTranslateMessage) (active_imm_msgpump_owner, &msg) != S_OK)
TranslateMessage (&msg);
+#endif
#if 1 /* It was like this all the time */
DispatchMessage (&msg);
--- /dev/null
+# libie55uuid.la - a libtool library file
+# Generated by hand, compatible with libtool
+# Just a wrapper for libie55uuid.a, which is just a copy of the IE55 toolkit's
+# uuid.lib
+#
+# The name that we can dlopen(3).
+dlname=''
+
+# Names of this library.
+library_names=''
+
+# The name of the static archive.
+old_library='libie55uuid.a'
+
+# Libraries that this one depends upon.
+dependency_libs=''
+
+# Version information
+current=0
+age=0
+revision=0
+
+# Is this an already installed library?
+installed=no
+
+# Files to dlopen/dlpreopen
+dlopen=''
+dlpreopen=''
+
+# Directory that this library needs to be installed in:
+libdir=''
--- /dev/null
+# libwntab32x.la - a libtool library file
+# Generated by hand, compatible with libtool
+# Just a wrapper for libwntab32x.a, which is just a copy of wntab32x.lib
+#
+# The name that we can dlopen(3).
+dlname=''
+
+# Names of this library.
+library_names=''
+
+# The name of the static archive.
+old_library='libwntab32x.a'
+
+# Libraries that this one depends upon.
+dependency_libs=''
+
+# Version information
+current=0
+age=0
+revision=0
+
+# Is this an already installed library?
+installed=no
+
+# Files to dlopen/dlpreopen
+dlopen=''
+dlpreopen=''
+
+# Directory that this library needs to be installed in:
+libdir=''
+++ /dev/null
-#ifndef __SURROGATE_DIMM_H__
-#define __SURROGATE_DIMM_H__
-
-/* The Win32api headers doesn't include <dimm.h>, thus we need
- * this file, which covers just the stuff we need from <dimm.h>.
- */
-
-typedef struct IActiveIMMApp IActiveIMMApp;
-typedef struct IActiveIMMMessagePumpOwner IActiveIMMMessagePumpOwner;
-
-/* Dummy vtable structs that contain real names and arg lists for
- * only those methods we need.
- */
-typedef struct {
- HRESULT (__stdcall *QueryInterface) (IActiveIMMApp *This,
- REFIID riid,
- void *ppvObject);
- /* Dummy method prototypes for those we don't use */
- ULONG (__stdcall *dummy_AddRef)();
- ULONG (__stdcall *dummy_Release)();
- HRESULT (__stdcall *dummy_AssociateContext)();
- HRESULT (__stdcall *dummy_ConfigureIMEA)();
- HRESULT (__stdcall *dummy_ConfigureIMEW)();
- HRESULT (__stdcall *dummy_CreateContext)();
- HRESULT (__stdcall *dummy_DestroyContext)();
- HRESULT (__stdcall *dummy_EnumRegisterWordA)();
- HRESULT (__stdcall *dummy_EnumRegisterWordW)();
- HRESULT (__stdcall *dummy_EscapeA)();
- HRESULT (__stdcall *dummy_EscapeW)();
- HRESULT (__stdcall *dummy_GetCandidateListA)();
- HRESULT (__stdcall *dummy_GetCandidateListW)();
- HRESULT (__stdcall *dummy_GetCandidateListCountA)();
- HRESULT (__stdcall *dummy_GetCandidateListCountW)();
- HRESULT (__stdcall *dummy_GetCandidateWindow)();
- HRESULT (__stdcall *dummy_GetCompositionFontA)();
- HRESULT (__stdcall *dummy_GetCompositionFontW)();
- HRESULT (__stdcall *dummy_GetCompositionStringA)();
- HRESULT (__stdcall *dummy_GetCompositionStringW)();
- HRESULT (__stdcall *dummy_GetCompositionWindow)();
- HRESULT (__stdcall *dummy_GetContext)();
- HRESULT (__stdcall *dummy_GetConversionListA)();
- HRESULT (__stdcall *dummy_GetConversionListW)();
- HRESULT (__stdcall *dummy_GetConversionStatus)();
-
- HRESULT (__stdcall *GetDefaultIMEWnd)(IActiveIMMApp *This,
- HWND hWnd,
- HWND *phDefWnd);
-
- HRESULT (__stdcall *dummy_GetDescriptionA)();
- HRESULT (__stdcall *dummy_GetDescriptionW)();
- HRESULT (__stdcall *dummy_GetGuideLineA)();
- HRESULT (__stdcall *dummy_GetGuideLineW)();
- HRESULT (__stdcall *dummy_GetIMEFileNameA)();
- HRESULT (__stdcall *dummy_GetIMEFileNameW)();
- HRESULT (__stdcall *dummy_GetOpenStatus)();
- HRESULT (__stdcall *dummy_GetProperty)();
- HRESULT (__stdcall *dummy_GetRegisterWordStyleA)();
- HRESULT (__stdcall *dummy_GetRegisterWordStyleW)();
- HRESULT (__stdcall *dummy_GetStatusWindowPos)();
- HRESULT (__stdcall *dummy_GetVirtualKey)();
- HRESULT (__stdcall *dummy_InstallIMEA)();
- HRESULT (__stdcall *dummy_InstallIMEW)();
-
- HRESULT (__stdcall *IsIME)(IActiveIMMApp *This,
- HKL hKL);
- HRESULT (__stdcall *IsUIMessageA )(IActiveIMMApp *This,
- HWND hWndIME,
- UINT msg,
- WPARAM wParam,
- LPARAM lParam);
- HRESULT (__stdcall *dummy_IsUIMessageW)();
- HRESULT (__stdcall *dummy_NotifyIME)();
- HRESULT (__stdcall *dummy_RegisterWordA)();
- HRESULT (__stdcall *dummy_RegisterWordW)();
- HRESULT (__stdcall *dummy_ReleaseContext)();
- HRESULT (__stdcall *dummy_SetCandidateWindow)();
- HRESULT (__stdcall *dummy_SetCompositionFontA)();
- HRESULT (__stdcall *dummy_SetCompositionFontW)();
- HRESULT (__stdcall *dummy_SetCompositionStringA)();
- HRESULT (__stdcall *dummy_SetCompositionStringW)();
- HRESULT (__stdcall *dummy_SetCompositionWindow)();
- HRESULT (__stdcall *dummy_SetConversionStatus)();
- HRESULT (__stdcall *dummy_SetOpenStatus)();
- HRESULT (__stdcall *dummy_SetStatusWindowPos)();
- HRESULT (__stdcall *dummy_SimulateHotKey)();
- HRESULT (__stdcall *dummy_UnregisterWordA)();
- HRESULT (__stdcall *dummy_UnregisterWordW)();
-
- HRESULT (__stdcall *Activate)(IActiveIMMApp *This,
- BOOL restore);
- HRESULT (__stdcall *Deactivate)(IActiveIMMApp *This);
- HRESULT (__stdcall *OnDefWindowProc)(IActiveIMMApp *This,
- HWND hWnd,
- UINT Msg,
- WPARAM wParam,
- LPARAM lParam,
- LRESULT *plResult);
-
- HRESULT (__stdcall *dummy_FilterClientWindows)();
-
- HRESULT (__stdcall *GetCodePageA)(IActiveIMMApp *This,
- HKL hKL,
- UINT *uCodePage);
- HRESULT (__stdcall *GetLangId)(IActiveIMMApp *This,
- HKL hKL,
- LANGID *plid);
-
- HRESULT (__stdcall *dummy_AssociateContextEx)();
- HRESULT (__stdcall *dummy_DisableIME)();
- HRESULT (__stdcall *dummy_GetImeMenuItemsA)();
- HRESULT (__stdcall *dummy_GetImeMenuItemsW)();
- HRESULT (__stdcall *dummy_EnumInputContext)();
-} IActiveIMMAppVtbl;
-
-struct IActiveIMMApp {
- IActiveIMMAppVtbl *lpVtbl;
-};
-
-typedef struct {
- HRESULT (__stdcall *dummy_QueryInterface)();
- ULONG (__stdcall *dummy_AddRef)();
- ULONG (__stdcall *dummy_Release)();
-
- HRESULT (__stdcall *Start)(IActiveIMMMessagePumpOwner *This);
- HRESULT (__stdcall *End)(IActiveIMMMessagePumpOwner *This);
- HRESULT (__stdcall *OnTranslateMessage)(IActiveIMMMessagePumpOwner *This,
- MSG *pMSG);
-
- HRESULT (__stdcall *dummy_Pause)();
- HRESULT (__stdcall *dummy_Resume)();
-} IActiveIMMMessagePumpOwnerVtbl;
-
-struct IActiveIMMMessagePumpOwner {
- IActiveIMMMessagePumpOwnerVtbl *lpVtbl;
-};
-
-static UUID CLSID_CActiveIMM = {
- 0x4955DD33, 0xB159, 0x11d0, { 0x8F,0xCF,0x00,0xAA,0x00,0x6B,0xCC,0x59 } };
-static IID IID_IActiveIMMApp = {
- 0x08C0E040, 0x62D1, 0x11D1, { 0x93,0x26,0x00,0x60,0xB0,0x67,0xB8,0x6E } };
-static IID IID_IActiveIMMMessagePumpOwner = {
- 0xB5CF2CFA, 0x8AEB, 0x11D1, { 0x93,0x64,0x00,0x60,0xB0,0x67,0xB8,0x6E } };
-
-#endif /* __SURROGATE_DIMM_H__ */