#ifndef MI_H
#define MI_H
#include <X11/X.h>
#include "region.h"
#include "validate.h"
#include "window.h"
#include "gc.h"
#include <X11/fonts/font.h>
#include "input.h"
#include "cursor.h"
#include "privates.h"
#include "colormap.h"
#include "events.h"
#define MiBits CARD32
typedef struct _miDash *miDashPtr;
#define EVEN_DASH 0
#define ODD_DASH ~0
extern _X_EXPORT void miPolyArc(
DrawablePtr ,
GCPtr ,
int ,
xArc *
);
extern _X_EXPORT RegionPtr miCopyArea(
DrawablePtr ,
DrawablePtr ,
GCPtr ,
int ,
int ,
int ,
int ,
int ,
int
);
extern _X_EXPORT RegionPtr miCopyPlane(
DrawablePtr ,
DrawablePtr ,
GCPtr ,
int ,
int ,
int ,
int ,
int ,
int ,
unsigned long
);
extern _X_EXPORT void miGetImage(
DrawablePtr ,
int ,
int ,
int ,
int ,
unsigned int ,
unsigned long ,
char *
);
extern _X_EXPORT void miPutImage(
DrawablePtr ,
GCPtr ,
int ,
int ,
int ,
int ,
int ,
int ,
int ,
char *
);
#define miGetCompositeClip(pGC) ((pGC)->pCompositeClip)
typedef void (*miCopyProc) (DrawablePtr pSrcDrawable,
DrawablePtr pDstDrawable,
GCPtr pGC,
BoxPtr pDstBox,
int nbox,
int dx,
int dy,
Bool reverse,
Bool upsidedown,
Pixel bitplane,
void *closure);
extern _X_EXPORT void
miCopyRegion (DrawablePtr pSrcDrawable,
DrawablePtr pDstDrawable,
GCPtr pGC,
RegionPtr pDstRegion,
int dx,
int dy,
miCopyProc copyProc,
Pixel bitPlane,
void *closure);
extern _X_EXPORT RegionPtr
miDoCopy (DrawablePtr pSrcDrawable,
DrawablePtr pDstDrawable,
GCPtr pGC,
int xIn,
int yIn,
int widthSrc,
int heightSrc,
int xOut,
int yOut,
miCopyProc copyProc,
Pixel bitplane,
void *closure);
extern _X_EXPORT void miRecolorCursor(
DeviceIntPtr ,
ScreenPtr ,
CursorPtr ,
Bool
);
extern _X_EXPORT void miStepDash(
int ,
int * ,
unsigned char * ,
int ,
int *
);
#ifndef INPUT_H
typedef struct _DeviceRec *DevicePtr;
#endif
extern _X_EXPORT Bool mieqInit(
void
);
extern _X_EXPORT void mieqFini(void);
extern _X_EXPORT void mieqEnqueue(
DeviceIntPtr ,
InternalEvent*
);
extern _X_EXPORT void mieqSwitchScreen(
DeviceIntPtr ,
ScreenPtr ,
Bool
);
extern _X_EXPORT void mieqProcessDeviceEvent(
DeviceIntPtr ,
InternalEvent* ,
ScreenPtr
);
extern _X_EXPORT void mieqProcessInputEvents(
void
);
extern DeviceIntPtr CopyGetMasterEvent(
DeviceIntPtr ,
InternalEvent* ,
InternalEvent*
);
typedef void (*mieqHandler)(int screen, InternalEvent* event, DeviceIntPtr dev);
void _X_EXPORT mieqSetHandler(int event, mieqHandler handler);
extern _X_EXPORT RegionPtr miHandleExposures(
DrawablePtr ,
DrawablePtr ,
GCPtr ,
int ,
int ,
int ,
int ,
int ,
int ,
unsigned long
);
extern _X_EXPORT void miSendGraphicsExpose(
ClientPtr ,
RegionPtr ,
XID ,
int ,
int
);
extern _X_EXPORT void miSendExposures(
WindowPtr ,
RegionPtr ,
int ,
int
);
extern _X_EXPORT void miWindowExposures(
WindowPtr ,
RegionPtr ,
RegionPtr
);
extern _X_EXPORT void miPaintWindow(
WindowPtr ,
RegionPtr ,
int
);
extern _X_EXPORT void miClearDrawable(
DrawablePtr ,
GCPtr
);
extern _X_EXPORT void miPolyFillRect(
DrawablePtr ,
GCPtr ,
int ,
xRectangle *
);
extern _X_EXPORT void miPolyGlyphBlt(
DrawablePtr ,
GCPtr ,
int ,
int ,
unsigned int ,
CharInfoPtr * ,
pointer
);
extern _X_EXPORT void miImageGlyphBlt(
DrawablePtr ,
GCPtr ,
int ,
int ,
unsigned int ,
CharInfoPtr * ,
pointer
);
extern _X_EXPORT void miFillPolygon(
DrawablePtr ,
GCPtr ,
int ,
int ,
int ,
DDXPointPtr
);
extern _X_EXPORT Bool miFillConvexPoly(
DrawablePtr ,
GCPtr ,
int ,
DDXPointPtr
);
extern _X_EXPORT Bool miFillGeneralPoly(
DrawablePtr ,
GCPtr ,
int ,
DDXPointPtr
);
extern _X_EXPORT void miPolyPoint(
DrawablePtr ,
GCPtr ,
int ,
int ,
xPoint *
);
extern _X_EXPORT void miPolyRectangle(
DrawablePtr ,
GCPtr ,
int ,
xRectangle *
);
extern _X_EXPORT void miPolySegment(
DrawablePtr ,
GCPtr ,
int ,
xSegment *
);
extern _X_EXPORT int miPolyText8(
DrawablePtr ,
GCPtr ,
int ,
int ,
int ,
char *
);
extern _X_EXPORT int miPolyText16(
DrawablePtr ,
GCPtr ,
int ,
int ,
int ,
unsigned short *
);
extern _X_EXPORT void miImageText8(
DrawablePtr ,
GCPtr ,
int ,
int ,
int ,
char *
);
extern _X_EXPORT void miImageText16(
DrawablePtr ,
GCPtr ,
int ,
int ,
int ,
unsigned short *
);
extern _X_EXPORT void miPushPixels(
GCPtr ,
PixmapPtr ,
DrawablePtr ,
int ,
int ,
int ,
int
);
extern _X_EXPORT Bool miModifyPixmapHeader(
PixmapPtr ,
int ,
int ,
int ,
int ,
int ,
pointer
);
extern _X_EXPORT Bool miCreateScreenResources(
ScreenPtr
);
extern _X_EXPORT Bool miScreenDevPrivateInit(
ScreenPtr ,
int ,
pointer
);
extern _X_EXPORT Bool miScreenInit(
ScreenPtr ,
pointer ,
int ,
int ,
int ,
int ,
int ,
int ,
int ,
DepthPtr ,
VisualID ,
int ,
VisualPtr
);
extern _X_EXPORT int miShapedWindowIn(
RegionPtr ,
RegionPtr ,
BoxPtr ,
int ,
int
);
typedef void
(*SetRedirectBorderClipProcPtr) (WindowPtr pWindow, RegionPtr pRegion);
typedef RegionPtr
(*GetRedirectBorderClipProcPtr) (WindowPtr pWindow);
extern _X_EXPORT void
miRegisterRedirectBorderClipProc (SetRedirectBorderClipProcPtr setBorderClip,
GetRedirectBorderClipProcPtr getBorderClip);
extern _X_EXPORT int miValidateTree(
WindowPtr ,
WindowPtr ,
VTKind
);
extern _X_EXPORT void miWideLine(
DrawablePtr ,
GCPtr ,
int ,
int ,
DDXPointPtr
);
extern _X_EXPORT void miWideDash(
DrawablePtr ,
GCPtr ,
int ,
int ,
DDXPointPtr
);
extern _X_EXPORT void miClearToBackground(
WindowPtr ,
int ,
int ,
int ,
int ,
Bool
);
extern _X_EXPORT void miMarkWindow(
WindowPtr
);
extern _X_EXPORT Bool miMarkOverlappedWindows(
WindowPtr ,
WindowPtr ,
WindowPtr *
);
extern _X_EXPORT void miHandleValidateExposures(
WindowPtr
);
extern _X_EXPORT void miMoveWindow(
WindowPtr ,
int ,
int ,
WindowPtr ,
VTKind
);
extern _X_EXPORT void miSlideAndSizeWindow(
WindowPtr ,
int ,
int ,
unsigned int ,
unsigned int ,
WindowPtr
);
extern _X_EXPORT WindowPtr miGetLayerWindow(
WindowPtr
);
extern _X_EXPORT void miSetShape(
WindowPtr ,
int
);
extern _X_EXPORT void miChangeBorderWidth(
WindowPtr ,
unsigned int
);
extern _X_EXPORT void miMarkUnrealizedWindow(
WindowPtr ,
WindowPtr ,
Bool
);
extern _X_EXPORT void miSegregateChildren(WindowPtr pWin, RegionPtr pReg, int depth);
extern _X_EXPORT void miZeroPolyArc(
DrawablePtr ,
GCPtr ,
int ,
xArc *
);
extern _X_EXPORT void miZeroLine(
DrawablePtr ,
GCPtr ,
int ,
int ,
DDXPointRec *
);
extern _X_EXPORT void miZeroDashLine(
DrawablePtr ,
GCPtr ,
int ,
int ,
DDXPointRec *
);
extern _X_EXPORT void miPolyFillArc(
DrawablePtr ,
GCPtr ,
int ,
xArc *
);
#endif