From c65508d2723d255a9fcdfa8ac2a5f82b0667a7c6 Mon Sep 17 00:00:00 2001 From: Tor Lillqvist Date: Mon, 15 Mar 1999 00:03:37 +0000 Subject: [PATCH] This might seem like a large patch, but it isn't that bad, and nothing should break on Unix/X11. Win32 merge and general portability stuff: * acconfig.h,configure.in: Check for . * gdk/win32: New directory (actually, been there for a while). * gtk/fnmatch.c: Include for G_DIR_SEPARATOR, WIN32 and NATIVE_WIN32, and use these. Always case fold on Win32. No backslashed escapes on native Win32. * gtk/{gtk.def,makefile.msc}: New files. * gtk/Makefile.am: Add above new files. * gtk/{gtkaccelgroup,gtkbindings}.c: Include instead of . * gtk/{gtkcalendar,gtkitemfactory,gtkpreview,gtkrc}.c: Include config.h. Protect inclusion of , , and appropriately. * gtk/gtkdnd.c: Merge in Win32 version (which doesn't do much). Use ABS() (from ) instead of abs(). * gtk/gtkfilesel.c: Moved Win32-specific includes after inclusion of gtk (and thus glib) headers, so that WIN32 will be defined. With MS C, include for mkdir prototype. * gtk/gtkitemfactory.c (gtk_item_factory_callback_marshal): Add some casts, needed by MS C. * gtk/{gtklayout,gtkplug}.c: Merge in Win32 version (which isn't implemented). * gtk/gtkmain.c: Include gdk/gdkx.h for GDK_WINDOWING. Include only on X11 platform, otherwise . Use G_SEARCHPATH_SEPARATOR_S and g_module_build_path. * gtk/gtkmain.h: Mark variables for export/import on Win32. * gtk/gtkrange.c (gtk_range_motion_notify): Set mods also in case the event is not a hint, or its window is not the slider. Needed on Win32, at least. * gtk/gtkrc.c: Include config.h and gdk/gdkx.h. Use unless on X11. Skip \r chars, too. Use G_DIR_SEPARATOR and G_SEARCHPATH_SEPARATOR(_S). Use g_path_is_absolute. On Win32, use a subdirectory of the Windows directory as gtk system configuration directory. * gtk/gtkselection.c: No chunks on Win32. * gtk/gtksocket.c: Not implemented on Win32. * gtk/gtkthemes.c (gtk_theme_engine_get): Use g_module_build_path. * gtk/makeenums.h: Include gdkprivate.h after gdk.h. * gtk/testrgb.c: Use dynamically allocated buffer. Use GTimers. --- ChangeLog | 62 ++ ChangeLog.pre-2-0 | 62 ++ ChangeLog.pre-2-10 | 62 ++ ChangeLog.pre-2-2 | 62 ++ ChangeLog.pre-2-4 | 62 ++ ChangeLog.pre-2-6 | 62 ++ ChangeLog.pre-2-8 | 62 ++ acconfig.h | 1 + config.h.win32 | 175 +++++ configure.in | 1 + gdk/win32/gdkglobals-win32.c | 31 - gdk/win32/gdkglobals.c | 31 - gdk/win32/gdkrgb.c | 4 +- gdk/win32/gdktypes.h | 24 +- gdk/win32/makefile.msc | 97 +++ gtk/Makefile.am | 4 +- gtk/fnmatch.c | 37 +- gtk/gtk.def | 1293 ++++++++++++++++++++++++++++++++++ gtk/gtkcalendar.c | 4 + gtk/gtkdnd.c | 13 +- gtk/gtkfilesel.c | 25 +- gtk/gtkitemfactory.c | 15 +- gtk/gtklayout.c | 25 +- gtk/gtkmain.c | 15 +- gtk/gtkmain.h | 20 +- gtk/gtkplug.c | 150 ++++ gtk/gtkpreview.c | 3 + gtk/gtkrange.c | 2 + gtk/gtkrc.c | 123 +++- gtk/gtkselection.c | 6 +- gtk/gtksocket.c | 19 + gtk/gtkthemes.c | 7 +- gtk/makeenums.h | 2 +- gtk/makefile.msc | 398 +++++++++++ gtk/maketypes.awk | 17 +- gtk/testrgb.c | 34 +- tests/testrgb.c | 34 +- 37 files changed, 2869 insertions(+), 175 deletions(-) create mode 100755 config.h.win32 create mode 100644 gdk/win32/makefile.msc create mode 100755 gtk/gtk.def create mode 100755 gtk/makefile.msc diff --git a/ChangeLog b/ChangeLog index dcb71f7220..36d55c5218 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,65 @@ +1999-03-15 Tor Lillqvist + + Win32 merge and general portability stuff: + + * acconfig.h,configure.in: Check for . + + * gdk/win32: New directory (actually, been there for a while). + + * gtk/fnmatch.c: Include for G_DIR_SEPARATOR, WIN32 and + NATIVE_WIN32, and use these. Always case fold on Win32. No + backslashed escapes on native Win32. + + * gtk/{gtk.def,makefile.msc}: New files. + + * gtk/Makefile.am: Add above new files. + + * gtk/{gtkaccelgroup,gtkbindings}.c: Include + instead of . + + * gtk/{gtkcalendar,gtkitemfactory,gtkpreview,gtkrc}.c: Include + config.h. Protect inclusion of , , and + appropriately. + + * gtk/gtkdnd.c: Merge in Win32 version (which doesn't do much). + Use ABS() (from ) instead of abs(). + + * gtk/gtkfilesel.c: Moved Win32-specific includes after inclusion + of gtk (and thus glib) headers, so that WIN32 will be + defined. With MS C, include for mkdir prototype. + + * gtk/gtkitemfactory.c (gtk_item_factory_callback_marshal): Add + some casts, needed by MS C. + + * gtk/{gtklayout,gtkplug}.c: Merge in Win32 version (which isn't + implemented). + + * gtk/gtkmain.c: Include gdk/gdkx.h for GDK_WINDOWING. Include + only on X11 platform, otherwise . Use + G_SEARCHPATH_SEPARATOR_S and g_module_build_path. + + * gtk/gtkmain.h: Mark variables for export/import on Win32. + + * gtk/gtkrange.c (gtk_range_motion_notify): Set mods also in case + the event is not a hint, or its window is not the slider. Needed + on Win32, at least. + + * gtk/gtkrc.c: Include config.h and gdk/gdkx.h. Use + unless on X11. Skip \r chars, too. Use G_DIR_SEPARATOR and + G_SEARCHPATH_SEPARATOR(_S). Use g_path_is_absolute. On Win32, use + a subdirectory of the Windows directory as gtk system + configuration directory. + + * gtk/gtkselection.c: No chunks on Win32. + + * gtk/gtksocket.c: Not implemented on Win32. + + * gtk/gtkthemes.c (gtk_theme_engine_get): Use g_module_build_path. + + * gtk/makeenums.h: Include gdkprivate.h after gdk.h. + + * gtk/testrgb.c: Use dynamically allocated buffer. Use GTimers. + 1999-03-13 Raja R Harinath * configure.in (gdk_wc): Move widechar tests from `glib' to here, diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0 index dcb71f7220..36d55c5218 100644 --- a/ChangeLog.pre-2-0 +++ b/ChangeLog.pre-2-0 @@ -1,3 +1,65 @@ +1999-03-15 Tor Lillqvist + + Win32 merge and general portability stuff: + + * acconfig.h,configure.in: Check for . + + * gdk/win32: New directory (actually, been there for a while). + + * gtk/fnmatch.c: Include for G_DIR_SEPARATOR, WIN32 and + NATIVE_WIN32, and use these. Always case fold on Win32. No + backslashed escapes on native Win32. + + * gtk/{gtk.def,makefile.msc}: New files. + + * gtk/Makefile.am: Add above new files. + + * gtk/{gtkaccelgroup,gtkbindings}.c: Include + instead of . + + * gtk/{gtkcalendar,gtkitemfactory,gtkpreview,gtkrc}.c: Include + config.h. Protect inclusion of , , and + appropriately. + + * gtk/gtkdnd.c: Merge in Win32 version (which doesn't do much). + Use ABS() (from ) instead of abs(). + + * gtk/gtkfilesel.c: Moved Win32-specific includes after inclusion + of gtk (and thus glib) headers, so that WIN32 will be + defined. With MS C, include for mkdir prototype. + + * gtk/gtkitemfactory.c (gtk_item_factory_callback_marshal): Add + some casts, needed by MS C. + + * gtk/{gtklayout,gtkplug}.c: Merge in Win32 version (which isn't + implemented). + + * gtk/gtkmain.c: Include gdk/gdkx.h for GDK_WINDOWING. Include + only on X11 platform, otherwise . Use + G_SEARCHPATH_SEPARATOR_S and g_module_build_path. + + * gtk/gtkmain.h: Mark variables for export/import on Win32. + + * gtk/gtkrange.c (gtk_range_motion_notify): Set mods also in case + the event is not a hint, or its window is not the slider. Needed + on Win32, at least. + + * gtk/gtkrc.c: Include config.h and gdk/gdkx.h. Use + unless on X11. Skip \r chars, too. Use G_DIR_SEPARATOR and + G_SEARCHPATH_SEPARATOR(_S). Use g_path_is_absolute. On Win32, use + a subdirectory of the Windows directory as gtk system + configuration directory. + + * gtk/gtkselection.c: No chunks on Win32. + + * gtk/gtksocket.c: Not implemented on Win32. + + * gtk/gtkthemes.c (gtk_theme_engine_get): Use g_module_build_path. + + * gtk/makeenums.h: Include gdkprivate.h after gdk.h. + + * gtk/testrgb.c: Use dynamically allocated buffer. Use GTimers. + 1999-03-13 Raja R Harinath * configure.in (gdk_wc): Move widechar tests from `glib' to here, diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index dcb71f7220..36d55c5218 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,65 @@ +1999-03-15 Tor Lillqvist + + Win32 merge and general portability stuff: + + * acconfig.h,configure.in: Check for . + + * gdk/win32: New directory (actually, been there for a while). + + * gtk/fnmatch.c: Include for G_DIR_SEPARATOR, WIN32 and + NATIVE_WIN32, and use these. Always case fold on Win32. No + backslashed escapes on native Win32. + + * gtk/{gtk.def,makefile.msc}: New files. + + * gtk/Makefile.am: Add above new files. + + * gtk/{gtkaccelgroup,gtkbindings}.c: Include + instead of . + + * gtk/{gtkcalendar,gtkitemfactory,gtkpreview,gtkrc}.c: Include + config.h. Protect inclusion of , , and + appropriately. + + * gtk/gtkdnd.c: Merge in Win32 version (which doesn't do much). + Use ABS() (from ) instead of abs(). + + * gtk/gtkfilesel.c: Moved Win32-specific includes after inclusion + of gtk (and thus glib) headers, so that WIN32 will be + defined. With MS C, include for mkdir prototype. + + * gtk/gtkitemfactory.c (gtk_item_factory_callback_marshal): Add + some casts, needed by MS C. + + * gtk/{gtklayout,gtkplug}.c: Merge in Win32 version (which isn't + implemented). + + * gtk/gtkmain.c: Include gdk/gdkx.h for GDK_WINDOWING. Include + only on X11 platform, otherwise . Use + G_SEARCHPATH_SEPARATOR_S and g_module_build_path. + + * gtk/gtkmain.h: Mark variables for export/import on Win32. + + * gtk/gtkrange.c (gtk_range_motion_notify): Set mods also in case + the event is not a hint, or its window is not the slider. Needed + on Win32, at least. + + * gtk/gtkrc.c: Include config.h and gdk/gdkx.h. Use + unless on X11. Skip \r chars, too. Use G_DIR_SEPARATOR and + G_SEARCHPATH_SEPARATOR(_S). Use g_path_is_absolute. On Win32, use + a subdirectory of the Windows directory as gtk system + configuration directory. + + * gtk/gtkselection.c: No chunks on Win32. + + * gtk/gtksocket.c: Not implemented on Win32. + + * gtk/gtkthemes.c (gtk_theme_engine_get): Use g_module_build_path. + + * gtk/makeenums.h: Include gdkprivate.h after gdk.h. + + * gtk/testrgb.c: Use dynamically allocated buffer. Use GTimers. + 1999-03-13 Raja R Harinath * configure.in (gdk_wc): Move widechar tests from `glib' to here, diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index dcb71f7220..36d55c5218 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,65 @@ +1999-03-15 Tor Lillqvist + + Win32 merge and general portability stuff: + + * acconfig.h,configure.in: Check for . + + * gdk/win32: New directory (actually, been there for a while). + + * gtk/fnmatch.c: Include for G_DIR_SEPARATOR, WIN32 and + NATIVE_WIN32, and use these. Always case fold on Win32. No + backslashed escapes on native Win32. + + * gtk/{gtk.def,makefile.msc}: New files. + + * gtk/Makefile.am: Add above new files. + + * gtk/{gtkaccelgroup,gtkbindings}.c: Include + instead of . + + * gtk/{gtkcalendar,gtkitemfactory,gtkpreview,gtkrc}.c: Include + config.h. Protect inclusion of , , and + appropriately. + + * gtk/gtkdnd.c: Merge in Win32 version (which doesn't do much). + Use ABS() (from ) instead of abs(). + + * gtk/gtkfilesel.c: Moved Win32-specific includes after inclusion + of gtk (and thus glib) headers, so that WIN32 will be + defined. With MS C, include for mkdir prototype. + + * gtk/gtkitemfactory.c (gtk_item_factory_callback_marshal): Add + some casts, needed by MS C. + + * gtk/{gtklayout,gtkplug}.c: Merge in Win32 version (which isn't + implemented). + + * gtk/gtkmain.c: Include gdk/gdkx.h for GDK_WINDOWING. Include + only on X11 platform, otherwise . Use + G_SEARCHPATH_SEPARATOR_S and g_module_build_path. + + * gtk/gtkmain.h: Mark variables for export/import on Win32. + + * gtk/gtkrange.c (gtk_range_motion_notify): Set mods also in case + the event is not a hint, or its window is not the slider. Needed + on Win32, at least. + + * gtk/gtkrc.c: Include config.h and gdk/gdkx.h. Use + unless on X11. Skip \r chars, too. Use G_DIR_SEPARATOR and + G_SEARCHPATH_SEPARATOR(_S). Use g_path_is_absolute. On Win32, use + a subdirectory of the Windows directory as gtk system + configuration directory. + + * gtk/gtkselection.c: No chunks on Win32. + + * gtk/gtksocket.c: Not implemented on Win32. + + * gtk/gtkthemes.c (gtk_theme_engine_get): Use g_module_build_path. + + * gtk/makeenums.h: Include gdkprivate.h after gdk.h. + + * gtk/testrgb.c: Use dynamically allocated buffer. Use GTimers. + 1999-03-13 Raja R Harinath * configure.in (gdk_wc): Move widechar tests from `glib' to here, diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index dcb71f7220..36d55c5218 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,65 @@ +1999-03-15 Tor Lillqvist + + Win32 merge and general portability stuff: + + * acconfig.h,configure.in: Check for . + + * gdk/win32: New directory (actually, been there for a while). + + * gtk/fnmatch.c: Include for G_DIR_SEPARATOR, WIN32 and + NATIVE_WIN32, and use these. Always case fold on Win32. No + backslashed escapes on native Win32. + + * gtk/{gtk.def,makefile.msc}: New files. + + * gtk/Makefile.am: Add above new files. + + * gtk/{gtkaccelgroup,gtkbindings}.c: Include + instead of . + + * gtk/{gtkcalendar,gtkitemfactory,gtkpreview,gtkrc}.c: Include + config.h. Protect inclusion of , , and + appropriately. + + * gtk/gtkdnd.c: Merge in Win32 version (which doesn't do much). + Use ABS() (from ) instead of abs(). + + * gtk/gtkfilesel.c: Moved Win32-specific includes after inclusion + of gtk (and thus glib) headers, so that WIN32 will be + defined. With MS C, include for mkdir prototype. + + * gtk/gtkitemfactory.c (gtk_item_factory_callback_marshal): Add + some casts, needed by MS C. + + * gtk/{gtklayout,gtkplug}.c: Merge in Win32 version (which isn't + implemented). + + * gtk/gtkmain.c: Include gdk/gdkx.h for GDK_WINDOWING. Include + only on X11 platform, otherwise . Use + G_SEARCHPATH_SEPARATOR_S and g_module_build_path. + + * gtk/gtkmain.h: Mark variables for export/import on Win32. + + * gtk/gtkrange.c (gtk_range_motion_notify): Set mods also in case + the event is not a hint, or its window is not the slider. Needed + on Win32, at least. + + * gtk/gtkrc.c: Include config.h and gdk/gdkx.h. Use + unless on X11. Skip \r chars, too. Use G_DIR_SEPARATOR and + G_SEARCHPATH_SEPARATOR(_S). Use g_path_is_absolute. On Win32, use + a subdirectory of the Windows directory as gtk system + configuration directory. + + * gtk/gtkselection.c: No chunks on Win32. + + * gtk/gtksocket.c: Not implemented on Win32. + + * gtk/gtkthemes.c (gtk_theme_engine_get): Use g_module_build_path. + + * gtk/makeenums.h: Include gdkprivate.h after gdk.h. + + * gtk/testrgb.c: Use dynamically allocated buffer. Use GTimers. + 1999-03-13 Raja R Harinath * configure.in (gdk_wc): Move widechar tests from `glib' to here, diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index dcb71f7220..36d55c5218 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,65 @@ +1999-03-15 Tor Lillqvist + + Win32 merge and general portability stuff: + + * acconfig.h,configure.in: Check for . + + * gdk/win32: New directory (actually, been there for a while). + + * gtk/fnmatch.c: Include for G_DIR_SEPARATOR, WIN32 and + NATIVE_WIN32, and use these. Always case fold on Win32. No + backslashed escapes on native Win32. + + * gtk/{gtk.def,makefile.msc}: New files. + + * gtk/Makefile.am: Add above new files. + + * gtk/{gtkaccelgroup,gtkbindings}.c: Include + instead of . + + * gtk/{gtkcalendar,gtkitemfactory,gtkpreview,gtkrc}.c: Include + config.h. Protect inclusion of , , and + appropriately. + + * gtk/gtkdnd.c: Merge in Win32 version (which doesn't do much). + Use ABS() (from ) instead of abs(). + + * gtk/gtkfilesel.c: Moved Win32-specific includes after inclusion + of gtk (and thus glib) headers, so that WIN32 will be + defined. With MS C, include for mkdir prototype. + + * gtk/gtkitemfactory.c (gtk_item_factory_callback_marshal): Add + some casts, needed by MS C. + + * gtk/{gtklayout,gtkplug}.c: Merge in Win32 version (which isn't + implemented). + + * gtk/gtkmain.c: Include gdk/gdkx.h for GDK_WINDOWING. Include + only on X11 platform, otherwise . Use + G_SEARCHPATH_SEPARATOR_S and g_module_build_path. + + * gtk/gtkmain.h: Mark variables for export/import on Win32. + + * gtk/gtkrange.c (gtk_range_motion_notify): Set mods also in case + the event is not a hint, or its window is not the slider. Needed + on Win32, at least. + + * gtk/gtkrc.c: Include config.h and gdk/gdkx.h. Use + unless on X11. Skip \r chars, too. Use G_DIR_SEPARATOR and + G_SEARCHPATH_SEPARATOR(_S). Use g_path_is_absolute. On Win32, use + a subdirectory of the Windows directory as gtk system + configuration directory. + + * gtk/gtkselection.c: No chunks on Win32. + + * gtk/gtksocket.c: Not implemented on Win32. + + * gtk/gtkthemes.c (gtk_theme_engine_get): Use g_module_build_path. + + * gtk/makeenums.h: Include gdkprivate.h after gdk.h. + + * gtk/testrgb.c: Use dynamically allocated buffer. Use GTimers. + 1999-03-13 Raja R Harinath * configure.in (gdk_wc): Move widechar tests from `glib' to here, diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index dcb71f7220..36d55c5218 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,65 @@ +1999-03-15 Tor Lillqvist + + Win32 merge and general portability stuff: + + * acconfig.h,configure.in: Check for . + + * gdk/win32: New directory (actually, been there for a while). + + * gtk/fnmatch.c: Include for G_DIR_SEPARATOR, WIN32 and + NATIVE_WIN32, and use these. Always case fold on Win32. No + backslashed escapes on native Win32. + + * gtk/{gtk.def,makefile.msc}: New files. + + * gtk/Makefile.am: Add above new files. + + * gtk/{gtkaccelgroup,gtkbindings}.c: Include + instead of . + + * gtk/{gtkcalendar,gtkitemfactory,gtkpreview,gtkrc}.c: Include + config.h. Protect inclusion of , , and + appropriately. + + * gtk/gtkdnd.c: Merge in Win32 version (which doesn't do much). + Use ABS() (from ) instead of abs(). + + * gtk/gtkfilesel.c: Moved Win32-specific includes after inclusion + of gtk (and thus glib) headers, so that WIN32 will be + defined. With MS C, include for mkdir prototype. + + * gtk/gtkitemfactory.c (gtk_item_factory_callback_marshal): Add + some casts, needed by MS C. + + * gtk/{gtklayout,gtkplug}.c: Merge in Win32 version (which isn't + implemented). + + * gtk/gtkmain.c: Include gdk/gdkx.h for GDK_WINDOWING. Include + only on X11 platform, otherwise . Use + G_SEARCHPATH_SEPARATOR_S and g_module_build_path. + + * gtk/gtkmain.h: Mark variables for export/import on Win32. + + * gtk/gtkrange.c (gtk_range_motion_notify): Set mods also in case + the event is not a hint, or its window is not the slider. Needed + on Win32, at least. + + * gtk/gtkrc.c: Include config.h and gdk/gdkx.h. Use + unless on X11. Skip \r chars, too. Use G_DIR_SEPARATOR and + G_SEARCHPATH_SEPARATOR(_S). Use g_path_is_absolute. On Win32, use + a subdirectory of the Windows directory as gtk system + configuration directory. + + * gtk/gtkselection.c: No chunks on Win32. + + * gtk/gtksocket.c: Not implemented on Win32. + + * gtk/gtkthemes.c (gtk_theme_engine_get): Use g_module_build_path. + + * gtk/makeenums.h: Include gdkprivate.h after gdk.h. + + * gtk/testrgb.c: Use dynamically allocated buffer. Use GTimers. + 1999-03-13 Raja R Harinath * configure.in (gdk_wc): Move widechar tests from `glib' to here, diff --git a/acconfig.h b/acconfig.h index bf75c4bf19..7b8c41f6b5 100644 --- a/acconfig.h +++ b/acconfig.h @@ -29,6 +29,7 @@ #undef HAVE_XSHM_H #undef HAVE_SHAPE_EXT #undef HAVE_SYS_SELECT_H +#undef HAVE_SYS_TIME_H #undef HAVE_XCONVERTCASE #undef WITH_SYMBOL_UNDERSCORE diff --git a/config.h.win32 b/config.h.win32 new file mode 100755 index 0000000000..47152927df --- /dev/null +++ b/config.h.win32 @@ -0,0 +1,175 @@ +/* config.h.win32. Handcrafted for Microsoft C */ + +#ifndef _MSC_VER +#error Unrecognized Win32 compiler, edit config.h.win32 by hand +#endif + +/* Define if using alloca.c. */ +/* #undef C_ALLOCA */ + +/* 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 +#define alloca _alloca + +/* Define if you have 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 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 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 + +/* Other stuff */ +/* #undef ENABLE_NLS */ +#define GTK_COMPILED_WITH_DEBUGGING "minimum" + +/* #undef HAVE_CATGETS */ +/* #undef HAVE_DIRENT_H */ +/* #undef HAVE_GETTEXT */ +/* #undef HAVE_IPC_H */ +/* #undef HAVE_LC_MESSAGES */ +/* #undef HAVE_PWD_H */ +/* #undef HAVE_SHM_H */ +/* #undef HAVE_STPCPY */ +/* #undef HAVE_XSHM_H */ +#define HAVE_SHAPE_EXT 1 +/* #undef HAVE_SYS_SELECT_H */ +/* #undef HAVE_SYS_TIME_H */ +/* #undef HAVE_XCONVERTCASE */ + +/* #undef NO_FD_SET */ + +/* #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 */ + +/* Define if you have the __argz_next function. */ +/* #undef HAVE___ARGZ_NEXT */ + +/* Define if you have the __argz_stringify function. */ +/* #undef HAVE___ARGZ_STRINGIFY */ + +/* Define if you have the broken_wctype function. */ +/* #undef HAVE_BROKEN_WCTYPE */ + +/* Define if you have the dcgettext function. */ +/* #undef HAVE_DCGETTEXT */ + +/* Define if you have the getcwd function. */ +#define HAVE_GETCWD 1 + +/* Define if you have the getpagesize function. */ +#define HAVE_GETPAGESIZE 1 + +/* Define if you have the munmap function. */ +/* #undef HAVE_MUNMAP */ + +/* Define if you have the putenv function. */ +#define HAVE_PUTENV 1 +#define putenv _putenv + +/* Define if you have the setenv function. */ +/* #undef HAVE_SETENV */ + +/* 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 strcasecmp function. */ +#define HAVE_STRCASECMP 1 +#define strcasecmp stricmp + +/* Define if you have the strchr function. */ +#define HAVE_STRCHR 1 + +/* Define if you have the strdup function. */ +#define HAVE_STRDUP 1 + +/* Define if you have the header file. */ +/* #undef HAVE_ARGZ_H */ + +/* Define if you have the header file. */ +/* #undef HAVE_DIRENT_H */ + +/* Define if you have the header file. */ +#define HAVE_LIMITS_H 1 + +/* Define if you have the header file. */ +#define HAVE_LOCALE_H 1 + +/* Define if you have the header file. */ +#define HAVE_MALLOC_H 1 + +/* Define if you have the header file. */ +/* #undef HAVE_NL_TYPES_H */ + +/* Define if you have the header file. */ +/* #undef HAVE_PWD_H */ + +/* Define if you have the header file. */ +#define HAVE_STRING_H 1 + +/* Define if you have the header file. */ +/* #undef HAVE_SYS_PARAM_H */ + +/* Define if you have the header file. */ +/* #undef HAVE_SYS_TIME_H */ + +/* Define if you have the header file. */ +/* #undef HAVE_UNISTD_H */ + +/* Define if you have the header file. */ +#define HAVE_WCHAR_H 1 + +/* Define if you have the header file. */ +#define HAVE_WCTYPE_H 1 + +/* Define if you have the i library (-li). */ +/* #undef HAVE_LIBI */ + +/* Define if you have the intl library (-lintl). */ +/* #undef HAVE_LIBINTL */ + +/* define if compiled symbols have a leading underscore */ +/* #undef WITH_SYMBOL_UNDERSCORE */ diff --git a/configure.in b/configure.in index e59e19e7bc..d35df400bf 100644 --- a/configure.in +++ b/configure.in @@ -271,6 +271,7 @@ AC_SUBST(GLIB_DEPLIBS) AC_CHECK_HEADERS(dirent.h, AC_DEFINE(HAVE_DIRENT_H)) AC_CHECK_HEADERS(pwd.h, AC_DEFINE(HAVE_PWD_H)) +AC_CHECK_HEADERS(sys/time.h, AC_DEFINE(HAVE_SYS_TIME_H)) # Find the X11 include and library directories AC_PATH_X diff --git a/gdk/win32/gdkglobals-win32.c b/gdk/win32/gdkglobals-win32.c index d89aa0ba71..aef86d96aa 100644 --- a/gdk/win32/gdkglobals-win32.c +++ b/gdk/win32/gdkglobals-win32.c @@ -24,12 +24,7 @@ * GTK+ at ftp://ftp.gtk.org/pub/gtk/. */ -#include "config.h" - #include -#if !defined (X_DISPLAY_MISSING) -#include -#endif #include "gdk.h" #include "gdkprivate.h" @@ -37,41 +32,15 @@ guint gdk_debug_flags = 0; HWND gdk_root_window; HWND gdk_leader_window; GdkWindowPrivate gdk_root_parent = { { NULL, }, NULL, }; -#if !defined(X_DISPLAY_MISSING) -gchar *gdk_display_name = NULL; -gint gdk_use_xshm = TRUE; -Atom gdk_wm_delete_window; -Atom gdk_wm_take_focus; -Atom gdk_wm_protocols; -Atom gdk_wm_window_protocols[2]; -GdkDndCursorInfo gdk_dnd_cursorinfo = {None, None, NULL, NULL, - {0,0}, {0,0}, NULL}; -GdkDndGlobals gdk_dnd = {None,None,None, - None,None,None, - None, - &gdk_dnd_cursorinfo, - NULL, - 0, - FALSE, FALSE, FALSE, - None, - {0,0}, - {0,0}, {0,0}, - {0,0,0,0}, NULL, None, 0}; -#elif defined (WINDOWS_DISPLAY) - HDC gdk_DC; HINSTANCE gdk_DLLInstance; HINSTANCE gdk_ProgInstance; - UINT gdk_selection_notify_msg; UINT gdk_selection_request_msg; UINT gdk_selection_clear_msg; GdkAtom gdk_clipboard_atom; GdkAtom gdk_win32_dropfiles_atom; GdkAtom gdk_ole2_dnd_atom; - -#endif /* WINDOWS_DISPLAY */ - Atom gdk_selection_property; gchar *gdk_progclass = NULL; gint gdk_error_code; diff --git a/gdk/win32/gdkglobals.c b/gdk/win32/gdkglobals.c index d89aa0ba71..aef86d96aa 100644 --- a/gdk/win32/gdkglobals.c +++ b/gdk/win32/gdkglobals.c @@ -24,12 +24,7 @@ * GTK+ at ftp://ftp.gtk.org/pub/gtk/. */ -#include "config.h" - #include -#if !defined (X_DISPLAY_MISSING) -#include -#endif #include "gdk.h" #include "gdkprivate.h" @@ -37,41 +32,15 @@ guint gdk_debug_flags = 0; HWND gdk_root_window; HWND gdk_leader_window; GdkWindowPrivate gdk_root_parent = { { NULL, }, NULL, }; -#if !defined(X_DISPLAY_MISSING) -gchar *gdk_display_name = NULL; -gint gdk_use_xshm = TRUE; -Atom gdk_wm_delete_window; -Atom gdk_wm_take_focus; -Atom gdk_wm_protocols; -Atom gdk_wm_window_protocols[2]; -GdkDndCursorInfo gdk_dnd_cursorinfo = {None, None, NULL, NULL, - {0,0}, {0,0}, NULL}; -GdkDndGlobals gdk_dnd = {None,None,None, - None,None,None, - None, - &gdk_dnd_cursorinfo, - NULL, - 0, - FALSE, FALSE, FALSE, - None, - {0,0}, - {0,0}, {0,0}, - {0,0,0,0}, NULL, None, 0}; -#elif defined (WINDOWS_DISPLAY) - HDC gdk_DC; HINSTANCE gdk_DLLInstance; HINSTANCE gdk_ProgInstance; - UINT gdk_selection_notify_msg; UINT gdk_selection_request_msg; UINT gdk_selection_clear_msg; GdkAtom gdk_clipboard_atom; GdkAtom gdk_win32_dropfiles_atom; GdkAtom gdk_ole2_dnd_atom; - -#endif /* WINDOWS_DISPLAY */ - Atom gdk_selection_property; gchar *gdk_progclass = NULL; gint gdk_error_code; diff --git a/gdk/win32/gdkrgb.c b/gdk/win32/gdkrgb.c index feb5ce5ce8..4364fc711f 100644 --- a/gdk/win32/gdkrgb.c +++ b/gdk/win32/gdkrgb.c @@ -2679,9 +2679,9 @@ gdk_rgb_select_conv (GdkImage *image) gboolean mask_rgb, mask_bgr; depth = image_info->visual->depth; -#if !defined (X_DISPLAY_MISSING) +#if GDK_WINDOWING == GDK_WINDOWING_X11 bpp = ((GdkImagePrivate *)image)->ximage->bits_per_pixel; -#elif defined (WINDOWS_DISPLAY) +#elif GDK_WINDOWING == GDK_WINDOWING_WIN32 bpp = ((GdkVisualPrivate *) gdk_visual_get_system())->xvisual->bitspixel; #endif byte_order = image->byte_order; diff --git a/gdk/win32/gdktypes.h b/gdk/win32/gdktypes.h index 4eeb65c639..21957eecf2 100644 --- a/gdk/win32/gdktypes.h +++ b/gdk/win32/gdktypes.h @@ -33,7 +33,7 @@ #include #ifdef NATIVE_WIN32 -#ifdef COMPILING_GDK +#ifdef GDK_COMPILATION #define GDKVAR __declspec(dllexport) #else #define GDKVAR extern __declspec(dllimport) @@ -42,6 +42,28 @@ #define GDKVAR extern #endif +/* The system specific file gdkconfig.h contains such configuration + * settings that are needed not only when compiling GDK (or GTK) + * itself, but also occasionally when compiling programs that use GDK + * (or GTK). One such setting is what windowing API backend is in use. + */ +#include + +/* Windowing API alternatives. Note that these macros indicate just + * what windowing system is in use, not what operating system. It is + * possible to built GDK for X11 in a Win32 environment, for instance. + * + * gdkconfig.h defines GDK_WINDOWING as one of the following. In + * addition to the original X11 only the Win32 implementation exists + * yet. + */ +#define GDK_WINDOWING_X11 1 /* X11 */ +#define GDK_WINDOWING_WIN32 2 /* Win32 GDI */ +#define GDK_WINDOWING_BEOS 3 /* BeOS */ +#define GDK_WINDOWING_MACOS 4 /* MacOS */ +#define GDK_WINDOWING_GGI 5 /* Linux GGI */ + +/* some common magic values */ #define GDK_NONE 0L #define GDK_CURRENT_TIME 0L #define GDK_PARENT_RELATIVE 1L diff --git a/gdk/win32/makefile.msc b/gdk/win32/makefile.msc new file mode 100644 index 0000000000..593d887238 --- /dev/null +++ b/gdk/win32/makefile.msc @@ -0,0 +1,97 @@ +## Makefile for building the GDK DLL with Microsoft C +## Use: nmake -f makefile.msc + +# Change this to wherever you want to install the DLLs. This directory +# should be in your PATH. +BIN = C:\bin + +# Location of the Wintab toolkit. Downloadable from http://www.pointing.com. +WTKIT = ..\..\wtkit125 + +# Full optimization: +OPTIMIZE = -Ox +# Debugging: +#OPTIMIZE = -Zi + +################################################################ + +# Nothing much configurable below + +# cl -? described the options +CC = cl -G5 -GF $(OPTIMIZE) -W3 -MD -nologo + +LDFLAGS = /link /machine:ix86 # /debug /debugtype:cv +INSTALL = copy +TOUCH = copy makefile.msc+nul + +GLIB_VER=1.2 +GTK_VER=1.3 + +GLIB = ..\..\glib-$(GLIB_VER) +CFLAGS = -I. -I.. -I$(WTKIT)\include -I$(GLIB) -DG_ENABLE_DEBUG -DHAVE_CONFIG_H -DGDK_VERSION=\"$(GTK_VER)\" # -DMULTIPLE_WINDOW_CLASSES + +all: \ + ..\config.h \ + gdk-$(GTK_VER).dll + $(TOUCH) all + +install : all + $(INSTALL) gdk-$(GTK_VER).dll $(BIN) + $(TOUCH) install + +gdk_OBJECTS = \ + gdk.obj \ + gdkcc.obj \ + gdkcolor.obj \ + gdkcursor.obj \ + gdkdnd.obj \ + gdkdraw.obj \ + gdkevents.obj \ + gdkfont.obj \ + gdkgc.obj \ + gdkglobals.obj \ + gdkim.obj \ + gdkimage.obj \ + gdkinput.obj \ + gdkpixmap.obj \ + gdkproperty.obj \ + gdkrgb.obj \ + gdkrectangle.obj\ + gdkregion.obj \ + gdkselection.obj\ + gdkvisual.obj \ + gdkwindow.obj \ + gdkxid.obj + +..\config.h : ..\config.h.win32 + copy ..\config.h.win32 ..\config.h + +gdk.res : rc\gdk.rc + rc -r -fo gdk.res rc\gdk.rc + +gdk-$(GTK_VER).dll : $(gdk_OBJECTS) gdk.def gdk.res + $(CC) $(CFLAGS) -LD -Fegdk-$(GTK_VER).dll $(gdk_OBJECTS) $(GLIB)\glib-$(GLIB_VER).lib gdi32.lib user32.lib shell32.lib ole32.lib uuid.lib $(WTKIT)\lib\i386\wntab32x.lib $(LDFLAGS) gdk.res /def:gdk.def + +.c.obj : + $(CC) $(CFLAGS) -GD -c -DGDK_COMPILATION -DG_LOG_DOMAIN=\"Gdk\" $< + +testgdk.exe : testgdk.obj gdk-$(GTK_VER).dll + $(CC) $(CFLAGS) testgdk.obj gdk-$(GTK_VER).lib $(GLIB)\glib-$(GLIB_VER).lib $(LDFLAGS) + +testgdk.obj : testgdk.c + $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"testgdk\" testgdk.c + +clean: + del *.exe + del *.obj + del *.dll + del *.lib + del *.exp + del *.err + del *.map + del *.sym + del *.lk1 + del *.mk1 + del *.res + del *.pdb + del *.ilk diff --git a/gtk/Makefile.am b/gtk/Makefile.am index 692ab2fbbf..c4b61a9f46 100644 --- a/gtk/Makefile.am +++ b/gtk/Makefile.am @@ -360,7 +360,9 @@ EXTRA_DIST = \ circles.xbm \ gtkrc.ja \ gtkrc.ko \ - gtkrc.ru + gtkrc.ru \ + gtk.def \ + makefile.msc INCLUDES = \ -DGTK_DISABLE_COMPAT_H \ diff --git a/gtk/fnmatch.c b/gtk/fnmatch.c index 4aecb7f3d6..757cddb36e 100644 --- a/gtk/fnmatch.c +++ b/gtk/fnmatch.c @@ -36,6 +36,8 @@ #endif #include "fnmatch.h" +/* We need glib.h for G_DIR_SEPARATOR, WIN32 and NATIVE_WIN32 */ +#include #include @@ -49,7 +51,6 @@ #if defined (_LIBC) || !defined (__GNU_LIBRARY__) - #if !defined(__GNU_LIBRARY__) && !defined(STDC_HEADERS) extern int errno; #endif @@ -66,7 +67,11 @@ fnmatch (pattern, string, flags) register char c; /* Note that this evalutes C many times. */ +#ifndef WIN32 #define FOLD(c) ((flags & FNM_CASEFOLD) && isupper (c) ? tolower (c) : (c)) +#else +#define FOLD(c) (tolower (c)) +#endif while ((c = *p++) != '\0') { @@ -77,13 +82,13 @@ fnmatch (pattern, string, flags) case '?': if (*n == '\0') return FNM_NOMATCH; - else if ((flags & FNM_FILE_NAME) && *n == '/') + else if ((flags & FNM_FILE_NAME) && *n == G_DIR_SEPARATOR) return FNM_NOMATCH; else if ((flags & FNM_PERIOD) && *n == '.' && - (n == string || ((flags & FNM_FILE_NAME) && n[-1] == '/'))) + (n == string || ((flags & FNM_FILE_NAME) && n[-1] == G_DIR_SEPARATOR))) return FNM_NOMATCH; break; - +#ifndef NATIVE_WIN32 case '\\': if (!(flags & FNM_NOESCAPE)) { @@ -93,14 +98,14 @@ fnmatch (pattern, string, flags) if (FOLD (*n) != c) return FNM_NOMATCH; break; - +#endif case '*': if ((flags & FNM_PERIOD) && *n == '.' && - (n == string || ((flags & FNM_FILE_NAME) && n[-1] == '/'))) + (n == string || ((flags & FNM_FILE_NAME) && n[-1] == G_DIR_SEPARATOR))) return FNM_NOMATCH; for (c = *p++; c == '?' || c == '*'; c = *p++, ++n) - if (((flags & FNM_FILE_NAME) && *n == '/') || + if (((flags & FNM_FILE_NAME) && *n == G_DIR_SEPARATOR) || (c == '?' && *n == '\0')) return FNM_NOMATCH; @@ -108,7 +113,11 @@ fnmatch (pattern, string, flags) return 0; { +#ifndef NATIVE_WIN32 char c1 = (!(flags & FNM_NOESCAPE) && c == '\\') ? *p : c; +#else + char c1 = c; +#endif c1 = FOLD (c1); for (--p; *n != '\0'; ++n) if ((c == '[' || FOLD (*n) == c1) && @@ -126,7 +135,7 @@ fnmatch (pattern, string, flags) return FNM_NOMATCH; if ((flags & FNM_PERIOD) && *n == '.' && - (n == string || ((flags & FNM_FILE_NAME) && n[-1] == '/'))) + (n == string || ((flags & FNM_FILE_NAME) && n[-1] == G_DIR_SEPARATOR))) return FNM_NOMATCH; not = (*p == '!' || *p == '^'); @@ -137,10 +146,10 @@ fnmatch (pattern, string, flags) for (;;) { register char cstart = c, cend = c; - +#ifndef NATIVE_WIN32 if (!(flags & FNM_NOESCAPE) && c == '\\') cstart = cend = *p++; - +#endif cstart = cend = FOLD (cstart); if (c == '\0') @@ -150,15 +159,17 @@ fnmatch (pattern, string, flags) c = *p++; c = FOLD (c); - if ((flags & FNM_FILE_NAME) && c == '/') + if ((flags & FNM_FILE_NAME) && c == G_DIR_SEPARATOR) /* [/] can never match. */ return FNM_NOMATCH; if (c == '-' && *p != ']') { cend = *p++; +#ifndef NATIVE_WIN32 if (!(flags & FNM_NOESCAPE) && cend == '\\') cend = *p++; +#endif if (cend == '\0') return FNM_NOMATCH; cend = FOLD (cend); @@ -185,9 +196,11 @@ fnmatch (pattern, string, flags) return FNM_NOMATCH; c = *p++; +#ifndef NATIVE_WIN32 if (!(flags & FNM_NOESCAPE) && c == '\\') /* XXX 1003.2d11 is unclear if this is right. */ ++p; +#endif } if (not) return FNM_NOMATCH; @@ -205,7 +218,7 @@ fnmatch (pattern, string, flags) if (*n == '\0') return 0; - if ((flags & FNM_LEADING_DIR) && *n == '/') + if ((flags & FNM_LEADING_DIR) && *n == G_DIR_SEPARATOR) /* The FNM_LEADING_DIR flag says that "foo*" matches "foobar/frobozz". */ return 0; diff --git a/gtk/gtk.def b/gtk/gtk.def new file mode 100755 index 0000000000..ed566ed061 --- /dev/null +++ b/gtk/gtk.def @@ -0,0 +1,1293 @@ +EXPORTS + GTK_TYPE_ACCEL_FLAGS + GTK_TYPE_ACCEL_GROUP + GTK_TYPE_ANCHOR_TYPE + GTK_TYPE_ARG_FLAGS + GTK_TYPE_ARROW_TYPE + GTK_TYPE_ATTACH_OPTIONS + GTK_TYPE_BUTTON_ACTION + GTK_TYPE_BUTTON_BOX_STYLE + GTK_TYPE_CALENDAR_DISPLAY_OPTIONS + GTK_TYPE_CELL_TYPE + GTK_TYPE_CLIST_DRAG_POS + GTK_TYPE_CORNER_TYPE + GTK_TYPE_CTREE_EXPANDER_STYLE + GTK_TYPE_CTREE_EXPANSION_TYPE + GTK_TYPE_CTREE_LINE_STYLE + GTK_TYPE_CTREE_NODE + GTK_TYPE_CTREE_POS + GTK_TYPE_CURVE_TYPE + GTK_TYPE_DEBUG_FLAG + GTK_TYPE_DEST_DEFAULTS + GTK_TYPE_DIRECTION_TYPE + GTK_TYPE_FONT_FILTER_TYPE + GTK_TYPE_FONT_METRIC_TYPE + GTK_TYPE_FONT_TYPE + GTK_TYPE_FUNDAMENTAL_TYPE + GTK_TYPE_GDK_AXIS_USE + GTK_TYPE_GDK_BYTE_ORDER + GTK_TYPE_GDK_CAP_STYLE + GTK_TYPE_GDK_COLOR + GTK_TYPE_GDK_COLORMAP + GTK_TYPE_GDK_COLOR_CONTEXT_MODE + GTK_TYPE_GDK_CROSSING_MODE + GTK_TYPE_GDK_CURSOR_TYPE + GTK_TYPE_GDK_DRAG_ACTION + GTK_TYPE_GDK_DRAG_CONTEXT + GTK_TYPE_GDK_DRAG_PROTOCOL + GTK_TYPE_GDK_EVENT + GTK_TYPE_GDK_EVENT_MASK + GTK_TYPE_GDK_EVENT_TYPE + GTK_TYPE_GDK_EXTENSION_MODE + GTK_TYPE_GDK_FILL + GTK_TYPE_GDK_FILL_RULE + GTK_TYPE_GDK_FILTER_RETURN + GTK_TYPE_GDK_FONT + GTK_TYPE_GDK_FONT_TYPE + GTK_TYPE_GDK_FUNCTION + GTK_TYPE_GDK_GC_VALUES_MASK + GTK_TYPE_GDK_IC_ATTRIBUTES_TYPE + GTK_TYPE_GDK_IMAGE_TYPE + GTK_TYPE_GDK_IM_STYLE + GTK_TYPE_GDK_INPUT_CONDITION + GTK_TYPE_GDK_INPUT_MODE + GTK_TYPE_GDK_INPUT_SOURCE + GTK_TYPE_GDK_JOIN_STYLE + GTK_TYPE_GDK_LINE_STYLE + GTK_TYPE_GDK_MODIFIER_TYPE + GTK_TYPE_GDK_NOTIFY_TYPE + GTK_TYPE_GDK_OVERLAP_TYPE + GTK_TYPE_GDK_PROPERTY_STATE + GTK_TYPE_GDK_PROP_MODE + GTK_TYPE_GDK_RGB_DITHER + GTK_TYPE_GDK_SELECTION + GTK_TYPE_GDK_SELECTION_TYPE + GTK_TYPE_GDK_STATUS + GTK_TYPE_GDK_SUBWINDOW_MODE + GTK_TYPE_GDK_TARGET + GTK_TYPE_GDK_VISIBILITY_STATE + GTK_TYPE_GDK_VISUAL + GTK_TYPE_GDK_VISUAL_TYPE + GTK_TYPE_GDK_WINDOW + GTK_TYPE_GDK_WINDOW_ATTRIBUTES_TYPE + GTK_TYPE_GDK_WINDOW_CLASS + GTK_TYPE_GDK_WINDOW_HINTS + GTK_TYPE_GDK_WINDOW_TYPE + GTK_TYPE_GDK_WM_DECORATION + GTK_TYPE_GDK_WM_FUNCTION + GTK_TYPE_JUSTIFICATION + GTK_TYPE_MATCH_TYPE + GTK_TYPE_MENU_DIRECTION_TYPE + GTK_TYPE_MENU_FACTORY_TYPE + GTK_TYPE_METRIC_TYPE + GTK_TYPE_OBJECT_FLAGS + GTK_TYPE_ORIENTATION + GTK_TYPE_PACKER_OPTIONS + GTK_TYPE_PACK_TYPE + GTK_TYPE_PATH_PRIORITY_TYPE + GTK_TYPE_PATH_TYPE + GTK_TYPE_POLICY_TYPE + GTK_TYPE_POSITION_TYPE + GTK_TYPE_PREVIEW_TYPE + GTK_TYPE_PRIVATE_FLAGS + GTK_TYPE_PROGRESS_BAR_ORIENTATION + GTK_TYPE_PROGRESS_BAR_STYLE + GTK_TYPE_RC_FLAGS + GTK_TYPE_RC_TOKEN_TYPE + GTK_TYPE_RELIEF_STYLE + GTK_TYPE_RESIZE_MODE + GTK_TYPE_SCROLL_TYPE + GTK_TYPE_SELECTION_DATA + GTK_TYPE_SELECTION_MODE + GTK_TYPE_SHADOW_TYPE + GTK_TYPE_SIDE_TYPE + GTK_TYPE_SIGNAL_RUN_TYPE + GTK_TYPE_SORT_TYPE + GTK_TYPE_SPIN_BUTTON_UPDATE_POLICY + GTK_TYPE_SPIN_TYPE + GTK_TYPE_STATE_TYPE + GTK_TYPE_STYLE + GTK_TYPE_SUBMENU_DIRECTION + GTK_TYPE_SUBMENU_PLACEMENT + GTK_TYPE_TARGET_FLAGS + GTK_TYPE_TOOLBAR_CHILD_TYPE + GTK_TYPE_TOOLBAR_SPACE_STYLE + GTK_TYPE_TOOLBAR_STYLE + GTK_TYPE_TREE_VIEW_MODE + GTK_TYPE_TROUGH_TYPE + GTK_TYPE_UPDATE_TYPE + GTK_TYPE_VISIBILITY + GTK_TYPE_WIDGET_FLAGS + GTK_TYPE_WINDOW_POSITION + GTK_TYPE_WINDOW_TYPE + gtk_accel_group_activate + gtk_accel_group_add + gtk_accel_group_attach + gtk_accel_group_create_add + gtk_accel_group_create_remove + gtk_accel_group_detach + gtk_accel_group_entries_from_object + gtk_accel_group_get_default + gtk_accel_group_get_entry + gtk_accel_group_handle_add + gtk_accel_group_handle_remove + gtk_accel_group_lock + gtk_accel_group_lock_entry + gtk_accel_group_new + gtk_accel_group_ref + gtk_accel_group_remove + gtk_accel_group_unlock + gtk_accel_group_unlock_entry + gtk_accel_group_unref + gtk_accel_groups_activate + gtk_accel_groups_from_object + gtk_accel_label_get_accel_width + gtk_accel_label_get_type + gtk_accel_label_new + gtk_accel_label_refetch + gtk_accel_label_set_accel_widget + gtk_accelerator_get_default_mod_mask + gtk_accelerator_name + gtk_accelerator_parse + gtk_accelerator_set_default_mod_mask + gtk_accelerator_valid + gtk_adjustment_changed + gtk_adjustment_clamp_page + gtk_adjustment_get_type + gtk_adjustment_new + gtk_adjustment_set_value + gtk_adjustment_value_changed + gtk_alignment_get_type + gtk_alignment_new + gtk_alignment_set + gtk_arrow_get_type + gtk_arrow_new + gtk_arrow_set + gtk_aspect_frame_get_type + gtk_aspect_frame_new + gtk_aspect_frame_set + gtk_bin_get_type + gtk_binary_age + gtk_binding_entry_add_signal + gtk_binding_entry_clear + gtk_binding_set_activate + gtk_binding_set_add_path + gtk_binding_set_by_class + gtk_binding_set_find + gtk_binding_set_new + gtk_bindings_activate + gtk_box_get_type + gtk_box_pack_end + gtk_box_pack_end_defaults + gtk_box_pack_start + gtk_box_pack_start_defaults + gtk_box_query_child_packing + gtk_box_reorder_child + gtk_box_set_child_packing + gtk_box_set_homogeneous + gtk_box_set_spacing + gtk_button_box_child_requisition + gtk_button_box_get_child_ipadding + gtk_button_box_get_child_ipadding_default + gtk_button_box_get_child_size + gtk_button_box_get_child_size_default + gtk_button_box_get_layout + gtk_button_box_get_spacing + gtk_button_box_get_type + gtk_button_box_set_child_ipadding + gtk_button_box_set_child_ipadding_default + gtk_button_box_set_child_size + gtk_button_box_set_child_size_default + gtk_button_box_set_layout + gtk_button_box_set_spacing + gtk_button_clicked + gtk_button_enter + gtk_button_get_relief + gtk_button_get_type + gtk_button_leave + gtk_button_new + gtk_button_new_with_label + gtk_button_pressed + gtk_button_released + gtk_button_set_relief + gtk_calendar_clear_marks + gtk_calendar_display_options + gtk_calendar_freeze + gtk_calendar_get_date + gtk_calendar_get_type + gtk_calendar_new + gtk_calendar_mark_day + gtk_calendar_select_day + gtk_calendar_select_month + gtk_calendar_thaw + gtk_calendar_unmark_day + gtk_check_button_get_type + gtk_check_button_new + gtk_check_button_new_with_label + gtk_check_menu_item_get_type + gtk_check_menu_item_new + gtk_check_menu_item_new_with_label + gtk_check_menu_item_set_active + gtk_check_menu_item_set_show_toggle + gtk_check_menu_item_toggled + gtk_check_version + gtk_clist_append + gtk_clist_clear + gtk_clist_column_title_active + gtk_clist_column_title_passive + gtk_clist_column_titles_active + gtk_clist_column_titles_hide + gtk_clist_column_titles_passive + gtk_clist_column_titles_show + gtk_clist_columns_autosize + gtk_clist_construct + gtk_clist_find_row_from_data + gtk_clist_freeze + gtk_clist_get_cell_style + gtk_clist_get_cell_type + gtk_clist_get_column_title + gtk_clist_get_column_widget + gtk_clist_get_pixmap + gtk_clist_get_pixtext + gtk_clist_get_row_data + gtk_clist_get_row_style + gtk_clist_get_selectable + gtk_clist_get_selection_info + gtk_clist_get_text + gtk_clist_get_type + gtk_clist_insert + gtk_clist_moveto + gtk_clist_new + gtk_clist_new_with_titles + gtk_clist_optimal_column_width + gtk_clist_prepend + gtk_clist_remove + gtk_clist_row_is_visible + gtk_clist_select_all + gtk_clist_select_row + gtk_clist_set_auto_sort + gtk_clist_set_background + gtk_clist_set_button_actions + gtk_clist_set_cell_style + gtk_clist_set_column_auto_resize + gtk_clist_set_column_justification + gtk_clist_set_column_max_width + gtk_clist_set_column_min_width + gtk_clist_set_column_resizeable + gtk_clist_set_column_title + gtk_clist_set_column_visibility + gtk_clist_set_column_widget + gtk_clist_set_column_width + gtk_clist_set_compare_func + gtk_clist_set_foreground + gtk_clist_set_pixmap + gtk_clist_set_pixtext + gtk_clist_set_reorderable + gtk_clist_set_row_data + gtk_clist_set_row_data_full + gtk_clist_set_row_height + gtk_clist_set_row_style + gtk_clist_set_selectable + gtk_clist_set_selection_mode + gtk_clist_set_shadow_type + gtk_clist_set_shift + gtk_clist_set_sort_column + gtk_clist_set_sort_type + gtk_clist_set_text + gtk_clist_set_use_drag_icons + gtk_clist_sort + gtk_clist_swap_rows + gtk_clist_thaw + gtk_clist_undo_selection + gtk_clist_unselect_all + gtk_clist_unselect_row + gtk_color_selection_dialog_get_type + gtk_color_selection_dialog_new + gtk_color_selection_get_color + gtk_color_selection_get_type + gtk_color_selection_new + gtk_color_selection_set_color + gtk_color_selection_set_opacity + gtk_color_selection_set_update_policy + gtk_combo_disable_activate + gtk_combo_get_type + gtk_combo_new + gtk_combo_set_case_sensitive + gtk_combo_set_item_string + gtk_combo_set_popdown_strings + gtk_combo_set_use_arrows + gtk_combo_set_use_arrows_always + gtk_combo_set_value_in_list + gtk_container_add + gtk_container_add_child_arg_type + gtk_container_add_with_args + gtk_container_addv + gtk_container_check_resize + gtk_container_child_getv + gtk_container_child_set + gtk_container_child_setv + gtk_container_child_type + gtk_container_children + gtk_container_focus + gtk_container_foreach + gtk_container_foreach_full + gtk_container_get_type + gtk_container_query_child_args + gtk_container_queue_resize + gtk_container_register_toplevel + gtk_container_remove + gtk_container_resize_children + gtk_container_set_border_width + gtk_container_set_focus_child + gtk_container_set_focus_hadjustment + gtk_container_set_focus_vadjustment + gtk_container_set_resize_mode + gtk_container_unregister_toplevel + gtk_ctree_collapse + gtk_ctree_collapse_recursive + gtk_ctree_collapse_to_depth + gtk_ctree_construct + gtk_ctree_expand + gtk_ctree_expand_recursive + gtk_ctree_expand_to_depth + gtk_ctree_export_to_gnode + gtk_ctree_find + gtk_ctree_find_by_row_data + gtk_ctree_find_by_row_data_custom + gtk_ctree_find_node_ptr + gtk_ctree_get_node_info + gtk_ctree_get_type + gtk_ctree_insert_gnode + gtk_ctree_insert_node + gtk_ctree_is_ancestor + gtk_ctree_is_hot_spot + gtk_ctree_is_viewable + gtk_ctree_last + gtk_ctree_move + gtk_ctree_new + gtk_ctree_new_with_titles + gtk_ctree_node_get_cell_style + gtk_ctree_node_get_cell_type + gtk_ctree_node_get_pixmap + gtk_ctree_node_get_pixtext + gtk_ctree_node_get_row_data + gtk_ctree_node_get_row_style + gtk_ctree_node_get_selectable + gtk_ctree_node_get_text + gtk_ctree_node_is_visible + gtk_ctree_node_moveto + gtk_ctree_node_nth + gtk_ctree_node_set_background + gtk_ctree_node_set_cell_style + gtk_ctree_node_set_foreground + gtk_ctree_node_set_pixmap + gtk_ctree_node_set_pixtext + gtk_ctree_node_set_row_data + gtk_ctree_node_set_row_data_full + gtk_ctree_node_set_row_style + gtk_ctree_node_set_selectable + gtk_ctree_node_set_shift + gtk_ctree_node_set_text + gtk_ctree_post_recursive + gtk_ctree_post_recursive_to_depth + gtk_ctree_pre_recursive + gtk_ctree_pre_recursive_to_depth + gtk_ctree_real_select_recursive + gtk_ctree_remove_node + gtk_ctree_select + gtk_ctree_select_recursive + gtk_ctree_set_drag_compare_func + gtk_ctree_set_expander_style + gtk_ctree_set_indent + gtk_ctree_set_line_style + gtk_ctree_set_node_info + gtk_ctree_set_spacing + gtk_ctree_sort_node + gtk_ctree_sort_recursive + gtk_ctree_toggle_expansion + gtk_ctree_toggle_expansion_recursive + gtk_ctree_unselect + gtk_ctree_unselect_recursive + gtk_curve_get_type + gtk_curve_get_vector + gtk_curve_new + gtk_curve_reset + gtk_curve_set_curve_type + gtk_curve_set_gamma + gtk_curve_set_range + gtk_curve_set_vector + gtk_data_get_type + gtk_dialog_get_type + gtk_dialog_new + gtk_drag_begin + gtk_drag_dest_handle_event + gtk_drag_dest_set + gtk_drag_dest_set_proxy + gtk_drag_dest_unset + gtk_drag_finish + gtk_drag_get_data + gtk_drag_get_source_widget + gtk_drag_highlight + gtk_drag_set_default_icon + gtk_drag_set_icon_default + gtk_drag_set_icon_widget + gtk_drag_set_icon_pixmap + gtk_drag_source_handle_event + gtk_drag_source_set + gtk_drag_source_set_icon + gtk_drag_unhighlight + gtk_draw_arrow + gtk_draw_box + gtk_draw_diamond + gtk_draw_hline + gtk_draw_oval + gtk_draw_polygon + gtk_draw_shadow + gtk_draw_string + gtk_draw_vline + gtk_drawing_area_get_type + gtk_drawing_area_new + gtk_drawing_area_size + gtk_editable_changed + gtk_editable_claim_selection + gtk_editable_copy_clipboard + gtk_editable_cut_clipboard + gtk_editable_delete_selection + gtk_editable_delete_text + gtk_editable_get_chars + gtk_editable_get_position + gtk_editable_get_type + gtk_editable_insert_text + gtk_editable_paste_clipboard + gtk_editable_select_region + gtk_editable_set_editable + gtk_editable_set_position + gtk_entry_append_text + gtk_entry_get_text + gtk_entry_get_type + gtk_entry_new + gtk_entry_new_with_max_length + gtk_entry_prepend_text + gtk_entry_select_region + gtk_entry_set_editable + gtk_entry_set_max_length + gtk_entry_set_position + gtk_entry_set_text + gtk_entry_set_visibility + gtk_event_box_get_type + gtk_event_box_new + gtk_events_pending + gtk_exit + gtk_false + gtk_file_selection_get_filename + gtk_file_selection_get_type + gtk_file_selection_hide_fileop_buttons + gtk_file_selection_new + gtk_file_selection_set_filename + gtk_file_selection_show_fileop_buttons + gtk_fixed_get_type + gtk_fixed_move + gtk_fixed_new + gtk_fixed_put + gtk_font_selection_dialog_get_font + gtk_font_selection_dialog_get_font_name + gtk_font_selection_dialog_get_preview_text + gtk_font_selection_dialog_get_type + gtk_font_selection_dialog_new + gtk_font_selection_dialog_set_filter + gtk_font_selection_dialog_set_font_name + gtk_font_selection_dialog_set_preview_text + gtk_font_selection_get_font + gtk_font_selection_get_font_name + gtk_font_selection_get_preview_text + gtk_font_selection_get_type + gtk_font_selection_new + gtk_font_selection_set_filter + gtk_font_selection_set_font_name + gtk_font_selection_set_preview_text + gtk_frame_get_type + gtk_frame_new + gtk_frame_set_label + gtk_frame_set_label_align + gtk_frame_set_shadow_type + gtk_gamma_curve_get_type + gtk_gamma_curve_new + gtk_gc_get + gtk_gc_release + gtk_get_current_event + gtk_get_event_widget + gtk_grab_add + gtk_grab_get_current + gtk_grab_remove + gtk_handle_box_get_type + gtk_handle_box_new + gtk_handle_box_set_handle_position + gtk_handle_box_set_shadow_type + gtk_handle_box_set_snap_edge + gtk_hbox_get_type + gtk_hbox_new + gtk_hbutton_box_get_layout_default + gtk_hbutton_box_get_spacing_default + gtk_hbutton_box_get_type + gtk_hbutton_box_new + gtk_hbutton_box_set_layout_default + gtk_hbutton_box_set_spacing_default + gtk_hpaned_get_type + gtk_hpaned_new + gtk_hruler_get_type + gtk_hruler_new + gtk_hscale_get_type + gtk_hscale_new + gtk_hscrollbar_get_type + gtk_hscrollbar_new + gtk_hseparator_get_type + gtk_hseparator_new + gtk_idle_add + gtk_idle_add_full + gtk_idle_add_priority + gtk_idle_remove + gtk_idle_remove_by_data + gtk_image_get + gtk_image_get_type + gtk_image_new + gtk_image_set + gtk_init + gtk_init_add + gtk_init_check + gtk_input_add_full + gtk_input_dialog_get_type + gtk_input_dialog_new + gtk_input_remove + gtk_interface_age + gtk_invisible_get_type + gtk_invisible_new + gtk_item_deselect + gtk_item_factories_path_delete + gtk_item_factory_construct + gtk_item_factory_create_item + gtk_item_factory_create_items + gtk_item_factory_create_items_ac + gtk_item_factory_create_menu_entries + gtk_item_factory_delete_entries + gtk_item_factory_delete_entry + gtk_item_factory_delete_item + gtk_item_factory_dump_items + gtk_item_factory_dump_rc + gtk_item_factory_from_path + gtk_item_factory_from_widget + gtk_item_factory_get_widget + gtk_item_factory_get_widget_by_action + gtk_item_factory_new + gtk_item_factory_parse_rc + gtk_item_factory_parse_rc_scanner + gtk_item_factory_parse_rc_string + gtk_item_factory_path_from_widget + gtk_item_factory_popup + gtk_item_factory_popup_data + gtk_item_factory_popup_data_from_widget + gtk_item_factory_popup_with_data + gtk_item_factory_print_func + gtk_item_get_type + gtk_item_select + gtk_item_toggle + gtk_key_snooper_install + gtk_key_snooper_remove + gtk_label_get + gtk_label_get_type + gtk_label_new + gtk_label_parse_uline + gtk_label_set_justify + gtk_label_set_line_wrap + gtk_label_set_pattern + gtk_label_set_text + gtk_layout_freeze + gtk_layout_get_hadjustment + gtk_layout_get_type + gtk_layout_get_vadjustment + gtk_layout_move + gtk_layout_new + gtk_layout_put + gtk_layout_set_hadjustment + gtk_layout_set_size + gtk_layout_set_vadjustment + gtk_layout_thaw + gtk_list_append_items + gtk_list_child_position + gtk_list_clear_items + gtk_list_end_drag_selection + gtk_list_end_selection + gtk_list_extend_selection + gtk_list_get_type + gtk_list_insert_items + gtk_list_item_deselect + gtk_list_item_get_type + gtk_list_item_new + gtk_list_item_new_with_label + gtk_list_item_select + gtk_list_new + gtk_list_prepend_items + gtk_list_remove_items + gtk_list_remove_items_no_unref + gtk_list_scroll_horizontal + gtk_list_scroll_vertical + gtk_list_select_all + gtk_list_select_child + gtk_list_select_item + gtk_list_set_selection_mode + gtk_list_toggle_focus_row + gtk_list_toggle_row + gtk_list_undo_selection + gtk_list_unselect_all + gtk_list_unselect_child + gtk_list_unselect_item + gtk_main + gtk_main_iteration + gtk_main_iteration_do + gtk_main_level + gtk_main_quit + gtk_major_version + gtk_marshal_BOOL__NONE + gtk_marshal_BOOL__POINTER + gtk_marshal_BOOL__POINTER_INT_INT + gtk_marshal_BOOL__POINTER_INT_INT_INT + gtk_marshal_BOOL__POINTER_POINTER_INT_INT + gtk_marshal_BOOL__POINTER_POINTER_POINTER_POINTER + gtk_marshal_INT__INT + gtk_marshal_INT__POINTER + gtk_marshal_INT__POINTER_CHAR_CHAR + gtk_marshal_NONE__BOOL + gtk_marshal_NONE__C_CALLBACK + gtk_marshal_NONE__C_CALLBACK_C_CALLBACK + gtk_marshal_NONE__INT + gtk_marshal_NONE__INT_FLOAT + gtk_marshal_NONE__INT_FLOAT_BOOL + gtk_marshal_NONE__INT_INT + gtk_marshal_NONE__INT_INT_POINTER + gtk_marshal_NONE__INT_POINTER + gtk_marshal_NONE__INT_POINTER_INT_INT_INT + gtk_marshal_NONE__INT_POINTER_INT_INT_INT_POINTER + gtk_marshal_NONE__NONE + gtk_marshal_NONE__POINTER + gtk_marshal_NONE__POINTER_INT + gtk_marshal_NONE__POINTER_INT_INT + gtk_marshal_NONE__POINTER_INT_POINTER + gtk_marshal_NONE__POINTER_INT_INT_POINTER_INT_INT + gtk_marshal_NONE__POINTER_POINTER + gtk_marshal_NONE__POINTER_POINTER_INT_INT + gtk_marshal_NONE__POINTER_POINTER_POINTER + gtk_menu_append + gtk_menu_attach_to_widget + gtk_menu_bar_append + gtk_menu_bar_get_type + gtk_menu_bar_insert + gtk_menu_bar_new + gtk_menu_bar_prepend + gtk_menu_bar_set_shadow_type + gtk_menu_detach + gtk_menu_factory_add_entries + gtk_menu_factory_add_subfactory + gtk_menu_factory_destroy + gtk_menu_factory_find + gtk_menu_factory_new + gtk_menu_factory_remove_entries + gtk_menu_factory_remove_paths + gtk_menu_factory_remove_subfactory + gtk_menu_get_active + gtk_menu_get_attach_widget + gtk_menu_get_type + gtk_menu_insert + gtk_menu_item_activate + gtk_menu_item_configure + gtk_menu_item_deselect + gtk_menu_item_get_type + gtk_menu_item_new + gtk_menu_item_new_with_label + gtk_menu_item_remove_submenu + gtk_menu_item_right_justify + gtk_menu_item_select + gtk_menu_item_set_placement + gtk_menu_item_set_submenu + gtk_menu_new + gtk_menu_popdown + gtk_menu_popup + gtk_menu_prepend + gtk_menu_reorder_child + gtk_menu_reposition + gtk_menu_set_accel_group + gtk_menu_set_active + gtk_menu_set_tearoff_state + gtk_menu_shell_activate_item + gtk_menu_shell_append + gtk_menu_shell_deactivate + gtk_menu_shell_get_type + gtk_menu_shell_insert + gtk_menu_shell_prepend + gtk_menu_shell_select_item + gtk_micro_version + gtk_minor_version + gtk_misc_get_type + gtk_misc_set_alignment + gtk_misc_set_padding + gtk_notebook_append_page + gtk_notebook_append_page_menu + gtk_notebook_get_current_page + gtk_notebook_get_menu_label + gtk_notebook_get_nth_page + gtk_notebook_get_tab_label + gtk_notebook_get_type + gtk_notebook_insert_page + gtk_notebook_insert_page_menu + gtk_notebook_new + gtk_notebook_next_page + gtk_notebook_page_num + gtk_notebook_popup_disable + gtk_notebook_popup_enable + gtk_notebook_prepend_page + gtk_notebook_prepend_page_menu + gtk_notebook_prev_page + gtk_notebook_query_tab_label_packing + gtk_notebook_remove_page + gtk_notebook_reorder_child + gtk_notebook_set_homogeneous_tabs + gtk_notebook_set_menu_label + gtk_notebook_set_menu_label_text + gtk_notebook_set_page + gtk_notebook_set_scrollable + gtk_notebook_set_show_border + gtk_notebook_set_show_tabs + gtk_notebook_set_tab_border + gtk_notebook_set_tab_hborder + gtk_notebook_set_tab_label + gtk_notebook_set_tab_label_packing + gtk_notebook_set_tab_label_text + gtk_notebook_set_tab_pos + gtk_notebook_set_tab_vborder + gtk_object_add_arg_type + gtk_object_arg_get + gtk_object_arg_get_info + gtk_object_arg_set + gtk_object_args_collect + gtk_object_class_add_signals + gtk_object_class_user_signal_new + gtk_object_class_user_signal_newv + gtk_object_constructed + gtk_object_default_construct + gtk_object_destroy + gtk_object_get_data + gtk_object_get_data_by_id + gtk_object_get_type + gtk_object_get_user_data + gtk_object_getv + gtk_object_new + gtk_object_newv + gtk_object_query_args + gtk_object_ref + gtk_object_remove_data + gtk_object_remove_data_by_id + gtk_object_remove_no_notify_by_id + gtk_object_set + gtk_object_set_data + gtk_object_set_data_by_id + gtk_object_set_data_by_id_full + gtk_object_set_data_full + gtk_object_set_user_data + gtk_object_setv + gtk_object_sink + gtk_object_unref + gtk_object_weakref + gtk_object_weakunref + gtk_option_menu_get_menu + gtk_option_menu_get_type + gtk_option_menu_new + gtk_option_menu_remove_menu + gtk_option_menu_set_history + gtk_option_menu_set_menu + gtk_packer_add + gtk_packer_add_defaults + gtk_packer_get_type + gtk_packer_new + gtk_packer_reorder_child + gtk_packer_set_child_packing + gtk_packer_set_default_border_width + gtk_packer_set_default_ipad + gtk_packer_set_default_pad + gtk_packer_set_spacing + gtk_paint_arrow + gtk_paint_box + gtk_paint_box_gap + gtk_paint_check + gtk_paint_cross + gtk_paint_diamond + gtk_paint_extension + gtk_paint_flat_box + gtk_paint_focus + gtk_paint_handle + gtk_paint_hline + gtk_paint_oval + gtk_paint_option + gtk_paint_polygon + gtk_paint_ramp + gtk_paint_slider + gtk_paint_shadow + gtk_paint_shadow_gap + gtk_paint_string + gtk_paint_tab + gtk_paint_vline + gtk_paned_add1 + gtk_paned_add2 + gtk_paned_get_type + gtk_paned_pack1 + gtk_paned_pack2 + gtk_paned_set_gutter_size + gtk_paned_set_handle_size + gtk_paned_set_position + gtk_pattern_match + gtk_pattern_match_simple + gtk_pattern_match_string + gtk_pattern_spec_free_segs + gtk_pattern_spec_init + gtk_pixmap_get + gtk_pixmap_get_type + gtk_pixmap_new + gtk_pixmap_set + gtk_pixmap_set_build_insensitive + gtk_plug_construct + gtk_plug_new + gtk_preview_draw_row + gtk_preview_get_cmap + gtk_preview_get_info + gtk_preview_get_type + gtk_preview_get_visual + gtk_preview_new + gtk_preview_put + gtk_preview_reset + gtk_preview_set_color_cube + gtk_preview_set_dither + gtk_preview_set_expand + gtk_preview_set_gamma + gtk_preview_set_install_cmap + gtk_preview_set_reserved + gtk_preview_size + gtk_preview_uninit + gtk_progress_bar_get_type + gtk_progress_bar_new + gtk_progress_bar_new_with_adjustment + gtk_progress_bar_set_activity_blocks + gtk_progress_bar_set_activity_step + gtk_progress_bar_set_bar_style + gtk_progress_bar_set_discrete_blocks + gtk_progress_bar_set_orientation + gtk_progress_bar_update + gtk_progress_configure + gtk_progress_get_current_percentage + gtk_progress_get_current_text + gtk_progress_get_percentage_from_value + gtk_progress_get_text_from_value + gtk_progress_get_type + gtk_progress_get_value + gtk_progress_set_activity_mode + gtk_progress_set_adjustment + gtk_progress_set_format_string + gtk_progress_set_percentage + gtk_progress_set_show_text + gtk_progress_set_text_alignment + gtk_progress_set_value + gtk_quit_add + gtk_quit_add_destroy + gtk_quit_add_full + gtk_quit_remove + gtk_quit_remove_by_data + gtk_radio_button_get_type + gtk_radio_button_group + gtk_radio_button_new + gtk_radio_button_new_from_widget + gtk_radio_button_new_with_label + gtk_radio_button_new_with_label_from_widget + gtk_radio_button_set_group + gtk_radio_menu_item_get_type + gtk_radio_menu_item_group + gtk_radio_menu_item_new + gtk_radio_menu_item_new_with_label + gtk_radio_menu_item_set_group + gtk_range_default_hmotion + gtk_range_default_hslider_update + gtk_range_default_htrough_click + gtk_range_default_vmotion + gtk_range_default_vslider_update + gtk_range_default_vtrough_click + gtk_range_draw_background + gtk_range_draw_slider + gtk_range_draw_step_back + gtk_range_draw_step_forw + gtk_range_draw_trough + gtk_range_get_adjustment + gtk_range_get_type + gtk_range_set_adjustment + gtk_range_set_update_policy + gtk_range_slider_update + gtk_range_trough_click + gtk_rc_add_class_style + gtk_rc_add_default_file + gtk_rc_add_widget_class_style + gtk_rc_add_widget_name_style + gtk_rc_find_pixmap_in_path + gtk_rc_get_default_files + gtk_rc_get_style + gtk_rc_init + gtk_rc_parse + gtk_rc_parse_color + gtk_rc_parse_priority + gtk_rc_parse_state + gtk_rc_parse_string + gtk_rc_reparse_all + gtk_rc_set_default_files + gtk_rc_set_image_loader + gtk_ruler_draw_pos + gtk_ruler_draw_ticks + gtk_ruler_get_type + gtk_ruler_set_metric + gtk_ruler_set_range + gtk_scale_draw_value + gtk_scale_get_type + gtk_scale_get_value_width + gtk_scale_set_digits + gtk_scale_set_draw_value + gtk_scale_set_value_pos + gtk_scrollbar_get_type + gtk_scrolled_window_add_with_viewport + gtk_scrolled_window_get_hadjustment + gtk_scrolled_window_get_type + gtk_scrolled_window_get_vadjustment + gtk_scrolled_window_new + gtk_scrolled_window_set_hadjustment + gtk_scrolled_window_set_placement + gtk_scrolled_window_set_policy + gtk_scrolled_window_set_vadjustment + gtk_selection_add_target + gtk_selection_add_targets + gtk_selection_clear + gtk_selection_convert + gtk_selection_data_copy + gtk_selection_data_free + gtk_selection_data_set + gtk_selection_incr_event + gtk_selection_notify + gtk_selection_owner_set + gtk_selection_property_notify + gtk_selection_remove_all + gtk_selection_request + gtk_separator_get_type + gtk_set_locale + gtk_signal_add_emission_hook + gtk_signal_add_emission_hook_full + gtk_signal_connect + gtk_signal_connect_after + gtk_signal_connect_full + gtk_signal_connect_object + gtk_signal_connect_object_after + gtk_signal_connect_object_while_alive + gtk_signal_connect_while_alive + gtk_signal_disconnect + gtk_signal_disconnect_by_data + gtk_signal_disconnect_by_func + gtk_signal_emit + gtk_signal_emit_by_name + gtk_signal_emit_stop + gtk_signal_emit_stop_by_name + gtk_signal_emitv + gtk_signal_emitv_by_name + gtk_signal_handler_block + gtk_signal_handler_block_by_data + gtk_signal_handler_block_by_func + gtk_signal_handler_pending + gtk_signal_handler_pending_by_func + gtk_signal_handler_pending_by_id + gtk_signal_handler_unblock + gtk_signal_handler_unblock_by_data + gtk_signal_handler_unblock_by_func + gtk_signal_init + gtk_signal_lookup + gtk_signal_n_emissions + gtk_signal_n_emissions_by_name + gtk_signal_name + gtk_signal_new + gtk_signal_newv + gtk_signal_query + gtk_signal_remove_emission_hook + gtk_socket_new + gtk_socket_steal + gtk_spin_button_configure + gtk_spin_button_get_adjustment + gtk_spin_button_get_type + gtk_spin_button_get_value_as_float + gtk_spin_button_get_value_as_int + gtk_spin_button_new + gtk_spin_button_set_adjustment + gtk_spin_button_set_digits + gtk_spin_button_set_numeric + gtk_spin_button_set_shadow_type + gtk_spin_button_set_snap_to_ticks + gtk_spin_button_set_update_policy + gtk_spin_button_set_value + gtk_spin_button_set_wrap + gtk_spin_button_spin + gtk_statusbar_get_context_id + gtk_statusbar_get_type + gtk_statusbar_new + gtk_statusbar_pop + gtk_statusbar_push + gtk_statusbar_remove + gtk_style_apply_default_background + gtk_style_attach + gtk_style_copy + gtk_style_detach + gtk_style_new + gtk_style_ref + gtk_style_set_background + gtk_style_unref + gtk_table_attach + gtk_table_attach_defaults + gtk_table_get_type + gtk_table_new + gtk_table_resize + gtk_table_set_col_spacing + gtk_table_set_col_spacings + gtk_table_set_homogeneous + gtk_table_set_row_spacing + gtk_table_set_row_spacings + gtk_tearoff_menu_item_get_type + gtk_tearoff_menu_item_new + gtk_text_backward_delete + gtk_text_forward_delete + gtk_text_freeze + gtk_text_get_length + gtk_text_get_point + gtk_text_get_type + gtk_text_insert + gtk_text_new + gtk_text_set_adjustments + gtk_text_set_editable + gtk_text_set_point + gtk_text_set_word_wrap + gtk_text_thaw + gtk_timeout_add + gtk_timeout_add_full + gtk_timeout_remove + gtk_tips_query_get_type + gtk_tips_query_new + gtk_tips_query_set_caller + gtk_tips_query_set_labels + gtk_tips_query_start_query + gtk_tips_query_stop_query + gtk_toggle_button_get_active + gtk_toggle_button_get_type + gtk_toggle_button_new + gtk_toggle_button_new_with_label + gtk_toggle_button_set_active + gtk_toggle_button_set_mode + gtk_toggle_button_toggled + gtk_toolbar_append_element + gtk_toolbar_append_item + gtk_toolbar_append_space + gtk_toolbar_append_widget + gtk_toolbar_get_button_relief + gtk_toolbar_get_type + gtk_toolbar_insert_element + gtk_toolbar_insert_item + gtk_toolbar_insert_space + gtk_toolbar_insert_widget + gtk_toolbar_new + gtk_toolbar_prepend_element + gtk_toolbar_prepend_item + gtk_toolbar_prepend_space + gtk_toolbar_prepend_widget + gtk_toolbar_set_button_relief + gtk_toolbar_set_orientation + gtk_toolbar_set_space_size + gtk_toolbar_set_space_style + gtk_toolbar_set_style + gtk_toolbar_set_tooltips + gtk_tooltips_data_get + gtk_tooltips_disable + gtk_tooltips_enable + gtk_tooltips_force_window + gtk_tooltips_get_type + gtk_tooltips_new + gtk_tooltips_set_colors + gtk_tooltips_set_delay + gtk_tooltips_set_tip + gtk_trace_referencing + gtk_tree_append + gtk_tree_child_position + gtk_tree_clear_items + gtk_tree_get_type + gtk_tree_insert + gtk_tree_item_collapse + gtk_tree_item_deselect + gtk_tree_item_expand + gtk_tree_item_get_type + gtk_tree_item_new + gtk_tree_item_new_with_label + gtk_tree_item_remove_subtree + gtk_tree_item_select + gtk_tree_item_set_subtree + gtk_tree_new + gtk_tree_prepend + gtk_tree_remove_items + gtk_tree_select_child + gtk_tree_select_item + gtk_tree_set_selection_mode + gtk_tree_set_view_lines + gtk_tree_set_view_mode + gtk_tree_unselect_child + gtk_tree_unselect_item + gtk_true + gtk_type_check_class_cast + gtk_type_check_object_cast + gtk_type_children_types + gtk_type_class + gtk_type_describe_heritage + gtk_type_describe_tree + gtk_type_enum_find_value + gtk_type_enum_get_values + gtk_type_flags_find_value + gtk_type_flags_get_values + gtk_type_free + gtk_type_from_name + gtk_type_get_varargs_type + gtk_type_init + gtk_type_is_a + gtk_type_name + gtk_type_new + gtk_type_parent + gtk_type_parent_class + gtk_type_register_enum + gtk_type_register_flags + gtk_type_set_chunk_alloc + gtk_type_set_varargs_type + gtk_type_unique + gtk_vbox_get_type + gtk_vbox_new + gtk_vbutton_box_get_layout_default + gtk_vbutton_box_get_spacing_default + gtk_vbutton_box_get_type + gtk_vbutton_box_new + gtk_vbutton_box_set_layout_default + gtk_vbutton_box_set_spacing_default + gtk_viewport_get_hadjustment + gtk_viewport_get_type + gtk_viewport_get_vadjustment + gtk_viewport_new + gtk_viewport_set_hadjustment + gtk_viewport_set_shadow_type + gtk_viewport_set_vadjustment + gtk_vpaned_get_type + gtk_vpaned_new + gtk_vruler_get_type + gtk_vruler_new + gtk_vscale_get_type + gtk_vscale_new + gtk_vscrollbar_get_type + gtk_vscrollbar_new + gtk_vseparator_get_type + gtk_vseparator_new + gtk_widget_accelerator_signal + gtk_widget_activate + gtk_widget_add_accelerator + gtk_widget_class_path + gtk_widget_destroy + gtk_widget_destroyed + gtk_widget_draw + gtk_widget_draw_default + gtk_widget_draw_focus + gtk_widget_ensure_style + gtk_widget_event + gtk_widget_get + gtk_widget_get_ancestor + gtk_widget_get_child_requisition + gtk_widget_get_colormap + gtk_widget_get_default_colormap + gtk_widget_get_default_style + gtk_widget_get_default_visual + gtk_widget_get_events + gtk_widget_get_extension_events + gtk_widget_get_name + gtk_widget_get_parent_window + gtk_widget_get_pointer + gtk_widget_get_style + gtk_widget_get_toplevel + gtk_widget_get_type + gtk_widget_get_visual + gtk_widget_getv + gtk_widget_grab_default + gtk_widget_grab_focus + gtk_widget_hide + gtk_widget_hide_all + gtk_widget_hide_on_delete + gtk_widget_intersect + gtk_widget_is_ancestor + gtk_widget_lock_accelerators + gtk_widget_map + gtk_widget_new + gtk_widget_newv + gtk_widget_path + gtk_widget_pop_colormap + gtk_widget_pop_style + gtk_widget_pop_visual + gtk_widget_popup + gtk_widget_push_colormap + gtk_widget_push_style + gtk_widget_push_visual + gtk_widget_queue_draw + gtk_widget_queue_resize + gtk_widget_realize + gtk_widget_ref + gtk_widget_remove_accelerator + gtk_widget_remove_accelerators + gtk_widget_reparent + gtk_widget_reset_rc_styles + gtk_widget_restore_default_style + gtk_widget_set + gtk_widget_set_default_colormap + gtk_widget_set_default_style + gtk_widget_set_default_visual + gtk_widget_set_events + gtk_widget_set_extension_events + gtk_widget_set_name + gtk_widget_set_parent + gtk_widget_set_parent_window + gtk_widget_set_rc_style + gtk_widget_set_scroll_adjustments + gtk_widget_set_sensitive + gtk_widget_set_state + gtk_widget_set_style + gtk_widget_set_uposition + gtk_widget_set_usize + gtk_widget_setv + gtk_widget_shape_combine_mask + gtk_widget_show + gtk_widget_show_all + gtk_widget_show_now + gtk_widget_size_allocate + gtk_widget_size_request + gtk_widget_unlock_accelerators + gtk_widget_unmap + gtk_widget_unparent + gtk_widget_unrealize + gtk_widget_unref + gtk_window_activate_default + gtk_window_activate_focus + gtk_window_add_accel_group + gtk_window_get_type + gtk_window_new + gtk_window_remove_accel_group + gtk_window_set_default + gtk_window_set_default_size + gtk_window_set_focus + gtk_window_set_geometry_hints + gtk_window_set_modal + gtk_window_set_policy + gtk_window_set_position + gtk_window_set_title + gtk_window_set_transient_for + gtk_window_set_wmclass diff --git a/gtk/gtkcalendar.c b/gtk/gtkcalendar.c index 1ffaf69d10..e6f0330d49 100644 --- a/gtk/gtkcalendar.c +++ b/gtk/gtkcalendar.c @@ -29,7 +29,11 @@ * GTK+ at ftp://ftp.gtk.org/pub/gtk/. */ +#include "config.h" + +#ifdef HAVE_SYS_TIME_H #include +#endif #include #include #include diff --git a/gtk/gtkdnd.c b/gtk/gtkdnd.c index 3281a0d588..4c6949789d 100644 --- a/gtk/gtkdnd.c +++ b/gtk/gtkdnd.c @@ -2048,10 +2048,19 @@ gtk_drag_source_handle_event (GtkWidget *widget, cursor = gtk_drag_get_cursor (event->dnd.context->action); if (info->cursor != cursor) { +#if GDK_WINDOWING == GDK_WINDOWING_X11 XChangeActivePointerGrab (GDK_WINDOW_XDISPLAY (widget->window), PointerMotionMask | PointerMotionHintMask | ButtonReleaseMask, ((GdkCursorPrivate *)cursor)->xcursor, event->dnd.time); +#elif GDK_WINDOWING == GDK_WINDOWING_WIN32 + gdk_pointer_grab (widget->window, FALSE, + GDK_POINTER_MOTION_MASK | + GDK_POINTER_MOTION_HINT_MASK | + GDK_BUTTON_RELEASE_MASK, + NULL, + info->cursor, event->dnd.time); +#endif info->cursor = cursor; } @@ -2302,8 +2311,8 @@ gtk_drag_source_event_cb (GtkWidget *widget, break; } - if (MAX (abs (site->x - event->motion.x), - abs (site->y - event->motion.y)) > 3) + if (MAX (ABS (site->x - event->motion.x), + ABS (site->y - event->motion.y)) > 3) { GtkDragSourceInfo *info; GdkDragContext *context; diff --git a/gtk/gtkfilesel.c b/gtk/gtkfilesel.c index 9b217c65d3..b1dac57959 100644 --- a/gtk/gtkfilesel.c +++ b/gtk/gtkfilesel.c @@ -45,18 +45,6 @@ #include #endif -#ifdef WIN32 -#define STRICT -#include - -#ifdef _MSC_VER -#ifndef S_ISDIR -#define S_ISDIR(mode) ((mode)&_S_IFDIR) -#endif -#define mkdir(path,mode) mkdir(path) -#endif -#endif - #include "fnmatch.h" #include "gdk/gdkkeysyms.h" @@ -79,6 +67,19 @@ #include "gtkdialog.h" #include "gtkintl.h" +#ifdef WIN32 +#define STRICT +#include + +#ifdef _MSC_VER +#include +#ifndef S_ISDIR +#define S_ISDIR(mode) ((mode)&_S_IFDIR) +#endif +#define mkdir(path,mode) mkdir(path) +#endif +#endif + #define DIR_LIST_WIDTH 180 #define DIR_LIST_HEIGHT 180 #define FILE_LIST_WIDTH 180 diff --git a/gtk/gtkitemfactory.c b/gtk/gtkitemfactory.c index d9fe31c15e..a4fe946063 100644 --- a/gtk/gtkitemfactory.c +++ b/gtk/gtkitemfactory.c @@ -27,6 +27,8 @@ * GTK+ at ftp://ftp.gtk.org/pub/gtk/. */ +#include "config.h" + #include "gtkitemfactory.h" #include "gtk/gtksignal.h" #include "gtk/gtkoptionmenu.h" @@ -41,9 +43,18 @@ #include #include #include +#ifdef HAVE_UNISTD_H #include +#endif #include +#ifdef _MSC_VER +#include /* For _open and _close */ + +#ifndef S_ISREG +#define S_ISREG(mode) ((mode)&_S_IFREG) +#endif +#endif /* --- defines --- */ @@ -265,12 +276,12 @@ gtk_item_factory_callback_marshal (GtkWidget *widget, if (data->callback_type == 1) { - GtkItemFactoryCallback1 func1 = data->func; + GtkItemFactoryCallback1 func1 = (GtkItemFactoryCallback1) data->func; func1 (data->func_data, data->callback_action, widget); } else if (data->callback_type == 2) { - GtkItemFactoryCallback2 func2 = data->func; + GtkItemFactoryCallback2 func2 = (GtkItemFactoryCallback2) data->func; func2 (widget, data->func_data, data->callback_action); } } diff --git a/gtk/gtklayout.c b/gtk/gtklayout.c index 2b55613f2f..34af8ad067 100644 --- a/gtk/gtklayout.c +++ b/gtk/gtklayout.c @@ -28,10 +28,11 @@ * GTK+ at ftp://ftp.gtk.org/pub/gtk/. */ +#include "gdk/gdkx.h" + #include "gtklayout.h" #include "gtksignal.h" #include "gtkprivate.h" -#include "gdk/gdkx.h" typedef struct _GtkLayoutAdjData GtkLayoutAdjData; typedef struct _GtkLayoutChild GtkLayoutChild; @@ -868,6 +869,8 @@ gtk_layout_expose_area (GtkLayout *layout, } } +#if GDK_WINDOWING == GDK_WINDOWING_X11 + /* This function is used to find events to process while scrolling */ @@ -884,6 +887,8 @@ gtk_layout_expose_predicate (Display *display, return False; } +#endif /* X11 */ + /* This is the main routine to do the scrolling. Scrolling is * done by "Guffaw" scrolling, as in the Mozilla XFE, with * a few modifications. @@ -915,8 +920,9 @@ gtk_layout_adjustment_changed (GtkAdjustment *adjustment, GtkLayout *layout) { GtkWidget *widget; +#if GDK_WINDOWING == GDK_WINDOWING_X11 XEvent xevent; - +#endif gint dx, dy; widget = GTK_WIDGET (layout); @@ -1049,6 +1055,8 @@ gtk_layout_adjustment_changed (GtkAdjustment *adjustment, */ gdk_flush(); + +#if GDK_WINDOWING == GDK_WINDOWING_X11 while (XCheckIfEvent(GDK_WINDOW_XDISPLAY (layout->bin_window), &xevent, gtk_layout_expose_predicate, @@ -1082,6 +1090,9 @@ gtk_layout_adjustment_changed (GtkAdjustment *adjustment, } } } +#elif GDK_WINDOWING == GDK_WINDOWING_WIN32 + /* XXX Not implemented */ +#endif } /* The main event filter. Actually, we probably don't really need @@ -1099,6 +1110,8 @@ gtk_layout_filter (GdkXEvent *gdk_xevent, GdkEvent *event, gpointer data) { +#if GDK_WINDOWING == GDK_WINDOWING_X11 + XEvent *xevent; GtkLayout *layout; @@ -1131,6 +1144,9 @@ gtk_layout_filter (GdkXEvent *gdk_xevent, } break; } +#elif GDK_WINDOWING == GDK_WINDOWING_WIN32 + /* XXX Not implemented */ +#endif return GDK_FILTER_CONTINUE; } @@ -1144,6 +1160,7 @@ gtk_layout_main_filter (GdkXEvent *gdk_xevent, GdkEvent *event, gpointer data) { +#if GDK_WINDOWING == GDK_WINDOWING_X11 XEvent *xevent; GtkLayout *layout; @@ -1169,7 +1186,9 @@ gtk_layout_main_filter (GdkXEvent *gdk_xevent, return GDK_FILTER_REMOVE; } - +#elif GDK_WINDOWING == GDK_WINDOWING_WIN32 + /* XXX Not implemented */ +#endif return GDK_FILTER_CONTINUE; } diff --git a/gtk/gtkmain.c b/gtk/gtkmain.c index 3c3523ea2c..aa6ba38f58 100644 --- a/gtk/gtkmain.c +++ b/gtk/gtkmain.c @@ -24,7 +24,13 @@ * GTK+ at ftp://ftp.gtk.org/pub/gtk/. */ +#include "gdk/gdkx.h" /* For GDK_WINDOWING */ + +#if GDK_WINDOWING == GDK_WINDOWING_X11 #include /* so we get the right setlocale */ +#else +#include +#endif #include #include #include @@ -233,7 +239,7 @@ gtk_init_check (int *argc, gchar **modules, **as; #ifndef __EMX__ - modules = g_strsplit (env_string, ":", -1); + modules = g_strsplit (env_string, G_SEARCHPATH_SEPARATOR_S, -1); #else modules = g_strsplit (env_string, ";", -1); #endif @@ -354,14 +360,11 @@ gtk_init_check (int *argc, module_name = slist->data; slist->data = NULL; #ifndef __EMX__ - if (!(module_name[0] == '/' || - (module_name[0] == 'l' && - module_name[1] == 'i' && - module_name[2] == 'b'))) + if (!g_path_is_absolute (module_name)) { gchar *old = module_name; - module_name = g_strconcat ("lib", module_name, ".so", NULL); + module_name = g_module_build_path (NULL, module_name); g_free (old); } #else diff --git a/gtk/gtkmain.h b/gtk/gtkmain.h index 44629283ad..90675b7fe9 100644 --- a/gtk/gtkmain.h +++ b/gtk/gtkmain.h @@ -56,11 +56,21 @@ typedef gint (*GtkKeySnoopFunc) (GtkWidget *grab_widget, /* Gtk version. */ -extern const guint gtk_major_version; -extern const guint gtk_minor_version; -extern const guint gtk_micro_version; -extern const guint gtk_binary_age; -extern const guint gtk_interface_age; +#ifdef NATIVE_WIN32 +#ifdef GTK_COMPILATION +#define GTKMAIN_C_VAR __declspec(dllexport) +#else +#define GTKMAIN_C_VAR __declspec(dllimport) extern +#endif +#else +#define GTKMAIN_C_VAR extern +#endif + +GTKMAIN_C_VAR const guint gtk_major_version; +GTKMAIN_C_VAR const guint gtk_minor_version; +GTKMAIN_C_VAR const guint gtk_micro_version; +GTKMAIN_C_VAR const guint gtk_binary_age; +GTKMAIN_C_VAR const guint gtk_interface_age; gchar* gtk_check_version (guint required_major, guint required_minor, guint required_micro); diff --git a/gtk/gtkplug.c b/gtk/gtkplug.c index e2ad46ef9d..cf7506e321 100644 --- a/gtk/gtkplug.c +++ b/gtk/gtkplug.c @@ -271,9 +271,13 @@ gtk_plug_key_press_event (GtkWidget *widget, gtk_window_set_focus (GTK_WINDOW (widget), NULL); gdk_error_trap_push (); +#if GDK_WINDOWING == GDK_WINDOWING_X11 XSetInputFocus (GDK_DISPLAY (), GDK_WINDOW_XWINDOW (plug->socket_window), RevertToParent, event->time); +#elif GDK_WINDOWING == GDK_WINDOWING_WIN32 + SetFocus (GDK_WINDOW_XWINDOW (plug->socket_window)); +#endif gdk_flush (); gdk_error_trap_pop (); @@ -292,6 +296,7 @@ gtk_plug_key_press_event (GtkWidget *widget, static void gtk_plug_forward_key_press (GtkPlug *plug, GdkEventKey *event) { +#if GDK_WINDOWING == GDK_WINDOWING_X11 XEvent xevent; xevent.xkey.type = KeyPress; @@ -316,6 +321,147 @@ gtk_plug_forward_key_press (GtkPlug *plug, GdkEventKey *event) False, NoEventMask, &xevent); gdk_flush (); gdk_error_trap_pop (); +#elif GDK_WINDOWING == GDK_WINDOWING_WIN32 + /* This is pretty bogus, and not tested at all. */ + WPARAM wParam; + LPARAM lParam; + gboolean no_WM_CHAR = TRUE; + + lParam = 0; + switch (event->keyval) + { + case GDK_Cancel: + wParam = VK_CANCEL; break; + case GDK_BackSpace: + wParam = VK_BACK; break; + case GDK_Tab: + wParam = VK_TAB; break; + case GDK_Clear: + wParam = VK_CLEAR; break; + case GDK_Return: + wParam = VK_RETURN; break; + case GDK_Shift_L: + wParam = VK_SHIFT; break; + case GDK_Control_L: + wParam = VK_CONTROL; break; + case GDK_Control_R: + wParam = VK_CONTROL; lParam |= 0x01000000; break; + case GDK_Alt_L: + wParam = VK_MENU; break; + case GDK_Alt_R: + wParam = VK_MENU; lParam |= 0x01000000; break; + case GDK_Pause: + wParam = VK_PAUSE; break; + case GDK_Caps_Lock: + wParam = VK_CAPITAL; break; + case GDK_Escape: + wParam = VK_ESCAPE; break; + case GDK_Prior: + wParam = VK_PRIOR; break; + case GDK_Next: + wParam = VK_NEXT; break; + case GDK_End: + wParam = VK_END; break; + case GDK_Home: + wParam = VK_HOME; break; + case GDK_Left: + wParam = VK_LEFT; break; + case GDK_Up: + wParam = VK_UP; break; + case GDK_Right: + wParam = VK_RIGHT; break; + case GDK_Down: + wParam = VK_DOWN; break; + case GDK_Select: + wParam = VK_SELECT; break; + case GDK_Print: + wParam = VK_PRINT; break; + case GDK_Execute: + wParam = VK_EXECUTE; break; + case GDK_Insert: + wParam = VK_INSERT; break; + case GDK_Delete: + wParam = VK_DELETE; break; + case GDK_Help: + wParam = VK_HELP; break; + case GDK_KP_0: + wParam = VK_NUMPAD0; break; + case GDK_KP_1: + wParam = VK_NUMPAD1; break; + case GDK_KP_2: + wParam = VK_NUMPAD2; break; + case GDK_KP_3: + wParam = VK_NUMPAD3; break; + case GDK_KP_4: + wParam = VK_NUMPAD4; break; + case GDK_KP_5: + wParam = VK_NUMPAD5; break; + case GDK_KP_6: + wParam = VK_NUMPAD6; break; + case GDK_KP_7: + wParam = VK_NUMPAD7; break; + case GDK_KP_8: + wParam = VK_NUMPAD8; break; + case GDK_KP_9: + wParam = VK_NUMPAD9; break; + case GDK_KP_Multiply: + wParam = VK_MULTIPLY; break; + case GDK_KP_Add: + wParam = VK_ADD; break; + case GDK_KP_Separator: + wParam = VK_SEPARATOR; break; + case GDK_KP_Subtract: + wParam = VK_SUBTRACT; break; + case GDK_KP_Decimal: + wParam = VK_DECIMAL; break; + case GDK_KP_Divide: + wParam = VK_DIVIDE; break; + case GDK_F1: + wParam = VK_F1; break; + case GDK_F2: + wParam = VK_F2; break; + case GDK_F3: + wParam = VK_F3; break; + case GDK_F4: + wParam = VK_F4; break; + case GDK_F5: + wParam = VK_F5; break; + case GDK_F6: + wParam = VK_F6; break; + case GDK_F7: + wParam = VK_F7; break; + case GDK_F8: + wParam = VK_F8; break; + case GDK_F9: + wParam = VK_F9; break; + case GDK_F10: + wParam = VK_F10; break; + case GDK_F11: + wParam = VK_F11; break; + case GDK_F12: + wParam = VK_F12; break; + case GDK_F13: + wParam = VK_F13; break; + case GDK_F14: + wParam = VK_F14; break; + case GDK_F15: + wParam = VK_F15; break; + case GDK_F16: + wParam = VK_F16; break; + default: + wParam = event->keyval; + no_WM_CHAR = FALSE; + break; + } + + PostMessage (GDK_WINDOW_XWINDOW (plug->socket_window), + WM_KEYDOWN, wParam, lParam); + if (!no_WM_CHAR) + PostMessage (GDK_WINDOW_XWINDOW (plug->socket_window), + WM_CHAR, wParam, lParam); + PostMessage (GDK_WINDOW_XWINDOW (plug->socket_window), + WM_KEYUP, wParam, lParam); +#endif } /* Copied from Window, Ughh */ @@ -422,6 +568,7 @@ gtk_plug_set_focus (GtkWindow *window, if (focus && !GTK_WIDGET_HAS_FOCUS(window)) { +#if GDK_WINDOWING == GDK_WINDOWING_X11 XEvent xevent; xevent.xfocus.type = FocusIn; @@ -436,5 +583,8 @@ gtk_plug_set_focus (GtkWindow *window, False, NoEventMask, &xevent); gdk_flush (); gdk_error_trap_pop (); +#elif GDK_WINDOWING == GDK_WINDOWING_WIN32 + /* XXX Not implemented */ +#endif } } diff --git a/gtk/gtkpreview.c b/gtk/gtkpreview.c index 05dd3432fe..b32210a711 100644 --- a/gtk/gtkpreview.c +++ b/gtk/gtkpreview.c @@ -24,11 +24,14 @@ * GTK+ at ftp://ftp.gtk.org/pub/gtk/. */ +#include "config.h" #include #include #include +#ifdef HAVE_SYS_PARAM_H #include +#endif #include "gdk/gdkx.h" #include "gdk/gdkrgb.h" #include "gtkpreview.h" diff --git a/gtk/gtkrange.c b/gtk/gtkrange.c index 1c2b989363..a01f72edf3 100644 --- a/gtk/gtkrange.c +++ b/gtk/gtkrange.c @@ -999,6 +999,8 @@ gtk_range_motion_notify (GtkWidget *widget, if (event->is_hint || (event->window != range->slider)) gdk_window_get_pointer (range->slider, &x, &y, &mods); + else + mods = event->state; switch (range->button) { diff --git a/gtk/gtkrc.c b/gtk/gtkrc.c index 8327eeb09e..519422f562 100644 --- a/gtk/gtkrc.c +++ b/gtk/gtkrc.c @@ -24,16 +24,32 @@ * GTK+ at ftp://ftp.gtk.org/pub/gtk/. */ +#include "config.h" + +#include "gdk/gdkx.h" + +#if GDK_WINDOWING == GDK_WINDOWING_X11 #include /* so we get the right setlocale */ +#else +#include +#endif #include +#ifdef HAVE_UNISTD_H #include +#endif #include +#ifdef HAVE_SYS_PARAM_H #include +#endif #include #include #include #include +#ifdef _MSC_VER +#include +#endif + #include "gtkrc.h" #include "gtkbindings.h" #include "gtkthemes.h" @@ -113,7 +129,7 @@ static void gtk_rc_add_initial_default_files (void); static const GScannerConfig gtk_rc_scanner_config = { ( - " \t\n" + " \t\r\n" ) /* cset_skip_characters */, ( G_CSET_a_2_z @@ -210,16 +226,49 @@ static GtkImageLoader image_loader = NULL; /* RC file handling */ +#ifdef NATIVE_WIN32 + +static gchar * +get_gtk_sysconf_directory () +{ + static gchar gtk_sysconf_dir[200]; + gchar win_dir[100]; + + GetWindowsDirectory (win_dir, sizeof (win_dir)); + sprintf (gtk_sysconf_dir, "%s\\gtk", win_dir); + return gtk_sysconf_dir; +} + +static gchar * +get_themes_directory () +{ + /* We really should fetch this from the Registry. The GIMP + * installation program stores the Themes installation + * directory in HKLM\Software\GNU\GTk+\Themes\InstallDirectory. + * Later. + */ + static gchar themes_dir[200]; + + sprintf (themes_dir, "%s\\themes", get_gtk_sysconf_directory ()); + return themes_dir; +} + +#endif + gchar * gtk_rc_get_theme_dir(void) { gchar *var, *path; +#ifndef NATIVE_WIN32 var = getenv("GTK_DATA_PREFIX"); if (var) path = g_strdup_printf("%s%s", var, "/share/themes"); else path = g_strdup_printf("%s%s", GTK_DATA_PREFIX, "/share/themes"); +#else + path = g_strdup (get_themes_directory ()); +#endif return path; } @@ -229,11 +278,15 @@ gtk_rc_get_module_dir(void) { gchar *var, *path; +#ifndef NATIVE_WIN32 var = getenv("GTK_EXE_PREFIX"); if (var) path = g_strdup_printf("%s%s", var, "/lib/gtk/themes/engines"); else path = g_strdup_printf("%s%s", GTK_EXE_PREFIX, "/lib/gtk/themes/engines"); +#else + path = g_strdup_printf ("%s%s", get_themes_directory (), "\\engines"); +#endif return path; } @@ -244,18 +297,24 @@ gtk_rc_append_default_pixmap_path(void) gchar *var, *path; gint n; +#ifndef NATIVE_WIN32 var = getenv("GTK_DATA_PREFIX"); if (var) path = g_strdup_printf("%s%s", var, "/share/gtk/themes"); else path = g_strdup_printf("%s%s", GTK_DATA_PREFIX, "/share/gtk/themes"); +#else + path = g_strdup (get_themes_directory ()); +#endif for (n = 0; pixmap_path[n]; n++) ; if (n >= GTK_RC_MAX_PIXMAP_PATHS - 1) - return; - pixmap_path[n++] = g_strdup(path); + { + g_free (path); + return; + } + pixmap_path[n++] = path; pixmap_path[n] = NULL; - g_free(path); } static void @@ -280,20 +339,28 @@ gtk_rc_append_default_module_path(void) if (n >= GTK_RC_MAX_MODULE_PATHS - 1) return; +#ifndef NATIVE_WIN32 var = getenv("GTK_EXE_PREFIX"); if (var) path = g_strdup_printf("%s%s", var, "/lib/gtk/themes/engines"); else path = g_strdup_printf("%s%s", GTK_EXE_PREFIX, "/lib/gtk/themes/engines"); - module_path[n++] = g_strdup(path); - g_free(path); +#else + path = g_strdup_printf ("%s%s", get_themes_directory (), "\\engines"); +#endif + module_path[n++] = path; - var = getenv("HOME"); + var = g_get_home_dir (); if (var) - path = g_strdup_printf("%s%s", var, ".gtk/lib/themes/engines"); - module_path[n++] = g_strdup(path); + { +#ifndef NATIVE_WIN32 + path = g_strdup_printf ("%s%s", var, "/.gtk/lib/themes/engines"); +#else + path = g_strdup_printf ("%s%s", var, "\\_gtk\\themes\\engines"); +#endif + module_path[n++] = path; + } module_path[n] = NULL; - g_free(path); } static void @@ -310,10 +377,10 @@ gtk_rc_add_initial_default_files (void) gtk_rc_default_files[0] = NULL; init = TRUE; - var = getenv("GTK_RC_FILES"); + var = g_getenv("GTK_RC_FILES"); if (var) { - files = g_strsplit (var, ":", 128); + files = g_strsplit (var, G_SEARCHPATH_SEPARATOR_S, 128); i=0; while (files[i]) { @@ -324,13 +391,21 @@ gtk_rc_add_initial_default_files (void) } else { - str = g_strdup_printf ("%s%s", GTK_SYSCONFDIR, "/gtk/gtkrc"); +#ifndef NATIVE_WIN32 + str = g_strdup (GTK_SYSCONFDIR G_DIR_SEPARATOR_S "gtk" G_DIR_SEPARATOR_S "gtkrc"); +#else + str = g_strdup_printf ("%s\\gtkrc", get_gtk_sysconf_directory ()); +#endif gtk_rc_add_default_file (str); g_free (str); - str = g_strdup_printf ("%s%s", g_get_home_dir (), "/.gtkrc"); - gtk_rc_add_default_file (str); - g_free (str); + var = g_get_home_dir (); + if (var) + { + str = g_strdup_printf ("%s" G_DIR_SEPARATOR_S ".gtkrc", var); + gtk_rc_add_default_file (str); + g_free (str); + } } } @@ -492,7 +567,7 @@ gtk_rc_parse_file (const gchar *filename, gboolean reload) { /* Get the absolute pathname */ - if (rc_file->name[0] == '/') + if (g_path_is_absolute (rc_file->name)) rc_file->canonical_name = rc_file->name; else { @@ -503,7 +578,7 @@ gtk_rc_parse_file (const gchar *filename, gboolean reload) str = g_string_new (cwd); g_free (cwd); - g_string_append_c (str, '/'); + g_string_append_c (str, G_DIR_SEPARATOR); g_string_append (str, rc_file->name); rc_file->canonical_name = str->str; @@ -526,7 +601,7 @@ gtk_rc_parse_file (const gchar *filename, gboolean reload) gchar *dir; dir = g_strdup(rc_file->canonical_name); - for (i = strlen(dir) - 1; (i >= 0) && (dir[i] != '/'); i--) + for (i = strlen(dir) - 1; (i >= 0) && (dir[i] != G_DIR_SEPARATOR); i--) dir[i] = 0; gtk_rc_append_pixmap_path(dir); g_free(dir); @@ -1513,7 +1588,8 @@ gtk_rc_find_pixmap_in_path (GScanner *scanner, for (i = 0; (i < GTK_RC_MAX_PIXMAP_PATHS) && (pixmap_path[i] != NULL); i++) { - buf = g_strdup_printf ("%s%c%s", pixmap_path[i], '/', pixmap_file); + buf = g_strdup_printf ("%s" G_DIR_SEPARATOR_S "%s", + pixmap_path[i], pixmap_file); fd = open (buf, O_RDONLY); if (fd >= 0) @@ -1544,7 +1620,8 @@ gtk_rc_find_module_in_path (const gchar *module_file) for (i = 0; (i < GTK_RC_MAX_MODULE_PATHS) && (module_path[i] != NULL); i++) { - buf = g_strdup_printf ("%s%c%s", module_path[i], '/', module_file); + buf = g_strdup_printf ("%s" G_DIR_SEPARATOR_S "%s", + module_path[i], module_file); fd = open (buf, O_RDONLY); if (fd >= 0) @@ -1908,7 +1985,7 @@ gtk_rc_parse_pixmap_path_string (gchar *pix_path) for (end_offset = 0; end_offset <= path_len; end_offset++) { - if ((buf[end_offset] == ':') || + if ((buf[end_offset] == G_SEARCHPATH_SEPARATOR) || (end_offset == path_len)) { buf[end_offset] = '\0'; @@ -1964,7 +2041,7 @@ gtk_rc_parse_module_path_string (gchar *mod_path) for (end_offset = 0; end_offset <= path_len; end_offset++) { - if ((buf[end_offset] == ':') || + if ((buf[end_offset] == G_SEARCHPATH_SEPARATOR) || (end_offset == path_len)) { buf[end_offset] = '\0'; diff --git a/gtk/gtkselection.c b/gtk/gtkselection.c index 39733fad50..6ea50d680e 100644 --- a/gtk/gtkselection.c +++ b/gtk/gtkselection.c @@ -63,8 +63,12 @@ /* Maximum size of a sent chunk, in bytes. Also the default size of our buffers */ +#if GDK_WINDOWING == GDK_WINDOWING_WIN32 +/* No chunks on Win32 */ +#define GTK_SELECTION_MAX_SIZE G_MAXINT +#else #define GTK_SELECTION_MAX_SIZE 4000 - +#endif enum { INCR, MULTIPLE, diff --git a/gtk/gtksocket.c b/gtk/gtksocket.c index 7a98f48ba5..a473213860 100644 --- a/gtk/gtksocket.c +++ b/gtk/gtksocket.c @@ -32,6 +32,8 @@ #include "gtksocket.h" #include "gtkdnd.h" +#if GDK_WINDOWING == GDK_WINDOWING_X11 + /* Forward declararations */ static void gtk_socket_class_init (GtkSocketClass *klass); @@ -745,3 +747,20 @@ gtk_socket_filter_func (GdkXEvent *gdk_xevent, GdkEvent *event, gpointer data) return return_val; } + +#elif GDK_WINDOWING == GDK_WINDOWING_WIN32 + +GtkWidget* +gtk_socket_new () +{ + g_error ("GtkSocket not implemented"); + return NULL; +} + +void +gtk_socket_steal (GtkSocket *socket, guint32 id) +{ + g_error ("GtkSocket not implemented"); +} + +#endif /* GDK_WINDOWING */ diff --git a/gtk/gtkthemes.c b/gtk/gtkthemes.c index b92a218ae1..e39646de8e 100644 --- a/gtk/gtkthemes.c +++ b/gtk/gtkthemes.c @@ -78,13 +78,14 @@ gtk_theme_engine_get (gchar *name) if (!result) { - gchar fullname[1024]; + gchar *fullname; gchar *engine_path; GModule *library; #ifndef __EMX__ - g_snprintf (fullname, 1024, "lib%s.so", name); + fullname = g_module_build_path (NULL, name); #else + fullname = g_malloc (13); gen_8_3_dll_name(name, fullname); #endif engine_path = gtk_rc_find_module_in_path (fullname); @@ -102,8 +103,10 @@ gtk_theme_engine_get (gchar *name) g_warning (_("Unable to locate loadable module in module_path: \"%s\","), fullname); + g_free (fullname); return NULL; } + g_free (fullname); /* load the lib */ diff --git a/gtk/makeenums.h b/gtk/makeenums.h index 3d42f093d5..ab9df45488 100644 --- a/gtk/makeenums.h +++ b/gtk/makeenums.h @@ -1,5 +1,5 @@ -#include #include +#include #include #include #include diff --git a/gtk/makefile.msc b/gtk/makefile.msc new file mode 100755 index 0000000000..f662bff085 --- /dev/null +++ b/gtk/makefile.msc @@ -0,0 +1,398 @@ +## Makefile for building the gtk DLL with Microsoft C +## Use: nmake -f makefile.msc + +# Change this to wherever you want to install the DLLs. This directory +# should be in your PATH. +BIN = C:\bin + +# This is the location of pthreads for Win32, +# see http://sourceware.cygnus.com/pthreads-win32/ +PTHREAD_LIB = ..\..\lib\pthread.lib +PTHREAD_INC = ..\..\include + +# Full optimization: +OPTIMIZE = -Ox +# Debugging: +#OPTIMIZE = -Zi + +################################################################ + +# Nothing much configurable below + +# cl -? described the options +# Some files use near as an identifier +CC = cl -G5 -GF $(OPTIMIZE) -W3 -MD -DHAVE_CONFIG_H -nologo -Dnear=xxnear + +# Perl and awk are needed to generate some source files. +# These generated source files are distribuyted with the Win32 GTk+ source +# distributions, so don't worry if you don't have perl and awk. +PERL = perl +AWK = awk + +# MEMCHECKLIB = mcw50.lib + +LDFLAGS = /link /machine:ix86 # /debug /debugtype:cv +INSTALL = copy +TOUCH = copy makefile.msc+nul + +GLIB_VER=1.2 +GTK_VER=1.3 + +GDK = ..\gdk +GLIB = ..\..\glib-$(GLIB_VER) + +CFLAGS = -I. -I.. -I../gdk -I$(GLIB) -I$(GLIB)\gmodule -DGTK_DISABLE_COMPAT_H + +all : \ + ..\config.h \ + gtkfeatures.h \ + generated \ + gtk-$(GTK_VER).dll\ + testdnd.exe \ + testgtk.exe \ + testinput.exe \ + testrgb.exe \ + testselection.exe \ + testthreads.exe \ + simple.exe + +install : all + $(INSTALL) gtk-$(GTK_VER).dll $(BIN) + $(TOUCH) install + +gtk_OBJECTS = \ + fnmatch.obj \ + gtkaccelgroup.obj \ + gtkaccellabel.obj \ + gtkadjustment.obj \ + gtkalignment.obj \ + gtkarg.obj \ + gtkarrow.obj \ + gtkaspectframe.obj \ + gtkbbox.obj \ + gtkbin.obj \ + gtkbindings.obj \ + gtkbox.obj \ + gtkbutton.obj \ + gtkcalendar.obj \ + gtkcheckbutton.obj \ + gtkcheckmenuitem.obj \ + gtkclist.obj \ + gtkcolorsel.obj \ + gtkcombo.obj \ + gtkcontainer.obj \ + gtkctree.obj \ + gtkcurve.obj \ + gtkdata.obj \ + gtkdialog.obj \ + gtkdnd.obj \ + gtkdrawingarea.obj \ + gtkeditable.obj \ + gtkentry.obj \ + gtkeventbox.obj \ + gtkfilesel.obj \ + gtkfixed.obj \ + gtkfontsel.obj \ + gtkframe.obj \ + gtkgamma.obj \ + gtkgc.obj \ + gtkhandlebox.obj \ + gtkhbbox.obj \ + gtkhbox.obj \ + gtkhpaned.obj \ + gtkhruler.obj \ + gtkhscale.obj \ + gtkhscrollbar.obj \ + gtkhseparator.obj \ + gtkimage.obj \ + gtkinputdialog.obj \ + gtkinvisible.obj \ + gtkitem.obj \ + gtkitemfactory.obj \ + gtklabel.obj \ + gtklayout.obj \ + gtklist.obj \ + gtklistitem.obj \ + gtkmain.obj \ + gtkmarshal.obj \ + gtkmenu.obj \ + gtkmenubar.obj \ + gtkmenufactory.obj \ + gtkmenuitem.obj \ + gtkmenushell.obj \ + gtkmisc.obj \ + gtknotebook.obj \ + gtkobject.obj \ + gtkoptionmenu.obj \ + gtkpacker.obj \ + gtkpaned.obj \ + gtkpixmap.obj \ + gtkplug.obj \ + gtkpreview.obj \ + gtkprogress.obj \ + gtkprogressbar.obj \ + gtkradiobutton.obj \ + gtkradiomenuitem.obj \ + gtkrange.obj \ + gtkrc.obj \ + gtkruler.obj \ + gtkscale.obj \ + gtkscrollbar.obj \ + gtkscrolledwindow.obj \ + gtkselection.obj \ + gtkseparator.obj \ + gtksignal.obj \ + gtksocket.obj \ + gtkspinbutton.obj \ + gtkstatusbar.obj \ + gtkstyle.obj \ + gtktable.obj \ + gtktearoffmenuitem.obj \ + gtktext.obj \ + gtkthemes.obj \ + gtktipsquery.obj \ + gtktogglebutton.obj \ + gtktoolbar.obj \ + gtktooltips.obj \ + gtktree.obj \ + gtktreeitem.obj \ + gtktypeutils.obj\ + gtkvbbox.obj \ + gtkvbox.obj \ + gtkviewport.obj \ + gtkvpaned.obj \ + gtkvruler.obj \ + gtkvscale.obj \ + gtkvscrollbar.obj \ + gtkvseparator.obj \ + gtkwidget.obj \ + gtkwindow.obj + +# Source headers which are non-autogenerated headers +source_headers = \ + gtk.h \ + gtkaccelgroup.h \ + gtkaccellabel.h \ + gtkadjustment.h \ + gtkalignment.h \ + gtkarg.h \ + gtkarrow.h \ + gtkaspectframe.h \ + gtkbin.h \ + gtkbindings.h \ + gtkbbox.h \ + gtkbox.h \ + gtkbutton.h \ + gtkcalendar.h \ + gtkcheckbutton.h \ + gtkcheckmenuitem.h \ + gtkclist.h \ + gtkcolorsel.h \ + gtkcombo.h \ + gtkcompat.h \ + gtkcontainer.h \ + gtkctree.h \ + gtkcurve.h \ + gtkdata.h \ + gtkdebug.h \ + gtkdialog.h \ + gtkdnd.h \ + gtkdrawingarea.h \ + gtkeditable.h \ + gtkentry.h \ + gtkenums.h \ + gtkeventbox.h \ + gtkfilesel.h \ + gtkfixed.h \ + gtkfontsel.h \ + gtkframe.h \ + gtkgamma.h \ + gtkgc.h \ + gtkhandlebox.h \ + gtkhbbox.h \ + gtkhbox.h \ + gtkhpaned.h \ + gtkhruler.h \ + gtkhscale.h \ + gtkhscrollbar.h \ + gtkhseparator.h \ + gtkimage.h \ + gtkinputdialog.h \ + gtkintl.h \ + gtkinvisible.h \ + gtkitem.h \ + gtkitemfactory.h \ + gtklabel.h \ + gtklayout.h \ + gtklist.h \ + gtklistitem.h \ + gtkmain.h \ + gtkmenu.h \ + gtkmenubar.h \ + gtkmenufactory.h \ + gtkmenuitem.h \ + gtkmenushell.h \ + gtkmisc.h \ + gtknotebook.h \ + gtkobject.h \ + gtkoptionmenu.h \ + gtkpacker.h \ + gtkpaned.h \ + gtkpixmap.h \ + gtkplug.h \ + gtkpreview.h \ + gtkprivate.h \ + gtkprogress.h \ + gtkprogressbar.h \ + gtkradiobutton.h \ + gtkradiomenuitem.h \ + gtkrange.h \ + gtkrc.h \ + gtkruler.h \ + gtkscale.h \ + gtkscrollbar.h \ + gtkscrolledwindow.h \ + gtkselection.h \ + gtkseparator.h \ + gtksignal.h \ + gtksocket.h \ + gtkspinbutton.h \ + gtkstyle.h \ + gtkstatusbar.h \ + gtktable.h \ + gtktearoffmenuitem.h \ + gtktext.h \ + gtkthemes.h \ + gtktipsquery.h \ + gtktogglebutton.h \ + gtktoolbar.h \ + gtktooltips.h \ + gtktree.h \ + gtktreeitem.h \ + gtktypeutils.h \ + gtkvbbox.h \ + gtkvbox.h \ + gtkviewport.h \ + gtkvpaned.h \ + gtkvruler.h \ + gtkvscale.h \ + gtkvscrollbar.h \ + gtkvseparator.h \ + gtkwidget.h \ + gtkwindow.h + +# More headers to use when autogenerating. +gdk_headers = \ + ..\gdk\gdktypes.h \ + ..\gdk\gdkrgb.h + +..\config.h : ..\config.h.win32 + copy ..\config.h.win32 ..\config.h + +gtkfeatures.h : gtkfeatures.h.win32 + copy gtkfeatures.h.win32 gtkfeatures.h + +# +# Generated source files: +# +generated : gtk.defs gtktypebuiltins.h gtktypebuiltins_vars.c gtktypebuiltins_ids.c gtktypebuiltins_evals.c gtkmarshal.h gtkmarshal.c + $(TOUCH) generated + +gtk.defs : makeenums.pl gtk-boxed.defs $(source_headers) $(gdk_headers) + $(PERL) makeenums.pl defs $(source_headers) $(gdk_headers) >gd.tmp + copy gd.tmp+gtk-boxed.defs gtk.defs + @erase gd.tmp + +# generate type identifier header (GTK_TYPE_WIDGET_FLAGS) +gtktypebuiltins.h: gtk.defs maketypes.awk + $(AWK) -f maketypes.awk gtk.defs macros >gtktypebuiltins.h + +# generate type identifier variables (GTK_TYPE_WIDGET_FLAGS) +gtktypebuiltins_vars.c: gtk.defs maketypes.awk + $(AWK) -f maketypes.awk gtk.defs variables >gtktypebuiltins_vars.c + +# generate type entries for type-id registration +gtktypebuiltins_ids.c: gtk.defs maketypes.awk + $(AWK) -f maketypes.awk gtk.defs entries >gtktypebuiltins_ids.c + +# generate enum value arrays +gtktypebuiltins_evals.c: makeenums.pl gtk.defs + $(PERL) makeenums.pl arrays $(source_headers) $(gdk_headers) >gtktypebuiltins_evals.c + +gtkmarshal.h gtkmarshal.c : gtkmarshal.list genmarshal.pl + $(PERL) genmarshal.pl + del gtkmarshal.c + rename s-gmc gtkmarshal.c + del gtkmarshal.h + rename s-gmh gtkmarshal.h + +# +# Linking: +# +gtk-$(GTK_VER).dll : $(gtk_OBJECTS) gtk.def + $(CC) $(CFLAGS) -LD -Fegtk-$(GTK_VER).dll $(gtk_OBJECTS) $(MEMCHECKLIB) $(GDK)\gdk-$(GTK_VER).lib $(GLIB)\glib-$(GLIB_VER).lib $(GLIB)\gmodule-$(GLIB_VER).lib gdi32.lib user32.lib $(LDFLAGS) /def:gtk.def + +# General rule for compiling the objects into the DLL +.c.obj : + $(CC) $(CFLAGS) -GD -c -DGTK_COMPILATION -DG_LOG_DOMAIN=\"Gtk\" $< + +# +# Test programs: +# +testdnd.exe : testdnd.obj + $(CC) $(CFLAGS) testdnd.obj gtk-$(GTK_VER).lib $(GDK)\gdk-$(GTK_VER).lib $(GLIB)\glib-$(GLIB_VER).lib $(LDFLAGS) + +# Must have separate rules for these objects that don't go in the DLL +testdnd.obj : testdnd.c + $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"testdnd\" testdnd.c + +testgtk.exe : testgtk.obj + $(CC) $(CFLAGS) testgtk.obj $(MEMCHECKLIB) gtk-$(GTK_VER).lib $(GDK)\gdk-$(GTK_VER).lib $(GLIB)\glib-$(GLIB_VER).lib $(LDFLAGS) + +testgtk.obj : testgtk.c + $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"testgtk\" testgtk.c + +testinput.exe : testinput.obj + $(CC) $(CFLAGS) testinput.obj gtk-$(GTK_VER).lib $(GDK)\gdk-$(GTK_VER).lib $(GLIB)\glib-$(GLIB_VER).lib $(LDFLAGS) + +testinput.obj : testinput.c + $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"testinput\" testinput.c + +testrgb.exe : testrgb.obj + $(CC) $(CFLAGS) testrgb.obj gtk-$(GTK_VER).lib $(GDK)\gdk-$(GTK_VER).lib $(GLIB)\glib-$(GLIB_VER).lib $(LDFLAGS) + +testrgb.obj : testrgb.c + $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"testrgb\" testrgb.c + +testselection.exe : testselection.obj + $(CC) $(CFLAGS) testselection.obj gtk-$(GTK_VER).lib $(GDK)\gdk-$(GTK_VER).lib $(GLIB)\glib-$(GLIB_VER).lib $(LDFLAGS) + +testselection.obj : testselection.c + $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"testselection\" testselection.c + +testthreads.exe : testthreads.obj + $(CC) $(CFLAGS) testthreads.obj gtk-$(GTK_VER).lib $(GDK)\gdk-$(GTK_VER).lib $(GLIB)\glib-$(GLIB_VER).lib $(GLIB)\gthread-$(GLIB_VER).lib $(PTHREAD_LIB) $(LDFLAGS) + +testthreads.obj : testthreads.c + $(CC) $(CFLAGS) -I$(PTHREAD_INC) -c -DG_LOG_DOMAIN=\"testthreads\" -DUSE_PTHREADS=1 testthreads.c + +simple.exe : simple.obj + $(CC) $(CFLAGS) simple.obj gtk-$(GTK_VER).lib $(GDK)\gdk-$(GTK_VER).lib $(GLIB)\glib-$(GLIB_VER).lib $(LDFLAGS) + +simple.obj : simple.c + $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"simple\" simple.c + +# The clean target doesn't remove the generated sources +clean: + del *.exe + del *.obj + del *.dll + del *.lib + del *.exp + del *.err + del *.map + del *.sym + del *.lk1 + del *.mk1 + del *.pdb + del *.ilk diff --git a/gtk/maketypes.awk b/gtk/maketypes.awk index 44fec3f774..ab951bb964 100644 --- a/gtk/maketypes.awk +++ b/gtk/maketypes.awk @@ -20,7 +20,20 @@ BEGIN { } if (gen_macros) - printf ("/* type macros, generated by maketypes.awk */\n\n"); + { + printf ("/* type macros, generated by maketypes.awk */\n"); + printf ("\n"); + printf ("#ifdef NATIVE_WIN32\n"); + printf ("# ifdef GTK_COMPILATION\n"); + printf ("# define GTKTYPEBUILTINS_VAR __declspec(dllexport)\n"); + printf ("# else\n"); + printf ("# define GTKTYPEBUILTINS_VAR extern __declspec(dllimport)\n"); + printf ("# endif\n"); + printf ("#else\n"); + printf ("# define GTKTYPEBUILTINS_VAR extern\n"); + printf ("#endif\n"); + printf ("\n"); + } else if (gen_entries) printf ("/* type entries, generated by maketypes.awk */\n\n"); else if (gen_vars) @@ -56,7 +69,7 @@ function generate (generate_1) { if (gen_macros) { - printf ("extern GtkType %s;\n", type_macro); + printf ("GTKTYPEBUILTINS_VAR GtkType %s;\n", type_macro); } if (gen_entries) { diff --git a/gtk/testrgb.c b/gtk/testrgb.c index 99cd6eba52..c629598bee 100644 --- a/gtk/testrgb.c +++ b/gtk/testrgb.c @@ -17,6 +17,10 @@ * Boston, MA 02111-1307, USA. */ +#include "config.h" + +#include + /* * Modified by the GTK+ Team and others 1997-1999. See the AUTHORS * file for a list of people on the GTK+ Team. See the ChangeLog @@ -28,10 +32,10 @@ /* Note: these #includes differ slightly from the testrgb.c file included in the GdkRgb release. */ -/* For gettimeofday */ -#include #include +#ifdef HAVE_UNISTD_H #include +#endif #include #include "gtk.h" @@ -44,24 +48,12 @@ quit_func (GtkWidget *widget, gpointer dummy) #define WIDTH 320 #define HEIGHT 200 - -gdouble -get_time (void) -{ - struct timeval tv; - struct timezone tz; - - gettimeofday (&tv, &tz); - - return tv.tv_sec + 1e-6 * tv.tv_usec; -} - #define NUM_ITERS 100 static void testrgb_rgb_test (GtkWidget *drawing_area) { - guchar buf[WIDTH * HEIGHT * 6]; + guchar *buf; gint i, j; gint offset; guchar val; @@ -69,6 +61,9 @@ testrgb_rgb_test (GtkWidget *drawing_area) gint x, y; gboolean dither; int dith_max; + GTimer *timer; + + buf = g_malloc (WIDTH * HEIGHT * 6); val = 0; for (j = 0; j < WIDTH * HEIGHT * 6; j++) @@ -94,9 +89,10 @@ testrgb_rgb_test (GtkWidget *drawing_area) else dith_max = 1; + timer = g_timer_new (); for (dither = 0; dither < dith_max; dither++) { - start_time = get_time (); + start_time = g_timer_elapsed (timer, NULL); for (i = 0; i < NUM_ITERS; i++) { offset = (rand () % (WIDTH * HEIGHT * 3)) & -4; @@ -107,7 +103,7 @@ testrgb_rgb_test (GtkWidget *drawing_area) GDK_RGB_DITHER_NONE, buf + offset, WIDTH * 3); } - total_time = get_time () - start_time; + total_time = g_timer_elapsed (timer, NULL) - start_time; g_print ("Color test%s time elapsed: %.2fs, %.1f fps, %.2f megapixels/s\n", dither ? " (dithered)" : "", total_time, @@ -117,7 +113,7 @@ testrgb_rgb_test (GtkWidget *drawing_area) for (dither = 0; dither < dith_max; dither++) { - start_time = get_time (); + start_time = g_timer_elapsed (timer, NULL); for (i = 0; i < NUM_ITERS; i++) { offset = (rand () % (WIDTH * HEIGHT)) & -4; @@ -128,7 +124,7 @@ testrgb_rgb_test (GtkWidget *drawing_area) GDK_RGB_DITHER_NONE, buf + offset, WIDTH); } - total_time = get_time () - start_time; + total_time = g_timer_elapsed (timer, NULL) - start_time; g_print ("Grayscale test%s time elapsed: %.2fs, %.1f fps, %.2f megapixels/s\n", dither ? " (dithered)" : "", total_time, diff --git a/tests/testrgb.c b/tests/testrgb.c index 99cd6eba52..c629598bee 100644 --- a/tests/testrgb.c +++ b/tests/testrgb.c @@ -17,6 +17,10 @@ * Boston, MA 02111-1307, USA. */ +#include "config.h" + +#include + /* * Modified by the GTK+ Team and others 1997-1999. See the AUTHORS * file for a list of people on the GTK+ Team. See the ChangeLog @@ -28,10 +32,10 @@ /* Note: these #includes differ slightly from the testrgb.c file included in the GdkRgb release. */ -/* For gettimeofday */ -#include #include +#ifdef HAVE_UNISTD_H #include +#endif #include #include "gtk.h" @@ -44,24 +48,12 @@ quit_func (GtkWidget *widget, gpointer dummy) #define WIDTH 320 #define HEIGHT 200 - -gdouble -get_time (void) -{ - struct timeval tv; - struct timezone tz; - - gettimeofday (&tv, &tz); - - return tv.tv_sec + 1e-6 * tv.tv_usec; -} - #define NUM_ITERS 100 static void testrgb_rgb_test (GtkWidget *drawing_area) { - guchar buf[WIDTH * HEIGHT * 6]; + guchar *buf; gint i, j; gint offset; guchar val; @@ -69,6 +61,9 @@ testrgb_rgb_test (GtkWidget *drawing_area) gint x, y; gboolean dither; int dith_max; + GTimer *timer; + + buf = g_malloc (WIDTH * HEIGHT * 6); val = 0; for (j = 0; j < WIDTH * HEIGHT * 6; j++) @@ -94,9 +89,10 @@ testrgb_rgb_test (GtkWidget *drawing_area) else dith_max = 1; + timer = g_timer_new (); for (dither = 0; dither < dith_max; dither++) { - start_time = get_time (); + start_time = g_timer_elapsed (timer, NULL); for (i = 0; i < NUM_ITERS; i++) { offset = (rand () % (WIDTH * HEIGHT * 3)) & -4; @@ -107,7 +103,7 @@ testrgb_rgb_test (GtkWidget *drawing_area) GDK_RGB_DITHER_NONE, buf + offset, WIDTH * 3); } - total_time = get_time () - start_time; + total_time = g_timer_elapsed (timer, NULL) - start_time; g_print ("Color test%s time elapsed: %.2fs, %.1f fps, %.2f megapixels/s\n", dither ? " (dithered)" : "", total_time, @@ -117,7 +113,7 @@ testrgb_rgb_test (GtkWidget *drawing_area) for (dither = 0; dither < dith_max; dither++) { - start_time = get_time (); + start_time = g_timer_elapsed (timer, NULL); for (i = 0; i < NUM_ITERS; i++) { offset = (rand () % (WIDTH * HEIGHT)) & -4; @@ -128,7 +124,7 @@ testrgb_rgb_test (GtkWidget *drawing_area) GDK_RGB_DITHER_NONE, buf + offset, WIDTH); } - total_time = get_time () - start_time; + total_time = g_timer_elapsed (timer, NULL) - start_time; g_print ("Grayscale test%s time elapsed: %.2fs, %.1f fps, %.2f megapixels/s\n", dither ? " (dithered)" : "", total_time,