root/trunk/mac/inc/macgui.h

Revision 3104, 4.7 kB (checked in by himi, 6 years ago)

set svn:eol-style

  • Property svn:eol-style set to native
Line 
1 /* Definitions and headers for communication on the Mac OS.
2    Copyright (C) 2000 Free Software Foundation, Inc.
3
4 This file is part of GNU Emacs.
5
6 GNU Emacs is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2, or (at your option)
9 any later version.
10
11 GNU Emacs is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with GNU Emacs; see the file COPYING.  If not, write to
18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 Boston, MA 02111-1307, USA.  */
20
21 /* Contributed by Andrew Choi (akochoi@users.sourceforge.net).  */
22
23 #ifndef EMACS_MACGUI_H
24 #define EMACS_MACGUI_H
25
26 #include <MacTypes.h>
27 #include <Quickdraw.h>
28
29 typedef int Pixmap;
30 typedef int Bitmap;
31
32 typedef int Display;  /* fix later */
33
34 typedef unsigned long Time;
35 typedef RGBColor Color;
36 typedef WindowPtr Window;
37
38 #define FACE_DEFAULT (~0)
39
40
41 /* Emulate XCharStruct.  */
42 typedef struct _XCharStruct
43 {
44   int rbearing;
45   int lbearing;
46   int width;
47   int ascent;
48   int descent;
49 } XCharStruct;
50
51 struct MacFontStruct {
52   char *fontname;
53
54   SInt16 mac_fontnum;  /* font number of font used in this window */
55   int mac_fontsize;  /* size of font */
56   Style mac_fontface;  /* plain, bold, italics, etc. */
57   short mac_scriptcode;  /* Mac OS script code for font used */
58
59 #if 0
60   SInt16 mFontNum;  /* font number of font used in this window */
61   short mScriptCode;  /* Mac OS script code for font used */
62   int mFontSize;  /* size of font */
63   Style mFontFace;  /* plain, bold, italics, etc. */
64   int mHeight;  /* height of one line of text in pixels */
65   int mWidth;  /* width of one character in pixels */
66   int mAscent;
67   int mDescent;
68   int mLeading;
69   char mTwoByte;  /* true for two-byte font */
70 #endif
71
72 /* from Xlib.h */
73 #if 0
74   XExtData *ext_data;      /* hook for extension to hang data */
75   Font fid;                /* Font id for this font */
76   unsigned direction;      /* hint about the direction font is painted */
77 #endif
78   unsigned min_char_or_byte2;/* first character */
79   unsigned max_char_or_byte2;/* last character */
80   unsigned min_byte1;      /* first row that exists */
81   unsigned max_byte1;      /* last row that exists */
82 #if 0
83   Bool all_chars_exist;    /* flag if all characters have nonzero size */
84   unsigned default_char;   /* char to print for undefined character */
85   int n_properties;        /* how many properties there are */
86   XFontProp *properties;   /* pointer to array of additional properties */
87 #endif
88   XCharStruct min_bounds;  /* minimum bounds over all existing char */
89   XCharStruct max_bounds;  /* maximum bounds over all existing char */
90   XCharStruct *per_char;   /* first_char to last_char information */
91   int ascent;              /* logical extent above baseline for spacing */
92   int descent;             /* logical decent below baseline for spacing */
93 };
94
95 typedef struct MacFontStruct MacFontStruct;
96 typedef struct MacFontStruct XFontStruct;
97
98
99 /* Emulate X GC's by keeping color and font info in a structure.  */
100 typedef struct _XGCValues
101 {
102   unsigned long foreground;
103   unsigned long background;
104   XFontStruct *font;
105 } XGCValues;
106
107 typedef XGCValues *GC;
108
109 extern XGCValues *
110 XCreateGC (void *, Window, unsigned long, XGCValues *);
111
112 #define GCForeground 0x01
113 #define GCBackground 0x02
114 #define GCFont 0x03
115 #define GCGraphicsExposures 0
116
117 /* Bit Gravity */
118
119 #define ForgetGravity           0
120 #define NorthWestGravity        1
121 #define NorthGravity            2
122 #define NorthEastGravity        3
123 #define WestGravity             4
124 #define CenterGravity           5
125 #define EastGravity             6
126 #define SouthWestGravity        7
127 #define SouthGravity            8
128 #define SouthEastGravity        9
129 #define StaticGravity           10
130
131 #define NoValue         0x0000
132 #define XValue          0x0001
133 #define YValue          0x0002
134 #define WidthValue      0x0004
135 #define HeightValue     0x0008
136 #define AllValues       0x000F
137 #define XNegative       0x0010
138 #define YNegative       0x0020
139
140 #define USPosition      (1L << 0) /* user specified x, y */
141 #define USSize          (1L << 1) /* user specified width, height */
142
143 #define PPosition       (1L << 2) /* program specified position */
144 #define PSize           (1L << 3) /* program specified size */
145 #define PMinSize        (1L << 4) /* program specified minimum size */
146 #define PMaxSize        (1L << 5) /* program specified maximum size */
147 #define PResizeInc      (1L << 6) /* program specified resize increments */
148 #define PAspect         (1L << 7) /* program specified min and max aspect ratios */
149 #define PBaseSize       (1L << 8) /* program specified base for incrementing */
150 #define PWinGravity     (1L << 9) /* program specified window gravity */
151
152 extern int XParseGeometry ();
153
154 #endif /* EMACS_MACGUI_H */
155
Note: See TracBrowser for help on using the browser.