18 #ifndef MAGICKCORE_XWINDOW_PRIVATE_H
19 #define MAGICKCORE_XWINDOW_PRIVATE_H
21 #include "magick/draw.h"
22 #include "magick/exception.h"
23 #include "magick/geometry.h"
24 #include "magick/nt-base-private.h"
25 #include "magick/quantize.h"
27 #if defined(MAGICKCORE_X11_DELEGATE)
30 #include <X11/Xatom.h>
31 #include <X11/cursorfont.h>
32 #include <X11/keysym.h>
33 #include <X11/Xresource.h>
34 #include <X11/Xutil.h>
37 #if defined(__cplusplus) || defined(c_plusplus)
41 #if defined(MAGICKCORE_X11_DELEGATE)
43 #if defined(__cplusplus) || defined(c_plusplus)
44 # define klass c_class
49 #define MaxIconSize 96
50 #define MaxNumberPens 11
51 #define MaxNumberFonts 11
52 #define MaxXWindows 12
55 #define ThrowXWindowException(severity,tag,context) \
60 exception=AcquireExceptionInfo(); \
61 (void) ThrowMagickException(exception,GetMagickModule(),severity, \
62 tag == (const char *) NULL ? "unknown" : tag,"`%s': %s",context, \
64 CatchException(exception); \
65 (void) DestroyExceptionInfo(exception); \
67 #define ThrowXWindowFatalException(severity,tag,context) \
69 ThrowXWindowException(severity,tag,context); \
107 typedef struct _XDrawInfo
145 geometry[MaxTextExtent];
150 DefaultState = 0x0000,
151 EscapeState = 0x0001,
153 FormerImageState = 0x0004,
154 ModifierState = 0x0008,
155 MontageImageState = 0x0010,
156 NextImageState = 0x0020,
157 RetainColorsState = 0x0040,
159 UpdateConfigurationState = 0x0080,
160 UpdateRegionState = 0x0100
163 typedef struct _XAnnotateInfo
186 geometry[MaxTextExtent];
188 struct _XAnnotateInfo
193 typedef struct _XPixelInfo
212 pen_colors[MaxNumberPens];
224 typedef struct _XResourceInfo
268 *font_name[MaxNumberFonts],
295 *pen_colors[MaxNumberPens];
327 home_directory[MaxTextExtent];
333 typedef struct _XWindowInfo
438 typedef struct _XWindows
495 extern MagickExport
char
496 *XGetResourceClass(XrmDatabase,
const char *,
const char *,
char *),
497 *XGetResourceInstance(XrmDatabase,
const char *,
const char *,
const char *),
498 *XGetScreenDensity(Display *);
500 extern MagickExport Cursor
501 XMakeCursor(Display *,Window,Colormap,
char *,
char *);
503 extern MagickExport
int
504 XCheckDefineCursor(Display *,Window,Cursor),
505 XError(Display *,XErrorEvent *);
507 extern MagickExport MagickBooleanType
508 XAnnotateImage(Display *,
const XPixelInfo *,XAnnotateInfo *,
Image *),
509 XComponentGenesis(
void),
510 XDrawImage(Display *,
const XPixelInfo *,XDrawInfo *,
Image *),
511 XGetWindowColor(Display *,XWindows *,
char *),
512 XMagickProgressMonitor(
const char *,
const MagickOffsetType,
513 const MagickSizeType,
void *),
514 XMakeImage(Display *,
const XResourceInfo *,XWindowInfo *,
Image *,
unsigned int,
516 XQueryColorDatabase(
const char *,XColor *),
517 XRemoteCommand(Display *,
const char *,
const char *);
519 extern MagickExport
void
520 DestroyXResources(
void),
521 XBestIconSize(Display *,XWindowInfo *,
Image *),
522 XBestPixel(Display *,
const Colormap,XColor *,
unsigned int,XColor *),
523 XCheckRefreshWindows(Display *,XWindows *),
524 XClientMessage(Display *,
const Window,
const Atom,
const Atom,
const Time),
525 XComponentTerminus(
void),
526 XConfigureImageColormap(Display *,XResourceInfo *,XWindows *,
Image *),
527 XConstrainWindowPosition(Display *,XWindowInfo *),
528 XDelay(Display *,
const size_t),
529 XDisplayImageInfo(Display *,
const XResourceInfo *,XWindows *,
Image *,
Image *),
530 XDestroyResourceInfo(XResourceInfo *),
531 XDestroyWindowColors(Display *,Window),
532 XFreeResources(Display *,XVisualInfo *,XStandardColormap *,XPixelInfo *,
533 XFontStruct *,XResourceInfo *,XWindowInfo *),
534 XFreeStandardColormap(Display *,
const XVisualInfo *,XStandardColormap *,
536 XHighlightEllipse(Display *,Window,GC,
const RectangleInfo *),
537 XHighlightLine(Display *,Window,GC,
const XSegment *),
538 XHighlightRectangle(Display *,Window,GC,
const RectangleInfo *),
539 XGetAnnotateInfo(XAnnotateInfo *),
540 XGetPixelPacket(Display *,
const XVisualInfo *,
const XStandardColormap *,
541 const XResourceInfo *,
Image *,XPixelInfo *),
542 XGetMapInfo(
const XVisualInfo *,
const Colormap,XStandardColormap *),
543 XGetResourceInfo(
const ImageInfo *,XrmDatabase,
const char *,XResourceInfo *),
544 XGetWindowInfo(Display *,XVisualInfo *,XStandardColormap *,XPixelInfo *,
545 XFontStruct *,XResourceInfo *,XWindowInfo *),
546 XMakeMagnifyImage(Display *,XWindows *),
547 XMakeStandardColormap(Display *,XVisualInfo *,XResourceInfo *,
Image *,
548 XStandardColormap *,XPixelInfo *),
549 XMakeWindow(Display *,Window,
char **,
int,XClassHint *,XWMHints *,
551 XQueryPosition(Display *,
const Window,
int *,
int *),
552 XRefreshWindow(Display *,
const XWindowInfo *,
const XEvent *),
553 XRetainWindowColors(Display *,
const Window),
554 XSetCursorState(Display *,XWindows *,
const MagickStatusType),
555 XUserPreferences(XResourceInfo *),
556 XWarning(
const ExceptionType,
const char *,
const char *);
558 extern MagickExport Window
559 XWindowByID(Display *,
const Window,
const size_t),
560 XWindowByName(Display *,
const Window,
const char *),
561 XWindowByProperty(Display *,
const Window,
const Atom);
563 extern MagickExport XFontStruct
564 *XBestFont(Display *,
const XResourceInfo *,
const MagickBooleanType);
566 extern MagickExport XrmDatabase
567 XGetResourceDatabase(Display *,
const char *);
569 extern MagickExport XVisualInfo
570 *XBestVisualInfo(Display *,XStandardColormap *,XResourceInfo *);
572 extern MagickExport XWindows
573 *XInitializeWindows(Display *,XResourceInfo *),
574 *XSetWindows(XWindows *);
576 static inline MagickRealType XPixelIntensity(
const XColor *pixel)
581 if ((pixel->red == pixel->green) && (pixel->green == pixel->blue))
582 return((MagickRealType) pixel->red);
583 intensity=0.21265*pixel->red+0.715158*pixel->green+0.072186*pixel->blue;
588 extern MagickPrivate MagickBooleanType
591 #if defined(__cplusplus) || defined(c_plusplus)