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)
31#include <X11/cursorfont.h>
32#include <X11/keysym.h>
33#include <X11/Xresource.h>
37#if defined(__cplusplus) || defined(c_plusplus)
41#if defined(MAGICKCORE_X11_DELEGATE)
43#if defined(__cplusplus) || defined(c_plusplus)
50#define MaxNumberPens 11
51#define MaxNumberFonts 11
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); \
107typedef 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
163typedef struct _XAnnotateInfo
186 geometry[MaxTextExtent];
188 struct _XAnnotateInfo
193typedef struct _XPixelInfo
212 pen_colors[MaxNumberPens];
224typedef struct _XResourceInfo
268 *font_name[MaxNumberFonts],
295 *pen_colors[MaxNumberPens];
327 home_directory[MaxTextExtent];
333typedef struct _XWindowInfo
438typedef struct _XWindows
495extern MagickExport
char
496 *XGetResourceClass(XrmDatabase,
const char *,
const char *,
char *),
497 *XGetResourceInstance(XrmDatabase,
const char *,
const char *,
const char *),
498 *XGetScreenDensity(Display *);
500extern MagickExport Cursor
501 XMakeCursor(Display *,Window,Colormap,
char *,
char *);
503extern MagickExport
int
504 XCheckDefineCursor(Display *,Window,Cursor),
505 XError(Display *,XErrorEvent *);
507extern 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 *);
519extern 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 *);
558extern MagickExport Window
559 XWindowByID(Display *,
const Window,
const size_t),
560 XWindowByName(Display *,
const Window,
const char *),
561 XWindowByProperty(Display *,
const Window,
const Atom);
563extern MagickExport XFontStruct
564 *XBestFont(Display *,
const XResourceInfo *,
const MagickBooleanType);
566extern MagickExport XrmDatabase
567 XGetResourceDatabase(Display *,
const char *);
569extern MagickExport XVisualInfo
570 *XBestVisualInfo(Display *,XStandardColormap *,XResourceInfo *);
572extern MagickExport XWindows
573 *XInitializeWindows(Display *,XResourceInfo *),
574 *XSetWindows(XWindows *);
576static 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;
588extern MagickPrivate MagickBooleanType
591#if defined(__cplusplus) || defined(c_plusplus)