X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/b9c3f7eb150b3e91c83c1fccc34de075d8ef9a6d..c90e7e43b102a9732ea4ef7a292f51cec881d463:/src/macgui.h diff --git a/src/macgui.h b/src/macgui.h index 87c8cc48f0..58081df52b 100644 --- a/src/macgui.h +++ b/src/macgui.h @@ -23,28 +23,59 @@ Boston, MA 02111-1307, USA. */ #ifndef EMACS_MACGUI_H #define EMACS_MACGUI_H -typedef int Pixmap; -typedef int Bitmap; - typedef int Display; /* fix later */ +typedef char * XrmDatabase; /* fix later */ + typedef unsigned long Time; #if MAC_OSX -typedef struct OpaqueWindowPtr* Window; +#undef mktime +#undef DEBUG +#undef Z +#undef free +#undef malloc +#undef realloc +/* Macros max and min defined in lisp.h conflict with those in + precompiled header Carbon.h. */ +#undef max +#undef min +#undef init_process +#include +#undef Z +#define Z (current_buffer->text->z) +#undef free +#define free unexec_free +#undef malloc +#define malloc unexec_malloc +#undef realloc +#define realloc unexec_realloc +#undef min +#define min(a, b) ((a) < (b) ? (a) : (b)) +#undef max +#define max(a, b) ((a) > (b) ? (a) : (b)) +#undef init_process +#define init_process emacs_init_process +#undef INFINITY #else -#include -typedef WindowPtr Window; +#include /* for WindowPtr */ +#include /* for GWorldPtr */ +#include /* for ControlHandle in xdisp.c */ +#include #endif -/* A definition of XColor for non-X frames. */ -#ifndef HAVE_X_WINDOWS -typedef struct { - unsigned long pixel; - unsigned short red, green, blue; - char flags; - char pad; -} XColor; +typedef GWorldPtr Pixmap; + +#if TARGET_API_MAC_CARBON +typedef struct OpaqueWindowPtr *Window; +#define Cursor ThemeCursor +#define No_Cursor (-1) +#else +typedef WindowPtr Window; +#define SetPortWindowPort(w) SetPort(w) +#define Cursor CursHandle +#define No_Cursor (0) +extern CursPtr arrow_cursor; #endif #define FACE_DEFAULT (~0) @@ -107,6 +138,22 @@ struct MacFontStruct { typedef struct MacFontStruct MacFontStruct; typedef struct MacFontStruct XFontStruct; +/* Structure borrowed from Xlib.h to represent two-byte characters. */ + +typedef struct { + unsigned char byte1; + unsigned char byte2; +} XChar2b; + +#define STORE_XCHAR2B(chp, b1, b2) \ + ((chp)->byte1 = (b1), (chp)->byte2 = (b2)) + +#define XCHAR2B_BYTE1(chp) \ + ((chp)->byte1) + +#define XCHAR2B_BYTE2(chp) \ + ((chp)->byte2) + /* Emulate X GC's by keeping color and font info in a structure. */ typedef struct _XGCValues @@ -163,5 +210,32 @@ XCreateGC (void *, Window, unsigned long, XGCValues *); extern int XParseGeometry (); +typedef struct { + int x, y; + unsigned width, height; +} XRectangle; + +#define NativeRectangle Rect + +#define CONVERT_TO_XRECT(xr,nr) \ + ((xr).x = (nr).left, \ + (xr).y = (nr).top, \ + (xr).width = ((nr).right - (nr).left), \ + (xr).height = ((nr).bottom - (nr).top)) + +#define CONVERT_FROM_XRECT(xr,nr) \ + ((nr).left = (xr).x, \ + (nr).top = (xr).y, \ + (nr).right = ((xr).x + (xr).width), \ + (nr).bottom = ((xr).y + (xr).height)) + +#define STORE_NATIVE_RECT(nr,x,y,width,height) \ + ((nr).left = (x), \ + (nr).top = (y), \ + (nr).right = ((nr).left + (width)), \ + (nr).bottom = ((nr).top + (height))) + #endif /* EMACS_MACGUI_H */ +/* arch-tag: 5a0da49a-35e2-418b-a58c-8a55778ae849 + (do not change this comment) */