diff src/macgui.h @ 44890:01b93e5e53a7

Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog, lisp/ChangeLog, and src/ChangeLog for list of changes.
author Andrew Choi <akochoi@shaw.ca>
date Fri, 26 Apr 2002 23:39:06 +0000
parents
children cd58bd276a86
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/macgui.h	Fri Apr 26 23:39:06 2002 +0000
@@ -0,0 +1,157 @@
+/* Definitions and headers for communication on the Mac OS.
+   Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Emacs.
+
+GNU Emacs is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Emacs is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Emacs; see the file COPYING.  If not, write to
+the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.  */
+
+/* Contributed by Andrew Choi (akochoi@mac.com).  */
+
+#ifndef EMACS_MACGUI_H
+#define EMACS_MACGUI_H
+
+typedef int Pixmap;
+typedef int Bitmap;
+
+typedef int Display;  /* fix later */
+
+typedef unsigned long Time;
+
+#if MAC_OSX
+typedef struct OpaqueWindowPtr* Window;
+#else
+#include <QuickDraw.h>
+typedef WindowPtr Window;
+#endif
+
+#define FACE_DEFAULT (~0)
+
+
+/* Emulate XCharStruct.  */
+typedef struct _XCharStruct
+{
+  int rbearing;
+  int lbearing;
+  int width;
+  int ascent;
+  int descent;
+} XCharStruct;
+
+struct MacFontStruct {
+  char *fontname;
+
+  short mac_fontnum;  /* font number of font used in this window */
+  int mac_fontsize;  /* size of font */
+  short mac_fontface;  /* plain, bold, italics, etc. */
+  short mac_scriptcode;  /* Mac OS script code for font used */
+
+#if 0
+  SInt16 mFontNum;  /* font number of font used in this window */
+  short mScriptCode;  /* Mac OS script code for font used */
+  int mFontSize;  /* size of font */
+  Style mFontFace;  /* plain, bold, italics, etc. */
+  int mHeight;  /* height of one line of text in pixels */
+  int mWidth;  /* width of one character in pixels */
+  int mAscent;
+  int mDescent;
+  int mLeading;
+  char mTwoByte;  /* true for two-byte font */
+#endif /* 0 */
+
+/* from Xlib.h */
+#if 0
+  XExtData *ext_data;      /* hook for extension to hang data */
+  Font fid;                /* Font id for this font */
+  unsigned direction;      /* hint about the direction font is painted */
+#endif /* 0 */
+  unsigned min_char_or_byte2;/* first character */
+  unsigned max_char_or_byte2;/* last character */
+  unsigned min_byte1;      /* first row that exists */
+  unsigned max_byte1;      /* last row that exists */
+#if 0
+  Bool all_chars_exist;    /* flag if all characters have nonzero size */
+  unsigned default_char;   /* char to print for undefined character */
+  int n_properties;        /* how many properties there are */
+  XFontProp *properties;   /* pointer to array of additional properties */
+#endif /* 0 */
+  XCharStruct min_bounds;  /* minimum bounds over all existing char */
+  XCharStruct max_bounds;  /* maximum bounds over all existing char */
+  XCharStruct *per_char;   /* first_char to last_char information */
+  int ascent;              /* logical extent above baseline for spacing */
+  int descent;             /* logical decent below baseline for spacing */
+};
+
+typedef struct MacFontStruct MacFontStruct;
+typedef struct MacFontStruct XFontStruct;
+
+
+/* Emulate X GC's by keeping color and font info in a structure.  */
+typedef struct _XGCValues
+{
+  unsigned long foreground;
+  unsigned long background;
+  XFontStruct *font;
+} XGCValues;
+
+typedef XGCValues *GC;
+
+extern XGCValues *
+XCreateGC (void *, Window, unsigned long, XGCValues *);
+
+#define GCForeground 0x01
+#define GCBackground 0x02
+#define GCFont 0x03
+#define GCGraphicsExposures 0
+
+/* Bit Gravity */
+
+#define ForgetGravity		0
+#define NorthWestGravity	1
+#define NorthGravity		2
+#define NorthEastGravity	3
+#define WestGravity		4
+#define CenterGravity		5
+#define EastGravity		6
+#define SouthWestGravity	7
+#define SouthGravity		8
+#define SouthEastGravity	9
+#define StaticGravity		10
+
+#define NoValue		0x0000
+#define XValue  	0x0001
+#define YValue		0x0002
+#define WidthValue  	0x0004
+#define HeightValue  	0x0008
+#define AllValues 	0x000F
+#define XNegative 	0x0010
+#define YNegative 	0x0020
+
+#define USPosition	(1L << 0) /* user specified x, y */
+#define USSize		(1L << 1) /* user specified width, height */
+
+#define PPosition	(1L << 2) /* program specified position */
+#define PSize		(1L << 3) /* program specified size */
+#define PMinSize	(1L << 4) /* program specified minimum size */
+#define PMaxSize	(1L << 5) /* program specified maximum size */
+#define PResizeInc	(1L << 6) /* program specified resize increments */
+#define PAspect		(1L << 7) /* program specified min and max aspect ratios */
+#define PBaseSize	(1L << 8) /* program specified base for incrementing */
+#define PWinGravity	(1L << 9) /* program specified window gravity */
+
+extern int XParseGeometry ();
+
+#endif /* EMACS_MACGUI_H */
+