Merge from stable: On Win32 (with no X11), don't include <X11/Xlib.h>. (Do

2003-07-27  Tor Lillqvist  <tml@iki.fi>

	* plug-ins/common/xpm.c: Merge from stable: On Win32 (with no
	X11), don't include <X11/Xlib.h>. (Do include <X11/xpm.h>, though,
	as such a file is provided by the libXpm-noX package.)
	(parse_colors): If XPM_NO_X (Win32), use GDK to parse color names.
This commit is contained in:
Tor Lillqvist 2003-07-27 09:46:38 +00:00 committed by Tor Lillqvist
parent 8ed4e82cb9
commit f62a884ea1
2 changed files with 30 additions and 5 deletions

View File

@ -6,6 +6,11 @@
the _destroy entries). The files where these are defined go in
libgimp, not libgimpui (see Makefile.am). Sort the .def files.
* plug-ins/common/xpm.c: Merge from stable: On Win32 (with no
X11), don't include <X11/Xlib.h>. (Do include <X11/xpm.h>, though,
as such a file is provided by the libXpm-noX package.)
(parse_colors): If XPM_NO_X (Win32), use GDK to parse color names.
2003-07-26 Tor Lillqvist <tml@iki.fi>
* plug-ins/libgck/gck/Makefile.am: Use -no-undefined on Windows.

View File

@ -46,11 +46,19 @@ Previous...Inherited code from Ray Lehtiniemi, who inherited it from S & P.
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <X11/Xlib.h>
#include <X11/xpm.h>
#include <gtk/gtk.h>
#ifdef GDK_WINDOWING_WIN32
#ifndef XPM_NO_X
#define XPM_NO_X
#endif
#else
#include <X11/Xlib.h>
#endif
#include <X11/xpm.h>
#include <libgimp/gimp.h>
#include <libgimp/gimpui.h>
@ -361,15 +369,19 @@ load_image (const gchar *filename)
static guchar*
parse_colors (XpmImage *xpm_image)
{
#ifndef XPM_NO_X
Display *display;
Colormap colormap;
#endif
gint i, j;
guchar *cmap;
#ifndef XPM_NO_X
/* open the display and get the default color map */
display = XOpenDisplay (NULL);
colormap = DefaultColormap (display, DefaultScreen (display));
#endif
/* alloc a buffer to hold the parsed colors */
cmap = g_new0 (guchar, 4 * xpm_image->ncolors);
@ -378,7 +390,11 @@ parse_colors (XpmImage *xpm_image)
{
gchar *colorspec = "None";
XpmColor *xpm_color;
#ifndef XPM_NO_X
XColor xcolor;
#else
GdkColor xcolor;
#endif
xpm_color = &(xpm_image->colorTable[i]);
@ -396,7 +412,11 @@ parse_colors (XpmImage *xpm_image)
g_new will memset the buffer to zeros */
if (strcmp (colorspec, "None") != 0)
{
#ifndef XPM_NO_X
XParseColor (display, colormap, colorspec, &xcolor);
#else
gdk_color_parse (colorspec, &xcolor);
#endif
cmap[j++] = xcolor.red >> 8;
cmap[j++] = xcolor.green >> 8;
cmap[j++] = xcolor.blue >> 8;
@ -407,9 +427,9 @@ parse_colors (XpmImage *xpm_image)
j += 4;
}
}
#ifndef XPM_NO_X
XCloseDisplay (display);
#endif
return cmap;
}