Mercurial > hg > xemacs-beta
comparison src/console-msw.h @ 410:de805c49cfc1 r21-2-35
Import from CVS: tag r21-2-35
author | cvs |
---|---|
date | Mon, 13 Aug 2007 11:19:21 +0200 |
parents | 501cfd01ee6d |
children | 697ef44129c6 |
comparison
equal
deleted
inserted
replaced
409:301b9ebbdf3b | 410:de805c49cfc1 |
---|---|
44 #define XEMACS_CLASS "XEmacs" | 44 #define XEMACS_CLASS "XEmacs" |
45 | 45 |
46 #define XEMACS_CONTROL_CLASS "XEmacsControl" | 46 #define XEMACS_CONTROL_CLASS "XEmacsControl" |
47 | 47 |
48 /* | 48 /* |
49 * Console | 49 * Consoles |
50 */ | 50 */ |
51 | 51 |
52 DECLARE_CONSOLE_TYPE (mswindows); | 52 DECLARE_CONSOLE_TYPE (mswindows); |
53 | 53 |
54 struct mswindows_console | 54 struct mswindows_console |
57 }; | 57 }; |
58 | 58 |
59 DECLARE_CONSOLE_TYPE (msprinter); | 59 DECLARE_CONSOLE_TYPE (msprinter); |
60 | 60 |
61 /* | 61 /* |
62 * Device | 62 * Printer settings, aka devmode |
63 */ | |
64 | |
65 typedef struct Lisp_Devmode | |
66 { | |
67 struct lcrecord_header header; | |
68 | |
69 /* Pointer to the DEVMODE structure */ | |
70 DEVMODE* devmode; | |
71 | |
72 /* Full printer name. It can be longer than devmode->dmDeviceName | |
73 can accomodate, so need to keep it separately */ | |
74 char* printer_name; | |
75 | |
76 /* Printer device this object is currently selected in, or Qnil | |
77 if not selected */ | |
78 Lisp_Object device; | |
79 | |
80 } Lisp_Devmode; | |
81 | |
82 | |
83 DECLARE_LRECORD (devmode, Lisp_Devmode); | |
84 #define XDEVMODE(x) XRECORD (x, devmode, Lisp_Devmode) | |
85 #define XSETDEVMODE(x, p) XSETRECORD (x, p, devmode) | |
86 #define DEVMODEP(x) RECORDP (x, devmode) | |
87 #define CHECK_DEVMODE(x) CHECK_RECORD (x, devmode) | |
88 #define CONCHECK_DEVMODE(x) CONCHECK_RECORD (x, devmode) | |
89 | |
90 #define DEVMODE_SIZE(dm) ((dm)->dmSize + (dm)->dmDriverExtra) | |
91 #define XDEVMODE_SIZE(x) ((x)->devmode ? DEVMODE_SIZE((x)->devmode) : 0) | |
92 | |
93 /* | |
94 * Devices | |
63 */ | 95 */ |
64 | 96 |
65 #define MSW_FONTSIZE (LF_FACESIZE*4+12) | 97 #define MSW_FONTSIZE (LF_FACESIZE*4+12) |
66 | 98 |
67 struct mswindows_device | 99 struct mswindows_device |
68 { | 100 { |
69 int logpixelsx, logpixelsy; | |
70 int planes, cells; | |
71 int horzres, vertres; /* Size in pixels */ | |
72 int horzsize, vertsize; /* Size in mm */ | |
73 int bitspixel; | |
74 Lisp_Object fontlist; /* List of strings, device fonts */ | 101 Lisp_Object fontlist; /* List of strings, device fonts */ |
75 HDC hcdc; /* Compatible DC */ | 102 HDC hcdc; /* Compatible DC */ |
103 DWORD update_tick; /* Used when device is modified through | |
104 Windows mwssages, see WM_DISPLAYCHANGE | |
105 in event-msw.c */ | |
76 }; | 106 }; |
77 | 107 |
78 #define DEVICE_MSWINDOWS_DATA(d) DEVICE_TYPE_DATA (d, mswindows) | 108 #define DEVICE_MSWINDOWS_DATA(d) DEVICE_TYPE_DATA (d, mswindows) |
79 #define DEVICE_MSWINDOWS_LOGPIXELSX(d) (DEVICE_MSWINDOWS_DATA (d)->logpixelsx) | 109 #define DEVICE_MSWINDOWS_FONTLIST(d) (DEVICE_MSWINDOWS_DATA (d)->fontlist) |
80 #define DEVICE_MSWINDOWS_LOGPIXELSY(d) (DEVICE_MSWINDOWS_DATA (d)->logpixelsy) | 110 #define DEVICE_MSWINDOWS_HCDC(d) (DEVICE_MSWINDOWS_DATA (d)->hcdc) |
81 #define DEVICE_MSWINDOWS_PLANES(d) (DEVICE_MSWINDOWS_DATA (d)->planes) | 111 #define DEVICE_MSWINDOWS_UPDATE_TICK(d) (DEVICE_MSWINDOWS_DATA (d)->update_tick) |
82 #define DEVICE_MSWINDOWS_CELLS(d) (DEVICE_MSWINDOWS_DATA (d)->cells) | |
83 #define DEVICE_MSWINDOWS_HORZRES(d) (DEVICE_MSWINDOWS_DATA (d)->horzres) | |
84 #define DEVICE_MSWINDOWS_VERTRES(d) (DEVICE_MSWINDOWS_DATA (d)->vertres) | |
85 #define DEVICE_MSWINDOWS_HORZSIZE(d) (DEVICE_MSWINDOWS_DATA (d)->horzsize) | |
86 #define DEVICE_MSWINDOWS_VERTSIZE(d) (DEVICE_MSWINDOWS_DATA (d)->vertsize) | |
87 #define DEVICE_MSWINDOWS_BITSPIXEL(d) (DEVICE_MSWINDOWS_DATA (d)->bitspixel) | |
88 #define DEVICE_MSWINDOWS_FONTLIST(d) (DEVICE_MSWINDOWS_DATA (d)->fontlist) | |
89 #define DEVICE_MSWINDOWS_HCDC(d) (DEVICE_MSWINDOWS_DATA (d)->hcdc) | |
90 | 112 |
91 struct msprinter_device | 113 struct msprinter_device |
92 { | 114 { |
93 HDC hdc, hcdc; /* Printer and the comp. DCs */ | 115 HDC hdc, hcdc; /* Printer and the comp. DCs */ |
94 HANDLE hprinter; | 116 HANDLE hprinter; |
117 char* name; | |
118 Lisp_Object devmode; | |
95 Lisp_Object fontlist; | 119 Lisp_Object fontlist; |
96 char* name; | |
97 DEVMODE *devmode, *devmode_mirror; | |
98 size_t devmode_size; | |
99 }; | 120 }; |
100 | 121 |
101 #define DEVICE_MSPRINTER_DATA(d) DEVICE_TYPE_DATA (d, msprinter) | 122 #define DEVICE_MSPRINTER_DATA(d) DEVICE_TYPE_DATA (d, msprinter) |
102 #define DEVICE_MSPRINTER_HDC(d) (DEVICE_MSPRINTER_DATA (d)->hdc) | 123 #define DEVICE_MSPRINTER_HDC(d) (DEVICE_MSPRINTER_DATA (d)->hdc) |
103 #define DEVICE_MSPRINTER_HCDC(d) (DEVICE_MSPRINTER_DATA (d)->hcdc) | 124 #define DEVICE_MSPRINTER_HCDC(d) (DEVICE_MSPRINTER_DATA (d)->hcdc) |
104 #define DEVICE_MSPRINTER_HPRINTER(d) (DEVICE_MSPRINTER_DATA (d)->hprinter) | 125 #define DEVICE_MSPRINTER_HPRINTER(d) (DEVICE_MSPRINTER_DATA (d)->hprinter) |
105 #define DEVICE_MSPRINTER_FONTLIST(d) (DEVICE_MSPRINTER_DATA (d)->fontlist) | 126 #define DEVICE_MSPRINTER_FONTLIST(d) (DEVICE_MSPRINTER_DATA (d)->fontlist) |
106 #define DEVICE_MSPRINTER_NAME(d) (DEVICE_MSPRINTER_DATA (d)->name) | 127 #define DEVICE_MSPRINTER_NAME(d) (DEVICE_MSPRINTER_DATA (d)->name) |
107 #define DEVICE_MSPRINTER_DEVMODE(d) (DEVICE_MSPRINTER_DATA (d)->devmode) | 128 #define DEVICE_MSPRINTER_DEVMODE(d) (DEVICE_MSPRINTER_DATA (d)->devmode) |
108 #define DEVICE_MSPRINTER_DEVMODE_MIRROR(d) \ | |
109 (DEVICE_MSPRINTER_DATA (d)->devmode_mirror) | |
110 #define DEVICE_MSPRINTER_DEVMODE_SIZE(d) \ | |
111 (DEVICE_MSPRINTER_DATA (d)->devmode_size) | |
112 | 129 |
113 #define CONSOLE_TYPESYM_MSPRINTER_P(typesym) EQ (typesym, Qmsprinter) | 130 #define CONSOLE_TYPESYM_MSPRINTER_P(typesym) EQ (typesym, Qmsprinter) |
114 #define DEVICE_MSPRINTER_P(dev) CONSOLE_TYPESYM_MSPRINTER_P (DEVICE_TYPE (dev)) | 131 #define DEVICE_MSPRINTER_P(dev) CONSOLE_TYPESYM_MSPRINTER_P (DEVICE_TYPE (dev)) |
115 #define CHECK_MSPRINTER_DEVICE(z) CHECK_DEVICE_TYPE (z, msprinter) | 132 #define CHECK_MSPRINTER_DEVICE(z) CHECK_DEVICE_TYPE (z, msprinter) |
116 #define CONCHECK_MSPRINTER_DEVICE(z) CONCHECK_DEVICE_TYPE (z, msprinter) | 133 #define CONCHECK_MSPRINTER_DEVICE(z) CONCHECK_DEVICE_TYPE (z, msprinter) |
117 | |
118 /* Printer functions in device-msw.c */ | |
119 DEVMODE* msprinter_get_devmode_copy (struct device *d); | |
120 void msprinter_apply_devmode (struct device *d, DEVMODE *devmode); | |
121 | 134 |
122 /* Printer functions in frame-msw.c */ | 135 /* Printer functions in frame-msw.c */ |
123 void msprinter_start_page (struct frame *f); | 136 void msprinter_start_page (struct frame *f); |
124 | 137 |
125 /* Common checks */ | 138 /* Common checks */ |
139 wrong_type_argument \ | 152 wrong_type_argument \ |
140 (list3 (Qor, Qmswindows, Qmsprinter), d); \ | 153 (list3 (Qor, Qmswindows, Qmsprinter), d); \ |
141 } while (0) | 154 } while (0) |
142 | 155 |
143 /* | 156 /* |
144 * Frame | 157 * Frames |
145 */ | 158 */ |
146 typedef struct | 159 typedef struct |
147 { | 160 { |
148 int left; | 161 int left; |
149 int top; | 162 int top; |
241 struct msprinter_frame | 254 struct msprinter_frame |
242 { | 255 { |
243 int left_margin, top_margin, /* All in twips */ | 256 int left_margin, top_margin, /* All in twips */ |
244 right_margin, bottom_margin; | 257 right_margin, bottom_margin; |
245 int charheight, charwidth; /* As per proplist or -1 if not gven */ | 258 int charheight, charwidth; /* As per proplist or -1 if not gven */ |
246 Lisp_Object orientation, duplex; /* nil for printer's default */ | 259 int pix_left, pix_top; /* Calculated in init_frame_*, VP offset */ |
247 int job_started : 1; | 260 int job_started : 1; |
248 int page_started : 1; | 261 int page_started : 1; |
249 }; | 262 }; |
250 | 263 |
251 #define FRAME_MSPRINTER_DATA(f) FRAME_TYPE_DATA (f, msprinter) | 264 #define FRAME_MSPRINTER_DATA(f) FRAME_TYPE_DATA (f, msprinter) |
253 #define FRAME_MSPRINTER_RIGHT_MARGIN(f) (FRAME_MSPRINTER_DATA (f)->top_margin) | 266 #define FRAME_MSPRINTER_RIGHT_MARGIN(f) (FRAME_MSPRINTER_DATA (f)->top_margin) |
254 #define FRAME_MSPRINTER_TOP_MARGIN(f) (FRAME_MSPRINTER_DATA (f)->right_margin) | 267 #define FRAME_MSPRINTER_TOP_MARGIN(f) (FRAME_MSPRINTER_DATA (f)->right_margin) |
255 #define FRAME_MSPRINTER_BOTTOM_MARGIN(f) (FRAME_MSPRINTER_DATA (f)->bottom_margin) | 268 #define FRAME_MSPRINTER_BOTTOM_MARGIN(f) (FRAME_MSPRINTER_DATA (f)->bottom_margin) |
256 #define FRAME_MSPRINTER_JOB_STARTED(f) (FRAME_MSPRINTER_DATA (f)->job_started) | 269 #define FRAME_MSPRINTER_JOB_STARTED(f) (FRAME_MSPRINTER_DATA (f)->job_started) |
257 #define FRAME_MSPRINTER_PAGE_STARTED(f) (FRAME_MSPRINTER_DATA (f)->page_started) | 270 #define FRAME_MSPRINTER_PAGE_STARTED(f) (FRAME_MSPRINTER_DATA (f)->page_started) |
258 #define FRAME_MSPRINTER_ORIENTATION(f) (FRAME_MSPRINTER_DATA (f)->orientation) | |
259 #define FRAME_MSPRINTER_DUPLEX(f) (FRAME_MSPRINTER_DATA (f)->duplex) | |
260 #define FRAME_MSPRINTER_CHARWIDTH(f) (FRAME_MSPRINTER_DATA (f)->charheight) | 271 #define FRAME_MSPRINTER_CHARWIDTH(f) (FRAME_MSPRINTER_DATA (f)->charheight) |
261 #define FRAME_MSPRINTER_CHARHEIGHT(f) (FRAME_MSPRINTER_DATA (f)->charwidth) | 272 #define FRAME_MSPRINTER_CHARHEIGHT(f) (FRAME_MSPRINTER_DATA (f)->charwidth) |
273 #define FRAME_MSPRINTER_PIXLEFT(f) (FRAME_MSPRINTER_DATA (f)->pix_left) | |
274 #define FRAME_MSPRINTER_PIXTOP(f) (FRAME_MSPRINTER_DATA (f)->pix_top) | |
262 | 275 |
263 /* | 276 /* |
264 * Events | 277 * Events |
265 */ | 278 */ |
266 | 279 |
284 LPARAM lParam); | 297 LPARAM lParam); |
285 | 298 |
286 void mswindows_redraw_exposed_area (struct frame *f, int x, int y, | 299 void mswindows_redraw_exposed_area (struct frame *f, int x, int y, |
287 int width, int height); | 300 int width, int height); |
288 void mswindows_size_frame_internal (struct frame* f, XEMACS_RECT_WH* dest); | 301 void mswindows_size_frame_internal (struct frame* f, XEMACS_RECT_WH* dest); |
302 HWND mswindows_get_selected_frame_hwnd (void); | |
289 void mswindows_enqueue_magic_event (HWND hwnd, UINT msg); | 303 void mswindows_enqueue_magic_event (HWND hwnd, UINT msg); |
290 | 304 |
291 /* win32 DDE management library */ | 305 /* win32 DDE management library */ |
292 #define MSWINDOWS_DDE_ITEM_OPEN "Open" | 306 #define MSWINDOWS_DDE_ITEM_OPEN "Open" |
293 extern DWORD mswindows_dde_mlid; | 307 extern DWORD mswindows_dde_mlid; |
323 #endif | 337 #endif |
324 | 338 |
325 extern Lisp_Object Vmswindows_frame_being_created; | 339 extern Lisp_Object Vmswindows_frame_being_created; |
326 extern Lisp_Object mswindows_frame_being_created; | 340 extern Lisp_Object mswindows_frame_being_created; |
327 | 341 |
328 void msw_get_workspace_coords (RECT *rc); | 342 void mswindows_get_workspace_coords (RECT *rc); |
329 | 343 |
330 HWND msw_get_console_hwnd (void); | 344 HWND mswindows_get_console_hwnd (void); |
331 void msw_hide_console (void); | 345 void mswindows_hide_console (void); |
332 void msw_show_console (void); | 346 void mswindows_show_console (void); |
333 int msw_output_console_string (CONST Extbyte *str, Extcount len); | 347 int mswindows_output_console_string (CONST Extbyte *str, Extcount len); |
334 | 348 |
335 Lisp_Object mswindows_enumerate_fonts (HDC hdc); | 349 Lisp_Object mswindows_enumerate_fonts (HDC hdc); |
336 | 350 |
337 int msw_char_is_accelerator (struct frame *f, Emchar ch); | 351 int mswindows_char_is_accelerator (struct frame *f, Emchar ch); |
338 Bytecount msw_translate_menu_or_dialog_item (Bufbyte *item, Bytecount len, | 352 Bytecount mswindows_translate_menu_or_dialog_item (Bufbyte *item, Bytecount len, |
339 Bytecount maxlen, Emchar *accel, | 353 Bytecount maxlen, Emchar *accel, |
340 Lisp_Object error_name); | 354 Lisp_Object error_name); |
341 | 355 |
342 #ifdef HAVE_TOOLBARS | 356 #ifdef HAVE_TOOLBARS |
343 Lisp_Object mswindows_get_toolbar_button_text (struct frame* f, | 357 Lisp_Object mswindows_get_toolbar_button_text (struct frame* f, |
346 HWND ctrl, WORD id); | 360 HWND ctrl, WORD id); |
347 #endif | 361 #endif |
348 Lisp_Object mswindows_handle_gui_wm_command (struct frame* f, | 362 Lisp_Object mswindows_handle_gui_wm_command (struct frame* f, |
349 HWND ctrl, LPARAM id); | 363 HWND ctrl, LPARAM id); |
350 | 364 |
351 int msw_windows9x_p (void); | 365 int mswindows_windows9x_p (void); |
352 | 366 |
353 | 367 |
354 void mswindows_output_last_error (char *frob); | 368 void mswindows_output_last_error (char *frob); |
355 | 369 |
356 #endif /* INCLUDED_console_msw_h_ */ | 370 #endif /* INCLUDED_console_msw_h_ */ |