Mercurial > hg > xemacs-beta
comparison src/console-msw.h @ 440:8de8e3f6228a r21-2-28
Import from CVS: tag r21-2-28
author | cvs |
---|---|
date | Mon, 13 Aug 2007 11:33:38 +0200 |
parents | a5df635868b2 |
children | abe6d1db359e |
comparison
equal
deleted
inserted
replaced
439:357dd071b03c | 440:8de8e3f6228a |
---|---|
27 Ultimately based on FSF, then later on JWZ work for Lemacs. | 27 Ultimately based on FSF, then later on JWZ work for Lemacs. |
28 Rewritten over time by Ben Wing and Chuck Thompson. | 28 Rewritten over time by Ben Wing and Chuck Thompson. |
29 Rewritten for mswindows by Jonathan Harris, November 1997 for 21.0. | 29 Rewritten for mswindows by Jonathan Harris, November 1997 for 21.0. |
30 */ | 30 */ |
31 | 31 |
32 #ifndef _XEMACS_CONSOLE_MSW_H_ | 32 #ifndef INCLUDED_console_msw_h_ |
33 #define _XEMACS_CONSOLE_MSW_H_ | 33 #define INCLUDED_console_msw_h_ |
34 | 34 |
35 #include "console.h" | 35 #include "console.h" |
36 #ifdef CONST /* I suspect this is safe */ | 36 #ifdef CONST /* I suspect this is safe */ |
37 #undef CONST | 37 #undef CONST |
38 #endif | 38 #endif |
78 struct mswindows_console | 78 struct mswindows_console |
79 { | 79 { |
80 int infd, outfd; | 80 int infd, outfd; |
81 }; | 81 }; |
82 | 82 |
83 DECLARE_CONSOLE_TYPE (msprinter); | |
83 | 84 |
84 /* | 85 /* |
85 * Device | 86 * Device |
86 */ | 87 */ |
87 | 88 |
88 #define MSW_FONTSIZE (LF_FACESIZE*4+12) | 89 #define MSW_FONTSIZE (LF_FACESIZE*4+12) |
89 | |
90 struct mswindows_font_enum | |
91 { | |
92 char fontname[MSW_FONTSIZE]; | |
93 struct mswindows_font_enum *next; | |
94 }; | |
95 | 90 |
96 struct mswindows_device | 91 struct mswindows_device |
97 { | 92 { |
98 int logpixelsx, logpixelsy; | 93 int logpixelsx, logpixelsy; |
99 int planes, cells; | 94 int planes, cells; |
100 int horzres, vertres; /* Size in pixels */ | 95 int horzres, vertres; /* Size in pixels */ |
101 int horzsize, vertsize; /* Size in mm */ | 96 int horzsize, vertsize; /* Size in mm */ |
102 int bitspixel; | 97 int bitspixel; |
103 struct mswindows_font_enum *fontlist; | 98 Lisp_Object fontlist; /* List of strings, device fonts */ |
104 }; | 99 }; |
105 | 100 |
106 #define DEVICE_MSWINDOWS_DATA(d) DEVICE_TYPE_DATA (d, mswindows) | 101 #define DEVICE_MSWINDOWS_DATA(d) DEVICE_TYPE_DATA (d, mswindows) |
107 #define DEVICE_MSWINDOWS_LOGPIXELSX(d) (DEVICE_MSWINDOWS_DATA (d)->logpixelsx) | 102 #define DEVICE_MSWINDOWS_LOGPIXELSX(d) (DEVICE_MSWINDOWS_DATA (d)->logpixelsx) |
108 #define DEVICE_MSWINDOWS_LOGPIXELSY(d) (DEVICE_MSWINDOWS_DATA (d)->logpixelsy) | 103 #define DEVICE_MSWINDOWS_LOGPIXELSY(d) (DEVICE_MSWINDOWS_DATA (d)->logpixelsy) |
113 #define DEVICE_MSWINDOWS_HORZSIZE(d) (DEVICE_MSWINDOWS_DATA (d)->horzsize) | 108 #define DEVICE_MSWINDOWS_HORZSIZE(d) (DEVICE_MSWINDOWS_DATA (d)->horzsize) |
114 #define DEVICE_MSWINDOWS_VERTSIZE(d) (DEVICE_MSWINDOWS_DATA (d)->vertsize) | 109 #define DEVICE_MSWINDOWS_VERTSIZE(d) (DEVICE_MSWINDOWS_DATA (d)->vertsize) |
115 #define DEVICE_MSWINDOWS_BITSPIXEL(d) (DEVICE_MSWINDOWS_DATA (d)->bitspixel) | 110 #define DEVICE_MSWINDOWS_BITSPIXEL(d) (DEVICE_MSWINDOWS_DATA (d)->bitspixel) |
116 #define DEVICE_MSWINDOWS_FONTLIST(d) (DEVICE_MSWINDOWS_DATA (d)->fontlist) | 111 #define DEVICE_MSWINDOWS_FONTLIST(d) (DEVICE_MSWINDOWS_DATA (d)->fontlist) |
117 | 112 |
113 struct msprinter_device | |
114 { | |
115 HDC hdc; | |
116 HANDLE hprinter; | |
117 Lisp_Object fontlist; | |
118 char* name; | |
119 DEVMODE *devmode, *devmode_mirror; | |
120 size_t devmode_size; | |
121 }; | |
122 | |
123 #define DEVICE_MSPRINTER_DATA(d) DEVICE_TYPE_DATA (d, msprinter) | |
124 #define DEVICE_MSPRINTER_HDC(d) (DEVICE_MSPRINTER_DATA (d)->hdc) | |
125 #define DEVICE_MSPRINTER_HPRINTER(d) (DEVICE_MSPRINTER_DATA (d)->hprinter) | |
126 #define DEVICE_MSPRINTER_FONTLIST(d) (DEVICE_MSPRINTER_DATA (d)->fontlist) | |
127 #define DEVICE_MSPRINTER_NAME(d) (DEVICE_MSPRINTER_DATA (d)->name) | |
128 #define DEVICE_MSPRINTER_DEVMODE(d) (DEVICE_MSPRINTER_DATA (d)->devmode) | |
129 #define DEVICE_MSPRINTER_DEVMODE_MIRROR(d) \ | |
130 (DEVICE_MSPRINTER_DATA (d)->devmode_mirror) | |
131 #define DEVICE_MSPRINTER_DEVMODE_SIZE(d) \ | |
132 (DEVICE_MSPRINTER_DATA (d)->devmode_size) | |
133 | |
134 #define CONSOLE_TYPESYM_MSPRINTER_P(typesym) EQ (typesym, Qmsprinter) | |
135 #define DEVICE_MSPRINTER_P(dev) CONSOLE_TYPESYM_MSPRINTER_P (DEVICE_TYPE (dev)) | |
136 #define CHECK_MSPRINTER_DEVICE(z) CHECK_DEVICE_TYPE (z, msprinter) | |
137 #define CONCHECK_MSPRINTER_DEVICE(z) CONCHECK_DEVICE_TYPE (z, msprinter) | |
138 | |
139 /* Printer functions */ | |
140 DEVMODE* msprinter_get_devmode_copy (struct device *d); | |
141 void msprinter_apply_devmode (struct device *d, DEVMODE *devmode); | |
118 | 142 |
119 /* | 143 /* |
120 * Frame | 144 * Frame |
121 */ | 145 */ |
122 typedef struct | 146 typedef struct |
204 /* win32 window LONG indices */ | 228 /* win32 window LONG indices */ |
205 #define XWL_FRAMEOBJ 0 | 229 #define XWL_FRAMEOBJ 0 |
206 #define XWL_COUNT 1 /* Number of LONGs that we use */ | 230 #define XWL_COUNT 1 /* Number of LONGs that we use */ |
207 #define MSWINDOWS_WINDOW_EXTRA_BYTES (XWL_COUNT*4) | 231 #define MSWINDOWS_WINDOW_EXTRA_BYTES (XWL_COUNT*4) |
208 | 232 |
233 /* | |
234 * Printer frame, aka printer job | |
235 */ | |
236 | |
237 struct msprinter_frame | |
238 { | |
239 HDC hcdc; /* Compatoble DC */ | |
240 int left_margin, top_margin, /* All in twips */ | |
241 right_margin, bottom_margin; | |
242 int charheight, charwidth; /* As per proplist or -1 if not gven */ | |
243 Lisp_Object orientation, duplex; /* nil for printer's default */ | |
244 int job_started : 1; | |
245 }; | |
246 | |
247 #define FRAME_MSPRINTER_DATA(f) FRAME_TYPE_DATA (f, msprinter) | |
248 #define FRAME_MSPRINTER_LEFT_MARGIN(f) (FRAME_MSPRINTER_DATA (f)->left_margin) | |
249 #define FRAME_MSPRINTER_RIGHT_MARGIN(f) (FRAME_MSPRINTER_DATA (f)->top_margin) | |
250 #define FRAME_MSPRINTER_TOP_MARGIN(f) (FRAME_MSPRINTER_DATA (f)->right_margin) | |
251 #define FRAME_MSPRINTER_BOTTOM_MARGIN(f) (FRAME_MSPRINTER_DATA (f)->bottom_margin) | |
252 #define FRAME_MSPRINTER_CDC(f) (FRAME_MSPRINTER_DATA (f)->hcdc) | |
253 #define FRAME_MSPRINTER_JOB_STARTED(f) (FRAME_MSPRINTER_DATA (f)->job_started) | |
254 #define FRAME_MSPRINTER_ORIENTATION(f) (FRAME_MSPRINTER_DATA (f)->orientation) | |
255 #define FRAME_MSPRINTER_DUPLEX(f) (FRAME_MSPRINTER_DATA (f)->duplex) | |
256 #define FRAME_MSPRINTER_CHARWIDTH(f) (FRAME_MSPRINTER_DATA (f)->charheight) | |
257 #define FRAME_MSPRINTER_CHARHEIGHT(f) (FRAME_MSPRINTER_DATA (f)->charwidth) | |
209 | 258 |
210 /* | 259 /* |
211 * Events | 260 * Events |
212 */ | 261 */ |
213 | 262 |
231 LPARAM lParam); | 280 LPARAM lParam); |
232 | 281 |
233 void mswindows_redraw_exposed_area (struct frame *f, int x, int y, | 282 void mswindows_redraw_exposed_area (struct frame *f, int x, int y, |
234 int width, int height); | 283 int width, int height); |
235 void mswindows_size_frame_internal (struct frame* f, XEMACS_RECT_WH* dest); | 284 void mswindows_size_frame_internal (struct frame* f, XEMACS_RECT_WH* dest); |
236 void mswindows_enqueue_magic_event (HWND hwnd, UINT message); | 285 void mswindows_enqueue_magic_event (HWND hwnd, UINT msg); |
237 | 286 |
238 /* win32 DDE management library */ | 287 /* win32 DDE management library */ |
239 #define MSWINDOWS_DDE_ITEM_OPEN "Open" | 288 #define MSWINDOWS_DDE_ITEM_OPEN "Open" |
240 extern DWORD mswindows_dde_mlid; | 289 extern DWORD mswindows_dde_mlid; |
241 extern HSZ mswindows_dde_service; | 290 extern HSZ mswindows_dde_service; |
246 DWORD dwData1, DWORD dwData2); | 295 DWORD dwData1, DWORD dwData2); |
247 | 296 |
248 void mswindows_enqueue_misc_user_event (Lisp_Object channel, | 297 void mswindows_enqueue_misc_user_event (Lisp_Object channel, |
249 Lisp_Object function, | 298 Lisp_Object function, |
250 Lisp_Object object); | 299 Lisp_Object object); |
251 Lisp_Object mswindows_cancel_dispatch_event (struct Lisp_Event* event); | 300 Lisp_Object mswindows_cancel_dispatch_event (Lisp_Event* event); |
252 Lisp_Object mswindows_pump_outstanding_events (void); | 301 Lisp_Object mswindows_pump_outstanding_events (void); |
253 Lisp_Object mswindows_protect_modal_loop (Lisp_Object (*bfun) (Lisp_Object barg), | 302 Lisp_Object mswindows_protect_modal_loop (Lisp_Object (*bfun) (Lisp_Object barg), |
254 Lisp_Object barg); | 303 Lisp_Object barg); |
255 void mswindows_unmodalize_signal_maybe (void); | 304 void mswindows_unmodalize_signal_maybe (void); |
256 | 305 |
306 #ifdef HAVE_TOOLBARS | |
307 Lisp_Object | |
308 mswindows_get_toolbar_button_text ( struct frame* f, int command_id ); | |
309 Lisp_Object | |
310 mswindows_handle_toolbar_wm_command (struct frame* f, HWND ctrl, WORD id); | |
311 #endif | |
312 Lisp_Object | |
313 mswindows_handle_gui_wm_command (struct frame* f, HWND ctrl, DWORD id); | |
314 COLORREF mswindows_string_to_color (CONST char *name); | |
315 USID emacs_mswindows_create_stream_pair (void* inhandle, void* outhandle, | |
316 Lisp_Object* instream, | |
317 Lisp_Object* outstream, | |
318 int flags); | |
319 USID emacs_mswindows_delete_stream_pair (Lisp_Object instream, | |
320 Lisp_Object outstream); | |
321 | |
257 #ifdef HAVE_WIN32_PROCESSES | 322 #ifdef HAVE_WIN32_PROCESSES |
258 HANDLE get_nt_process_handle (struct Lisp_Process *p); | 323 HANDLE get_nt_process_handle (Lisp_Process *p); |
259 #endif | 324 #endif |
260 | 325 |
261 extern Lisp_Object Vmswindows_frame_being_created; | 326 extern Lisp_Object Vmswindows_frame_being_created; |
262 extern Lisp_Object mswindows_frame_being_created; | 327 extern Lisp_Object mswindows_frame_being_created; |
263 | 328 |
264 void mswindows_enumerate_fonts (struct device *d); | 329 Lisp_Object mswindows_enumerate_fonts (HDC hdc); |
265 | 330 |
266 #endif /* _XEMACS_CONSOLE_MSW_H_ */ | 331 Lisp_Object mswindows_get_toolbar_button_text (struct frame* f, |
332 int command_id); | |
333 Lisp_Object mswindows_handle_toolbar_wm_command (struct frame* f, | |
334 HWND ctrl, WORD id); | |
335 Lisp_Object mswindows_handle_gui_wm_command (struct frame* f, | |
336 HWND ctrl, DWORD id); | |
337 | |
338 #endif /* INCLUDED_console_msw_h_ */ |