diff options
author | Andrew Choi <akochoi@shaw.ca> | 2002-04-26 23:39:06 +0000 |
---|---|---|
committer | Andrew Choi <akochoi@shaw.ca> | 2002-04-26 23:39:06 +0000 |
commit | e0f712ba55fa0d073f6ab93606e428f61fc7caf2 (patch) | |
tree | 7dc6d3403fafcbee1a83288ac840f7eba1d92b44 /src/macgui.h | |
parent | 501d8923ae2cdec4ef50f050bb66d3715ba2a8f6 (diff) | |
download | emacs-e0f712ba55fa0d073f6ab93606e428f61fc7caf2.tar.gz |
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
lisp/ChangeLog, and src/ChangeLog for list of changes.
Diffstat (limited to 'src/macgui.h')
-rw-r--r-- | src/macgui.h | 157 |
1 files changed, 157 insertions, 0 deletions
diff --git a/src/macgui.h b/src/macgui.h new file mode 100644 index 00000000000..a6ad18fddcf --- /dev/null +++ b/src/macgui.h @@ -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 */ + |