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.
This commit is contained in:
Tor Lillqvist 1999-04-25 21:55:05 +00:00
parent eedec945df
commit 1c84483f3e
34 changed files with 862 additions and 103 deletions

View File

@ -1,3 +1,32 @@
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

View File

@ -1,3 +1,32 @@
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

View File

@ -1,3 +1,32 @@
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

View File

@ -1,3 +1,32 @@
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

View File

@ -1,3 +1,32 @@
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

View File

@ -1,3 +1,32 @@
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

View File

@ -1,3 +1,32 @@
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

View File

@ -3,12 +3,15 @@ correct as the Unix/X11 version. For more information about the Win32
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.

View File

@ -1,6 +1,6 @@
/* 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
@ -16,7 +16,11 @@
/* 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 */
@ -121,7 +125,7 @@
/* 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
@ -166,7 +170,9 @@
#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 */

View File

@ -24,7 +24,7 @@
* GTK+ at ftp://ftp.gtk.org/pub/gtk/.
*/
#include "gdk.h"
#include <gdk/gdk.h>

View File

@ -33,10 +33,6 @@
#include "gdkx.h"
#ifdef _MSC_VER
#define strcasecmp stricmp
#endif
static gint gdk_colormap_match_color (GdkColormap *cmap,
GdkColor *color,
const gchar *available);

View File

@ -33,10 +33,6 @@
#include "gdkx.h"
#ifdef _MSC_VER
#define strcasecmp stricmp
#endif
static gint gdk_colormap_match_color (GdkColormap *cmap,
GdkColor *color,
const gchar *available);

View File

@ -2,4 +2,6 @@
#define GDK_WINDOWING GDK_WINDOWING_WIN32
#define GDK_HAVE_WCHAR_H 1
#ifdef _MSC_VER
#define GDK_HAVE_WCTYPE_H 1
#endif

View File

