gcc -mno-cygwin (egcs-1.1.2) on cygwin-b20.1.
* gdk/win32/makefile.cygwin gtk/makefile.cygwin: New files.
* config.h.win32: Changes for gcc.
* gdk/gdkrectangle.c: Include gdk.h as <gdk/gdk.h>.
* gdk/gdkcolor.c: config.h.win32 already defines strcasecmp.
* gdk/win32/gdkconfig.h: Only the MS compiler has wctype.h.
* gdk/win32/gdkdnd.c: Protect (unused) OLE2 stuff better.
Protect shl stuff unavaiilable with mingw32 headers.
* gdk/win32/gdkevents.c: Fix typo.
* gdk/win32/gdkglobals.c: Use GDKVAR here also for gcc.
* gdk/win32/gdkim.c: Use OEM code page for multibyte chars. (?)
* gdk/win32/gdkinput.c: Use __try __except only with the MS compiler.
* gdk/win32/gdkprivate.h: Make up for some stuff missing from
the mingw32 headers.
* gdk/win32/makefile.msc: Use latest Wintab kit and glib.
* gtk/gtkfilesel.c: Include <glib.h> early, to get stat->_stat
definition on Win32. Test for NATIVE_WIN32, not _MSC_VER.
* gtk/gtkfontsel.c: Protect CHARSET redefinition on Win32.
Test for NATIVE_WIN32, not _MSC_VER.
* gtk/gtkmain.c: No use warning about developer version on Win32,
there aren't any non-developer versions anyhow.
* gtk/gtkrc.c: Test for NATIVE_WIN32, not _MSC_VER.
* gtk/makefile.msc: Use pthread from another directory. Minor other
changes.
+1999-04-25 Tor Lillqvist <tml@iki.fi>
+
+ Support added for building using a GNU toolchain on Win32,
+ gcc -mno-cygwin (egcs-1.1.2) on cygwin-b20.1.
+
+ * gdk/win32/makefile.cygwin gtk/makefile.cygwin: New files.
+ * config.h.win32: Changes for gcc.
+ * gdk/gdkrectangle.c: Include gdk.h as <gdk/gdk.h>.
+ * gdk/gdkcolor.c: config.h.win32 already defines strcasecmp.
+ * gdk/win32/gdkconfig.h: Only the MS compiler has wctype.h.
+ * gdk/win32/gdkdnd.c: Protect (unused) OLE2 stuff better.
+ Protect shl stuff unavaiilable with mingw32 headers.
+ * gdk/win32/gdkevents.c: Fix typo.
+ * gdk/win32/gdkglobals.c: Use GDKVAR here also for gcc.
+ * gdk/win32/gdkim.c: Use OEM code page for multibyte chars. (?)
+ * gdk/win32/gdkinput.c: Use __try __except only with the MS compiler.
+ * gdk/win32/gdkprivate.h: Make up for some stuff missing from
+ the mingw32 headers.
+ * gdk/win32/makefile.msc: Use latest Wintab kit and glib.
+ * gtk/gtkfilesel.c: Include <glib.h> early, to get stat->_stat
+ definition on Win32. Test for NATIVE_WIN32, not _MSC_VER.
+ * gtk/gtkfontsel.c: Protect CHARSET redefinition on Win32.
+ Test for NATIVE_WIN32, not _MSC_VER.
+ * gtk/gtkmain.c: No use warning about developer version on Win32,
+ there aren't any non-developer versions anyhow.
+ * gtk/gtkrc.c: Test for NATIVE_WIN32, not _MSC_VER.
+ * gtk/makefile.msc: Use pthread from another directory. Minor other
+ changes.
+
Wed Apr 21 14:20:22 1999 George Lebl <jirka@5z.com>
* gdk/gdkwindow.c: (gdk_window_remove_filter) correctly remove the
+1999-04-25 Tor Lillqvist <tml@iki.fi>
+
+ Support added for building using a GNU toolchain on Win32,
+ gcc -mno-cygwin (egcs-1.1.2) on cygwin-b20.1.
+
+ * gdk/win32/makefile.cygwin gtk/makefile.cygwin: New files.
+ * config.h.win32: Changes for gcc.
+ * gdk/gdkrectangle.c: Include gdk.h as <gdk/gdk.h>.
+ * gdk/gdkcolor.c: config.h.win32 already defines strcasecmp.
+ * gdk/win32/gdkconfig.h: Only the MS compiler has wctype.h.
+ * gdk/win32/gdkdnd.c: Protect (unused) OLE2 stuff better.
+ Protect shl stuff unavaiilable with mingw32 headers.
+ * gdk/win32/gdkevents.c: Fix typo.
+ * gdk/win32/gdkglobals.c: Use GDKVAR here also for gcc.
+ * gdk/win32/gdkim.c: Use OEM code page for multibyte chars. (?)
+ * gdk/win32/gdkinput.c: Use __try __except only with the MS compiler.
+ * gdk/win32/gdkprivate.h: Make up for some stuff missing from
+ the mingw32 headers.
+ * gdk/win32/makefile.msc: Use latest Wintab kit and glib.
+ * gtk/gtkfilesel.c: Include <glib.h> early, to get stat->_stat
+ definition on Win32. Test for NATIVE_WIN32, not _MSC_VER.
+ * gtk/gtkfontsel.c: Protect CHARSET redefinition on Win32.
+ Test for NATIVE_WIN32, not _MSC_VER.
+ * gtk/gtkmain.c: No use warning about developer version on Win32,
+ there aren't any non-developer versions anyhow.
+ * gtk/gtkrc.c: Test for NATIVE_WIN32, not _MSC_VER.
+ * gtk/makefile.msc: Use pthread from another directory. Minor other
+ changes.
+
Wed Apr 21 14:20:22 1999 George Lebl <jirka@5z.com>
* gdk/gdkwindow.c: (gdk_window_remove_filter) correctly remove the
+1999-04-25 Tor Lillqvist <tml@iki.fi>
+
+ Support added for building using a GNU toolchain on Win32,
+ gcc -mno-cygwin (egcs-1.1.2) on cygwin-b20.1.
+
+ * gdk/win32/makefile.cygwin gtk/makefile.cygwin: New files.
+ * config.h.win32: Changes for gcc.
+ * gdk/gdkrectangle.c: Include gdk.h as <gdk/gdk.h>.
+ * gdk/gdkcolor.c: config.h.win32 already defines strcasecmp.
+ * gdk/win32/gdkconfig.h: Only the MS compiler has wctype.h.
+ * gdk/win32/gdkdnd.c: Protect (unused) OLE2 stuff better.
+ Protect shl stuff unavaiilable with mingw32 headers.
+ * gdk/win32/gdkevents.c: Fix typo.
+ * gdk/win32/gdkglobals.c: Use GDKVAR here also for gcc.
+ * gdk/win32/gdkim.c: Use OEM code page for multibyte chars. (?)
+ * gdk/win32/gdkinput.c: Use __try __except only with the MS compiler.
+ * gdk/win32/gdkprivate.h: Make up for some stuff missing from
+ the mingw32 headers.
+ * gdk/win32/makefile.msc: Use latest Wintab kit and glib.
+ * gtk/gtkfilesel.c: Include <glib.h> early, to get stat->_stat
+ definition on Win32. Test for NATIVE_WIN32, not _MSC_VER.
+ * gtk/gtkfontsel.c: Protect CHARSET redefinition on Win32.
+ Test for NATIVE_WIN32, not _MSC_VER.
+ * gtk/gtkmain.c: No use warning about developer version on Win32,
+ there aren't any non-developer versions anyhow.
+ * gtk/gtkrc.c: Test for NATIVE_WIN32, not _MSC_VER.
+ * gtk/makefile.msc: Use pthread from another directory. Minor other
+ changes.
+
Wed Apr 21 14:20:22 1999 George Lebl <jirka@5z.com>
* gdk/gdkwindow.c: (gdk_window_remove_filter) correctly remove the
+1999-04-25 Tor Lillqvist <tml@iki.fi>
+
+ Support added for building using a GNU toolchain on Win32,
+ gcc -mno-cygwin (egcs-1.1.2) on cygwin-b20.1.
+
+ * gdk/win32/makefile.cygwin gtk/makefile.cygwin: New files.
+ * config.h.win32: Changes for gcc.
+ * gdk/gdkrectangle.c: Include gdk.h as <gdk/gdk.h>.
+ * gdk/gdkcolor.c: config.h.win32 already defines strcasecmp.
+ * gdk/win32/gdkconfig.h: Only the MS compiler has wctype.h.
+ * gdk/win32/gdkdnd.c: Protect (unused) OLE2 stuff better.
+ Protect shl stuff unavaiilable with mingw32 headers.
+ * gdk/win32/gdkevents.c: Fix typo.
+ * gdk/win32/gdkglobals.c: Use GDKVAR here also for gcc.
+ * gdk/win32/gdkim.c: Use OEM code page for multibyte chars. (?)
+ * gdk/win32/gdkinput.c: Use __try __except only with the MS compiler.
+ * gdk/win32/gdkprivate.h: Make up for some stuff missing from
+ the mingw32 headers.
+ * gdk/win32/makefile.msc: Use latest Wintab kit and glib.
+ * gtk/gtkfilesel.c: Include <glib.h> early, to get stat->_stat
+ definition on Win32. Test for NATIVE_WIN32, not _MSC_VER.
+ * gtk/gtkfontsel.c: Protect CHARSET redefinition on Win32.
+ Test for NATIVE_WIN32, not _MSC_VER.
+ * gtk/gtkmain.c: No use warning about developer version on Win32,
+ there aren't any non-developer versions anyhow.
+ * gtk/gtkrc.c: Test for NATIVE_WIN32, not _MSC_VER.
+ * gtk/makefile.msc: Use pthread from another directory. Minor other
+ changes.
+
Wed Apr 21 14:20:22 1999 George Lebl <jirka@5z.com>
* gdk/gdkwindow.c: (gdk_window_remove_filter) correctly remove the
+1999-04-25 Tor Lillqvist <tml@iki.fi>
+
+ Support added for building using a GNU toolchain on Win32,
+ gcc -mno-cygwin (egcs-1.1.2) on cygwin-b20.1.
+
+ * gdk/win32/makefile.cygwin gtk/makefile.cygwin: New files.
+ * config.h.win32: Changes for gcc.
+ * gdk/gdkrectangle.c: Include gdk.h as <gdk/gdk.h>.
+ * gdk/gdkcolor.c: config.h.win32 already defines strcasecmp.
+ * gdk/win32/gdkconfig.h: Only the MS compiler has wctype.h.
+ * gdk/win32/gdkdnd.c: Protect (unused) OLE2 stuff better.
+ Protect shl stuff unavaiilable with mingw32 headers.
+ * gdk/win32/gdkevents.c: Fix typo.
+ * gdk/win32/gdkglobals.c: Use GDKVAR here also for gcc.
+ * gdk/win32/gdkim.c: Use OEM code page for multibyte chars. (?)
+ * gdk/win32/gdkinput.c: Use __try __except only with the MS compiler.
+ * gdk/win32/gdkprivate.h: Make up for some stuff missing from
+ the mingw32 headers.
+ * gdk/win32/makefile.msc: Use latest Wintab kit and glib.
+ * gtk/gtkfilesel.c: Include <glib.h> early, to get stat->_stat
+ definition on Win32. Test for NATIVE_WIN32, not _MSC_VER.
+ * gtk/gtkfontsel.c: Protect CHARSET redefinition on Win32.
+ Test for NATIVE_WIN32, not _MSC_VER.
+ * gtk/gtkmain.c: No use warning about developer version on Win32,
+ there aren't any non-developer versions anyhow.
+ * gtk/gtkrc.c: Test for NATIVE_WIN32, not _MSC_VER.
+ * gtk/makefile.msc: Use pthread from another directory. Minor other
+ changes.
+
Wed Apr 21 14:20:22 1999 George Lebl <jirka@5z.com>
* gdk/gdkwindow.c: (gdk_window_remove_filter) correctly remove the
+1999-04-25 Tor Lillqvist <tml@iki.fi>
+
+ Support added for building using a GNU toolchain on Win32,
+ gcc -mno-cygwin (egcs-1.1.2) on cygwin-b20.1.
+
+ * gdk/win32/makefile.cygwin gtk/makefile.cygwin: New files.
+ * config.h.win32: Changes for gcc.
+ * gdk/gdkrectangle.c: Include gdk.h as <gdk/gdk.h>.
+ * gdk/gdkcolor.c: config.h.win32 already defines strcasecmp.
+ * gdk/win32/gdkconfig.h: Only the MS compiler has wctype.h.
+ * gdk/win32/gdkdnd.c: Protect (unused) OLE2 stuff better.
+ Protect shl stuff unavaiilable with mingw32 headers.
+ * gdk/win32/gdkevents.c: Fix typo.
+ * gdk/win32/gdkglobals.c: Use GDKVAR here also for gcc.
+ * gdk/win32/gdkim.c: Use OEM code page for multibyte chars. (?)
+ * gdk/win32/gdkinput.c: Use __try __except only with the MS compiler.
+ * gdk/win32/gdkprivate.h: Make up for some stuff missing from
+ the mingw32 headers.
+ * gdk/win32/makefile.msc: Use latest Wintab kit and glib.
+ * gtk/gtkfilesel.c: Include <glib.h> early, to get stat->_stat
+ definition on Win32. Test for NATIVE_WIN32, not _MSC_VER.
+ * gtk/gtkfontsel.c: Protect CHARSET redefinition on Win32.
+ Test for NATIVE_WIN32, not _MSC_VER.
+ * gtk/gtkmain.c: No use warning about developer version on Win32,
+ there aren't any non-developer versions anyhow.
+ * gtk/gtkrc.c: Test for NATIVE_WIN32, not _MSC_VER.
+ * gtk/makefile.msc: Use pthread from another directory. Minor other
+ changes.
+
Wed Apr 21 14:20:22 1999 George Lebl <jirka@5z.com>
* gdk/gdkwindow.c: (gdk_window_remove_filter) correctly remove the
+1999-04-25 Tor Lillqvist <tml@iki.fi>
+
+ Support added for building using a GNU toolchain on Win32,
+ gcc -mno-cygwin (egcs-1.1.2) on cygwin-b20.1.
+
+ * gdk/win32/makefile.cygwin gtk/makefile.cygwin: New files.
+ * config.h.win32: Changes for gcc.
+ * gdk/gdkrectangle.c: Include gdk.h as <gdk/gdk.h>.
+ * gdk/gdkcolor.c: config.h.win32 already defines strcasecmp.
+ * gdk/win32/gdkconfig.h: Only the MS compiler has wctype.h.
+ * gdk/win32/gdkdnd.c: Protect (unused) OLE2 stuff better.
+ Protect shl stuff unavaiilable with mingw32 headers.
+ * gdk/win32/gdkevents.c: Fix typo.
+ * gdk/win32/gdkglobals.c: Use GDKVAR here also for gcc.
+ * gdk/win32/gdkim.c: Use OEM code page for multibyte chars. (?)
+ * gdk/win32/gdkinput.c: Use __try __except only with the MS compiler.
+ * gdk/win32/gdkprivate.h: Make up for some stuff missing from
+ the mingw32 headers.
+ * gdk/win32/makefile.msc: Use latest Wintab kit and glib.
+ * gtk/gtkfilesel.c: Include <glib.h> early, to get stat->_stat
+ definition on Win32. Test for NATIVE_WIN32, not _MSC_VER.
+ * gtk/gtkfontsel.c: Protect CHARSET redefinition on Win32.
+ Test for NATIVE_WIN32, not _MSC_VER.
+ * gtk/gtkmain.c: No use warning about developer version on Win32,
+ there aren't any non-developer versions anyhow.
+ * gtk/gtkrc.c: Test for NATIVE_WIN32, not _MSC_VER.
+ * gtk/makefile.msc: Use pthread from another directory. Minor other
+ changes.
+
Wed Apr 21 14:20:22 1999 George Lebl <jirka@5z.com>
* gdk/gdkwindow.c: (gdk_window_remove_filter) correctly remove the
port, see http://www.gimp.org/tml/gimp/win32/ or
http://www.iki.fi/tml/gimp/win32/ .
-As for now, only Microsoft C (the command-line compiler) is
-supported. Before compiling, check the BIN definition in
-gdk\win32\makefile.msc and gtk\makefile.msc. Compile in gdk\win32 and
-gtk with `nmake -f makefile.msc`. Install with `nmake -f makefile.msc
-install`. Cygwin ("mingw32", i.e. gcc -mno-cygwin) support will be
-added later.
+To build GTk+ on Win32, you need either Microsoft compiler and tools,
+or egcs-1.1.2 running under cygwin-b20.1. Before compiling, check the
+BIN definition in gdk\win32\makefile.msc (or makefile.cygwin) and
+gtk\makefile.msc (or makefile.cygwin). Compile in gdk\win32 and gtk
+with `nmake -f makefile.msc` or `make -f makefile.cygwin`.
+
+See the README.win32 file in the GLib distribution for preparations to
+build with egcs on cygwin.
The tablet support uses the Wintab API. The Wintab development kit can
be downloaded from http://www.pointing.com.
+
/* config.h.win32. Handcrafted for Microsoft C */
-#ifndef _MSC_VER
+#if ! (defined(_MSC_VER) || defined(__GNUC__))
#error Unrecognized Win32 compiler, edit config.h.win32 by hand
#endif
/* Define if you have alloca, as a function or macro. */
#define HAVE_ALLOCA 1
+#ifdef _MSC_VER
#define alloca _alloca
+#elif defined (__GNUC__)
+#define alloca __builtin_alloca
+#endif
/* Define if you have <alloca.h> and it should be used (not on Ultrix). */
/* #undef HAVE_ALLOCA_H */
/* Define if you have the strcasecmp function. */
#define HAVE_STRCASECMP 1
-#define strcasecmp stricmp
+#define strcasecmp _stricmp
/* Define if you have the strchr function. */
#define HAVE_STRCHR 1
#define HAVE_WCHAR_H 1
/* Define if you have the <wctype.h> header file. */
+#ifdef _MSC_VER
#define HAVE_WCTYPE_H 1
+#endif /* _MSC_VER */
/* Define if you have the i library (-li). */
/* #undef HAVE_LIBI */
* GTK+ at ftp://ftp.gtk.org/pub/gtk/.
*/
-#include "gdk.h"
+#include <gdk/gdk.h>
#include "gdkx.h"
-#ifdef _MSC_VER
-#define strcasecmp stricmp
-#endif
-
static gint gdk_colormap_match_color (GdkColormap *cmap,
GdkColor *color,
const gchar *available);
#include "gdkx.h"
-#ifdef _MSC_VER
-#define strcasecmp stricmp
-#endif
-
static gint gdk_colormap_match_color (GdkColormap *cmap,
GdkColor *color,
const gchar *available);
#define GDK_WINDOWING GDK_WINDOWING_WIN32
#define GDK_HAVE_WCHAR_H 1
+#ifdef _MSC_VER
#define GDK_HAVE_WCTYPE_H 1
+#endif
#include <string.h>
+#ifdef OLE2_DND
#include <ole2.h>
+#endif
+
+#ifdef _MSC_VER
#include <shlobj.h>
#include <shlguid.h>
+#endif
#include <gdk/gdk.h>
#include "gdkx.h"
return (GdkDragContext *)result;
}
-#if OLE2_DND
+#ifdef OLE2_DND
typedef struct {
IDropTarget idt;
GDK_NOTE (DND, g_print ("m_drop\n"));
return E_UNEXPECTED;
}
-
+
HRESULT STDMETHODCALLTYPE
m_query_interface_source (IDropSource __RPC_FAR *This,
/* [in] */ REFIID riid,
#endif /* OLE2_DND */
-void
+void
gdk_drag_context_ref (GdkDragContext *context)
{
g_return_if_fail (context != NULL);
((GdkDragContextPrivate *)context)->ref_count++;
}
-void
+void
gdk_drag_context_unref (GdkDragContext *context)
{
GdkDragContextPrivate *private = (GdkDragContextPrivate *)context;
#endif
+#ifdef _MSC_VER
+
/* From MS Knowledge Base article Q130698 */
/* resolve_link() fills the filename and path buffer
return SUCCEEDED (hres);
}
+#else
+
+#define resolve_link(hWnd, lpszLinkName, lpszPath, lpszDescription) FALSE
+
+#endif
+
static GdkFilterReturn
gdk_dropfiles_filter (GdkXEvent *xev,
GdkEvent *event,
else
return GDK_FILTER_CONTINUE;
}
-
/*************************************************************
************************** Public API ***********************
gdk_dnd_init (void)
{
HRESULT hres;
-
+#ifdef OLE2_DND
hres = OleInitialize (NULL);
if (! SUCCEEDED (hres))
g_error ("OleInitialize failed");
-}
+#endif
+}
void
gdk_dnd_exit (void)
{
+#ifdef OLE2_DND
OleUninitialize ();
+#endif
}
/* Source side */
}
}
-gboolean
+gboolean
gdk_drag_motion (GdkDragContext *context,
GdkWindow *dest_window,
GdkDragProtocol protocol,
/* Destination side */
-void
+void
gdk_drag_status (GdkDragContext *context,
GdkDragAction action,
guint32 time)
{
}
-void
+void
gdk_drop_finish (GdkDragContext *context,
gboolean success,
guint32 time)
{
}
-
-void
+void
gdk_window_register_dnd (GdkWindow *window)
{
GdkWindowPrivate *private = (GdkWindowPrivate *) window;
-#if OLE2_DND
+#ifdef OLE2_DND
target_drag_context *context;
HRESULT hres;
#endif
gdk_window_add_filter (window, gdk_dropfiles_filter, NULL);
DragAcceptFiles (private->xwindow, TRUE);
-#if OLE2_DND
+#ifdef OLE2_DND
/* Register for OLE2 d&d */
context = target_context_new ();
hres = CoLockObjectExternal ((IUnknown *) &context->idt, TRUE, FALSE);
* gdk_drag_get_selection:
* Returns the selection atom for the current source window
* arguments:
- *
+ *
* results:
*************************************************************/
-GdkAtom
+GdkAtom
gdk_drag_get_selection (GdkDragContext *context)
{
if (context->protocol == GDK_DRAG_PROTO_WIN32_DROPFILES)
#include <string.h>
+#ifdef OLE2_DND
#include <ole2.h>
+#endif
+
+#ifdef _MSC_VER
#include <shlobj.h>
#include <shlguid.h>
+#endif
#include <gdk/gdk.h>
#include "gdkx.h"
return (GdkDragContext *)result;
}
-#if OLE2_DND
+#ifdef OLE2_DND
typedef struct {
IDropTarget idt;
GDK_NOTE (DND, g_print ("m_drop\n"));
return E_UNEXPECTED;
}
-
+
HRESULT STDMETHODCALLTYPE
m_query_interface_source (IDropSource __RPC_FAR *This,
/* [in] */ REFIID riid,
#endif /* OLE2_DND */
-void
+void
gdk_drag_context_ref (GdkDragContext *context)
{
g_return_if_fail (context != NULL);
((GdkDragContextPrivate *)context)->ref_count++;
}
-void
+void
gdk_drag_context_unref (GdkDragContext *context)
{
GdkDragContextPrivate *private = (GdkDragContextPrivate *)context;
#endif
+#ifdef _MSC_VER
+
/* From MS Knowledge Base article Q130698 */
/* resolve_link() fills the filename and path buffer
return SUCCEEDED (hres);
}
+#else
+
+#define resolve_link(hWnd, lpszLinkName, lpszPath, lpszDescription) FALSE
+
+#endif
+
static GdkFilterReturn
gdk_dropfiles_filter (GdkXEvent *xev,
GdkEvent *event,
else
return GDK_FILTER_CONTINUE;
}
-
/*************************************************************
************************** Public API ***********************
gdk_dnd_init (void)
{
HRESULT hres;
-
+#ifdef OLE2_DND
hres = OleInitialize (NULL);
if (! SUCCEEDED (hres))
g_error ("OleInitialize failed");
-}
+#endif
+}
void
gdk_dnd_exit (void)
{
+#ifdef OLE2_DND
OleUninitialize ();
+#endif
}
/* Source side */
}
}
-gboolean
+gboolean
gdk_drag_motion (GdkDragContext *context,
GdkWindow *dest_window,
GdkDragProtocol protocol,
/* Destination side */
-void
+void
gdk_drag_status (GdkDragContext *context,
GdkDragAction action,
guint32 time)
{
}
-void
+void
gdk_drop_finish (GdkDragContext *context,
gboolean success,
guint32 time)
{
}
-
-void
+void
gdk_window_register_dnd (GdkWindow *window)
{
GdkWindowPrivate *private = (GdkWindowPrivate *) window;
-#if OLE2_DND
+#ifdef OLE2_DND
target_drag_context *context;
HRESULT hres;
#endif
gdk_window_add_filter (window, gdk_dropfiles_filter, NULL);
DragAcceptFiles (private->xwindow, TRUE);
-#if OLE2_DND
+#ifdef OLE2_DND
/* Register for OLE2 d&d */
context = target_context_new ();
hres = CoLockObjectExternal ((IUnknown *) &context->idt, TRUE, FALSE);
* gdk_drag_get_selection:
* Returns the selection atom for the current source window
* arguments:
- *
+ *
* results:
*************************************************************/
-GdkAtom
+GdkAtom
gdk_drag_get_selection (GdkDragContext *context)
{
if (context->protocol == GDK_DRAG_PROTO_WIN32_DROPFILES)
is_AltGr_key = FALSE;
event->key.type = ((xevent->message == WM_KEYDOWN
- | xevent->message == WM_SYSKEYDOWN) ?
+ || xevent->message == WM_SYSKEYDOWN) ?
GDK_KEY_PRESS : GDK_KEY_RELEASE);
event->key.window = window;
event->key.time = xevent->time;
is_AltGr_key = FALSE;
event->key.type = ((xevent->message == WM_KEYDOWN
- | xevent->message == WM_SYSKEYDOWN) ?
+ || xevent->message == WM_SYSKEYDOWN) ?
GDK_KEY_PRESS : GDK_KEY_RELEASE);
event->key.window = window;
event->key.time = xevent->time;
guint gdk_debug_flags = 0;
HWND gdk_root_window;
HWND gdk_leader_window;
-GdkWindowPrivate gdk_root_parent = { { NULL, }, NULL, };
+GDKVAR GdkWindowPrivate gdk_root_parent = { { NULL, }, NULL, };
HDC gdk_DC;
HINSTANCE gdk_DLLInstance;
HINSTANCE gdk_ProgInstance;
guint gdk_debug_flags = 0;
HWND gdk_root_window;
HWND gdk_leader_window;
-GdkWindowPrivate gdk_root_parent = { { NULL, }, NULL, };
+GDKVAR GdkWindowPrivate gdk_root_parent = { { NULL, }, NULL, };
HDC gdk_DC;
HINSTANCE gdk_DLLInstance;
HINSTANCE gdk_ProgInstance;
#if HAVE_CONFIG_H
# include <config.h>
-# if STDC_HEADERS
-# include <string.h>
-# endif
#endif
+#include <stdlib.h>
+#include <string.h>
+
#include <gdk/gdk.h>
#include <gdk/gdki18n.h>
#include "gdkx.h"
src_alt = g_new (wchar_t, wcsl+1);
for (i = wcsl; i >= 0; i--)
src_alt[i] = src[i];
- mbsl = WideCharToMultiByte (CP_ACP, 0, src_alt, wcsl,
+ mbsl = WideCharToMultiByte (CP_OEMCP, 0, src_alt, wcsl,
NULL, 0, NULL, NULL);
mbstr = g_new (guchar, mbsl + 1);
- if (!WideCharToMultiByte (CP_ACP, 0, src_alt, wcsl,
+ if (!WideCharToMultiByte (CP_OEMCP, 0, src_alt, wcsl,
mbstr, mbsl, NULL, NULL))
{
g_warning ("gdk_wcstombs: WideCharToMultiByte failed");
gint i, wcsl;
wchar_t *wcstr;
- wcsl = MultiByteToWideChar (CP_ACP, 0, src, -1, NULL, 0);
- wcstr = g_new (wchar_t, wcsl + 1);
- if (!MultiByteToWideChar (CP_ACP, 0, src, -1, wcstr, wcsl))
+ wcsl = MultiByteToWideChar (CP_OEMCP, 0, src, -1, NULL, 0);
+ wcstr = g_new (wchar_t, wcsl);
+ if (!MultiByteToWideChar (CP_OEMCP, 0, src, -1, wcstr, wcsl))
{
g_warning ("gdk_mbstowcs: MultiByteToWideChar failed");
g_free (wcstr);
}
if (wcsl > dest_max)
wcsl = dest_max;
- for (i = 0; i < wcsl; i++)
+ for (i = 0; i < wcsl && wcstr[i]; i++)
dest[i] = wcstr[i];
g_free (wcstr);
- return wcsl;
+ return i;
}
else
{
#if HAVE_CONFIG_H
# include <config.h>
-# if STDC_HEADERS
-# include <string.h>
-# endif
#endif
+#include <stdlib.h>
+#include <string.h>
+
#include <gdk/gdk.h>
#include <gdk/gdki18n.h>
#include "gdkx.h"
src_alt = g_new (wchar_t, wcsl+1);
for (i = wcsl; i >= 0; i--)
src_alt[i] = src[i];
- mbsl = WideCharToMultiByte (CP_ACP, 0, src_alt, wcsl,
+ mbsl = WideCharToMultiByte (CP_OEMCP, 0, src_alt, wcsl,
NULL, 0, NULL, NULL);
mbstr = g_new (guchar, mbsl + 1);
- if (!WideCharToMultiByte (CP_ACP, 0, src_alt, wcsl,
+ if (!WideCharToMultiByte (CP_OEMCP, 0, src_alt, wcsl,
mbstr, mbsl, NULL, NULL))
{
g_warning ("gdk_wcstombs: WideCharToMultiByte failed");
gint i, wcsl;
wchar_t *wcstr;
- wcsl = MultiByteToWideChar (CP_ACP, 0, src, -1, NULL, 0);
- wcstr = g_new (wchar_t, wcsl + 1);
- if (!MultiByteToWideChar (CP_ACP, 0, src, -1, wcstr, wcsl))
+ wcsl = MultiByteToWideChar (CP_OEMCP, 0, src, -1, NULL, 0);
+ wcstr = g_new (wchar_t, wcsl);
+ if (!MultiByteToWideChar (CP_OEMCP, 0, src, -1, wcstr, wcsl))
{
g_warning ("gdk_mbstowcs: MultiByteToWideChar failed");
g_free (wcstr);
}
if (wcsl > dest_max)
wcsl = dest_max;
- for (i = 0; i < wcsl; i++)
+ for (i = 0; i < wcsl && wcstr[i]; i++)
dest[i] = wcstr[i];
g_free (wcstr);
- return wcsl;
+ return i;
}
else
{
HCTX *hctx = (HCTX *) tmp_list->data;
BOOL result;
+#ifdef _MSC_VER
/* For some reason WTEnable and/or WTClose tend to crash here.
* Protect with __try/__except to avoid a message box.
*/
__try {
+#endif /* _MSC_VER */
#if 0
WTEnable (*hctx, FALSE);
#endif
result = WTClose (*hctx);
+#ifdef _MSC_VER
}
__except (/* GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION ? */
EXCEPTION_EXECUTE_HANDLER /*:
EXCEPTION_CONTINUE_SEARCH */) {
result = FALSE;
}
+#endif /* _MSC_VER */
if (!result)
g_warning ("gdk_input_exit: Closing Wintab context %#x failed", *hctx);
g_free (hctx);
HCTX *hctx = (HCTX *) tmp_list->data;
BOOL result;
+#ifdef _MSC_VER
/* For some reason WTEnable and/or WTClose tend to crash here.
* Protect with __try/__except to avoid a message box.
*/
__try {
+#endif /* _MSC_VER */
#if 0
WTEnable (*hctx, FALSE);
#endif
result = WTClose (*hctx);
+#ifdef _MSC_VER
}
__except (/* GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION ? */
EXCEPTION_EXECUTE_HANDLER /*:
EXCEPTION_CONTINUE_SEARCH */) {
result = FALSE;
}
+#endif /* _MSC_VER */
if (!result)
g_warning ("gdk_input_exit: Closing Wintab context %#x failed", *hctx);
g_free (hctx);
#define STRICT /* We want strict type checks */
#include <windows.h>
+/* Make up for some minor mingw32 lossage */
+
+/* PS_JOIN_MASK is missing from the mingw32 headers */
+#ifndef PS_JOIN_MASK
+#define PS_JOIN_MASK (PS_JOIN_BEVEL|PS_JOIN_MITER|PS_JOIN_ROUND)
+#endif
+
+/* CLR_INVALID is missing */
+#ifndef CLR_INVALID
+#define CLR_INVALID CLR_NONE
+#endif
+
+/* MB_CUR_MAX is missing */
+#ifndef MB_CUR_MAX
+extern int *__imp___mb_cur_max;
+#define MB_CUR_MAX (*__imp___mb_cur_max)
+#endif
+
#include <time.h>
#include <gdk/gdktypes.h>
#define STRICT /* We want strict type checks */
#include <windows.h>
+/* Make up for some minor mingw32 lossage */
+
+/* PS_JOIN_MASK is missing from the mingw32 headers */
+#ifndef PS_JOIN_MASK
+#define PS_JOIN_MASK (PS_JOIN_BEVEL|PS_JOIN_MITER|PS_JOIN_ROUND)
+#endif
+
+/* CLR_INVALID is missing */
+#ifndef CLR_INVALID
+#define CLR_INVALID CLR_NONE
+#endif
+
+/* MB_CUR_MAX is missing */
+#ifndef MB_CUR_MAX
+extern int *__imp___mb_cur_max;
+#define MB_CUR_MAX (*__imp___mb_cur_max)
+#endif
+
#include <time.h>
#include <gdk/gdktypes.h>
--- /dev/null
+## Makefile for building the GDK DLL with egcs on cygwin
+## Use: make -f makefile.cygwin install
+
+# Change this to wherever you want to install the DLL. This directory
+# should be in your PATH.
+BIN = bin
+
+# Location of the Wintab toolkit. Downloadable from http://www.pointing.com.
+# We use the wntab32x.lib archive library directly (copy it as libwntab32x.a).
+WTKIT = ../../../wtkit126
+
+OPTIMIZE = -g -O
+
+################################################################
+
+# Nothing much configurable below
+
+CC = gcc -mno-cygwin -mpentium
+
+CP = cp
+LD = ld
+INSTALL = install
+
+GLIB_VER=1.3
+GTK_VER=1.3
+
+GLIB = ../../../glib
+CFLAGS = -g -I. -I../.. -I$(WTKIT)/include -I$(GLIB) -DG_ENABLE_DEBUG -DHAVE_CONFIG_H -DGDK_VERSION=\"$(GTK_VER)\" -DNEAR= -DFAR=
+
+all: \
+ ../../config.h \
+ gdk-$(GTK_VER).dll
+
+install : all
+ $(INSTALL) gdk-$(GTK_VER).dll $(BIN)
+
+gdk_OBJECTS = \
+ gdk.o \
+ gdkcc.o \
+ gdkcolor.o \
+ gdkcursor.o \
+ gdkdnd.o \
+ gdkdraw.o \
+ gdkevents.o \
+ gdkfont.o \
+ gdkgc.o \
+ gdkglobals.o \
+ gdkim.o \
+ gdkimage.o \
+ gdkinput.o \
+ gdkpixmap.o \
+ gdkproperty.o \
+ gdkrgb.o \
+ gdkrectangle.o \
+ gdkregion.o \
+ gdkselection.o \
+ gdkvisual.o \
+ gdkwindow.o \
+ gdkxid.o
+
+../../config.h : ../../config.h.win32
+ $(CP) ../../config.h.win32 ../../config.h
+
+gdkres.o : rc/gdk.rc
+ windres --include-dir rc rc/gdk.rc gdkres.o
+
+gdk-$(GTK_VER).dll : $(gdk_OBJECTS) gdk.def gdkres.o libwntab32x.a
+ $(GLIB)/build-dll gdk $(GTK_VER) gdk.def $(gdk_OBJECTS) -L $(GLIB) -lglib-$(GLIB_VER) -L . -lwntab32x -lgdi32 -luser32 -lshell32 -lole32 -luuid $(LDFLAGS) gdkres.o
+
+libwntab32x.a : $(WTKIT)/lib/i386/wntab32x.lib
+ cp $(WTKIT)/lib/i386/wntab32x.lib libwntab32x.a
+
+.c.o :
+ $(CC) $(CFLAGS) -c -DGDK_COMPILATION -DG_LOG_DOMAIN=\"Gdk\" $<
+
+gdkrgb.c : ../gdkrgb.c
+ $(CP) ../gdkrgb.c .
+
+gdkrectangle.c : ../gdkrectangle.c
+ $(CP) ../gdkrectangle.c .
+
+testgdk.exe : testgdk.o gdk-$(GTK_VER).dll
+ $(CC) $(CFLAGS) -o $@ testgdk.o -L . -lgdk-$(GTK_VER) -L $(GLIB) -lglib-$(GLIB_VER) $(LDFLAGS)
+
+testgdk.o : testgdk.c
+ $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"testgdk\" testgdk.c
+
+clean:
+ -rm *.exe *.o *.dll *.a *.exp *.base
BIN = C:\bin
# Location of the Wintab toolkit. Downloadable from http://www.pointing.com.
-WTKIT = ..\..\..\wtkit125
+WTKIT = ..\..\..\wtkit126
# Full optimization:
OPTIMIZE = -Ox
# Nothing much configurable below
-# cl -? described the options
+# cl -? describes 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
+GLIB_VER=1.3
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
+GLIB = ..\..\..\glib
+CFLAGS = -I. -I..\.. -I$(WTKIT)\include -I$(GLIB) -DG_ENABLE_DEBUG -DHAVE_CONFIG_H -DGDK_VERSION=\"$(GTK_VER)\"
all: \
..\..\config.h \
#include "config.h"
+#include <glib.h> /* To get stat->_stat redefinition
+ * for mingw32
+ */
+
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#define STRICT
#include <windows.h>
-#ifdef _MSC_VER
+#ifdef NATIVE_WIN32
#include <direct.h>
+#include <io.h>
+#define mkdir(p,m) _mkdir(p)
#ifndef S_ISDIR
#define S_ISDIR(mode) ((mode)&_S_IFDIR)
#endif
-#define mkdir(path,mode) mkdir(path)
-#endif
-#endif
+
+#endif /* NATIVE_WIN32 */
+
+#endif /* WIN32 */
#define DIR_LIST_WIDTH 180
#define DIR_LIST_HEIGHT 180
#include <ctype.h>
#include "gdk/gdk.h"
+/* Protect against the CHARSET struct in Win32 */
+#if GDK_WINDOWING == GDK_WINDOWING_WIN32
+# define CHARSET CHARSETstruct
+#endif
#include "gdkx.h"
+#if GDK_WINDOWING == GDK_WINDOWING_WIN32
+# undef CHARSET
+#endif
#include "gdk/gdkkeysyms.h"
#include "gtkbutton.h"
#endif
#include <stdio.h>
-#ifdef _MSC_VER
+#ifdef NATIVE_WIN32
#include <io.h> /* For _open and _close */
#ifndef S_ISREG
}
g_slist_free (gtk_modules);
+#ifndef NATIVE_WIN32
+ /* No use warning on Win32, there aren't any non-devel versions anyhow... */
g_warning ("" "YOU ARE USING THE DEVEL BRANCH 1.3.x OF GTK+ WHICH IS CURRENTLY\n"
" UNDER HEAVY DEVELOPMENT AND FREQUENTLY INTRODUCES INSTABILITIES.\n"
" if you don't know why you are getting this, you probably want to\n"
" use the stable branch which can be retrived from\n"
" ftp://ftp.gtk.org/pub/gtk/v1.2/ or via CVS with\n"
" cvs checkout -r glib-1-2 glib; cvs checkout -r gtk-1-2 gtk+");
-
+#endif
+
return TRUE;
}
void
#define lstat stat
#endif
-#ifdef _MSC_VER
+#ifdef NATIVE_WIN32
#include <io.h>
#endif
--- /dev/null
+## Makefile for building the GTK DLL with egcs on cygwin
+## Use: make -f makefile.cygwin install
+
+# Change this to wherever you want to install the DLL. This directory
+# should be in your PATH.
+BIN = /bin
+
+# This is the location of pthreads for Win32,
+# see http://sourceware.cygnus.com/pthreads-win32/
+PTHREADS = ../../pthreads-snap-1999-04-07
+PTHREAD_LIB = -L $(PTHREADS) -lpthread
+PTHREAD_INC = -I $(PTHREADS)
+
+OPTIMIZE = -g -O
+
+################################################################
+
+# Nothing much configurable below
+
+CC = gcc -mno-cygwin -mpentium
+
+# 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
+
+INSTALL = install
+
+GLIB_VER=1.3
+GTK_VER=1.3
+
+GDKSYSDEP = ../gdk/win32
+GLIB = ../../glib
+
+CFLAGS = $(OPTIMIZE) -I. -I.. -I$(GDKSYSDEP) -I$(GLIB) -I$(GLIB)/gmodule -DGTK_DISABLE_COMPAT_H
+
+all : \
+ ../config.h \
+ gtkcompat.h \
+ generated \
+ gtk-$(GTK_VER).dll\
+ testdnd.exe \
+ testgtk.exe \
+ testinput.exe \
+ testrgb.exe \
+ testselection.exe \
+ simple.exe
+
+install : all
+ $(INSTALL) gtk-$(GTK_VER).dll $(BIN)
+
+gtk_OBJECTS = \
+ fnmatch.o \
+ gtkaccelgroup.o \
+ gtkaccellabel.o \
+ gtkadjustment.o \
+ gtkalignment.o \
+ gtkarg.o \
+ gtkarrow.o \
+ gtkaspectframe.o\
+ gtkbbox.o \
+ gtkbin.o \
+ gtkbindings.o \
+ gtkbox.o \
+ gtkbutton.o \
+ gtkcalendar.o \
+ gtkcheckbutton.o\
+ gtkcheckmenuitem.o\
+ gtkclist.o \
+ gtkcolorsel.o \
+ gtkcombo.o \
+ gtkcontainer.o \
+ gtkctree.o \
+ gtkcurve.o \
+ gtkdata.o \
+ gtkdialog.o \
+ gtkdnd.o \
+ gtkdrawingarea.o\
+ gtkeditable.o \
+ gtkentry.o \
+ gtkeventbox.o \
+ gtkfilesel.o \
+ gtkfixed.o \
+ gtkfontsel.o \
+ gtkframe.o \
+ gtkgamma.o \
+ gtkgc.o \
+ gtkhandlebox.o \
+ gtkhbbox.o \
+ gtkhbox.o \
+ gtkhpaned.o \
+ gtkhruler.o \
+ gtkhscale.o \
+ gtkhscrollbar.o \
+ gtkhseparator.o \
+ gtkimage.o \
+ gtkinputdialog.o\
+ gtkinvisible.o \
+ gtkitem.o \
+ gtkitemfactory.o\
+ gtklabel.o \
+ gtklayout.o \
+ gtklist.o \
+ gtklistitem.o \
+ gtkmain.o \
+ gtkmarshal.o \
+ gtkmenu.o \
+ gtkmenubar.o \
+ gtkmenufactory.o\
+ gtkmenuitem.o \
+ gtkmenushell.o \
+ gtkmisc.o \
+ gtknotebook.o \
+ gtkobject.o \
+ gtkoptionmenu.o \
+ gtkpacker.o \
+ gtkpaned.o \
+ gtkpixmap.o \
+ gtkplug.o \
+ gtkpreview.o \
+ gtkprogress.o \
+ gtkprogressbar.o\
+ gtkradiobutton.o\
+ gtkradiomenuitem.o\
+ gtkrange.o \
+ gtkrc.o \
+ gtkruler.o \
+ gtkscale.o \
+ gtkscrollbar.o \
+ gtkscrolledwindow.o\
+ gtkselection.o \
+ gtkseparator.o \
+ gtksignal.o \
+ gtksocket.o \
+ gtkspinbutton.o \
+ gtkstatusbar.o \
+ gtkstyle.o \
+ gtktable.o \
+ gtktearoffmenuitem.o\
+ gtktext.o \
+ gtkthemes.o \
+ gtktipsquery.o \
+ gtktogglebutton.o\
+ gtktoolbar.o \
+ gtktooltips.o \
+ gtktree.o \
+ gtktreeitem.o \
+ gtktypeutils.o \
+ gtkvbbox.o \
+ gtkvbox.o \
+ gtkviewport.o \
+ gtkvpaned.o \
+ gtkvruler.o \
+ gtkvscale.o \
+ gtkvscrollbar.o \
+ gtkvseparator.o \
+ gtkwidget.o \
+ gtkwindow.o
+
+# 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
+ cp ../config.h.win32 ../config.h
+
+gtkcompat.h : gtkcompat.h.win32
+ cp gtkcompat.h.win32 gtkcompat.h
+
+#
+# Generated source files:
+#
+generated : gtk.defs gtktypebuiltins.h gtktypebuiltins_vars.c gtktypebuiltins_ids.c gtktypebuiltins_evals.c gtkmarshal.h gtkmarshal.c
+
+gtk.defs : makeenums.pl gtk-boxed.defs $(source_headers) $(gdk_headers)
+ $(PERL) makeenums.pl defs $(source_headers) $(gdk_headers) >gd.tmp
+ cat gd.tmp gtk-boxed.defs >gtk.defs
+ rm 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
+ -rm gtkmarshal.c
+ mv s-gmc gtkmarshal.c
+ -rm gtkmarshal.h
+ mv s-gmh gtkmarshal.h
+
+#
+# Linking:
+#
+gtk-$(GTK_VER).dll : generated $(gtk_OBJECTS) gtk.def
+ $(GLIB)/build-dll gtk $(GTK_VER) gtk.def $(gtk_OBJECTS) -L $(GDKSYSDEP) -lgdk-$(GTK_VER) -L $(GLIB) -lglib-$(GLIB_VER) -lgmodule-$(GLIB_VER) -lgdi32 -luser32
+
+# General rule for compiling the objects into the DLL
+.c.o :
+ $(CC) $(CFLAGS) -c -DGTK_COMPILATION -DG_LOG_DOMAIN=\"Gtk\" $<
+
+#
+# Test programs:
+#
+testdnd.exe : testdnd.o
+ $(CC) $(CFLAGS) -o $@ testdnd.o -L . -lgtk-$(GTK_VER) -L $(GDKSYSDEP) -lgdk-$(GTK_VER) -L $(GLIB) -lglib-$(GLIB_VER) $(LDFLAGS)
+
+# Must have separate rules for these objects that don't go in the DLL
+testdnd.o : testdnd.c
+ $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"testdnd\" testdnd.c
+
+testgtk.exe : testgtk.o
+ $(CC) $(CFLAGS) -o $@ testgtk.o -L . -lgtk-$(GTK_VER) -L $(GDKSYSDEP) -lgdk-$(GTK_VER) -L $(GLIB) -lglib-$(GLIB_VER) $(LDFLAGS)
+
+testgtk.o : testgtk.c
+ $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"testgtk\" testgtk.c
+
+testinput.exe : testinput.o
+ $(CC) $(CFLAGS) -o $@ testinput.o -L . -lgtk-$(GTK_VER) -L $(GDKSYSDEP) -lgdk-$(GTK_VER) -L $(GLIB) -lglib-$(GLIB_VER) $(LDFLAGS)
+
+testinput.o : testinput.c
+ $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"testinput\" testinput.c
+
+testrgb.exe : testrgb.o
+ $(CC) $(CFLAGS) -o $@ testrgb.o -L . -lgtk-$(GTK_VER) -L $(GDKSYSDEP) -lgdk-$(GTK_VER) -L $(GLIB) -lglib-$(GLIB_VER) $(LDFLAGS)
+
+testrgb.o : testrgb.c
+ $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"testrgb\" testrgb.c
+
+testselection.exe : testselection.o
+ $(CC) $(CFLAGS) -o $@ testselection.o -L . -lgtk-$(GTK_VER) -L $(GDKSYSDEP) -lgdk-$(GTK_VER) -L $(GLIB) -lglib-$(GLIB_VER) $(LDFLAGS)
+
+testselection.o : testselection.c
+ $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"testselection\" testselection.c
+
+testthreads.exe : testthreads.o
+ $(CC) $(CFLAGS) -o $@ testthreads.o -L . -lgtk-$(GTK_VER) -L $(GDKSYSDEP) -lgdk-$(GTK_VER) -L $(GLIB) -lglib-$(GLIB_VER) -lgthread-$(GLIB_VER) $(PTHREAD_LIB) $(LDFLAGS)
+
+testthreads.o : testthreads.c
+ $(CC) $(CFLAGS) -I$(PTHREAD_INC) -c -DG_LOG_DOMAIN=\"testthreads\" -DUSE_PTHREADS=1 testthreads.c
+
+simple.exe : simple.o
+ $(CC) $(CFLAGS) -o $@ simple.o -L . -lgtk-$(GTK_VER) -L $(GDKSYSDEP) -lgdk-$(GTK_VER) -L $(GLIB) -lglib-$(GLIB_VER) $(LDFLAGS)
+
+simple.o : simple.c
+ $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"simple\" simple.c
+
+# The clean target doesn't remove the generated sources
+clean:
+ -rm *.exe *.o *.dll *.a *.exp *.base
# This is the location of pthreads for Win32,
# see http://sourceware.cygnus.com/pthreads-win32/
-PTHREAD_LIB = ..\..\lib\pthread.lib
-PTHREAD_INC = ..\..\include
+PTHREADS = ..\..\pthreads-snap-1999-04-07
+PTHREAD_LIB = $(PTHREADS)\pthread.lib
+PTHREAD_INC = -I $(PTHREADS)
# Full optimization:
OPTIMIZE = -Ox
# Nothing much configurable below
-# cl -? described the options
+# cl -? describes the options
# Some files use near as an identifier
CC = cl -G5 -GF $(OPTIMIZE) -W3 -MD -DHAVE_CONFIG_H -nologo -Dnear=xxnear
PERL = perl
AWK = awk
-# MEMCHECKLIB = mcw50.lib
-
-LDFLAGS = /link /machine:ix86 # /debug /debugtype:cv
+LDFLAGS = /link /machine:ix86 # /debug
INSTALL = copy
TOUCH = copy makefile.msc+nul
-GLIB_VER=1.2
+GLIB_VER=1.3
GTK_VER=1.3
GDKSYSDEP = ..\gdk\win32
-GLIB = ..\..\glib-$(GLIB_VER)
+GLIB = ..\..\glib
CFLAGS = -I. -I.. -I$(GDKSYSDEP) -I$(GLIB) -I$(GLIB)\gmodule -DGTK_DISABLE_COMPAT_H
# Linking:
#
gtk-$(GTK_VER).dll : $(gtk_OBJECTS) gtk.def
- $(CC) $(CFLAGS) -LD -Fegtk-$(GTK_VER).dll $(gtk_OBJECTS) $(MEMCHECKLIB) $(GDKSYSDEP)\gdk-$(GTK_VER).lib $(GLIB)\glib-$(GLIB_VER).lib $(GLIB)\gmodule-$(GLIB_VER).lib gdi32.lib user32.lib $(LDFLAGS) /def:gtk.def
+ $(CC) $(CFLAGS) -LD -Fegtk-$(GTK_VER).dll $(gtk_OBJECTS) $(GDKSYSDEP)\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 :
#
# Test programs:
#
-testdnd.exe : testdnd.obj
+testdnd.exe : gtk-$(GTK_VER).dll testdnd.obj
$(CC) $(CFLAGS) testdnd.obj gtk-$(GTK_VER).lib $(GDKSYSDEP)\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 $(GDKSYSDEP)\gdk-$(GTK_VER).lib $(GLIB)\glib-$(GLIB_VER).lib $(LDFLAGS)
+testgtk.exe : gtk-$(GTK_VER).dll testgtk.obj
+ $(CC) $(CFLAGS) testgtk.obj gtk-$(GTK_VER).lib $(GDKSYSDEP)\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
+testinput.exe : gtk-$(GTK_VER).dll testinput.obj
$(CC) $(CFLAGS) testinput.obj gtk-$(GTK_VER).lib $(GDKSYSDEP)\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
+testrgb.exe : gtk-$(GTK_VER).dll testrgb.obj
$(CC) $(CFLAGS) testrgb.obj gtk-$(GTK_VER).lib $(GDKSYSDEP)\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
+testselection.exe : gtk-$(GTK_VER).dll testselection.obj
$(CC) $(CFLAGS) testselection.obj gtk-$(GTK_VER).lib $(GDKSYSDEP)\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
+testthreads.exe : gtk-$(GTK_VER).dll testthreads.obj
$(CC) $(CFLAGS) testthreads.obj gtk-$(GTK_VER).lib $(GDKSYSDEP)\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
+ $(CC) $(CFLAGS) $(PTHREAD_INC) -c -DG_LOG_DOMAIN=\"testthreads\" -DUSE_PTHREADS=1 testthreads.c
-simple.exe : simple.obj
+simple.exe : gtk-$(GTK_VER).dll simple.obj
$(CC) $(CFLAGS) simple.obj gtk-$(GTK_VER).lib $(GDKSYSDEP)\gdk-$(GTK_VER).lib $(GLIB)\glib-$(GLIB_VER).lib $(LDFLAGS)
simple.obj : simple.c