Commit 617e17da authored by Tor Lillqvist's avatar Tor Lillqvist Committed by Tor Lillqvist

gdk/gdkimage.h No need any longer on Win32 for the shared memory

2000-08-20  Tor Lillqvist  <tml@iki.fi>

	* gdk/gdkimage.h
	* gdk/win32/gdkimage-win32.c: No need any longer on Win32 for the
	shared memory image+pixmap GdkImage type, or
	gdk_image_bitmap_new(). They were used in the gdk_imlib port, but
	I am dropping that.

	* gtk/gtkmain.h: On Win32, use a #define to map gtk_init() to
	actually call gtk_init_abi_check(), passing also
	sizeof(GtkWindow). Ditto for gtk_init_check().

	* gtk/gtk.def
	* gtk/gtkmain.c: (gtk_init_abi_check, gtk_init_check_abi_check):
	New functions, used to check that the GTK+-using code has been
	compiled using the correct compiler and switches. In particular,
	with gcc one has to use the -fnative-struct switch as GTK+ is
	compiled with that.
parent 41885abc
2000-08-20 Tor Lillqvist <tml@iki.fi>
* gdk/gdkimage.h
* gdk/win32/gdkimage-win32.c: No need any longer on Win32 for the
shared memory image+pixmap GdkImage type, or
gdk_image_bitmap_new(). They were used in the gdk_imlib port, but
I am dropping that.
* gtk/gtkmain.h: On Win32, use a #define to map gtk_init() to
actually call gtk_init_abi_check(), passing also
sizeof(GtkWindow). Ditto for gtk_init_check().
* gtk/gtk.def
* gtk/gtkmain.c: (gtk_init_abi_check, gtk_init_check_abi_check):
New functions, used to check that the GTK+-using code has been
compiled using the correct compiler and switches. In particular,
with gcc one has to use the -fnative-struct switch as GTK+ is
compiled with that.
Fri Aug 18 17:27:46 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkclist.c (gtk_clist_merge): Don't leave dangling
......
2000-08-20 Tor Lillqvist <tml@iki.fi>
* gdk/gdkimage.h
* gdk/win32/gdkimage-win32.c: No need any longer on Win32 for the
shared memory image+pixmap GdkImage type, or
gdk_image_bitmap_new(). They were used in the gdk_imlib port, but
I am dropping that.
* gtk/gtkmain.h: On Win32, use a #define to map gtk_init() to
actually call gtk_init_abi_check(), passing also
sizeof(GtkWindow). Ditto for gtk_init_check().
* gtk/gtk.def
* gtk/gtkmain.c: (gtk_init_abi_check, gtk_init_check_abi_check):
New functions, used to check that the GTK+-using code has been
compiled using the correct compiler and switches. In particular,
with gcc one has to use the -fnative-struct switch as GTK+ is
compiled with that.
Fri Aug 18 17:27:46 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkclist.c (gtk_clist_merge): Don't leave dangling
......
2000-08-20 Tor Lillqvist <tml@iki.fi>
* gdk/gdkimage.h
* gdk/win32/gdkimage-win32.c: No need any longer on Win32 for the
shared memory image+pixmap GdkImage type, or
gdk_image_bitmap_new(). They were used in the gdk_imlib port, but
I am dropping that.
* gtk/gtkmain.h: On Win32, use a #define to map gtk_init() to
actually call gtk_init_abi_check(), passing also
sizeof(GtkWindow). Ditto for gtk_init_check().
* gtk/gtk.def
* gtk/gtkmain.c: (gtk_init_abi_check, gtk_init_check_abi_check):
New functions, used to check that the GTK+-using code has been
compiled using the correct compiler and switches. In particular,
with gcc one has to use the -fnative-struct switch as GTK+ is
compiled with that.
Fri Aug 18 17:27:46 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkclist.c (gtk_clist_merge): Don't leave dangling
......
2000-08-20 Tor Lillqvist <tml@iki.fi>
* gdk/gdkimage.h
* gdk/win32/gdkimage-win32.c: No need any longer on Win32 for the
shared memory image+pixmap GdkImage type, or
gdk_image_bitmap_new(). They were used in the gdk_imlib port, but
I am dropping that.
* gtk/gtkmain.h: On Win32, use a #define to map gtk_init() to
actually call gtk_init_abi_check(), passing also
sizeof(GtkWindow). Ditto for gtk_init_check().
* gtk/gtk.def
* gtk/gtkmain.c: (gtk_init_abi_check, gtk_init_check_abi_check):
New functions, used to check that the GTK+-using code has been
compiled using the correct compiler and switches. In particular,
with gcc one has to use the -fnative-struct switch as GTK+ is
compiled with that.
Fri Aug 18 17:27:46 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkclist.c (gtk_clist_merge): Don't leave dangling
......
2000-08-20 Tor Lillqvist <tml@iki.fi>
* gdk/gdkimage.h
* gdk/win32/gdkimage-win32.c: No need any longer on Win32 for the
shared memory image+pixmap GdkImage type, or
gdk_image_bitmap_new(). They were used in the gdk_imlib port, but
I am dropping that.
* gtk/gtkmain.h: On Win32, use a #define to map gtk_init() to
actually call gtk_init_abi_check(), passing also
sizeof(GtkWindow). Ditto for gtk_init_check().
* gtk/gtk.def
* gtk/gtkmain.c: (gtk_init_abi_check, gtk_init_check_abi_check):
New functions, used to check that the GTK+-using code has been
compiled using the correct compiler and switches. In particular,
with gcc one has to use the -fnative-struct switch as GTK+ is
compiled with that.
Fri Aug 18 17:27:46 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkclist.c (gtk_clist_merge): Don't leave dangling
......
2000-08-20 Tor Lillqvist <tml@iki.fi>
* gdk/gdkimage.h
* gdk/win32/gdkimage-win32.c: No need any longer on Win32 for the
shared memory image+pixmap GdkImage type, or
gdk_image_bitmap_new(). They were used in the gdk_imlib port, but
I am dropping that.
* gtk/gtkmain.h: On Win32, use a #define to map gtk_init() to
actually call gtk_init_abi_check(), passing also
sizeof(GtkWindow). Ditto for gtk_init_check().
* gtk/gtk.def
* gtk/gtkmain.c: (gtk_init_abi_check, gtk_init_check_abi_check):
New functions, used to check that the GTK+-using code has been
compiled using the correct compiler and switches. In particular,
with gcc one has to use the -fnative-struct switch as GTK+ is
compiled with that.
Fri Aug 18 17:27:46 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkclist.c (gtk_clist_merge): Don't leave dangling
......
2000-08-20 Tor Lillqvist <tml@iki.fi>
* gdk/gdkimage.h
* gdk/win32/gdkimage-win32.c: No need any longer on Win32 for the
shared memory image+pixmap GdkImage type, or
gdk_image_bitmap_new(). They were used in the gdk_imlib port, but
I am dropping that.
* gtk/gtkmain.h: On Win32, use a #define to map gtk_init() to
actually call gtk_init_abi_check(), passing also
sizeof(GtkWindow). Ditto for gtk_init_check().
* gtk/gtk.def
* gtk/gtkmain.c: (gtk_init_abi_check, gtk_init_check_abi_check):
New functions, used to check that the GTK+-using code has been
compiled using the correct compiler and switches. In particular,
with gcc one has to use the -fnative-struct switch as GTK+ is
compiled with that.
Fri Aug 18 17:27:46 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkclist.c (gtk_clist_merge): Don't leave dangling
......
......@@ -17,16 +17,12 @@ extern "C" {
* for both the X server and the program to be reading/writing
* the image simultaneously and producing undesired results.
* On Win32, also a bitmap.
* Shared Pixmap: Also a shared memory image, which also has a
* pixmap using the same memory. Used by gdk_imlib with the
* Win32 backend.
*/
typedef enum
{
GDK_IMAGE_NORMAL,
GDK_IMAGE_SHARED,
GDK_IMAGE_FASTEST,
GDK_IMAGE_SHARED_PIXMAP
GDK_IMAGE_FASTEST
} GdkImageType;
typedef struct _GdkImageClass GdkImageClass;
......@@ -70,13 +66,7 @@ GdkImage* gdk_image_new (GdkImageType type,
GdkVisual *visual,
gint width,
gint height);
#ifdef GDK_WINDOWING_WIN32
GdkImage* gdk_image_bitmap_new(GdkImageType type,
GdkVisual *visual,
gint width,
gint height);
#endif
GdkImage* gdk_image_get (GdkDrawable *drawable,
gint x,
gint y,
......
......@@ -218,8 +218,7 @@ gdk_image_new (GdkImageType type,
GDK_NOTE (MISC, g_print ("gdk_image_new: %dx%d %s\n",
width, height,
(type == GDK_IMAGE_SHARED ? "shared" :
(type == GDK_IMAGE_SHARED_PIXMAP ? "shared_pixmap" :
"???"))));
"???")));
image = g_object_new (gdk_image_get_type (), NULL);
private = PRIVATE_DATA (image);
......@@ -654,18 +653,10 @@ gdk_win32_image_destroy (GdkImage *image)
return;
GDK_NOTE (MISC, g_print ("gdk_win32_image_destroy: %#x%s\n",
private->hbitmap,
(image->type == GDK_IMAGE_SHARED_PIXMAP ?
" (shared pixmap)" : "")));
private->hbitmap));
switch (image->type)
{
case GDK_IMAGE_SHARED_PIXMAP:
break; /* The Windows bitmap has already been
* (or will be) deleted when freeing
* the corresponding pixmap.
*/
case GDK_IMAGE_SHARED:
if (!DeleteObject (private->hbitmap))
WIN32_GDI_FAILED ("DeleteObject");
......
......@@ -569,8 +569,10 @@ EXPORTS
gtk_image_new
gtk_image_set
gtk_init
gtk_init_abi_check
gtk_init_add
gtk_init_check
gtk_init_check_abi_check
gtk_input_add_full
gtk_input_dialog_get_type
gtk_input_dialog_new
......
......@@ -194,6 +194,8 @@ static gchar *add_dll_suffix(gchar *module_name)
}
#endif
#undef gtk_init_check
gboolean
gtk_init_check (int *argc,
char ***argv)
......@@ -460,6 +462,9 @@ gtk_init_check (int *argc,
return TRUE;
}
#undef gtk_init
void
gtk_init (int *argc, char ***argv)
{
......@@ -470,6 +475,38 @@ gtk_init (int *argc, char ***argv)
}
}
#ifdef G_OS_WIN32
static void
check_sizeof_GtkWindow (size_t sizeof_GtkWindow)
{
if (sizeof_GtkWindow != sizeof (GtkWindow))
g_error ("Incompatible build!\n"
"The code using GTK+ thinks GtkWindow is of different\n"
"size than it actually is in this build of GTK+.\n"
"On Windows, this probably means that you have compiled\n"
"your code with gcc without the -fnative-struct switch.");
}
/* These two functions might get more checks added later, thus pass
* in the number of extra args.
*/
void
gtk_init_abi_check (int *argc, char ***argv, int num_checks, size_t sizeof_GtkWindow)
{
check_sizeof_GtkWindow (sizeof_GtkWindow);
gtk_init (argc, argv);
}
gboolean
gtk_init_check_abi_check (int *argc, char ***argv, int num_checks, size_t sizeof_GtkWindow)
{
check_sizeof_GtkWindow (sizeof_GtkWindow);
return gtk_init_check (argc, argv);
}
#endif
void
gtk_exit (gint errorcode)
{
......
......@@ -81,8 +81,28 @@ gchar* gtk_check_version (guint required_major,
void gtk_init (int *argc,
char ***argv);
gboolean gtk_init_check (int *argc,
char ***argv);
#ifdef G_OS_WIN32
/* Variants that are used to check for correct struct packing
* when building GTK+-using code.
*/
void gtk_init_abi_check (int *argc,
char ***argv,
int num_checks,
size_t sizeof_GtkWindow);
gboolean gtk_init_check_abi_check (int *argc,
char ***argv,
int num_checks,
size_t sizeof_GtkWindow);
#define gtk_init(argc, argv) gtk_init_abi_check (argc, argv, 1, sizeof (GtkWindow))
#define gtk_init_check(args, argv) gtk_init_check_abi_check (argc, argv, 1, sizeof (GtkWindow))
#endif
void gtk_exit (gint error_code);
gchar* gtk_set_locale (void);
gchar* gtk_get_default_language (void);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment