mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-11-05 16:20:10 +00:00
More work on GDK for Win32. Still in an intermediate state.
2000-07-23 Tor Lillqvist <tml@iki.fi> More work on GDK for Win32. Still in an intermediate state. * gdk/makefile.cygwin * gdk/win32/makefile.cygwin: Removed. * gdk/makefile.mingw.in * gdk/win32/makefile.mingw.in: New files. * gdk/Makefile.am * gdk/win32/Makefile.am: Generate and distribute them. * gdk/win32/gdkwindow-win32.h * gdk/win32/gdkdrawable-win32.h * gdk/win32/gdkpixmap-win32.h: New files. * gdk/win32/gdkcolor-win32.c * gdk/win32/gdkcursor-win32.c * gdk/win32/gdkgc-win32.c * gdk/win32/gdkimage-win32.c * gdk/win32/gdkprivate-win32.h * gdk/win32/gdkwin32.h: Update data structures. Cosmetics: don't use fields and variables called xcursor, xid, etc (leftovers from the X11 backend).
This commit is contained in:
parent
a52f7c348e
commit
20b5d8ec2f
24
ChangeLog
24
ChangeLog
@ -3,6 +3,30 @@
|
||||
* configure.in: Check for mkstemp and sigsetjmp. Output
|
||||
gdk-pixbuf/makefile.mingw and gdk-pixbuf/pixops/makefile.mingw.
|
||||
|
||||
More work on GDK for Win32. Still in an intermediate state.
|
||||
|
||||
* gdk/makefile.cygwin
|
||||
* gdk/win32/makefile.cygwin: Removed.
|
||||
|
||||
* gdk/makefile.mingw.in
|
||||
* gdk/win32/makefile.mingw.in: New files.
|
||||
|
||||
* gdk/Makefile.am
|
||||
* gdk/win32/Makefile.am: Generate and distribute them.
|
||||
|
||||
* gdk/win32/gdkwindow-win32.h
|
||||
* gdk/win32/gdkdrawable-win32.h
|
||||
* gdk/win32/gdkpixmap-win32.h: New files.
|
||||
|
||||
* gdk/win32/gdkcolor-win32.c
|
||||
* gdk/win32/gdkcursor-win32.c
|
||||
* gdk/win32/gdkgc-win32.c
|
||||
* gdk/win32/gdkimage-win32.c
|
||||
* gdk/win32/gdkprivate-win32.h
|
||||
* gdk/win32/gdkwin32.h: Update data structures. Cosmetics:
|
||||
don't use fields and variables called xcursor, xid, etc (leftovers
|
||||
from the X11 backend).
|
||||
|
||||
Sat Jul 22 17:41:26 2000 Owen Taylor <otaylor@redhat.com>
|
||||
|
||||
* gtk/gtkentry.[ch]: Fix some problems with vertical
|
||||
|
@ -3,6 +3,30 @@
|
||||
* configure.in: Check for mkstemp and sigsetjmp. Output
|
||||
gdk-pixbuf/makefile.mingw and gdk-pixbuf/pixops/makefile.mingw.
|
||||
|
||||
More work on GDK for Win32. Still in an intermediate state.
|
||||
|
||||
* gdk/makefile.cygwin
|
||||
* gdk/win32/makefile.cygwin: Removed.
|
||||
|
||||
* gdk/makefile.mingw.in
|
||||
* gdk/win32/makefile.mingw.in: New files.
|
||||
|
||||
* gdk/Makefile.am
|
||||
* gdk/win32/Makefile.am: Generate and distribute them.
|
||||
|
||||
* gdk/win32/gdkwindow-win32.h
|
||||
* gdk/win32/gdkdrawable-win32.h
|
||||
* gdk/win32/gdkpixmap-win32.h: New files.
|
||||
|
||||
* gdk/win32/gdkcolor-win32.c
|
||||
* gdk/win32/gdkcursor-win32.c
|
||||
* gdk/win32/gdkgc-win32.c
|
||||
* gdk/win32/gdkimage-win32.c
|
||||
* gdk/win32/gdkprivate-win32.h
|
||||
* gdk/win32/gdkwin32.h: Update data structures. Cosmetics:
|
||||
don't use fields and variables called xcursor, xid, etc (leftovers
|
||||
from the X11 backend).
|
||||
|
||||
Sat Jul 22 17:41:26 2000 Owen Taylor <otaylor@redhat.com>
|
||||
|
||||
* gtk/gtkentry.[ch]: Fix some problems with vertical
|
||||
|
@ -3,6 +3,30 @@
|
||||
* configure.in: Check for mkstemp and sigsetjmp. Output
|
||||
gdk-pixbuf/makefile.mingw and gdk-pixbuf/pixops/makefile.mingw.
|
||||
|
||||
More work on GDK for Win32. Still in an intermediate state.
|
||||
|
||||
* gdk/makefile.cygwin
|
||||
* gdk/win32/makefile.cygwin: Removed.
|
||||
|
||||
* gdk/makefile.mingw.in
|
||||
* gdk/win32/makefile.mingw.in: New files.
|
||||
|
||||
* gdk/Makefile.am
|
||||
* gdk/win32/Makefile.am: Generate and distribute them.
|
||||
|
||||
* gdk/win32/gdkwindow-win32.h
|
||||
* gdk/win32/gdkdrawable-win32.h
|
||||
* gdk/win32/gdkpixmap-win32.h: New files.
|
||||
|
||||
* gdk/win32/gdkcolor-win32.c
|
||||
* gdk/win32/gdkcursor-win32.c
|
||||
* gdk/win32/gdkgc-win32.c
|
||||
* gdk/win32/gdkimage-win32.c
|
||||
* gdk/win32/gdkprivate-win32.h
|
||||
* gdk/win32/gdkwin32.h: Update data structures. Cosmetics:
|
||||
don't use fields and variables called xcursor, xid, etc (leftovers
|
||||
from the X11 backend).
|
||||
|
||||
Sat Jul 22 17:41:26 2000 Owen Taylor <otaylor@redhat.com>
|
||||
|
||||
* gtk/gtkentry.[ch]: Fix some problems with vertical
|
||||
|
@ -3,6 +3,30 @@
|
||||
* configure.in: Check for mkstemp and sigsetjmp. Output
|
||||
gdk-pixbuf/makefile.mingw and gdk-pixbuf/pixops/makefile.mingw.
|
||||
|
||||
More work on GDK for Win32. Still in an intermediate state.
|
||||
|
||||
* gdk/makefile.cygwin
|
||||
* gdk/win32/makefile.cygwin: Removed.
|
||||
|
||||
* gdk/makefile.mingw.in
|
||||
* gdk/win32/makefile.mingw.in: New files.
|
||||
|
||||
* gdk/Makefile.am
|
||||
* gdk/win32/Makefile.am: Generate and distribute them.
|
||||
|
||||
* gdk/win32/gdkwindow-win32.h
|
||||
* gdk/win32/gdkdrawable-win32.h
|
||||
* gdk/win32/gdkpixmap-win32.h: New files.
|
||||
|
||||
* gdk/win32/gdkcolor-win32.c
|
||||
* gdk/win32/gdkcursor-win32.c
|
||||
* gdk/win32/gdkgc-win32.c
|
||||
* gdk/win32/gdkimage-win32.c
|
||||
* gdk/win32/gdkprivate-win32.h
|
||||
* gdk/win32/gdkwin32.h: Update data structures. Cosmetics:
|
||||
don't use fields and variables called xcursor, xid, etc (leftovers
|
||||
from the X11 backend).
|
||||
|
||||
Sat Jul 22 17:41:26 2000 Owen Taylor <otaylor@redhat.com>
|
||||
|
||||
* gtk/gtkentry.[ch]: Fix some problems with vertical
|
||||
|
@ -3,6 +3,30 @@
|
||||
* configure.in: Check for mkstemp and sigsetjmp. Output
|
||||
gdk-pixbuf/makefile.mingw and gdk-pixbuf/pixops/makefile.mingw.
|
||||
|
||||
More work on GDK for Win32. Still in an intermediate state.
|
||||
|
||||
* gdk/makefile.cygwin
|
||||
* gdk/win32/makefile.cygwin: Removed.
|
||||
|
||||
* gdk/makefile.mingw.in
|
||||
* gdk/win32/makefile.mingw.in: New files.
|
||||
|
||||
* gdk/Makefile.am
|
||||
* gdk/win32/Makefile.am: Generate and distribute them.
|
||||
|
||||
* gdk/win32/gdkwindow-win32.h
|
||||
* gdk/win32/gdkdrawable-win32.h
|
||||
* gdk/win32/gdkpixmap-win32.h: New files.
|
||||
|
||||
* gdk/win32/gdkcolor-win32.c
|
||||
* gdk/win32/gdkcursor-win32.c
|
||||
* gdk/win32/gdkgc-win32.c
|
||||
* gdk/win32/gdkimage-win32.c
|
||||
* gdk/win32/gdkprivate-win32.h
|
||||
* gdk/win32/gdkwin32.h: Update data structures. Cosmetics:
|
||||
don't use fields and variables called xcursor, xid, etc (leftovers
|
||||
from the X11 backend).
|
||||
|
||||
Sat Jul 22 17:41:26 2000 Owen Taylor <otaylor@redhat.com>
|
||||
|
||||
* gtk/gtkentry.[ch]: Fix some problems with vertical
|
||||
|
@ -3,6 +3,30 @@
|
||||
* configure.in: Check for mkstemp and sigsetjmp. Output
|
||||
gdk-pixbuf/makefile.mingw and gdk-pixbuf/pixops/makefile.mingw.
|
||||
|
||||
More work on GDK for Win32. Still in an intermediate state.
|
||||
|
||||
* gdk/makefile.cygwin
|
||||
* gdk/win32/makefile.cygwin: Removed.
|
||||
|
||||
* gdk/makefile.mingw.in
|
||||
* gdk/win32/makefile.mingw.in: New files.
|
||||
|
||||
* gdk/Makefile.am
|
||||
* gdk/win32/Makefile.am: Generate and distribute them.
|
||||
|
||||
* gdk/win32/gdkwindow-win32.h
|
||||
* gdk/win32/gdkdrawable-win32.h
|
||||
* gdk/win32/gdkpixmap-win32.h: New files.
|
||||
|
||||
* gdk/win32/gdkcolor-win32.c
|
||||
* gdk/win32/gdkcursor-win32.c
|
||||
* gdk/win32/gdkgc-win32.c
|
||||
* gdk/win32/gdkimage-win32.c
|
||||
* gdk/win32/gdkprivate-win32.h
|
||||
* gdk/win32/gdkwin32.h: Update data structures. Cosmetics:
|
||||
don't use fields and variables called xcursor, xid, etc (leftovers
|
||||
from the X11 backend).
|
||||
|
||||
Sat Jul 22 17:41:26 2000 Owen Taylor <otaylor@redhat.com>
|
||||
|
||||
* gtk/gtkentry.[ch]: Fix some problems with vertical
|
||||
|
@ -3,6 +3,30 @@
|
||||
* configure.in: Check for mkstemp and sigsetjmp. Output
|
||||
gdk-pixbuf/makefile.mingw and gdk-pixbuf/pixops/makefile.mingw.
|
||||
|
||||
More work on GDK for Win32. Still in an intermediate state.
|
||||
|
||||
* gdk/makefile.cygwin
|
||||
* gdk/win32/makefile.cygwin: Removed.
|
||||
|
||||
* gdk/makefile.mingw.in
|
||||
* gdk/win32/makefile.mingw.in: New files.
|
||||
|
||||
* gdk/Makefile.am
|
||||
* gdk/win32/Makefile.am: Generate and distribute them.
|
||||
|
||||
* gdk/win32/gdkwindow-win32.h
|
||||
* gdk/win32/gdkdrawable-win32.h
|
||||
* gdk/win32/gdkpixmap-win32.h: New files.
|
||||
|
||||
* gdk/win32/gdkcolor-win32.c
|
||||
* gdk/win32/gdkcursor-win32.c
|
||||
* gdk/win32/gdkgc-win32.c
|
||||
* gdk/win32/gdkimage-win32.c
|
||||
* gdk/win32/gdkprivate-win32.h
|
||||
* gdk/win32/gdkwin32.h: Update data structures. Cosmetics:
|
||||
don't use fields and variables called xcursor, xid, etc (leftovers
|
||||
from the X11 backend).
|
||||
|
||||
Sat Jul 22 17:41:26 2000 Owen Taylor <otaylor@redhat.com>
|
||||
|
||||
* gtk/gtkentry.[ch]: Fix some problems with vertical
|
||||
|
@ -6,7 +6,7 @@ DIST_SUBDIRS=linux-fb nanox win32 x11
|
||||
EXTRA_DIST = \
|
||||
gdkconfig.h.win32 \
|
||||
gdk.def \
|
||||
makefile.cygwin \
|
||||
makefile.mingw \
|
||||
makefile.msc
|
||||
|
||||
common_includes = @STRIP_BEGIN@ \
|
||||
@ -179,6 +179,9 @@ stamp-gc-h: ../config.status
|
||||
cd .. && CONFIG_FILES= CONFIG_HEADERS= CONFIG_OTHER=gdk/gdkconfig.h ./config.status
|
||||
echo timestamp > stamp-gc-h
|
||||
|
||||
makefile.mingw: $(top_builddir)/config.status $(top_srcdir)/gdk/makefile.mingw.in
|
||||
cd $(top_builddir) && CONFIG_FILES=gdk/$@ CONFIG_HEADERS= $(SHELL) ./config.status
|
||||
|
||||
.PHONY: files
|
||||
|
||||
files:
|
||||
|
@ -1,56 +0,0 @@
|
||||
## Makefile for building the GDK DLL with gcc-2.95 or later on cygwin
|
||||
## Use: make -f makefile.cygwin
|
||||
|
||||
## You must first build the Win32-dependent sources in the win32 subdirectory.
|
||||
|
||||
## There is no install target, you have to decide where and
|
||||
## how to install for yourself.
|
||||
|
||||
OPTIMIZE = -g
|
||||
|
||||
TOP = ../..
|
||||
|
||||
include $(TOP)/build/win32/make.mingw
|
||||
|
||||
################################################################
|
||||
|
||||
# Nothing much configurable below
|
||||
|
||||
INCLUDES = -I . -I .. -I ../gdk-pixbuf
|
||||
DEPCFLAGS = $(GLIB_CFLAGS) $(PANGO_CFLAGS)
|
||||
DEFINES = -DG_ENABLE_DEBUG -DHAVE_CONFIG_H -DGDK_VERSION=\"$(GTK_VER)\"
|
||||
|
||||
all: \
|
||||
../config.h \
|
||||
gdkconfig.h \
|
||||
gdk-$(GTK_VER).dll
|
||||
|
||||
gdk_OBJECTS = \
|
||||
gdk.o \
|
||||
gdkcolor.o \
|
||||
gdkcursor.o \
|
||||
gdkdraw.o \
|
||||
gdkevents.o \
|
||||
gdkfont.o \
|
||||
gdkgc.o \
|
||||
gdkglobals.o \
|
||||
gdkimage.o \
|
||||
gdkkeyuni.o \
|
||||
gdkpango.o \
|
||||
gdkpixbuf-drawable.o \
|
||||
gdkpixbuf-render.o \
|
||||
gdkpixmap.o \
|
||||
gdkpolyreg-generic.o \
|
||||
gdkrgb.o \
|
||||
gdkrectangle.o \
|
||||
gdkregion-generic.o \
|
||||
gdkwindow.o
|
||||
|
||||
../config.h : ../config.h.win32
|
||||
cp $< $@
|
||||
|
||||
gdkconfig.h : gdkconfig.h.win32
|
||||
cp $< $@
|
||||
|
||||
gdk-$(GTK_VER).dll : $(gdk_OBJECTS) gdk.def win32/libgdk-win32.a win32/gdk-win32res.o
|
||||
$(GLIB)/build-dll gdk $(GTK_VER) gdk.def $(gdk_OBJECTS) -L win32 -lgdk-win32 -lwntab32x $(GLIB_LIBS) -lgdi32 -luser32 -limm32 -lshell32 -lole32 -luuid $(LDFLAGS) win32/gdk-win32res.o
|
73
gdk/makefile.mingw.in
Normal file
73
gdk/makefile.mingw.in
Normal file
@ -0,0 +1,73 @@
|
||||
## Makefile for building the GDK DLL with gcc on Win32
|
||||
## Use: make -f makefile.mingw
|
||||
|
||||
## There is no install target, you have to decide where and
|
||||
## how to install for yourself.
|
||||
|
||||
TOP = ../..
|
||||
|
||||
include ../build/win32/make.mingw
|
||||
|
||||
# Possibly override GTK+ version from build/win32/module.defs
|
||||
GTK_VER = @GTK_MAJOR_VERSION@.@GTK_MINOR_VERSION@
|
||||
|
||||
OPTIMIZE = -g
|
||||
|
||||
INCLUDES = -I . -I .. -I ../gdk-pixbuf
|
||||
DEPCFLAGS = $(GLIB_CFLAGS) $(PANGO_CFLAGS)
|
||||
DEFINES = -DG_ENABLE_DEBUG -DHAVE_CONFIG_H -DGDK_VERSION=\"$(GTK_VER)\"
|
||||
|
||||
all: \
|
||||
../config.h \
|
||||
gdkconfig.h \
|
||||
win32/libgdk-win32.a \
|
||||
win32/gdk-win32res.o \
|
||||
gdk-win32-$(GTK_VER).dll
|
||||
|
||||
gdk_OBJECTS = \
|
||||
gdk.o \
|
||||
gdkcolor.o \
|
||||
gdkcursor.o \
|
||||
gdkdraw.o \
|
||||
gdkevents.o \
|
||||
gdkfont.o \
|
||||
gdkgc.o \
|
||||
gdkglobals.o \
|
||||
gdkimage.o \
|
||||
gdkkeyuni.o \
|
||||
gdkpango.o \
|
||||
gdkpixbuf-drawable.o \
|
||||
gdkpixbuf-render.o \
|
||||
gdkpixmap.o \
|
||||
gdkpolyreg-generic.o \
|
||||
gdkrgb.o \
|
||||
gdkrectangle.o \
|
||||
gdkregion-generic.o \
|
||||
gdkwindow.o
|
||||
|
||||
../config.h : ../config.h.win32
|
||||
cp $< $@
|
||||
|
||||
gdkconfig.h : gdkconfig.h.win32
|
||||
cp $< $@
|
||||
|
||||
win32/libgdk-win32.a : FRC
|
||||
cd win32 && $(MAKE) -f makefile.mingw libgdk-win32.a
|
||||
|
||||
win32/gdk-win32res.o : FRC
|
||||
cd win32 && $(MAKE) -f makefile.mingw gdk-win32res.o
|
||||
|
||||
gdk-win32-$(GTK_VER).dll : $(gdk_OBJECTS) gdk.def win32/libgdk-win32.a win32/gdk-win32res.o win32/libwntab32x.a
|
||||
$(GLIB)/build-dll gdk-win32 $(GTK_VER) gdk.def $(gdk_OBJECTS) win32/gdk-win32.a win32/wntab32x.a $(GLIB_LIBS) -lgdi32 -luser32 -limm32 -lshell32 -lole32 -luuid $(LDFLAGS) win32/gdk-win32res.o
|
||||
|
||||
win32/libwntab32x.a : FRC
|
||||
cd win32 && $(MAKE) -f makefile.mingw libwntab32x.a
|
||||
|
||||
# Hack to get an updated makefile.mingw automatically after updating
|
||||
# makefile.mingw.in. Only for developer use.
|
||||
makefile.mingw: makefile.mingw.in
|
||||
sed -e 's,@GTK_MAJOR[_]VERSION@,@GTK_MAJOR_VERSION@,' \
|
||||
-e 's,@GTK_MINOR[_]VERSION@,@GTK_MINOR_VERSION@,' <$< >$@
|
||||
|
||||
.PHONY: FRC
|
||||
|
@ -1,5 +1,5 @@
|
||||
EXTRA_DIST = \
|
||||
makefile.cygwin \
|
||||
makefile.mingw \
|
||||
makefile.msc \
|
||||
gdkcc-win32.c \
|
||||
gdkcolor-win32.c \
|
||||
@ -24,8 +24,6 @@ EXTRA_DIST = \
|
||||
gdkwin32.h \
|
||||
gdkwin32id.c \
|
||||
gdkwindow-win32.c \
|
||||
makefile.cygwin \
|
||||
makefile.msc \
|
||||
surrogate-dimm.h \
|
||||
rc/gdk.rc \
|
||||
rc/gtk.ico \
|
||||
@ -106,3 +104,7 @@ EXTRA_DIST = \
|
||||
rc/cursor94.cur \
|
||||
rc/cursor96.cur \
|
||||
rc/cursor98.cur
|
||||
|
||||
makefile.mingw: $(top_builddir)/config.status $(top_srcdir)/gdk/win32/makefile.mingw.in
|
||||
cd $(top_builddir) && CONFIG_FILES=gdk/win32/$@ CONFIG_HEADERS= $(SHELL) ./config.status
|
||||
|
||||
|
@ -347,7 +347,7 @@ alloc_color(Colormap colormap,
|
||||
/*
|
||||
* Determine what color will actually be used on non-colormap systems.
|
||||
*/
|
||||
*pixelp = GetNearestColor (gdk_DC, RGB(entry.peRed, entry.peGreen, entry.peBlue));
|
||||
*pixelp = GetNearestColor (gdk_display_hdc, RGB(entry.peRed, entry.peGreen, entry.peBlue));
|
||||
|
||||
color->peRed = GetRValue (*pixelp);
|
||||
color->peGreen = GetGValue (*pixelp);
|
||||
@ -1562,7 +1562,7 @@ gdk_colormap_get_system_size (void)
|
||||
{
|
||||
gint bitspixel;
|
||||
|
||||
bitspixel = GetDeviceCaps (gdk_DC, BITSPIXEL);
|
||||
bitspixel = GetDeviceCaps (gdk_display_hdc, BITSPIXEL);
|
||||
|
||||
if (bitspixel == 1)
|
||||
return 2;
|
||||
|
@ -19,8 +19,10 @@
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include "gdkwin32.h"
|
||||
#include "gdkcursor.h"
|
||||
#include "gdkinternals.h"
|
||||
#include "gdkpixmap-win32.h"
|
||||
#include "gdkprivate-win32.h"
|
||||
|
||||
static const struct { const char *name; int type; } cursors[] = {
|
||||
@ -109,28 +111,28 @@ gdk_cursor_new (GdkCursorType cursor_type)
|
||||
{
|
||||
GdkCursorPrivate *private;
|
||||
GdkCursor *cursor;
|
||||
HCURSOR xcursor;
|
||||
HCURSOR hcursor;
|
||||
int i;
|
||||
|
||||
for (i = 0; cursors[i].name != NULL && cursors[i].type != cursor_type; i++)
|
||||
;
|
||||
if (cursors[i].name != NULL)
|
||||
{
|
||||
xcursor = LoadCursor (gdk_DLLInstance, cursors[i].name);
|
||||
if (xcursor == NULL)
|
||||
hcursor = LoadCursor (gdk_dll_hinstance, cursors[i].name);
|
||||
if (hcursor == NULL)
|
||||
WIN32_API_FAILED ("LoadCursor");
|
||||
GDK_NOTE (MISC, g_print ("gdk_cursor_new: %#x %d\n",
|
||||
xcursor, cursor_type));
|
||||
hcursor, cursor_type));
|
||||
}
|
||||
else
|
||||
{
|
||||
g_warning ("gdk_cursor_new: no cursor %d found",
|
||||
cursor_type);
|
||||
xcursor = NULL;
|
||||
hcursor = NULL;
|
||||
}
|
||||
|
||||
private = g_new (GdkCursorPrivate, 1);
|
||||
private->xcursor = xcursor;
|
||||
private->hcursor = hcursor;
|
||||
cursor = (GdkCursor*) private;
|
||||
cursor->type = cursor_type;
|
||||
cursor->ref_count = 1;
|
||||
@ -148,10 +150,10 @@ gdk_cursor_new_from_pixmap (GdkPixmap *source,
|
||||
{
|
||||
GdkCursorPrivate *private;
|
||||
GdkCursor *cursor;
|
||||
GdkDrawablePrivate *source_private, *mask_private;
|
||||
GdkPixmapImplWin32 *source_impl, *mask_impl;
|
||||
GdkImage *source_image, *mask_image;
|
||||
HCURSOR xcursor;
|
||||
guchar *p, *q, *XORmask, *ANDmask;
|
||||
HCURSOR hcursor;
|
||||
guchar *p, *q, *xor_mask, *and_mask;
|
||||
gint width, height, cursor_width, cursor_height;
|
||||
guchar residue;
|
||||
gint ix, iy;
|
||||
@ -161,19 +163,19 @@ gdk_cursor_new_from_pixmap (GdkPixmap *source,
|
||||
g_return_val_if_fail (fg != NULL, NULL);
|
||||
g_return_val_if_fail (bg != NULL, NULL);
|
||||
|
||||
source_private = (GdkDrawablePrivate *) source;
|
||||
mask_private = (GdkDrawablePrivate *) mask;
|
||||
source_impl = GDK_PIXMAP_IMPL_WIN32 (source);
|
||||
mask_impl = GDK_PIXMAP_IMPL_WIN32 (mask);
|
||||
|
||||
g_return_val_if_fail (source_private->width == mask_private->width
|
||||
&& source_private->height == mask_private->height,
|
||||
g_return_val_if_fail (source_impl->width == mask_impl->width
|
||||
&& source_impl->height == mask_impl->height,
|
||||
NULL);
|
||||
width = source_private->width;
|
||||
height = source_private->height;
|
||||
width = source_impl->width;
|
||||
height = source_impl->height;
|
||||
cursor_width = GetSystemMetrics (SM_CXCURSOR);
|
||||
cursor_height = GetSystemMetrics (SM_CYCURSOR);
|
||||
|
||||
g_return_val_if_fail (width <= cursor_width
|
||||
&& height <= cursor_height, NULL);
|
||||
g_return_val_if_fail (width <= cursor_width && height <= cursor_height,
|
||||
NULL);
|
||||
|
||||
residue = (1 << ((8-(width%8))%8)) - 1;
|
||||
|
||||
@ -182,10 +184,10 @@ gdk_cursor_new_from_pixmap (GdkPixmap *source,
|
||||
|
||||
if (source_image->depth != 1 || mask_image->depth != 1)
|
||||
{
|
||||
gdk_image_unref (source_image);
|
||||
gdk_image_unref (mask_image);
|
||||
g_return_val_if_fail (source_image->depth == 1 && mask_image->depth == 1,
|
||||
NULL);
|
||||
gdk_image_unref (source_image);
|
||||
gdk_image_unref (mask_image);
|
||||
g_return_val_if_fail (source_image->depth == 1 && mask_image->depth == 1,
|
||||
NULL);
|
||||
}
|
||||
|
||||
/* Such complex bit manipulation for this simple task, sigh.
|
||||
@ -195,7 +197,7 @@ gdk_cursor_new_from_pixmap (GdkPixmap *source,
|
||||
*/
|
||||
|
||||
/* First set masked-out source bits, as all source bits matter on Windoze.
|
||||
* As we invert them below, they will be clear in the final XORmask.
|
||||
* As we invert them below, they will be clear in the final xor_mask.
|
||||
*/
|
||||
for (iy = 0; iy < height; iy++)
|
||||
{
|
||||
@ -207,12 +209,12 @@ gdk_cursor_new_from_pixmap (GdkPixmap *source,
|
||||
}
|
||||
|
||||
/* XOR mask is initialized to zero */
|
||||
XORmask = g_malloc0 (cursor_width/8 * cursor_height);
|
||||
xor_mask = g_malloc0 (cursor_width/8 * cursor_height);
|
||||
|
||||
for (iy = 0; iy < height; iy++)
|
||||
{
|
||||
p = (guchar *) source_image->mem + iy*source_image->bpl;
|
||||
q = XORmask + iy*cursor_width/8;
|
||||
q = xor_mask + iy*cursor_width/8;
|
||||
|
||||
for (ix = 0; ix < ((width-1)/8+1); ix++)
|
||||
*q++ = ~(*p++);
|
||||
@ -220,38 +222,38 @@ gdk_cursor_new_from_pixmap (GdkPixmap *source,
|
||||
}
|
||||
|
||||
/* AND mask is initialized to ones */
|
||||
ANDmask = g_malloc (cursor_width/8 * cursor_height);
|
||||
memset (ANDmask, 0xFF, cursor_width/8 * cursor_height);
|
||||
and_mask = g_malloc (cursor_width/8 * cursor_height);
|
||||
memset (and_mask, 0xFF, cursor_width/8 * cursor_height);
|
||||
|
||||
for (iy = 0; iy < height; iy++)
|
||||
{
|
||||
p = (guchar *) mask_image->mem + iy*mask_image->bpl;
|
||||
q = ANDmask + iy*cursor_width/8;
|
||||
q = and_mask + iy*cursor_width/8;
|
||||
|
||||
for (ix = 0; ix < ((width-1)/8+1); ix++)
|
||||
*q++ = ~(*p++);
|
||||
q[-1] |= residue; /* Set left-over bits */
|
||||
}
|
||||
|
||||
xcursor = CreateCursor (gdk_ProgInstance, x, y, cursor_width, cursor_height,
|
||||
ANDmask, XORmask);
|
||||
hcursor = CreateCursor (gdk_app_hinstance, x, y, cursor_width, cursor_height,
|
||||
and_mask, xor_mask);
|
||||
|
||||
GDK_NOTE (MISC, g_print ("gdk_cursor_new_from_pixmap: "
|
||||
"%#x (%dx%d) %#x (%dx%d) = %#x (%dx%d)\n",
|
||||
GDK_DRAWABLE_XID (source),
|
||||
source_private->width, source_private->height,
|
||||
GDK_DRAWABLE_XID (mask),
|
||||
mask_private->width, mask_private->height,
|
||||
xcursor, cursor_width, cursor_height));
|
||||
GDK_PIXMAP_HBM (source),
|
||||
source_impl->width, source_impl->height,
|
||||
GDK_PIXMAP_HBM (mask),
|
||||
mask_impl->width, mask_impl->height,
|
||||
hcursor, cursor_width, cursor_height));
|
||||
|
||||
g_free (XORmask);
|
||||
g_free (ANDmask);
|
||||
g_free (xor_mask);
|
||||
g_free (and_mask);
|
||||
|
||||
gdk_image_unref (source_image);
|
||||
gdk_image_unref (mask_image);
|
||||
|
||||
private = g_new (GdkCursorPrivate, 1);
|
||||
private->xcursor = xcursor;
|
||||
private->hcursor = hcursor;
|
||||
cursor = (GdkCursor*) private;
|
||||
cursor->type = GDK_CURSOR_IS_PIXMAP;
|
||||
cursor->ref_count = 1;
|
||||
@ -268,10 +270,10 @@ _gdk_cursor_destroy (GdkCursor *cursor)
|
||||
private = (GdkCursorPrivate *) cursor;
|
||||
|
||||
GDK_NOTE (MISC, g_print ("_gdk_cursor_destroy: %#x\n",
|
||||
(cursor->type == GDK_CURSOR_IS_PIXMAP) ? private->xcursor : 0));
|
||||
(cursor->type == GDK_CURSOR_IS_PIXMAP) ? private->hcursor : 0));
|
||||
|
||||
if (cursor->type == GDK_CURSOR_IS_PIXMAP)
|
||||
if (!DestroyCursor (private->xcursor))
|
||||
if (!DestroyCursor (private->hcursor))
|
||||
WIN32_API_FAILED ("DestroyCursor");
|
||||
|
||||
g_free (private);
|
||||
|
72
gdk/win32/gdkdrawable-win32.h
Normal file
72
gdk/win32/gdkdrawable-win32.h
Normal file
@ -0,0 +1,72 @@
|
||||
/* GDK - The GIMP Drawing Kit
|
||||
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Library General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Library General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Library General Public
|
||||
* License along with this library; if not, write to the
|
||||
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
* Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
/*
|
||||
* 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
|
||||
* files for a list of changes. These files are distributed with
|
||||
* GTK+ at ftp://ftp.gtk.org/pub/gtk/.
|
||||
*/
|
||||
|
||||
#ifndef __GDK_DRAWABLE_WIN32_H__
|
||||
#define __GDK_DRAWABLE_WIN32_H__
|
||||
|
||||
#include <gdk/gdkdrawable.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* __cplusplus */
|
||||
|
||||
/* Drawable implementation for Win32
|
||||
*/
|
||||
|
||||
typedef struct _GdkDrawableImplWin32 GdkDrawableImplWin32;
|
||||
typedef struct _GdkDrawableImplWin32Class GdkDrawableImplWin32Class;
|
||||
|
||||
#define GDK_TYPE_DRAWABLE_IMPL_WIN32 (gdk_drawable_impl_win32_get_type ())
|
||||
#define GDK_DRAWABLE_IMPL_WIN32(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_DRAWABLE_IMPL_WIN32, GdkDrawableImplWin32))
|
||||
#define GDK_DRAWABLE_IMPL_WIN32_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_DRAWABLE_IMPL_WIN32, GdkDrawableImplWin32Class))
|
||||
#define GDK_IS_DRAWABLE_IMPL_WIN32(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_DRAWABLE_IMPL_WIN32))
|
||||
#define GDK_IS_DRAWABLE_IMPL_WIN32_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_DRAWABLE_IMPL_WIN32))
|
||||
#define GDK_DRAWABLE_IMPL_WIN32_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_DRAWABLE_IMPL_WIN32, GdkDrawableImplWin32Class))
|
||||
|
||||
struct _GdkDrawableImplWin32
|
||||
{
|
||||
GdkDrawable parent_instance;
|
||||
|
||||
GdkDrawable *wrapper;
|
||||
|
||||
GdkColormap *colormap;
|
||||
|
||||
HANDLE handle;
|
||||
};
|
||||
|
||||
struct _GdkDrawableImplWin32Class
|
||||
{
|
||||
GdkDrawableClass parent_class;
|
||||
|
||||
};
|
||||
|
||||
GType gdk_drawable_impl_win32_get_type (void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#endif /* __GDK_DRAWABLE_WIN32_H__ */
|
@ -167,6 +167,10 @@ gdk_win32_gc_values_to_win32values (GdkGCValues *values,
|
||||
data->rop2 = R2_NOTMASKPEN;
|
||||
GDK_NOTE (MISC, g_print ("NOTMASKPEN"));
|
||||
break;
|
||||
case GDK_NOR:
|
||||
data->rop2 = R2_NOTMERGEPEN;
|
||||
GDK_NOTE (MISC, g_print ("NOTMERGEPEN"));
|
||||
break;
|
||||
case GDK_SET:
|
||||
data->rop2 = R2_WHITE;
|
||||
GDK_NOTE (MISC, g_print ("WHITE"));
|
||||
@ -508,6 +512,8 @@ gdk_win32_gc_get_values (GdkGC *gc,
|
||||
values->function = GDK_OR_INVERT; break;
|
||||
case R2_NOTMASKPEN:
|
||||
values->function = GDK_NAND; break;
|
||||
case R2_NOTMERGEPEN:
|
||||
values->function = GDK_NOR; break;
|
||||
case R2_WHITE:
|
||||
values->function = GDK_SET; break;
|
||||
}
|
||||
|
@ -30,23 +30,69 @@
|
||||
#include "gdkinternals.h"
|
||||
#include "gdkprivate-win32.h"
|
||||
|
||||
static void gdk_win32_image_destroy (GdkImage *image);
|
||||
static void gdk_image_put (GdkImage *image,
|
||||
GdkDrawable *drawable,
|
||||
GdkGC *gc,
|
||||
gint xsrc,
|
||||
gint ysrc,
|
||||
gint xdest,
|
||||
gint ydest,
|
||||
gint width,
|
||||
gint height);
|
||||
|
||||
static GdkImageClass image_class = {
|
||||
gdk_win32_image_destroy,
|
||||
gdk_image_put
|
||||
};
|
||||
|
||||
static GList *image_list = NULL;
|
||||
static gpointer parent_class = NULL;
|
||||
|
||||
static void gdk_win32_image_destroy (GdkImage *image);
|
||||
static void gdk_image_init (GdkImage *image);
|
||||
static void gdk_image_class_init (GdkImageClass *klass);
|
||||
static void gdk_image_finalize (GObject *object);
|
||||
|
||||
#define PRIVATE_DATA(image) ((GdkImagePrivateWin32 *) GDK_IMAGE (image)->windowing_data)
|
||||
|
||||
GType
|
||||
gdk_image_get_type (void)
|
||||
{
|
||||
static GType object_type = 0;
|
||||
|
||||
if (!object_type)
|
||||
{
|
||||
static const GTypeInfo object_info =
|
||||
{
|
||||
sizeof (GdkImageClass),
|
||||
(GBaseInitFunc) NULL,
|
||||
(GBaseFinalizeFunc) NULL,
|
||||
(GClassInitFunc) gdk_image_class_init,
|
||||
NULL, /* class_finalize */
|
||||
NULL, /* class_data */
|
||||
sizeof (GdkImage),
|
||||
0, /* n_preallocs */
|
||||
(GInstanceInitFunc) gdk_image_init,
|
||||
};
|
||||
|
||||
object_type = g_type_register_static (G_TYPE_OBJECT,
|
||||
"GdkImage",
|
||||
&object_info);
|
||||
}
|
||||
|
||||
return object_type;
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_image_init (GdkImage *image)
|
||||
{
|
||||
image->windowing_data = g_new0 (GdkImagePrivateWin32, 1);
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_image_class_init (GdkImageClass *klass)
|
||||
{
|
||||
GObjectClass *object_class = G_OBJECT_CLASS (klass);
|
||||
|
||||
parent_class = g_type_class_peek_parent (klass);
|
||||
|
||||
object_class->finalize = gdk_image_finalize;
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_image_finalize (GObject *object)
|
||||
{
|
||||
GdkImage *image = GDK_IMAGE (object);
|
||||
|
||||
gdk_win32_image_destroy (image);
|
||||
|
||||
G_OBJECT_CLASS (parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
void
|
||||
gdk_image_exit (void)
|
||||
@ -136,8 +182,9 @@ gdk_image_new_bitmap (GdkVisual *visual, gpointer data, gint w, gint h)
|
||||
} /* gdk_image_new_bitmap() */
|
||||
|
||||
void
|
||||
gdk_image_init (void)
|
||||
_gdk_windowing_image_init (void)
|
||||
{
|
||||
/* Nothing needed AFAIK */
|
||||
}
|
||||
|
||||
static GdkImage*
|
||||
@ -321,7 +368,7 @@ gdk_image_get (GdkWindow *window,
|
||||
BITMAP bm;
|
||||
int i;
|
||||
|
||||
g_return_val_if_fail (window != NULL, NULL);
|
||||
g_return_val_if_fail (GDK_IS_WINDOW (window), NULL);
|
||||
|
||||
if (GDK_DRAWABLE_DESTROYED (window))
|
||||
return NULL;
|
||||
@ -329,11 +376,8 @@ gdk_image_get (GdkWindow *window,
|
||||
GDK_NOTE (MISC, g_print ("gdk_image_get: %#x %dx%d@+%d+%d\n",
|
||||
GDK_DRAWABLE_XID (window), width, height, x, y));
|
||||
|
||||
private = g_new (GdkImagePrivateWin32, 1);
|
||||
image = (GdkImage*) private;
|
||||
|
||||
private->base.ref_count = 1;
|
||||
private->base.klass = &image_class;
|
||||
image = g_object_new (gdk_image_get_type (), NULL);
|
||||
private = PRIVATE_DATA (image);
|
||||
|
||||
image->type = GDK_IMAGE_SHARED;
|
||||
image->visual = gdk_drawable_get_visual (window);
|
||||
@ -624,8 +668,14 @@ gdk_win32_image_destroy (GdkImage *image)
|
||||
|
||||
g_return_if_fail (image != NULL);
|
||||
|
||||
private = (GdkImagePrivateWin32 *) image;
|
||||
private = PRIVATE_DATA (image);
|
||||
|
||||
if (private == NULL) /* This means that gdk_image_exit() destroyed the
|
||||
* image already, and now we're called a second
|
||||
* time from _finalize()
|
||||
*/
|
||||
return;
|
||||
|
||||
GDK_NOTE (MISC, g_print ("gdk_win32_image_destroy: %#x%s\n",
|
||||
private->ximage,
|
||||
(image->type == GDK_IMAGE_SHARED_PIXMAP ?
|
||||
@ -648,7 +698,7 @@ gdk_win32_image_destroy (GdkImage *image)
|
||||
g_assert_not_reached ();
|
||||
}
|
||||
|
||||
g_free (image);
|
||||
g_free (private);
|
||||
}
|
||||
|
||||
static void
|
||||
|
72
gdk/win32/gdkpixmap-win32.h
Normal file
72
gdk/win32/gdkpixmap-win32.h
Normal file
@ -0,0 +1,72 @@
|
||||
/* GDK - The GIMP Drawing Kit
|
||||
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Library General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Library General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Library General Public
|
||||
* License along with this library; if not, write to the
|
||||
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
* Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
/*
|
||||
* 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
|
||||
* files for a list of changes. These files are distributed with
|
||||
* GTK+ at ftp://ftp.gtk.org/pub/gtk/.
|
||||
*/
|
||||
|
||||
#ifndef __GDK_PIXMAP_WIN32_H__
|
||||
#define __GDK_PIXMAP_WIN32_H__
|
||||
|
||||
#include <gdk/win32/gdkdrawable-win32.h>
|
||||
#include <gdk/gdkpixmap.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* __cplusplus */
|
||||
|
||||
/* Pixmap implementation for Win32
|
||||
*/
|
||||
|
||||
typedef struct _GdkPixmapImplWin32 GdkPixmapImplWin32;
|
||||
typedef struct _GdkPixmapImplWin32Class GdkPixmapImplWin32Class;
|
||||
|
||||
#define GDK_TYPE_PIXMAP_IMPL_WIN32 (gdk_pixmap_impl_win32_get_type ())
|
||||
#define GDK_PIXMAP_IMPL_WIN32(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_PIXMAP_IMPL_WIN32, GdkPixmapImplWin32))
|
||||
#define GDK_PIXMAP_IMPL_WIN32_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_PIXMAP_IMPL_WIN32, GdkPixmapImplWin32Class))
|
||||
#define GDK_IS_PIXMAP_IMPL_WIN32(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_PIXMAP_IMPL_WIN32))
|
||||
#define GDK_IS_PIXMAP_IMPL_WIN32_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_PIXMAP_IMPL_WIN32))
|
||||
#define GDK_PIXMAP_IMPL_WIN32_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_PIXMAP_IMPL_WIN32, GdkPixmapImplWin32Class))
|
||||
|
||||
struct _GdkPixmapImplWin32
|
||||
{
|
||||
GdkDrawableImplWin32 parent_instance;
|
||||
|
||||
gint width;
|
||||
gint height;
|
||||
|
||||
guint is_foreign : 1;
|
||||
};
|
||||
|
||||
struct _GdkPixmapImplWin32Class
|
||||
{
|
||||
GdkDrawableImplWin32Class parent_class;
|
||||
|
||||
};
|
||||
|
||||
GType gdk_pixmap_impl_win32_get_type (void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#endif /* __GDK_PIXMAP_WIN32_H__ */
|
@ -99,9 +99,9 @@ extern GdkDrawableClass _gdk_win32_drawable_class;
|
||||
extern HWND gdk_root_window;
|
||||
extern gboolean gdk_event_func_from_window_proc;
|
||||
|
||||
extern HDC gdk_DC;
|
||||
extern HINSTANCE gdk_DLLInstance;
|
||||
extern HINSTANCE gdk_ProgInstance;
|
||||
extern HDC gdk_display_hdc;
|
||||
extern HINSTANCE gdk_dll_hinstance;
|
||||
extern HINSTANCE gdk_app_hinstance;
|
||||
|
||||
extern UINT gdk_selection_notify_msg;
|
||||
extern UINT gdk_selection_request_msg;
|
||||
|
@ -30,10 +30,16 @@
|
||||
#include <gdk/gdkprivate.h>
|
||||
#include <gdk/gdkcursor.h>
|
||||
|
||||
#ifndef STRICT
|
||||
#define STRICT /* We want strict type checks */
|
||||
#endif
|
||||
#include <windows.h>
|
||||
#include <commctrl.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* __cplusplus */
|
||||
|
||||
/* Make up for some minor w32api header lossage */
|
||||
|
||||
/* PS_JOIN_MASK is missing */
|
||||
@ -182,86 +188,23 @@ typedef struct {
|
||||
unsigned long base_pixel;
|
||||
} XStandardColormap;
|
||||
|
||||
typedef struct _GdkDrawableWin32Data GdkDrawableWin32Data;
|
||||
typedef struct _GdkWindowWin32Data GdkWindowWin32Data;
|
||||
typedef struct _GdkWin32PositionInfo GdkWin32PositionInfo;
|
||||
typedef struct _GdkGCWin32Data GdkGCWin32Data;
|
||||
typedef struct _GdkColormapPrivateWin32 GdkColormapPrivateWin32;
|
||||
typedef struct _GdkCursorPrivate GdkCursorPrivate;
|
||||
typedef struct _GdkWin32SingleFont GdkWin32SingleFont;
|
||||
typedef struct _GdkFontPrivateWin32 GdkFontPrivateWin32;
|
||||
typedef struct _GdkImagePrivateWin32 GdkImagePrivateWin32;
|
||||
typedef struct _GdkVisualPrivate GdkVisualPrivate;
|
||||
typedef struct _GdkRegionPrivate GdkRegionPrivate;
|
||||
typedef struct _GdkICPrivate GdkICPrivate;
|
||||
|
||||
#define GDK_DRAWABLE_WIN32DATA(win) ((GdkDrawableWin32Data *)(((GdkDrawablePrivate*)(win))->klass_data))
|
||||
#define GDK_WINDOW_WIN32DATA(win) ((GdkWindowWin32Data *)(((GdkDrawablePrivate*)(win))->klass_data))
|
||||
|
||||
struct _GdkDrawableWin32Data
|
||||
{
|
||||
HANDLE xid;
|
||||
};
|
||||
|
||||
struct _GdkWin32PositionInfo
|
||||
{
|
||||
gint x;
|
||||
gint y;
|
||||
gint width;
|
||||
gint height;
|
||||
gint x_offset; /* Offsets to add to Win32 coordinates */
|
||||
gint y_offset; /* within window to get GDK coodinates */
|
||||
gboolean big : 1;
|
||||
gboolean mapped : 1;
|
||||
gboolean no_bg : 1; /* Set when the window background is
|
||||
* temporarily unset during resizing
|
||||
* and scaling */
|
||||
GdkRectangle clip_rect; /* visible rectangle of window */
|
||||
};
|
||||
|
||||
struct _GdkWindowWin32Data
|
||||
{
|
||||
GdkDrawableWin32Data drawable;
|
||||
|
||||
GdkWin32PositionInfo position_info;
|
||||
|
||||
/* We must keep the event mask here to filter them ourselves */
|
||||
gint event_mask;
|
||||
|
||||
/* Values for bg_type */
|
||||
#define GDK_WIN32_BG_NORMAL 0
|
||||
#define GDK_WIN32_BG_PIXEL 1
|
||||
#define GDK_WIN32_BG_PIXMAP 2
|
||||
#define GDK_WIN32_BG_PARENT_RELATIVE 3
|
||||
#define GDK_WIN32_BG_TRANSPARENT 4
|
||||
|
||||
/* We draw the background ourselves at WM_ERASEBKGND */
|
||||
guchar bg_type;
|
||||
gulong bg_pixel;
|
||||
GdkPixmap *bg_pixmap;
|
||||
|
||||
HCURSOR xcursor;
|
||||
|
||||
/* Window size hints */
|
||||
gint hint_flags;
|
||||
gint hint_x, hint_y;
|
||||
gint hint_min_width, hint_min_height;
|
||||
gint hint_max_width, hint_max_height;
|
||||
|
||||
gboolean extension_events_selected;
|
||||
|
||||
HKL input_locale;
|
||||
CHARSETINFO charset_info;
|
||||
};
|
||||
|
||||
struct _GdkCursorPrivate
|
||||
{
|
||||
GdkCursor cursor;
|
||||
HCURSOR xcursor;
|
||||
HCURSOR hcursor;
|
||||
};
|
||||
|
||||
struct _GdkWin32SingleFont
|
||||
{
|
||||
HFONT xfont;
|
||||
HFONT hfont;
|
||||
UINT charset;
|
||||
UINT codepage;
|
||||
FONTSIGNATURE fs;
|
||||
@ -352,15 +295,13 @@ GType gdk_gc_win32_get_type (void);
|
||||
#define GDK_ROOT_WINDOW() ((guint32) HWND_DESKTOP)
|
||||
#define GDK_ROOT_PARENT() ((GdkWindow *) gdk_parent_root)
|
||||
#define GDK_DISPLAY() NULL
|
||||
#define GDK_DRAWABLE_XID(win) (GDK_DRAWABLE_WIN32DATA(win)->xid)
|
||||
#define GDK_IMAGE_XIMAGE(image) (((GdkImagePrivate *) image)->ximage)
|
||||
#define GDK_COLORMAP_XDISPLAY(cmap) NULL
|
||||
#define GDK_COLORMAP_WIN32COLORMAP(cmap)(((GdkColormapPrivateWin32 *) cmap)->xcolormap)
|
||||
#define GDK_WINDOW_HWND(win) (GDK_DRAWABLE_IMPL_WIN32(((GdkWindowObject *)win)->impl)->handle)
|
||||
#define GDK_PIXMAP_HBM(win) (GDK_DRAWABLE_IMPL_WIN32(((GdkPixmapObject *)win)->impl)->handle)
|
||||
#define GDK_DRAWABLE_HANDLE(win) (GDK_IS_WINDOW (win) ? GDK_WINDOW_HWND (win) : GDK_PIXMAP_HBM (win))
|
||||
#define GDK_IMAGE_HBM(image) (((GdkImagePrivateWin32 *) GDK_IMAGE (image)->windowing_data)->hbm)
|
||||
#define GDK_COLORMAP_WIN32COLORMAP(cmap) (((GdkColormapPrivateWin32 *)GDK_COLORMAP (cmap)->windowing_data)->xcolormap)
|
||||
#define GDK_VISUAL_XVISUAL(vis) (((GdkVisualPrivate *) vis)->xvisual)
|
||||
|
||||
#define GDK_WINDOW_XWINDOW GDK_DRAWABLE_XID
|
||||
#define GDK_WINDOW_XDISPLAY GDK_DRAWABLE_XDISPLAY
|
||||
|
||||
GDKVAR gchar *gdk_progclass;
|
||||
GDKVAR ATOM gdk_selection_property;
|
||||
|
||||
@ -387,4 +328,8 @@ void gdk_win32_hdc_release (GdkDrawable *drawable,
|
||||
GdkGC *gc,
|
||||
GdkGCValuesMask usage);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#endif /* __GDK_WIN32_H__ */
|
||||
|
118
gdk/win32/gdkwindow-win32.h
Normal file
118
gdk/win32/gdkwindow-win32.h
Normal file
@ -0,0 +1,118 @@
|
||||
/* GDK - The GIMP Drawing Kit
|
||||
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Library General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Library General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Library General Public
|
||||
* License along with this library; if not, write to the
|
||||
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
* Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
/*
|
||||
* 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
|
||||
* files for a list of changes. These files are distributed with
|
||||
* GTK+ at ftp://ftp.gtk.org/pub/gtk/.
|
||||
*/
|
||||
|
||||
#ifndef __GDK_WINDOW_WIN32_H__
|
||||
#define __GDK_WINDOW_WIN32_H__
|
||||
|
||||
#include <gdk/win32/gdkdrawable-win32.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* __cplusplus */
|
||||
|
||||
typedef struct _GdkWin32PositionInfo GdkWin32PositionInfo;
|
||||
|
||||
struct _GdkWin32PositionInfo
|
||||
{
|
||||
gint x;
|
||||
gint y;
|
||||
gint width;
|
||||
gint height;
|
||||
gint x_offset; /* Offsets to add to Win32 coordinates */
|
||||
gint y_offset; /* within window to get GDK coodinates */
|
||||
gboolean big : 1;
|
||||
gboolean mapped : 1;
|
||||
gboolean no_bg : 1; /* Set when the window background
|
||||
* is temporarily unset during resizing
|
||||
* and scaling */
|
||||
GdkRectangle clip_rect; /* visible rectangle of window */
|
||||
};
|
||||
|
||||
|
||||
/* Window implementation for Win32
|
||||
*/
|
||||
|
||||
typedef struct _GdkWindowImplWin32 GdkWindowImplWin32;
|
||||
typedef struct _GdkWindowImplWin32Class GdkWindowImplWin32Class;
|
||||
|
||||
#define GDK_TYPE_WINDOW_IMPL_WIN32 (gdk_window_impl_win32_get_type ())
|
||||
#define GDK_WINDOW_IMPL_WIN32(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_WINDOW_IMPL_WIN32, GdkWindowImplWin32))
|
||||
#define GDK_WINDOW_IMPL_WIN32_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_WINDOW_IMPL_WIN32, GdkWindowImplWin32Class))
|
||||
#define GDK_IS_WINDOW_IMPL_WIN32(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_WINDOW_IMPL_WIN32))
|
||||
#define GDK_IS_WINDOW_IMPL_WIN32_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_WINDOW_IMPL_WIN32))
|
||||
#define GDK_WINDOW_IMPL_WIN32_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_WINDOW_IMPL_WIN32, GdkWindowImplWin32Class))
|
||||
|
||||
struct _GdkWindowImplWin32
|
||||
{
|
||||
GdkDrawableImplWin32 parent_instance;
|
||||
|
||||
gint width;
|
||||
gint height;
|
||||
|
||||
GdkWin32PositionInfo position_info;
|
||||
|
||||
/* We must keep the event mask here to filter them ourselves */
|
||||
gint event_mask;
|
||||
|
||||
/* Values for bg_type */
|
||||
#define GDK_WIN32_BG_NORMAL 0
|
||||
#define GDK_WIN32_BG_PIXEL 1
|
||||
#define GDK_WIN32_BG_PIXMAP 2
|
||||
#define GDK_WIN32_BG_PARENT_RELATIVE 3
|
||||
#define GDK_WIN32_BG_TRANSPARENT 4
|
||||
|
||||
/* We draw the background ourselves at WM_ERASEBKGND */
|
||||
guchar bg_type;
|
||||
gulong bg_pixel;
|
||||
GdkPixmap *bg_pixmap;
|
||||
|
||||
HCURSOR hcursor;
|
||||
|
||||
/* Window size hints */
|
||||
gint hint_flags;
|
||||
gint hint_x, hint_y;
|
||||
gint hint_min_width, hint_min_height;
|
||||
gint hint_max_width, hint_max_height;
|
||||
|
||||
gboolean extension_events_selected;
|
||||
|
||||
HKL input_locale;
|
||||
CHARSETINFO charset_info;
|
||||
};
|
||||
|
||||
struct _GdkWindowImplWin32Class
|
||||
{
|
||||
GdkDrawableImplWin32Class parent_class;
|
||||
|
||||
};
|
||||
|
||||
GType gdk_window_impl_win32_get_type (void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#endif /* __GDK_WINDOW_WIN32_H__ */
|
@ -1,84 +0,0 @@
|
||||
## Makefile for building the machine dependent part of GDK on Win32 with gcc
|
||||
## Use: make -f makefile.cygwin
|
||||
|
||||
# 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
|
||||
|
||||
TOP = ../../..
|
||||
|
||||
include $(TOP)/build/win32/make.mingw
|
||||
|
||||
################################################################
|
||||
|
||||
# Nothing much configurable below
|
||||
|
||||
INCLUDES = -I ../.. -I .. -I $(WTKIT)/include
|
||||
DEPCFLAGS = $(GLIB_CFLAGS) $(PANGO_CFLAGS)
|
||||
DEFINES = -DG_ENABLE_DEBUG -DHAVE_CONFIG_H -DGDK_VERSION=\"$(GTK_VER)\"
|
||||
|
||||
all: \
|
||||
../../config.h \
|
||||
../gdkconfig.h \
|
||||
libgdk-win32.a \
|
||||
gdk-win32res.o \
|
||||
libwntab32x.a
|
||||
|
||||
gdk_win32_OBJECTS = \
|
||||
gdkcc-win32.o \
|
||||
gdkcolor-win32.o \
|
||||
gdkcursor-win32.o \
|
||||
gdkdnd-win32.o \
|
||||
gdkdrawable-win32.o \
|
||||
gdkevents-win32.o \
|
||||
gdkfont-win32.o \
|
||||
gdkgc-win32.o \
|
||||
gdkgeometry-win32.o \
|
||||
gdkglobals-win32.o \
|
||||
gdkim-win32.o \
|
||||
gdkimage-win32.o \
|
||||
gdkinput-win32.o \
|
||||
gdkmain-win32.o \
|
||||
gdkpixmap-win32.o \
|
||||
gdkproperty-win32.o \
|
||||
gdkselection-win32.o \
|
||||
gdkvisual-win32.o \
|
||||
gdkwin32id.o \
|
||||
gdkwindow-win32.o
|
||||
|
||||
../../config.h : ../../config.h.win32
|
||||
cp $< $@
|
||||
|
||||
../gdkconfig.h : ../gdkconfig.h.win32
|
||||
cp $< $@
|
||||
|
||||
# Kludge to get the path to the win32 headers
|
||||
WIN32APIHEADERS = $(shell echo "\#include <winver.h>" | $(CC) -M -E - | tail -1 | sed -e 's![\\/]winver.h!!' | tr -d '\015')
|
||||
|
||||
gdk-win32res.o : rc/gdk.rc gdk-build.tmp
|
||||
m4 -DBUILDNUMBER=`cat gdk-build.tmp` <rc/gdk.rc >gdk-win32res.rc
|
||||
windres --include-dir rc --include-dir $(WIN32APIHEADERS) gdk-win32res.rc gdk-win32res.o
|
||||
rm gdk-build.tmp gdk-win32res.rc
|
||||
|
||||
# The *.stamp files aren't distributed. Thus, this takes care of only
|
||||
# tml building libraries with nonzero build number.
|
||||
|
||||
ifeq ($(wildcard gdk-build.stamp),gdk-build.stamp)
|
||||
# Magic to bump the build number
|
||||
gdk-build.tmp :
|
||||
bash -c "read number && echo $$[number+1]" <gdk-build.stamp >gdk-build.tmp
|
||||
cp gdk-build.tmp gdk-build.stamp
|
||||
else
|
||||
# Use zero as build number.
|
||||
gdk-build.tmp :
|
||||
echo 0 >gdk-build.tmp
|
||||
endif
|
||||
|
||||
libgdk-win32.a : $(gdk_win32_OBJECTS)
|
||||
-rm -f $@
|
||||
$(AR) rv $@ $(gdk_win32_OBJECTS)
|
||||
|
||||
libwntab32x.a : $(WTKIT)/lib/i386/wntab32x.lib
|
||||
cp $(WTKIT)/lib/i386/wntab32x.lib libwntab32x.a
|
87
gdk/win32/makefile.mingw.in
Normal file
87
gdk/win32/makefile.mingw.in
Normal file
@ -0,0 +1,87 @@
|
||||
## Makefile for building the Win32 dependent GDK objects with gcc on Win32
|
||||
## Use: make -f makefile.mingw
|
||||
|
||||
TOP = ../../..
|
||||
|
||||
# Location of the Wintab toolkit. Downloadable from
|
||||
# http://www.pointing.com. We use the wntab32x.lib archive library
|
||||
# directly (copying it to libwntab32x.a).
|
||||
WTKIT = $(TOP)/wtkit126
|
||||
|
||||
include ../../build/win32/make.mingw
|
||||
|
||||
# Possibly override GTK+ version from build/win32/module.defs
|
||||
GTK_VER = @GTK_MAJOR_VERSION@.@GTK_MINOR_VERSION@
|
||||
|
||||
OPTIMIZE = -g
|
||||
|
||||
INCLUDES = -I ../.. -I .. -I $(WTKIT)/include
|
||||
DEPCFLAGS = $(GLIB_CFLAGS) $(PANGO_CFLAGS)
|
||||
DEFINES = -DG_ENABLE_DEBUG -DHAVE_CONFIG_H -DGDK_VERSION=\"$(GTK_VER)\"
|
||||
|
||||
all: \
|
||||
../../config.h \
|
||||
../gdkconfig.h \
|
||||
libgdk-win32.a \
|
||||
gdk-win32res.o \
|
||||
libwntab32x.a
|
||||
|
||||
gdk_win32_OBJECTS = \
|
||||
gdkcc-win32.o \
|
||||
gdkcolor-win32.o \
|
||||
gdkcursor-win32.o \
|
||||
gdkdnd-win32.o \
|
||||
gdkdrawable-win32.o \
|
||||
gdkevents-win32.o \
|
||||
gdkfont-win32.o \
|
||||
gdkgc-win32.o \
|
||||
gdkgeometry-win32.o \
|
||||
gdkglobals-win32.o \
|
||||
gdkim-win32.o \
|
||||
gdkimage-win32.o \
|
||||
gdkinput-win32.o \
|
||||
gdkmain-win32.o \
|
||||
gdkpixmap-win32.o \
|
||||
gdkproperty-win32.o \
|
||||
gdkselection-win32.o \
|
||||
gdkvisual-win32.o \
|
||||
gdkwin32id.o \
|
||||
gdkwindow-win32.o
|
||||
|
||||
../../config.h : ../../config.h.win32
|
||||
cp $< $@
|
||||
|
||||
../gdkconfig.h : ../gdkconfig.h.win32
|
||||
cp $< $@
|
||||
|
||||
gdk-win32res.o : rc/gdk.rc gdk-build.tmp
|
||||
m4 -DBUILDNUMBER=`cat gdk-build.tmp` <rc/gdk.rc >gdk-win32res.rc
|
||||
windres --include-dir rc gdk-win32res.rc gdk-win32res.o
|
||||
rm gdk-build.tmp gdk-win32res.rc
|
||||
|
||||
# The *.stamp files aren't distributed. Thus, this takes care of only
|
||||
# tml building libraries with nonzero build number.
|
||||
|
||||
ifeq ($(wildcard gdk-build.stamp),gdk-build.stamp)
|
||||
# Magic to bump the build number
|
||||
gdk-build.tmp :
|
||||
bash -c "read number && echo $$[number+1]" <gdk-build.stamp >gdk-build.tmp
|
||||
cp gdk-build.tmp gdk-build.stamp
|
||||
else
|
||||
# Use zero as build number.
|
||||
gdk-build.tmp :
|
||||
echo 0 >gdk-build.tmp
|
||||
endif
|
||||
|
||||
libgdk-win32.a : $(gdk_win32_OBJECTS)
|
||||
-rm -f $@
|
||||
$(AR) rv $@ $(gdk_win32_OBJECTS)
|
||||
|
||||
libwntab32x.a : $(WTKIT)/lib/i386/wntab32x.lib
|
||||
cp $< $@
|
||||
|
||||
# Hack to get an updated makefile.mingw automatically after updating
|
||||
# makefile.mingw.in. Only for developer use.
|
||||
makefile.mingw: makefile.mingw.in
|
||||
sed -e 's,@GTK_MAJOR[_]VERSION@,@GTK_MAJOR_VERSION@,' \
|
||||
-e 's,@GTK_MINOR[_]VERSION@,@GTK_MINOR_VERSION@,' <$< >$@
|
Loading…
Reference in New Issue
Block a user