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_ */