]> code.delx.au - gnu-emacs/blobdiff - src/macgui.h
#include blockinput also
[gnu-emacs] / src / macgui.h
index e04cf448b4a2e3cb93bf3bc22cb547d7dd638bde..96fd54a603baa4ac4223c0357076dd051bd81a54 100644 (file)
@@ -23,21 +23,62 @@ 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 Lisp_Object XrmDatabase;
 
 typedef unsigned long Time;
 
-#if MAC_OSX
-typedef struct OpaqueWindowPtr* Window;
-#else
-#include <QuickDraw.h>
+#ifdef HAVE_CARBON
+#undef Z
+#ifdef MAC_OSX
+#undef mktime
+#undef DEBUG
+#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 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  /* not MAC_OSX */
+#undef SIGHUP
+#define OLDP2C 1
+#include <Carbon.h>
+#endif  /* not MAC_OSX */
+#undef Z
+#define Z (current_buffer->text->z)
+#else /* not HAVE_CARBON */
+#include <QuickDraw.h>         /* for WindowPtr */
+#include <QDOffscreen.h>       /* for GWorldPtr */
+#include <Appearance.h>                /* for ThemeCursor */
+#include <Windows.h>
+#include <Controls.h>
+#include <Gestalt.h>
+#endif /* not HAVE_CARBON */
+
 typedef WindowPtr Window;
-#endif
+typedef GWorldPtr Pixmap;
+
+#define Cursor ThemeCursor
+#define No_Cursor (-1)
 
 #define FACE_DEFAULT (~0)
 
@@ -52,6 +93,13 @@ typedef struct _XCharStruct
   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;
 
@@ -157,6 +205,29 @@ XCreateGC (void *, Window, unsigned long, 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 */
 
@@ -198,3 +269,5 @@ typedef struct {
 
 #endif /* EMACS_MACGUI_H */
 
+/* arch-tag: 5a0da49a-35e2-418b-a58c-8a55778ae849
+   (do not change this comment) */