Mercurial > hg > xemacs-beta
annotate src/console-msw-impl.h @ 5882:bbe4146603db
Reduce regexp usage, now CL-oriented non-regexp code available, core Lisp
lisp/ChangeLog addition:
2015-04-01 Aidan Kehoe <kehoea@parhasard.net>
When calling #'string-match with a REGEXP without regular
expression special characters, call #'search, #'mismatch, #'find,
etc. instead, making our code less likely to side-effect other
functions' match data and a little faster.
* apropos.el (apropos-command):
* apropos.el (apropos):
Call (position ?\n ...) rather than (string-match "\n" ...) here.
* buff-menu.el:
* buff-menu.el (buffers-menu-omit-invisible-buffers):
Don't fire up the regexp engine just to check if a string starts
with a space.
* buff-menu.el (select-buffers-tab-buffers-by-mode):
Don't fire up the regexp engine just to compare mode basenames.
* buff-menu.el (format-buffers-tab-line):
* buff-menu.el (build-buffers-tab-internal): Moved to being a
label within the following.
* buff-menu.el (buffers-tab-items): Use the label.
* bytecomp.el (byte-compile-log-1):
Don't fire up the regexp engine just to look for a newline.
* cus-edit.el (get):
Ditto.
* cus-edit.el (custom-variable-value-create):
Ditto, but for a colon.
* descr-text.el (describe-text-sexp):
Ditto.
* descr-text.el (describe-char-unicode-data):
Use #'split-string-by-char given that we're just looking for a
semicolon.
* descr-text.el (describe-char):
Don't fire up the regexp engine just to look for a newline.
* disass.el (disassemble-internal):
Ditto.
* files.el (file-name-sans-extension):
Implement this using #'position.
* files.el (file-name-extension):
Correct this function's docstring, implement it in terms of
#'position.
* files.el (insert-directory):
Don't fire up the regexp engine to split a string by space; don't
reverse the list of switches, this is actually a longstand bug as
far as I can see.
* gnuserv.el (gnuserv-process-filter):
Use #'position here, instead of consing inside #'split-string
needlessly.
* gtk-file-dialog.el (gtk-file-dialog-update-dropdown):
Use #'split-string-by-char here, don't fire up #'split-string for
directory-sep-char.
* gtk-font-menu.el (hack-font-truename):
Implement this more cheaply in terms of #'find,
#'split-string-by-char, #'equal, rather than #'string-match,
#'split-string, #'string-equal.
* hyper-apropos.el (hyper-apropos-grok-functions):
* hyper-apropos.el (hyper-apropos-grok-variables):
Look for a newline using #'position rather than #'string-match in
these functions.
* info.el (Info-insert-dir):
* info.el (Info-insert-file-contents):
* info.el (Info-follow-reference):
* info.el (Info-extract-menu-node-name):
* info.el (Info-menu):
Look for fixed strings using #'position or #'search as appropriate
in this file.
* ldap.el (ldap-decode-string):
* ldap.el (ldap-encode-string):
#'encode-coding-string, #'decode-coding-string are always
available, don't check if they're fboundp.
* ldap.el (ldap-decode-address):
* ldap.el (ldap-encode-address):
Use #'split-string-by-char in these functions.
* lisp-mnt.el (lm-creation-date):
* lisp-mnt.el (lm-last-modified-date):
Don't fire up the regexp engine just to look for spaces in this file.
* menubar-items.el (default-menubar):
Use (not (mismatch ...)) rather than #'string-match here, for
simple regexp.
Use (search "beta" ...) rather than (string-match "beta" ...)
* menubar-items.el (sort-buffers-menu-alphabetically):
* menubar-items.el (sort-buffers-menu-by-mode-then-alphabetically):
* menubar-items.el (group-buffers-menu-by-mode-then-alphabetically):
Don't fire up the regexp engine to check if a string starts with
a space or an asterisk.
Use the more fine-grained results of #'compare-strings; compare
case-insensitively for the buffer menu.
* menubar-items.el (list-all-buffers):
* menubar-items.el (tutorials-menu-filter):
Use #'equal rather than #'string-equal, which, in this context,
has the drawback of not having a bytecode, and no redeeming
features.
* minibuf.el:
* minibuf.el (un-substitute-in-file-name):
Use #'count, rather than counting the occurences of $ using the
regexp engine.
* minibuf.el (read-file-name-internal-1):
Don't fire up the regexp engine to search for ?=.
* mouse.el (mouse-eval-sexp):
Check for newline with #'find.
* msw-font-menu.el (mswindows-reset-device-font-menus):
Split a string by newline with #'split-string-by-char.
* mule/japanese.el:
* mule/japanese.el ("Japanese"):
Use #'search rather than #'string-match; canoncase before
comparing; fix a bug I had introduced where I had been making case
insensitive comparisons where the case mattered.
* mule/korea-util.el (default-korean-keyboard):
Look for ?3 using #'find, not #'string-march.
* mule/korea-util.el (quail-hangul-switch-hanja):
Search for a fixed string using #'search.
* mule/mule-cmds.el (set-locale-for-language-environment):
#'position, #'substitute rather than #'string-match,
#'replace-in-string.
* newcomment.el (comment-make-extra-lines):
Use #'search rather than #'string-match for a simple string.
* package-get.el (package-get-remote-filename):
Use #'position when looking for ?@
* process.el (setenv):
* process.el (read-envvar-name):
Use #'position when looking for ?=.
* replace.el (map-query-replace-regexp):
Use #'split-string-by-char instead of using an inline
implementation of it.
* select.el (select-convert-from-cf-text):
* select.el (select-convert-from-cf-unicodetext):
Use #'position rather than #'string-match in these functions.
* setup-paths.el (paths-emacs-data-root-p):
Use #'search when looking for simple string.
* sound.el (load-sound-file):
Use #'split-string-by-char rather than an inline reimplementation
of same.
* startup.el (splash-screen-window-body):
* startup.el (splash-screen-tty-body):
Search for simple strings using #'search.
* version.el (emacs-version):
Ditto.
* x-font-menu.el (hack-font-truename):
Implement this more cheaply in terms of #'find,
#'split-string-by-char, #'equal, rather than #'string-match,
#'split-string, #'string-equal.
* x-font-menu.el (x-reset-device-font-menus-core):
Use #'split-string-by-char here.
* x-init.el (x-initialize-keyboard):
Search for a simple string using #'search.
author | Aidan Kehoe <kehoea@parhasard.net> |
---|---|
date | Wed, 01 Apr 2015 14:28:20 +0100 |
parents | 308d34e9f07d |
children | 0f2338afbabf |
rev | line source |
---|---|
872 | 1 /* Define mswindows-specific console, device, and frame object for XEmacs. |
2 Copyright (C) 1989, 1992, 1993, 1994, 1995 Free Software Foundation, Inc. | |
3 Copyright (C) 1994, 1995 Board of Trustees, University of Illinois. | |
5043 | 4 Copyright (C) 2001, 2002, 2010 Ben Wing. |
872 | 5 |
6 This file is part of XEmacs. | |
7 | |
5402
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
5127
diff
changeset
|
8 XEmacs is free software: you can redistribute it and/or modify it |
872 | 9 under the terms of the GNU General Public License as published by the |
5402
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
5127
diff
changeset
|
10 Free Software Foundation, either version 3 of the License, or (at your |
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
5127
diff
changeset
|
11 option) any later version. |
872 | 12 |
13 XEmacs is distributed in the hope that it will be useful, but WITHOUT | |
14 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
15 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
16 for more details. | |
17 | |
18 You should have received a copy of the GNU General Public License | |
5402
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
5127
diff
changeset
|
19 along with XEmacs. If not, see <http://www.gnu.org/licenses/>. */ |
872 | 20 |
21 /* Synched up with: Not in FSF. */ | |
22 | |
23 /* This file essentially Mule-ized (except perhaps some Unicode splitting). | |
24 5-2000. */ | |
25 | |
26 /* Authorship: | |
27 | |
28 Ultimately based on FSF, then later on JWZ work for Lemacs. | |
29 Rewritten over time by Ben Wing and Chuck Thompson. | |
30 Rewritten for mswindows by Jonathan Harris, November 1997 for 21.0. | |
31 */ | |
32 | |
33 #ifndef INCLUDED_console_msw_impl_h_ | |
34 #define INCLUDED_console_msw_impl_h_ | |
35 | |
36 #include "console-impl.h" | |
37 #include "console-msw.h" | |
38 | |
39 /* | |
40 * Consoles | |
41 */ | |
42 | |
43 DECLARE_CONSOLE_TYPE (mswindows); | |
44 | |
45 struct mswindows_console | |
46 { | |
47 int infd, outfd; | |
48 }; | |
49 | |
50 DECLARE_CONSOLE_TYPE (msprinter); | |
51 | |
52 /* | |
53 * Printer settings, aka devmode | |
54 */ | |
55 | |
903 | 56 struct Lisp_Devmode |
872 | 57 { |
5127
a9c41067dd88
more cleanups, terminology clarification, lots of doc work
Ben Wing <ben@xemacs.org>
parents:
5126
diff
changeset
|
58 NORMAL_LISP_OBJECT_HEADER header; |
872 | 59 |
60 /* Pointer to the DEVMODE structure */ | |
61 DEVMODEW *devmode; | |
62 | |
63 /* Full printer name. It can be longer than devmode->dmDeviceName | |
64 can accommodate, so need to keep it separately */ | |
65 Lisp_Object printer_name; | |
66 | |
67 /* Printer device this object is currently selected in, or Qnil | |
68 if not selected */ | |
69 Lisp_Object device; | |
70 | |
903 | 71 }; |
872 | 72 |
73 #define DEVMODE_SIZE(dm) ((dm)->dmSize + (dm)->dmDriverExtra) | |
74 #define XDEVMODE_SIZE(x) ((x)->devmode ? DEVMODE_SIZE((x)->devmode) : 0) | |
75 | |
76 /* | |
77 * Devices | |
78 */ | |
79 | |
80 struct mswindows_device | |
81 { | |
3092 | 82 #ifdef NEW_GC |
5127
a9c41067dd88
more cleanups, terminology clarification, lots of doc work
Ben Wing <ben@xemacs.org>
parents:
5126
diff
changeset
|
83 NORMAL_LISP_OBJECT_HEADER header; |
3092 | 84 #endif /* NEW_GC */ |
872 | 85 Lisp_Object fontlist; /* List of (STRING . FIXED-P), device fonts */ |
86 HDC hcdc; /* Compatible DC */ | |
87 DWORD update_tick; /* Used when device is modified through | |
88 Windows messages, see WM_DISPLAYCHANGE | |
89 in event-msw.c */ | |
90 }; | |
91 | |
3092 | 92 #ifdef NEW_GC |
93 typedef struct mswindows_device Lisp_Mswindows_Device; | |
94 | |
5118
e0db3c197671
merge up to latest default branch, doesn't compile yet
Ben Wing <ben@xemacs.org>
parents:
3092
diff
changeset
|
95 DECLARE_LISP_OBJECT (mswindows_device, Lisp_Mswindows_Device); |
3092 | 96 |
97 #define XMSWINDOWS_DEVICE(x) \ | |
98 XRECORD (x, mswindows_device, Lisp_Mswindows_Device) | |
99 #define wrap_mswindows_device(p) wrap_record (p, mswindows_device) | |
100 #define MSWINDOWS_DEVICE_P(x) RECORDP (x, mswindows_device) | |
101 #endif /* NEW_GC */ | |
102 | |
872 | 103 #define DEVICE_MSWINDOWS_DATA(d) DEVICE_TYPE_DATA (d, mswindows) |
104 #define DEVICE_MSWINDOWS_FONTLIST(d) (DEVICE_MSWINDOWS_DATA (d)->fontlist) | |
105 #define DEVICE_MSWINDOWS_HCDC(d) (DEVICE_MSWINDOWS_DATA (d)->hcdc) | |
106 #define DEVICE_MSWINDOWS_UPDATE_TICK(d) (DEVICE_MSWINDOWS_DATA (d)->update_tick) | |
107 | |
108 struct msprinter_device | |
109 { | |
3092 | 110 #ifdef NEW_GC |
5127
a9c41067dd88
more cleanups, terminology clarification, lots of doc work
Ben Wing <ben@xemacs.org>
parents:
5126
diff
changeset
|
111 NORMAL_LISP_OBJECT_HEADER header; |
3092 | 112 #endif /* NEW_GC */ |
872 | 113 HDC hdc, hcdc; /* Printer and the comp. DCs */ |
114 HANDLE hprinter; | |
115 Lisp_Object name; | |
116 Lisp_Object devmode; | |
117 Lisp_Object fontlist; | |
118 }; | |
119 | |
3092 | 120 #ifdef NEW_GC |
121 typedef struct msprinter_device Lisp_Msprinter_Device; | |
122 | |
5118
e0db3c197671
merge up to latest default branch, doesn't compile yet
Ben Wing <ben@xemacs.org>
parents:
3092
diff
changeset
|
123 DECLARE_LISP_OBJECT (msprinter_device, Lisp_Msprinter_Device); |
3092 | 124 |
125 #define XMSPRINTER_DEVICE(x) \ | |
126 XRECORD (x, msprinter_device, Lisp_Msprinter_Device) | |
127 #define wrap_msprinter_device(p) wrap_record (p, msprinter_device) | |
128 #define MSPRINTER_DEVICE_P(x) RECORDP (x, msprinter_device) | |
129 #endif /* NEW_GC */ | |
130 | |
872 | 131 #define DEVICE_MSPRINTER_DATA(d) DEVICE_TYPE_DATA (d, msprinter) |
132 #define DEVICE_MSPRINTER_HDC(d) (DEVICE_MSPRINTER_DATA (d)->hdc) | |
133 #define DEVICE_MSPRINTER_HCDC(d) (DEVICE_MSPRINTER_DATA (d)->hcdc) | |
134 #define DEVICE_MSPRINTER_HPRINTER(d) (DEVICE_MSPRINTER_DATA (d)->hprinter) | |
135 #define DEVICE_MSPRINTER_FONTLIST(d) (DEVICE_MSPRINTER_DATA (d)->fontlist) | |
136 #define DEVICE_MSPRINTER_NAME(d) (DEVICE_MSPRINTER_DATA (d)->name) | |
137 #define DEVICE_MSPRINTER_DEVMODE(d) (DEVICE_MSPRINTER_DATA (d)->devmode) | |
138 | |
139 #define CONSOLE_TYPESYM_MSPRINTER_P(typesym) EQ (typesym, Qmsprinter) | |
140 #define DEVICE_MSPRINTER_P(dev) CONSOLE_TYPESYM_MSPRINTER_P (DEVICE_TYPE (dev)) | |
141 #define CHECK_MSPRINTER_DEVICE(z) CHECK_DEVICE_TYPE (z, msprinter) | |
142 #define CONCHECK_MSPRINTER_DEVICE(z) CONCHECK_DEVICE_TYPE (z, msprinter) | |
143 | |
144 /* Common checks */ | |
145 | |
146 #define DEVICE_MSGDI_P(dev) (DEVICE_MSWINDOWS_P(dev) || DEVICE_MSPRINTER_P(dev)) | |
147 #define CHECK_MSGDI_DEVICE(d) \ | |
148 do { \ | |
149 CHECK_DEVICE (d); \ | |
150 if (!(DEVICEP (d) && DEVICE_MSGDI_P(XDEVICE(d)))) \ | |
151 dead_wrong_type_argument \ | |
152 (list3 (Qor, Qmswindows, Qmsprinter), d); \ | |
153 } while (0) | |
154 #define CONCHECK_MSGDI_DEVICE(d) \ | |
155 do { \ | |
156 CHECK_DEVICE (d); \ | |
157 if (!(DEVICEP (d) && DEVICE_MSGDI_P(XDEVICE(d)))) \ | |
158 wrong_type_argument \ | |
159 (list3 (Qor, Qmswindows, Qmsprinter), d); \ | |
160 } while (0) | |
161 | |
162 /* | |
163 * Frames | |
164 */ | |
165 | |
166 struct mswindows_frame | |
167 { | |
3092 | 168 #ifdef NEW_GC |
5127
a9c41067dd88
more cleanups, terminology clarification, lots of doc work
Ben Wing <ben@xemacs.org>
parents:
5126
diff
changeset
|
169 NORMAL_LISP_OBJECT_HEADER header; |
3092 | 170 #endif /* NEW_GC */ |
171 | |
872 | 172 /* win32 window handle */ |
173 HWND hwnd; | |
174 | |
175 /* DC for this win32 window */ | |
176 HDC hdc; | |
177 | |
178 /* Used with DeferWindowPos */ | |
179 HDWP hdwp; | |
180 | |
181 /* Time of last click event, for button 2 emul */ | |
182 DWORD last_click_time; | |
183 | |
184 /* Mods of last click event */ | |
185 DWORD last_click_mods; | |
186 | |
187 /* Coordinates of last click event, screen-relative */ | |
188 POINTS last_click_point; | |
189 #ifdef HAVE_TOOLBARS | |
190 /* Toolbar hash table. See toolbar-msw.c */ | |
191 Lisp_Object toolbar_hash_table; | |
192 unsigned int toolbar_checksum[4]; | |
193 #endif | |
194 | |
195 /* Menu hash table. See menubar-msw.c */ | |
196 Lisp_Object menu_hash_table; | |
197 | |
198 /* Menu checksum. See menubar-msw.c */ | |
199 unsigned int menu_checksum; | |
200 | |
201 /* Widget glyphs attached to this frame. See glyphs-msw.c */ | |
202 Lisp_Object widget_hash_table1, widget_hash_table2, widget_hash_table3; | |
203 | |
204 /* Frame title hash value. See frame-msw.c */ | |
205 unsigned int title_checksum; | |
206 | |
207 #ifdef MULE | |
208 int cursor_x; | |
209 int cursor_y; | |
210 face_index cursor_findex; | |
211 #endif | |
212 | |
213 /* Misc flags */ | |
214 int button2_need_lbutton : 1; | |
215 int button2_need_rbutton : 1; | |
216 int button2_is_down : 1; | |
217 int ignore_next_lbutton_up : 1; | |
218 int ignore_next_rbutton_up : 1; | |
219 int sizing : 1; | |
220 int paint_pending : 1; /* Whether a WM_PAINT magic event has been queued */ | |
221 int popup : 1; /* frame is a popup frame */ | |
222 | |
223 /* Geometry, in characters, as specified by proplist during frame | |
224 creation. Members are set to -1 for unspecified */ | |
225 XEMACS_RECT_WH *target_rect; | |
226 }; | |
227 | |
3092 | 228 #ifdef NEW_GC |
229 typedef struct mswindows_frame Lisp_Mswindows_Frame; | |
230 | |
5118
e0db3c197671
merge up to latest default branch, doesn't compile yet
Ben Wing <ben@xemacs.org>
parents:
3092
diff
changeset
|
231 DECLARE_LISP_OBJECT (mswindows_frame, Lisp_Mswindows_Frame); |
3092 | 232 |
233 #define XMSWINDOWS_FRAME(x) \ | |
234 XRECORD (x, mswindows_frame, Lisp_Mswindows_Frame) | |
235 #define wrap_mswindows_frame(p) wrap_record (p, mswindows_frame) | |
236 #define MSWINDOWS_FRAME_P(x) RECORDP (x, mswindows_frame) | |
237 #endif /* NEW_GC */ | |
238 | |
872 | 239 #define FRAME_MSWINDOWS_DATA(f) FRAME_TYPE_DATA (f, mswindows) |
240 | |
241 #define FRAME_MSWINDOWS_HANDLE(f) (FRAME_MSWINDOWS_DATA (f)->hwnd) | |
242 #define FRAME_MSWINDOWS_DC(f) (FRAME_MSWINDOWS_DATA (f)->hdc) | |
243 #define FRAME_MSWINDOWS_MENU_HASH_TABLE(f) (FRAME_MSWINDOWS_DATA (f)->menu_hash_table) | |
244 #define FRAME_MSWINDOWS_TOOLBAR_HASH_TABLE(f) \ | |
245 (FRAME_MSWINDOWS_DATA (f)->toolbar_hash_table) | |
246 #define FRAME_MSWINDOWS_WIDGET_HASH_TABLE1(f) \ | |
247 (FRAME_MSWINDOWS_DATA (f)->widget_hash_table1) | |
248 #define FRAME_MSWINDOWS_WIDGET_HASH_TABLE2(f) \ | |
249 (FRAME_MSWINDOWS_DATA (f)->widget_hash_table2) | |
250 #define FRAME_MSWINDOWS_WIDGET_HASH_TABLE3(f) \ | |
251 (FRAME_MSWINDOWS_DATA (f)->widget_hash_table3) | |
252 #define FRAME_MSWINDOWS_TOOLBAR_CHECKSUM(f,pos) \ | |
253 (FRAME_MSWINDOWS_DATA (f)->toolbar_checksum[pos]) | |
254 #define FRAME_MSWINDOWS_MENU_CHECKSUM(f) (FRAME_MSWINDOWS_DATA (f)->menu_checksum) | |
255 #define FRAME_MSWINDOWS_TITLE_CHECKSUM(f) (FRAME_MSWINDOWS_DATA (f)->title_checksum) | |
256 #define FRAME_MSWINDOWS_TARGET_RECT(f) (FRAME_MSWINDOWS_DATA (f)->target_rect) | |
257 | |
258 #define FRAME_MSWINDOWS_POPUP(f) (FRAME_MSWINDOWS_DATA (f)->popup) | |
259 | |
260 #ifdef MULE | |
261 # define FRAME_MSWINDOWS_CURSOR_X(f) (FRAME_MSWINDOWS_DATA (f)->cursor_x) | |
262 # define FRAME_MSWINDOWS_CURSOR_Y(f) (FRAME_MSWINDOWS_DATA (f)->cursor_y) | |
263 # define FRAME_MSWINDOWS_CURSOR_FINDEX(f) (FRAME_MSWINDOWS_DATA (f)->cursor_findex) | |
264 #endif | |
265 | |
266 /* Frame check and validation macros */ | |
267 #define FRAME_MSWINDOWS_P(frm) CONSOLE_TYPESYM_MSWINDOWS_P (FRAME_TYPE (frm)) | |
268 #define CHECK_MSWINDOWS_FRAME(z) CHECK_FRAME_TYPE (z, mswindows) | |
269 #define CONCHECK_MSWINDOWS_FRAME(z) CONCHECK_FRAME_TYPE (z, mswindows) | |
270 | |
271 /* win32 window LONG indices */ | |
272 #define XWL_FRAMEOBJ 0 | |
273 #define XWL_COUNT 1 /* Number of LONGs that we use */ | |
274 #define MSWINDOWS_WINDOW_EXTRA_BYTES (XWL_COUNT * 4) | |
275 | |
276 /* | |
277 * Printer frame, aka printer job | |
278 */ | |
279 | |
280 struct msprinter_frame | |
281 { | |
282 int left_margin, top_margin, /* All in twips */ | |
283 right_margin, bottom_margin; | |
284 int charheight, charwidth; /* As per proplist or -1 if not given */ | |
285 int pix_left, pix_top; /* Calculated in init_frame_*, VP offset */ | |
286 int job_started : 1; | |
287 int page_started : 1; | |
288 }; | |
289 | |
290 #define FRAME_MSPRINTER_DATA(f) FRAME_TYPE_DATA (f, msprinter) | |
291 #define FRAME_MSPRINTER_LEFT_MARGIN(f) (FRAME_MSPRINTER_DATA (f)->left_margin) | |
292 #define FRAME_MSPRINTER_RIGHT_MARGIN(f) (FRAME_MSPRINTER_DATA (f)->top_margin) | |
293 #define FRAME_MSPRINTER_TOP_MARGIN(f) (FRAME_MSPRINTER_DATA (f)->right_margin) | |
294 #define FRAME_MSPRINTER_BOTTOM_MARGIN(f) (FRAME_MSPRINTER_DATA (f)->bottom_margin) | |
295 #define FRAME_MSPRINTER_JOB_STARTED(f) (FRAME_MSPRINTER_DATA (f)->job_started) | |
296 #define FRAME_MSPRINTER_PAGE_STARTED(f) (FRAME_MSPRINTER_DATA (f)->page_started) | |
297 #define FRAME_MSPRINTER_CHARWIDTH(f) (FRAME_MSPRINTER_DATA (f)->charwidth) | |
298 #define FRAME_MSPRINTER_CHARHEIGHT(f) (FRAME_MSPRINTER_DATA (f)->charheight) | |
299 #define FRAME_MSPRINTER_PIXLEFT(f) (FRAME_MSPRINTER_DATA (f)->pix_left) | |
300 #define FRAME_MSPRINTER_PIXTOP(f) (FRAME_MSPRINTER_DATA (f)->pix_top) | |
301 | |
302 /* | |
303 * Events | |
304 */ | |
305 | |
306 /* win32 messages / magic event types */ | |
307 #define XM_BUMPQUEUE (WM_USER + 101) | |
308 #define XM_MAPFRAME (WM_USER + 102) | |
309 #define XM_UNMAPFRAME (WM_USER + 103) | |
310 | |
311 struct mswindows_dialog_id | |
312 { | |
5127
a9c41067dd88
more cleanups, terminology clarification, lots of doc work
Ben Wing <ben@xemacs.org>
parents:
5126
diff
changeset
|
313 NORMAL_LISP_OBJECT_HEADER header; |
872 | 314 |
315 Lisp_Object frame; | |
316 Lisp_Object callbacks; | |
317 HWND hwnd; | |
318 }; | |
319 | |
320 #endif /* INCLUDED_console_msw_impl_h_ */ |