Mercurial > emacs
annotate src/w32gui.h @ 99492:ee792794d888
(isearch-search-fun): Compare the length of the
current search string with the length of the string from the
previous search state to detect the situation when the user
adds or removes characters in the search string.
Use word-search-forward-lax and word-search-backward-lax in this
case, and otherwise word-search-forward and word-search-backward.
author | Juri Linkov <juri@jurta.org> |
---|---|
date | Tue, 11 Nov 2008 19:43:09 +0000 |
parents | 0ce3496b2144 |
children | e038c1a8307c |
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. |
75227
e90d04cd455a
Update copyright for years from Emacs 21 to present (mainly adding
Glenn Morris <rgm@gnu.org>
parents:
68651
diff
changeset
|
2 Copyright (C) 1995, 2001, 2002, 2003, 2004, 2005, |
79759 | 3 2006, 2007, 2008 Free Software Foundation, Inc. |
13434 | 4 |
5 This file is part of GNU Emacs. | |
6 | |
94994
29adfc9354e7
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
94915
diff
changeset
|
7 GNU Emacs is free software: you can redistribute it and/or modify |
13434 | 8 it under the terms of the GNU General Public License as published by |
94994
29adfc9354e7
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
94915
diff
changeset
|
9 the Free Software Foundation, either version 3 of the License, or |
29adfc9354e7
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
94915
diff
changeset
|
10 (at your option) any later version. |
13434 | 11 |
12 GNU Emacs is distributed in the hope that it will be useful, | |
13 but WITHOUT ANY WARRANTY; without even the implied warranty of | |
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
15 GNU General Public License for more details. | |
16 | |
17 You should have received a copy of the GNU General Public License | |
94994
29adfc9354e7
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
94915
diff
changeset
|
18 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ |
13434 | 19 |
29605
beb7f126f175
(EMACS_W32GUI_H): Renamed from __W32GUI_H__
Jason Rumney <jasonr@gnu.org>
parents:
29318
diff
changeset
|
20 #ifndef EMACS_W32GUI_H |
beb7f126f175
(EMACS_W32GUI_H): Renamed from __W32GUI_H__
Jason Rumney <jasonr@gnu.org>
parents:
29318
diff
changeset
|
21 #define EMACS_W32GUI_H |
13434 | 22 #include <windows.h> |
31112 | 23 |
95713
37802c533470
* w32gui.h (widget_value, XtPointer, Boolean, enum button_type):
Jason Rumney <jasonr@gnu.org>
parents:
95710
diff
changeset
|
24 /* Local memory management for menus. */ |
37802c533470
* w32gui.h (widget_value, XtPointer, Boolean, enum button_type):
Jason Rumney <jasonr@gnu.org>
parents:
95710
diff
changeset
|
25 #define local_heap (GetProcessHeap ()) |
37802c533470
* w32gui.h (widget_value, XtPointer, Boolean, enum button_type):
Jason Rumney <jasonr@gnu.org>
parents:
95710
diff
changeset
|
26 #define local_alloc(n) (HeapAlloc (local_heap, HEAP_ZERO_MEMORY, (n))) |
37802c533470
* w32gui.h (widget_value, XtPointer, Boolean, enum button_type):
Jason Rumney <jasonr@gnu.org>
parents:
95710
diff
changeset
|
27 #define local_free(p) (HeapFree (local_heap, 0, ((LPVOID) (p)))) |
37802c533470
* w32gui.h (widget_value, XtPointer, Boolean, enum button_type):
Jason Rumney <jasonr@gnu.org>
parents:
95710
diff
changeset
|
28 |
37802c533470
* w32gui.h (widget_value, XtPointer, Boolean, enum button_type):
Jason Rumney <jasonr@gnu.org>
parents:
95710
diff
changeset
|
29 #define malloc_widget_value() ((widget_value *) local_alloc (sizeof (widget_value))) |
37802c533470
* w32gui.h (widget_value, XtPointer, Boolean, enum button_type):
Jason Rumney <jasonr@gnu.org>
parents:
95710
diff
changeset
|
30 #define free_widget_value(wv) (local_free ((wv))) |
37802c533470
* w32gui.h (widget_value, XtPointer, Boolean, enum button_type):
Jason Rumney <jasonr@gnu.org>
parents:
95710
diff
changeset
|
31 |
27398
d6331257c601
(XGCValue): New struct for emulating X GCs.
Jason Rumney <jasonr@gnu.org>
parents:
24144
diff
changeset
|
32 /* 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
|
33 typedef struct _XGCValues |
d6331257c601
(XGCValue): New struct for emulating X GCs.
Jason Rumney <jasonr@gnu.org>
parents:
24144
diff
changeset
|
34 { |
d6331257c601
(XGCValue): New struct for emulating X GCs.
Jason Rumney <jasonr@gnu.org>
parents:
24144
diff
changeset
|
35 COLORREF foreground; |
d6331257c601
(XGCValue): New struct for emulating X GCs.
Jason Rumney <jasonr@gnu.org>
parents:
24144
diff
changeset
|
36 COLORREF background; |
94915
39c862063355
(XGCValues): Surround `XFontStruct *font' by "if
Kenichi Handa <handa@m17n.org>
parents:
79759
diff
changeset
|
37 struct font *font; |
27398
d6331257c601
(XGCValue): New struct for emulating X GCs.
Jason Rumney <jasonr@gnu.org>
parents:
24144
diff
changeset
|
38 } XGCValues; |
d6331257c601
(XGCValue): New struct for emulating X GCs.
Jason Rumney <jasonr@gnu.org>
parents:
24144
diff
changeset
|
39 |
d6331257c601
(XGCValue): New struct for emulating X GCs.
Jason Rumney <jasonr@gnu.org>
parents:
24144
diff
changeset
|
40 #define GCForeground 0x01 |
d6331257c601
(XGCValue): New struct for emulating X GCs.
Jason Rumney <jasonr@gnu.org>
parents:
24144
diff
changeset
|
41 #define GCBackground 0x02 |
d6331257c601
(XGCValue): New struct for emulating X GCs.
Jason Rumney <jasonr@gnu.org>
parents:
24144
diff
changeset
|
42 #define GCFont 0x03 |
d6331257c601
(XGCValue): New struct for emulating X GCs.
Jason Rumney <jasonr@gnu.org>
parents:
24144
diff
changeset
|
43 |
13434 | 44 typedef HBITMAP Pixmap; |
45 typedef HBITMAP Bitmap; | |
27398
d6331257c601
(XGCValue): New struct for emulating X GCs.
Jason Rumney <jasonr@gnu.org>
parents:
24144
diff
changeset
|
46 |
50363
6bc35dcf692b
(XrmDatabase): New (dummy) typedef.
Kim F. Storm <storm@cua.dk>
parents:
50230
diff
changeset
|
47 typedef char * XrmDatabase; |
6bc35dcf692b
(XrmDatabase): New (dummy) typedef.
Kim F. Storm <storm@cua.dk>
parents:
50230
diff
changeset
|
48 |
27398
d6331257c601
(XGCValue): New struct for emulating X GCs.
Jason Rumney <jasonr@gnu.org>
parents:
24144
diff
changeset
|
49 typedef XGCValues * GC; |
13434 | 50 typedef COLORREF Color; |
51 typedef DWORD Time; | |
52 typedef HWND Window; | |
50162 | 53 typedef HDC Display; /* HDC so it doesn't conflict with xpm lib. */ |
13434 | 54 typedef HCURSOR Cursor; |
55 | |
50230
c2c4c37724f1
(No_Cursor): Define as 0 for W32.
Kim F. Storm <storm@cua.dk>
parents:
50162
diff
changeset
|
56 #define No_Cursor (0) |
c2c4c37724f1
(No_Cursor): Define as 0 for W32.
Kim F. Storm <storm@cua.dk>
parents:
50162
diff
changeset
|
57 |
50153
04ca11636b72
(Display): Add dummy typedef for consolidation.
Kim F. Storm <storm@cua.dk>
parents:
47997
diff
changeset
|
58 #define XChar2b wchar_t |
04ca11636b72
(Display): Add dummy typedef for consolidation.
Kim F. Storm <storm@cua.dk>
parents:
47997
diff
changeset
|
59 |
04ca11636b72
(Display): Add dummy typedef for consolidation.
Kim F. Storm <storm@cua.dk>
parents:
47997
diff
changeset
|
60 /* Dealing with bits of wchar_t as if they were an XChar2b. */ |
04ca11636b72
(Display): Add dummy typedef for consolidation.
Kim F. Storm <storm@cua.dk>
parents:
47997
diff
changeset
|
61 #define STORE_XCHAR2B(chp, byte1, byte2) \ |
04ca11636b72
(Display): Add dummy typedef for consolidation.
Kim F. Storm <storm@cua.dk>
parents:
47997
diff
changeset
|
62 ((*chp) = ((XChar2b)((((byte1) & 0x00ff) << 8) | ((byte2) & 0x00ff)))) |
04ca11636b72
(Display): Add dummy typedef for consolidation.
Kim F. Storm <storm@cua.dk>
parents:
47997
diff
changeset
|
63 |
04ca11636b72
(Display): Add dummy typedef for consolidation.
Kim F. Storm <storm@cua.dk>
parents:
47997
diff
changeset
|
64 #define XCHAR2B_BYTE1(chp) \ |
04ca11636b72
(Display): Add dummy typedef for consolidation.
Kim F. Storm <storm@cua.dk>
parents:
47997
diff
changeset
|
65 (((*chp) & 0xff00) >> 8) |
04ca11636b72
(Display): Add dummy typedef for consolidation.
Kim F. Storm <storm@cua.dk>
parents:
47997
diff
changeset
|
66 |
04ca11636b72
(Display): Add dummy typedef for consolidation.
Kim F. Storm <storm@cua.dk>
parents:
47997
diff
changeset
|
67 #define XCHAR2B_BYTE2(chp) \ |
04ca11636b72
(Display): Add dummy typedef for consolidation.
Kim F. Storm <storm@cua.dk>
parents:
47997
diff
changeset
|
68 ((*chp) & 0x00ff) |
04ca11636b72
(Display): Add dummy typedef for consolidation.
Kim F. Storm <storm@cua.dk>
parents:
47997
diff
changeset
|
69 |
04ca11636b72
(Display): Add dummy typedef for consolidation.
Kim F. Storm <storm@cua.dk>
parents:
47997
diff
changeset
|
70 |
44046 | 71 /* Windows equivalent of XImage. */ |
72 typedef struct _XImage | |
73 { | |
74 unsigned char * data; | |
75 BITMAPINFO info; | |
76 /* Optional RGBQUAD array for palette follows (see BITMAPINFO docs). */ | |
77 } XImage; | |
40327
57a44aac3228
Add a dummy typedef for XImage. From Juanma Barranquero <lektu@terra.es>.
Eli Zaretskii <eliz@gnu.org>
parents:
39711
diff
changeset
|
78 |
13434 | 79 #define FACE_DEFAULT (~0) |
80 | |
81 extern HINSTANCE hinst; | |
82 extern HINSTANCE hprevinst; | |
83 extern LPSTR lpCmdLine; | |
84 extern int nCmdShow; | |
85 | |
86 /* Bit Gravity */ | |
87 | |
88 #define ForgetGravity 0 | |
89 #define NorthWestGravity 1 | |
90 #define NorthGravity 2 | |
91 #define NorthEastGravity 3 | |
92 #define WestGravity 4 | |
93 #define CenterGravity 5 | |
94 #define EastGravity 6 | |
95 #define SouthWestGravity 7 | |
96 #define SouthGravity 8 | |
97 #define SouthEastGravity 9 | |
98 #define StaticGravity 10 | |
99 | |
100 #define NoValue 0x0000 | |
101 #define XValue 0x0001 | |
102 #define YValue 0x0002 | |
103 #define WidthValue 0x0004 | |
104 #define HeightValue 0x0008 | |
105 #define AllValues 0x000F | |
106 #define XNegative 0x0010 | |
107 #define YNegative 0x0020 | |
108 | |
109 #define USPosition (1L << 0) /* user specified x, y */ | |
110 #define USSize (1L << 1) /* user specified width, height */ | |
111 | |
112 #define PPosition (1L << 2) /* program specified position */ | |
113 #define PSize (1L << 3) /* program specified size */ | |
114 #define PMinSize (1L << 4) /* program specified minimum size */ | |
115 #define PMaxSize (1L << 5) /* program specified maximum size */ | |
116 #define PResizeInc (1L << 6) /* program specified resize increments */ | |
117 #define PAspect (1L << 7) /* program specified min and max aspect ratios */ | |
118 #define PBaseSize (1L << 8) /* program specified base for incrementing */ | |
119 #define PWinGravity (1L << 9) /* program specified window gravity */ | |
120 | |
121 extern int XParseGeometry (); | |
122 | |
50230
c2c4c37724f1
(No_Cursor): Define as 0 for W32.
Kim F. Storm <storm@cua.dk>
parents:
50162
diff
changeset
|
123 |
c2c4c37724f1
(No_Cursor): Define as 0 for W32.
Kim F. Storm <storm@cua.dk>
parents:
50162
diff
changeset
|
124 typedef struct { |
c2c4c37724f1
(No_Cursor): Define as 0 for W32.
Kim F. Storm <storm@cua.dk>
parents:
50162
diff
changeset
|
125 int x, y; |
c2c4c37724f1
(No_Cursor): Define as 0 for W32.
Kim F. Storm <storm@cua.dk>
parents:
50162
diff
changeset
|
126 unsigned width, height; |
c2c4c37724f1
(No_Cursor): Define as 0 for W32.
Kim F. Storm <storm@cua.dk>
parents:
50162
diff
changeset
|
127 } XRectangle; |
c2c4c37724f1
(No_Cursor): Define as 0 for W32.
Kim F. Storm <storm@cua.dk>
parents:
50162
diff
changeset
|
128 |
c2c4c37724f1
(No_Cursor): Define as 0 for W32.
Kim F. Storm <storm@cua.dk>
parents:
50162
diff
changeset
|
129 #define NativeRectangle RECT |
c2c4c37724f1
(No_Cursor): Define as 0 for W32.
Kim F. Storm <storm@cua.dk>
parents:
50162
diff
changeset
|
130 |
c2c4c37724f1
(No_Cursor): Define as 0 for W32.
Kim F. Storm <storm@cua.dk>
parents:
50162
diff
changeset
|
131 #define CONVERT_TO_XRECT(xr,nr) \ |
c2c4c37724f1
(No_Cursor): Define as 0 for W32.
Kim F. Storm <storm@cua.dk>
parents:
50162
diff
changeset
|
132 ((xr).x = (nr).left, \ |
c2c4c37724f1
(No_Cursor): Define as 0 for W32.
Kim F. Storm <storm@cua.dk>
parents:
50162
diff
changeset
|
133 (xr).y = (nr).top, \ |
c2c4c37724f1
(No_Cursor): Define as 0 for W32.
Kim F. Storm <storm@cua.dk>
parents:
50162
diff
changeset
|
134 (xr).width = ((nr).right - (nr).left), \ |
c2c4c37724f1
(No_Cursor): Define as 0 for W32.
Kim F. Storm <storm@cua.dk>
parents:
50162
diff
changeset
|
135 (xr).height = ((nr).bottom - (nr).top)) |
c2c4c37724f1
(No_Cursor): Define as 0 for W32.
Kim F. Storm <storm@cua.dk>
parents:
50162
diff
changeset
|
136 |
c2c4c37724f1
(No_Cursor): Define as 0 for W32.
Kim F. Storm <storm@cua.dk>
parents:
50162
diff
changeset
|
137 #define CONVERT_FROM_XRECT(xr,nr) \ |
c2c4c37724f1
(No_Cursor): Define as 0 for W32.
Kim F. Storm <storm@cua.dk>
parents:
50162
diff
changeset
|
138 ((nr).left = (xr).x, \ |
c2c4c37724f1
(No_Cursor): Define as 0 for W32.
Kim F. Storm <storm@cua.dk>
parents:
50162
diff
changeset
|
139 (nr).top = (xr).y, \ |
c2c4c37724f1
(No_Cursor): Define as 0 for W32.
Kim F. Storm <storm@cua.dk>
parents:
50162
diff
changeset
|
140 (nr).right = ((xr).x + (xr).width), \ |
c2c4c37724f1
(No_Cursor): Define as 0 for W32.
Kim F. Storm <storm@cua.dk>
parents:
50162
diff
changeset
|
141 (nr).bottom = ((xr).y + (xr).height)) |
c2c4c37724f1
(No_Cursor): Define as 0 for W32.
Kim F. Storm <storm@cua.dk>
parents:
50162
diff
changeset
|
142 |
c2c4c37724f1
(No_Cursor): Define as 0 for W32.
Kim F. Storm <storm@cua.dk>
parents:
50162
diff
changeset
|
143 #define STORE_NATIVE_RECT(nr,x,y,width,height) \ |
c2c4c37724f1
(No_Cursor): Define as 0 for W32.
Kim F. Storm <storm@cua.dk>
parents:
50162
diff
changeset
|
144 ((nr).left = (x), \ |
c2c4c37724f1
(No_Cursor): Define as 0 for W32.
Kim F. Storm <storm@cua.dk>
parents:
50162
diff
changeset
|
145 (nr).top = (y), \ |
c2c4c37724f1
(No_Cursor): Define as 0 for W32.
Kim F. Storm <storm@cua.dk>
parents:
50162
diff
changeset
|
146 (nr).right = ((nr).left + (width)), \ |
c2c4c37724f1
(No_Cursor): Define as 0 for W32.
Kim F. Storm <storm@cua.dk>
parents:
50162
diff
changeset
|
147 (nr).bottom = ((nr).top + (height))) |
c2c4c37724f1
(No_Cursor): Define as 0 for W32.
Kim F. Storm <storm@cua.dk>
parents:
50162
diff
changeset
|
148 |
c2c4c37724f1
(No_Cursor): Define as 0 for W32.
Kim F. Storm <storm@cua.dk>
parents:
50162
diff
changeset
|
149 |
29605
beb7f126f175
(EMACS_W32GUI_H): Renamed from __W32GUI_H__
Jason Rumney <jasonr@gnu.org>
parents:
29318
diff
changeset
|
150 #endif /* EMACS_W32GUI_H */ |
52401 | 151 |
152 /* arch-tag: 9172e5fb-45a5-4684-afd9-ca0e81324604 | |
153 (do not change this comment) */ |