Mercurial > emacs
annotate src/w32gui.h @ 88196:a71ec02fb6d3
(rmail): Only insert the file if it actually exists.
(rmail-show-message): Do not display labels if there are no
messages. This corrects the mistake if visiting an empty file,
but it doesn't fix the situation where you delete the all messages
and expunge them. This may leave the labels of the last message
in the modeline.
author | Alex Schroeder <alex@gnu.org> |
---|---|
date | Tue, 17 Jan 2006 23:05:56 +0000 |
parents | d7ddb3e565de |
children |
rev | line source |
---|---|
16886
c686d4f3728a
Change all uses of win95, winnt, and win32 into Windows 95, Windows
Geoff Voelker <voelker@cs.washington.edu>
parents:
14186
diff
changeset
|
1 /* Definitions and headers for communication on the Microsoft W32 API. |
88155 | 2 Copyright (C) 1995, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. |
13434 | 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 | |
88155 | 18 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
19 Boston, MA 02110-1301, USA. */ | |
13434 | 20 |
29605
beb7f126f175
(EMACS_W32GUI_H): Renamed from __W32GUI_H__
Jason Rumney <jasonr@gnu.org>
parents:
29318
diff
changeset
|
21 #ifndef EMACS_W32GUI_H |
beb7f126f175
(EMACS_W32GUI_H): Renamed from __W32GUI_H__
Jason Rumney <jasonr@gnu.org>
parents:
29318
diff
changeset
|
22 #define EMACS_W32GUI_H |
13434 | 23 #include <windows.h> |
31112 | 24 |
24144
236627b268cc
Include w32bdf.h.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16890
diff
changeset
|
25 #include "w32bdf.h" |
13434 | 26 |
32724
22afed8d7e3f
(w32_char_font_type): Move enum from w32term.c
Andrew Innes <andrewi@gnu.org>
parents:
31112
diff
changeset
|
27 /* Emulate XCharStruct. */ |
22afed8d7e3f
(w32_char_font_type): Move enum from w32term.c
Andrew Innes <andrewi@gnu.org>
parents:
31112
diff
changeset
|
28 typedef struct _XCharStruct |
22afed8d7e3f
(w32_char_font_type): Move enum from w32term.c
Andrew Innes <andrewi@gnu.org>
parents:
31112
diff
changeset
|
29 { |
22afed8d7e3f
(w32_char_font_type): Move enum from w32term.c
Andrew Innes <andrewi@gnu.org>
parents:
31112
diff
changeset
|
30 short rbearing; |
22afed8d7e3f
(w32_char_font_type): Move enum from w32term.c
Andrew Innes <andrewi@gnu.org>
parents:
31112
diff
changeset
|
31 short lbearing; |
22afed8d7e3f
(w32_char_font_type): Move enum from w32term.c
Andrew Innes <andrewi@gnu.org>
parents:
31112
diff
changeset
|
32 short width; |
22afed8d7e3f
(w32_char_font_type): Move enum from w32term.c
Andrew Innes <andrewi@gnu.org>
parents:
31112
diff
changeset
|
33 short ascent; |
22afed8d7e3f
(w32_char_font_type): Move enum from w32term.c
Andrew Innes <andrewi@gnu.org>
parents:
31112
diff
changeset
|
34 short descent; |
22afed8d7e3f
(w32_char_font_type): Move enum from w32term.c
Andrew Innes <andrewi@gnu.org>
parents:
31112
diff
changeset
|
35 } XCharStruct; |
22afed8d7e3f
(w32_char_font_type): Move enum from w32term.c
Andrew Innes <andrewi@gnu.org>
parents:
31112
diff
changeset
|
36 |
22afed8d7e3f
(w32_char_font_type): Move enum from w32term.c
Andrew Innes <andrewi@gnu.org>
parents:
31112
diff
changeset
|
37 enum w32_char_font_type |
22afed8d7e3f
(w32_char_font_type): Move enum from w32term.c
Andrew Innes <andrewi@gnu.org>
parents:
31112
diff
changeset
|
38 { |
88155 | 39 UNKNOWN_FONT = 0 /* FONT_TYPE_UNKNOWN */, |
32724
22afed8d7e3f
(w32_char_font_type): Move enum from w32term.c
Andrew Innes <andrewi@gnu.org>
parents:
31112
diff
changeset
|
40 ANSI_FONT, |
22afed8d7e3f
(w32_char_font_type): Move enum from w32term.c
Andrew Innes <andrewi@gnu.org>
parents:
31112
diff
changeset
|
41 UNICODE_FONT, |
22afed8d7e3f
(w32_char_font_type): Move enum from w32term.c
Andrew Innes <andrewi@gnu.org>
parents:
31112
diff
changeset
|
42 BDF_1D_FONT, |
22afed8d7e3f
(w32_char_font_type): Move enum from w32term.c
Andrew Innes <andrewi@gnu.org>
parents:
31112
diff
changeset
|
43 BDF_2D_FONT |
22afed8d7e3f
(w32_char_font_type): Move enum from w32term.c
Andrew Innes <andrewi@gnu.org>
parents:
31112
diff
changeset
|
44 }; |
22afed8d7e3f
(w32_char_font_type): Move enum from w32term.c
Andrew Innes <andrewi@gnu.org>
parents:
31112
diff
changeset
|
45 |
13434 | 46 typedef struct W32FontStruct { |
32724
22afed8d7e3f
(w32_char_font_type): Move enum from w32term.c
Andrew Innes <andrewi@gnu.org>
parents:
31112
diff
changeset
|
47 enum w32_char_font_type font_type; |
13434 | 48 TEXTMETRIC tm; |
49 HFONT hfont; | |
24144
236627b268cc
Include w32bdf.h.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16890
diff
changeset
|
50 bdffont *bdf; |
29318
d54d4038df20
(W32FontStruct): Add double_byte_p member.
Jason Rumney <jasonr@gnu.org>
parents:
27895
diff
changeset
|
51 int double_byte_p; |
32724
22afed8d7e3f
(w32_char_font_type): Move enum from w32term.c
Andrew Innes <andrewi@gnu.org>
parents:
31112
diff
changeset
|
52 XCharStruct max_bounds; |
22afed8d7e3f
(w32_char_font_type): Move enum from w32term.c
Andrew Innes <andrewi@gnu.org>
parents:
31112
diff
changeset
|
53 XCharStruct scratch; |
22afed8d7e3f
(w32_char_font_type): Move enum from w32term.c
Andrew Innes <andrewi@gnu.org>
parents:
31112
diff
changeset
|
54 /* Only store info for ascii chars, if not fixed pitch. */ |
22afed8d7e3f
(w32_char_font_type): Move enum from w32term.c
Andrew Innes <andrewi@gnu.org>
parents:
31112
diff
changeset
|
55 XCharStruct * per_char; |
13434 | 56 } W32FontStruct; |
57 | |
27398
d6331257c601
(XGCValue): New struct for emulating X GCs.
Jason Rumney <jasonr@gnu.org>
parents:
24144
diff
changeset
|
58 typedef struct W32FontStruct XFontStruct; |
d6331257c601
(XGCValue): New struct for emulating X GCs.
Jason Rumney <jasonr@gnu.org>
parents:
24144
diff
changeset
|
59 |
d6331257c601
(XGCValue): New struct for emulating X GCs.
Jason Rumney <jasonr@gnu.org>
parents:
24144
diff
changeset
|
60 /* Emulate X GC's by keeping color and font info in a structure. */ |
d6331257c601
(XGCValue): New struct for emulating X GCs.
Jason Rumney <jasonr@gnu.org>
parents:
24144
diff
changeset
|
61 typedef struct _XGCValues |
d6331257c601
(XGCValue): New struct for emulating X GCs.
Jason Rumney <jasonr@gnu.org>
parents:
24144
diff
changeset
|
62 { |
d6331257c601
(XGCValue): New struct for emulating X GCs.
Jason Rumney <jasonr@gnu.org>
parents:
24144
diff
changeset
|
63 COLORREF foreground; |
d6331257c601
(XGCValue): New struct for emulating X GCs.
Jason Rumney <jasonr@gnu.org>
parents:
24144
diff
changeset
|
64 COLORREF background; |
d6331257c601
(XGCValue): New struct for emulating X GCs.
Jason Rumney <jasonr@gnu.org>
parents:
24144
diff
changeset
|
65 XFontStruct * font; |
d6331257c601
(XGCValue): New struct for emulating X GCs.
Jason Rumney <jasonr@gnu.org>
parents:
24144
diff
changeset
|
66 } XGCValues; |
d6331257c601
(XGCValue): New struct for emulating X GCs.
Jason Rumney <jasonr@gnu.org>
parents:
24144
diff
changeset
|
67 |
d6331257c601
(XGCValue): New struct for emulating X GCs.
Jason Rumney <jasonr@gnu.org>
parents:
24144
diff
changeset
|
68 #define GCForeground 0x01 |
d6331257c601
(XGCValue): New struct for emulating X GCs.
Jason Rumney <jasonr@gnu.org>
parents:
24144
diff
changeset
|
69 #define GCBackground 0x02 |
d6331257c601
(XGCValue): New struct for emulating X GCs.
Jason Rumney <jasonr@gnu.org>
parents:
24144
diff
changeset
|
70 #define GCFont 0x03 |
d6331257c601
(XGCValue): New struct for emulating X GCs.
Jason Rumney <jasonr@gnu.org>
parents:
24144
diff
changeset
|
71 |
13434 | 72 typedef HBITMAP Pixmap; |
73 typedef HBITMAP Bitmap; | |
27398
d6331257c601
(XGCValue): New struct for emulating X GCs.
Jason Rumney <jasonr@gnu.org>
parents:
24144
diff
changeset
|
74 |
88155 | 75 typedef char * XrmDatabase; |
76 | |
27398
d6331257c601
(XGCValue): New struct for emulating X GCs.
Jason Rumney <jasonr@gnu.org>
parents:
24144
diff
changeset
|
77 typedef XGCValues * GC; |
13434 | 78 typedef COLORREF Color; |
79 typedef DWORD Time; | |
80 typedef HWND Window; | |
88155 | 81 typedef HDC Display; /* HDC so it doesn't conflict with xpm lib. */ |
13434 | 82 typedef HCURSOR Cursor; |
83 | |
88155 | 84 #define No_Cursor (0) |
85 | |
86 #define XChar2b wchar_t | |
87 | |
88 /* Dealing with bits of wchar_t as if they were an XChar2b. */ | |
89 #define STORE_XCHAR2B(chp, byte1, byte2) \ | |
90 ((*chp) = ((XChar2b)((((byte1) & 0x00ff) << 8) | ((byte2) & 0x00ff)))) | |
91 | |
92 #define XCHAR2B_BYTE1(chp) \ | |
93 (((*chp) & 0xff00) >> 8) | |
94 | |
95 #define XCHAR2B_BYTE2(chp) \ | |
96 ((*chp) & 0x00ff) | |
97 | |
98 | |
44046 | 99 /* Windows equivalent of XImage. */ |
100 typedef struct _XImage | |
101 { | |
102 unsigned char * data; | |
103 BITMAPINFO info; | |
104 /* Optional RGBQUAD array for palette follows (see BITMAPINFO docs). */ | |
105 } XImage; | |
40327
57a44aac3228
Add a dummy typedef for XImage. From Juanma Barranquero <lektu@terra.es>.
Eli Zaretskii <eliz@gnu.org>
parents:
39711
diff
changeset
|
106 |
13434 | 107 #define FACE_DEFAULT (~0) |
108 | |
109 extern HINSTANCE hinst; | |
110 extern HINSTANCE hprevinst; | |
111 extern LPSTR lpCmdLine; | |
112 extern int nCmdShow; | |
113 | |
114 /* Bit Gravity */ | |
115 | |
116 #define ForgetGravity 0 | |
117 #define NorthWestGravity 1 | |
118 #define NorthGravity 2 | |
119 #define NorthEastGravity 3 | |
120 #define WestGravity 4 | |
121 #define CenterGravity 5 | |
122 #define EastGravity 6 | |
123 #define SouthWestGravity 7 | |
124 #define SouthGravity 8 | |
125 #define SouthEastGravity 9 | |
126 #define StaticGravity 10 | |
127 | |
128 #define NoValue 0x0000 | |
129 #define XValue 0x0001 | |
130 #define YValue 0x0002 | |
131 #define WidthValue 0x0004 | |
132 #define HeightValue 0x0008 | |
133 #define AllValues 0x000F | |
134 #define XNegative 0x0010 | |
135 #define YNegative 0x0020 | |
136 | |
137 #define USPosition (1L << 0) /* user specified x, y */ | |
138 #define USSize (1L << 1) /* user specified width, height */ | |
139 | |
140 #define PPosition (1L << 2) /* program specified position */ | |
141 #define PSize (1L << 3) /* program specified size */ | |
142 #define PMinSize (1L << 4) /* program specified minimum size */ | |
143 #define PMaxSize (1L << 5) /* program specified maximum size */ | |
144 #define PResizeInc (1L << 6) /* program specified resize increments */ | |
145 #define PAspect (1L << 7) /* program specified min and max aspect ratios */ | |
146 #define PBaseSize (1L << 8) /* program specified base for incrementing */ | |
147 #define PWinGravity (1L << 9) /* program specified window gravity */ | |
148 | |
149 extern int XParseGeometry (); | |
150 | |
88155 | 151 |
152 typedef struct { | |
153 int x, y; | |
154 unsigned width, height; | |
155 } XRectangle; | |
156 | |
157 #define NativeRectangle RECT | |
158 | |
159 #define CONVERT_TO_XRECT(xr,nr) \ | |
160 ((xr).x = (nr).left, \ | |
161 (xr).y = (nr).top, \ | |
162 (xr).width = ((nr).right - (nr).left), \ | |
163 (xr).height = ((nr).bottom - (nr).top)) | |
164 | |
165 #define CONVERT_FROM_XRECT(xr,nr) \ | |
166 ((nr).left = (xr).x, \ | |
167 (nr).top = (xr).y, \ | |
168 (nr).right = ((xr).x + (xr).width), \ | |
169 (nr).bottom = ((xr).y + (xr).height)) | |
170 | |
171 #define STORE_NATIVE_RECT(nr,x,y,width,height) \ | |
172 ((nr).left = (x), \ | |
173 (nr).top = (y), \ | |
174 (nr).right = ((nr).left + (width)), \ | |
175 (nr).bottom = ((nr).top + (height))) | |
176 | |
177 | |
29605
beb7f126f175
(EMACS_W32GUI_H): Renamed from __W32GUI_H__
Jason Rumney <jasonr@gnu.org>
parents:
29318
diff
changeset
|
178 #endif /* EMACS_W32GUI_H */ |
88155 | 179 |
180 /* arch-tag: 9172e5fb-45a5-4684-afd9-ca0e81324604 | |
181 (do not change this comment) */ |