@ -31,9 +31,14 @@
#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"
@ -143,7 +148,7 @@ gdk_drag_context_new (void)
return (GdkDragContext *)result;
}
#if OLE2_DND
#ifdef OLE2_DND
typedef struct {
IDropTarget idt;
@ -265,7 +270,7 @@ m_drop (IDropTarget __RPC_FAR *This,
GDK_NOTE (DND, g_print ("m_drop\n"));
return E_UNEXPECTED;
}
HRESULT STDMETHODCALLTYPE
m_query_interface_source (IDropSource __RPC_FAR *This,
/* [in] */ REFIID riid,
@ -408,7 +413,7 @@ source_context_new (void)
#endif /* OLE2_DND */
void
void
gdk_drag_context_ref (GdkDragContext *context)
{
g_return_if_fail (context != NULL);
@ -416,7 +421,7 @@ gdk_drag_context_ref (GdkDragContext *context)
((GdkDragContextPrivate *)context)->ref_count++;
}
void
void
gdk_drag_context_unref (GdkDragContext *context)
{
GdkDragContextPrivate *private = (GdkDragContextPrivate *)context;
@ -475,6 +480,8 @@ gdk_drag_context_find (gboolean is_source,
#endif
#ifdef _MSC_VER
/* From MS Knowledge Base article Q130698 */
/* resolve_link() fills the filename and path buffer
@ -564,6 +571,12 @@ resolve_link(HWND hWnd,
return SUCCEEDED (hres);
}
#else
#define resolve_link(hWnd, lpszLinkName, lpszPath, lpszDescription) FALSE
#endif
static GdkFilterReturn
gdk_dropfiles_filter (GdkXEvent *xev,
GdkEvent *event,
@ -642,7 +655,6 @@ gdk_dropfiles_filter (GdkXEvent *xev,
else
return GDK_FILTER_CONTINUE;
}
/*************************************************************
************************** Public API ***********************
@ -652,17 +664,20 @@ void
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 */
@ -747,7 +762,7 @@ gdk_drag_find_window (GdkDragContext *context,
}
}
gboolean
gboolean
gdk_drag_motion (GdkDragContext *context,
GdkWindow *dest_window,
GdkDragProtocol protocol,
@ -780,7 +795,7 @@ gdk_drag_abort (GdkDragContext *context,
/* Destination side */
void
void
gdk_drag_status (GdkDragContext *context,
GdkDragAction action,
guint32 time)
@ -795,19 +810,18 @@ gdk_drop_reply (GdkDragContext *context,
{
}
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
@ -824,7 +838,7 @@ gdk_window_register_dnd (GdkWindow *window)
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);
@ -848,11 +862,11 @@ gdk_window_register_dnd (GdkWindow *window)
* 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)

View File

@ -31,9 +31,14 @@
#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"
@ -143,7 +148,7 @@ gdk_drag_context_new (void)
return (GdkDragContext *)result;
}
#if OLE2_DND
#ifdef OLE2_DND
typedef struct {
IDropTarget idt;
@ -265,7 +270,7 @@ m_drop (IDropTarget __RPC_FAR *This,
GDK_NOTE (DND, g_print ("m_drop\n"));
return E_UNEXPECTED;
}
HRESULT STDMETHODCALLTYPE
m_query_interface_source (IDropSource __RPC_FAR *This,
/* [in] */ REFIID riid,
@ -408,7 +413,7 @@ source_context_new (void)
#endif /* OLE2_DND */
void
void
gdk_drag_context_ref (GdkDragContext *context)
{
g_return_if_fail (context != NULL);
@ -416,7 +421,7 @@ gdk_drag_context_ref (GdkDragContext *context)
((GdkDragContextPrivate *)context)->ref_count++;
}
void
void
gdk_drag_context_unref (GdkDragContext *context)
{
GdkDragContextPrivate *private = (GdkDragContextPrivate *)context;
@ -475,6 +480,8 @@ gdk_drag_context_find (gboolean is_source,
#endif
#ifdef _MSC_VER
/* From MS Knowledge Base article Q130698 */
/* resolve_link() fills the filename and path buffer
@ -564,6 +571,12 @@ resolve_link(HWND hWnd,
return SUCCEEDED (hres);
}
#else
#define resolve_link(hWnd, lpszLinkName, lpszPath, lpszDescription) FALSE
#endif
static GdkFilterReturn
gdk_dropfiles_filter (GdkXEvent *xev,
GdkEvent *event,
@ -642,7 +655,6 @@ gdk_dropfiles_filter (GdkXEvent *xev,
else
return GDK_FILTER_CONTINUE;
}
/*************************************************************
************************** Public API ***********************
@ -652,17 +664,20 @@ void
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 */
@ -747,7 +762,7 @@ gdk_drag_find_window (GdkDragContext *context,
}
}
gboolean
gboolean
gdk_drag_motion (GdkDragContext *context,
GdkWindow *dest_window,
GdkDragProtocol protocol,
@ -780,7 +795,7 @@ gdk_drag_abort (GdkDragContext *context,
/* Destination side */
void
void
gdk_drag_status (GdkDragContext *context,
GdkDragAction action,
guint32 time)
@ -795,19 +810,18 @@ gdk_drop_reply (GdkDragContext *context,
{
}
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
@ -824,7 +838,7 @@ gdk_window_register_dnd (GdkWindow *window)
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);
@ -848,11 +862,11 @@ gdk_window_register_dnd (GdkWindow *window)
* 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)

View File

@ -1547,7 +1547,7 @@ gdk_event_translate (GdkEvent *event,
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;

View File

@ -1547,7 +1547,7 @@ gdk_event_translate (GdkEvent *event,
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;

View File

@ -31,7 +31,7 @@
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;

View File

@ -31,7 +31,7 @@
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;

View File

@ -26,11 +26,11 @@
#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"
@ -172,10 +172,10 @@ gdk_wcstombs (const GdkWChar *src)
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");
@ -219,9 +219,9 @@ gdk_mbstowcs (GdkWChar *dest, const gchar *src, gint dest_max)
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);
@ -229,11 +229,11 @@ gdk_mbstowcs (GdkWChar *dest, const gchar *src, gint dest_max)
}
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
{

View File

@ -26,11 +26,11 @@
#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"
@ -172,10 +172,10 @@ gdk_wcstombs (const GdkWChar *src)
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");
@ -219,9 +219,9 @@ gdk_mbstowcs (GdkWChar *dest, const gchar *src, gint dest_max)
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);
@ -229,11 +229,11 @@ gdk_mbstowcs (GdkWChar *dest, const gchar *src, gint dest_max)
}
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
{

View File

@ -1460,20 +1460,24 @@ gdk_input_exit (void)
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);

View File

@ -1460,20 +1460,24 @@ gdk_input_exit (void)
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);

View File

@ -30,6 +30,24 @@
#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>

View File

@ -30,6 +30,24 @@
#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>

89
gdk/win32/makefile.cygwin Normal file
View File

@ -0,0 +1,89 @@
## 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

View File

@ -6,7 +6,7 @@
BIN = C:\bin
# Location of the Wintab toolkit. Downloadable from http://www.pointing.com.
WTKIT = ..\..\..\wtkit125
WTKIT = ..\..\..\wtkit126
# Full optimization:
OPTIMIZE = -Ox
@ -17,18 +17,18 @@ 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 \

View File

@ -26,6 +26,10 @@
#include "config.h"
#include <glib.h> /* To get stat->_stat redefinition
* for mingw32
*/
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
@ -71,14 +75,17 @@
#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

View File

@ -70,7 +70,14 @@
#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"

View File

@ -48,7 +48,7 @@
#endif
#include <stdio.h>
#ifdef _MSC_VER
#ifdef NATIVE_WIN32
#include <io.h> /* For _open and _close */
#ifndef S_ISREG

View File

@ -439,13 +439,16 @@ gtk_init_check (int *argc,
}
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

View File

@ -50,7 +50,7 @@
#define lstat stat
#endif
#ifdef _MSC_VER
#ifdef NATIVE_WIN32
#include <io.h>
#endif

376
gtk/makefile.cygwin Normal file
View File

@ -0,0 +1,376 @@
## 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

View File

@ -7,8 +7,9 @@ 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
PTHREADS = ..\..\pthreads-snap-1999-04-07
PTHREAD_LIB = $(PTHREADS)\pthread.lib
PTHREAD_INC = -I $(PTHREADS)
# Full optimization:
OPTIMIZE = -Ox
@ -19,7 +20,7 @@ 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
@ -29,17 +30,15 @@ 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
@ -329,7 +328,7 @@ gtkmarshal.h gtkmarshal.c : gtkmarshal.list genmarshal.pl
# 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 :
@ -338,44 +337,44 @@ gtk-$(GTK_VER).dll : $(gtk_OBJECTS) gtk.def
#
# 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