(Fpop_to_buffer): Fix docstring.
[bpt/emacs.git] / src / macgui.h
index 87c8cc4..2bb346e 100644 (file)
@@ -23,29 +23,49 @@ 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
+#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 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
 typedef struct OpaqueWindowPtr* Window;
 #else
-#include <QuickDraw.h>
+#include <QuickDraw.h>         /* for WindowPtr */
+#include <QDOffscreen.h>       /* for GWorldPtr */
+#include <Controls.h>          /* for ControlHandle in xdisp.c */
 typedef WindowPtr Window;
 #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;
-#endif
+typedef GWorldPtr Pixmap;
 
 #define FACE_DEFAULT (~0)
 
@@ -107,6 +127,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 +199,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) */