#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 <Carbon/Carbon.h>
+#undef mktime
+#define mktime emacs_mktime
+#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 <QuickDraw.h>
+#include <QuickDraw.h> /* for WindowPtr */
+#include <QDOffscreen.h> /* for GWorldPtr */
+#include <Windows.h>
+#include <Gestalt.h>
+#endif
+
typedef WindowPtr Window;
+typedef GWorldPtr Pixmap;
+
+#if TARGET_API_MAC_CARBON
+#define Cursor ThemeCursor
+#define No_Cursor (-1)
+#else
+#define SetPortWindowPort(w) SetPort(w)
+#define Cursor CursHandle
+#define No_Cursor (0)
+extern CursPtr arrow_cursor;
#endif
#define FACE_DEFAULT (~0)
int descent;
} XCharStruct;
+#define STORE_XCHARSTRUCT(xcs, w, bds) \
+ ((xcs).width = (w), \
+ (xcs).lbearing = (bds).left, \
+ (xcs).rbearing = (bds).right, \
+ (xcs).ascent = -(bds).top, \
+ (xcs).descent = (bds).bottom)
+
struct MacFontStruct {
char *fontname;
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
#define XNegative 0x0010
#define YNegative 0x0020
+typedef struct {
+ long flags; /* marks which fields in this structure are defined */
+#if 0
+ int x, y; /* obsolete for new window mgrs, but clients */
+ int width, height; /* should set so old wm's don't mess up */
+#endif
+ int min_width, min_height;
+#if 0
+ int max_width, max_height;
+#endif
+ int width_inc, height_inc;
+#if 0
+ struct {
+ int x; /* numerator */
+ int y; /* denominator */
+ } min_aspect, max_aspect;
+#endif
+ int base_width, base_height; /* added by ICCCM version 1 */
+#if 0
+ int win_gravity; /* added by ICCCM version 1 */
+#endif
+} XSizeHints;
+
#define USPosition (1L << 0) /* user specified x, y */
#define USSize (1L << 1) /* user specified width, height */
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) */