Mercurial > hg > xemacs-beta
comparison src/device-msw.c @ 400:a86b2b5e0111 r21-2-30
Import from CVS: tag r21-2-30
author | cvs |
---|---|
date | Mon, 13 Aug 2007 11:14:34 +0200 |
parents | 74fd4e045ea6 |
children | 2f8bb876ab1d |
comparison
equal
deleted
inserted
replaced
399:376370fb5946 | 400:a86b2b5e0111 |
---|---|
32 #include <config.h> | 32 #include <config.h> |
33 #include "lisp.h" | 33 #include "lisp.h" |
34 | 34 |
35 #include "console-msw.h" | 35 #include "console-msw.h" |
36 #include "console-stream.h" | 36 #include "console-stream.h" |
37 #include "objects-msw.h" | |
37 #include "events.h" | 38 #include "events.h" |
38 #include "faces.h" | 39 #include "faces.h" |
39 #include "frame.h" | 40 #include "frame.h" |
40 #include "sysdep.h" | 41 #include "sysdep.h" |
41 | 42 |
66 /************************************************************************/ | 67 /************************************************************************/ |
67 | 68 |
68 static Lisp_Object | 69 static Lisp_Object |
69 build_syscolor_string (int idx) | 70 build_syscolor_string (int idx) |
70 { | 71 { |
71 DWORD clr; | 72 return (idx < 0 ? Qnil : mswindows_color_to_string (GetSysColor (idx))); |
72 char buf[16]; | |
73 | |
74 if (idx < 0) | |
75 return Qnil; | |
76 | |
77 clr = GetSysColor (idx); | |
78 sprintf (buf, "#%02X%02X%02X", | |
79 GetRValue (clr), | |
80 GetGValue (clr), | |
81 GetBValue (clr)); | |
82 return build_string (buf); | |
83 } | 73 } |
84 | 74 |
85 static Lisp_Object | 75 static Lisp_Object |
86 build_syscolor_cons (int index1, int index2) | 76 build_syscolor_cons (int index1, int index2) |
87 { | 77 { |
157 take over */ | 147 take over */ |
158 wc.hbrBackground = (HBRUSH)(COLOR_APPWORKSPACE + 1); | 148 wc.hbrBackground = (HBRUSH)(COLOR_APPWORKSPACE + 1); |
159 wc.lpszMenuName = NULL; | 149 wc.lpszMenuName = NULL; |
160 | 150 |
161 wc.lpszClassName = XEMACS_CLASS; | 151 wc.lpszClassName = XEMACS_CLASS; |
162 wc.hIconSm = LoadImage (GetModuleHandle (NULL), XEMACS_CLASS, | 152 wc.hIconSm = (HICON) LoadImage (GetModuleHandle (NULL), XEMACS_CLASS, |
163 IMAGE_ICON, 16, 16, 0); | 153 IMAGE_ICON, 16, 16, 0); |
164 RegisterClassEx (&wc); | 154 RegisterClassEx (&wc); |
165 | 155 |
166 #ifdef HAVE_WIDGETS | 156 #ifdef HAVE_WIDGETS |
167 xzero (wc); | 157 xzero (wc); |
199 | 189 |
200 static void | 190 static void |
201 mswindows_delete_device (struct device *d) | 191 mswindows_delete_device (struct device *d) |
202 { | 192 { |
203 #ifdef HAVE_DRAGNDROP | 193 #ifdef HAVE_DRAGNDROP |
204 DdeNameService (mswindows_dde_mlid, 0L, 0L, DNS_REGISTER); | 194 DdeNameService (mswindows_dde_mlid, 0L, 0L, DNS_UNREGISTER); |
195 DdeFreeStringHandle (mswindows_dde_mlid, mswindows_dde_item_open); | |
196 DdeFreeStringHandle (mswindows_dde_mlid, mswindows_dde_topic_system); | |
197 DdeFreeStringHandle (mswindows_dde_mlid, mswindows_dde_service); | |
205 DdeUninitialize (mswindows_dde_mlid); | 198 DdeUninitialize (mswindows_dde_mlid); |
206 #endif | 199 #endif |
207 | 200 |
208 free (d->device_data); | 201 free (d->device_data); |
209 } | 202 } |
241 case DM_num_color_cells: | 234 case DM_num_color_cells: |
242 return make_int (DEVICE_MSWINDOWS_CELLS(d)); | 235 return make_int (DEVICE_MSWINDOWS_CELLS(d)); |
243 break; | 236 break; |
244 | 237 |
245 /*** Colors ***/ | 238 /*** Colors ***/ |
246 #define FROB(met, index1, index2) \ | 239 #define FROB(met, fore, back) \ |
247 case DM_##met: \ | 240 case DM_##met: \ |
248 return build_syscolor_cons (index1, index2); | 241 return build_syscolor_cons (fore, back); |
249 | 242 |
250 FROB (color_default, COLOR_WINDOW, COLOR_WINDOWTEXT); | 243 FROB (color_default, COLOR_WINDOWTEXT, COLOR_WINDOW); |
251 FROB (color_select, COLOR_HIGHLIGHT, COLOR_HIGHLIGHTTEXT); | 244 FROB (color_select, COLOR_HIGHLIGHTTEXT, COLOR_HIGHLIGHT); |
252 FROB (color_balloon, COLOR_INFOBK, COLOR_INFOTEXT); | 245 FROB (color_balloon, COLOR_INFOTEXT, COLOR_INFOBK); |
253 FROB (color_3d_face, COLOR_3DFACE, COLOR_BTNTEXT); | 246 FROB (color_3d_face, COLOR_BTNTEXT, COLOR_BTNFACE); |
254 FROB (color_3d_light, COLOR_3DLIGHT, COLOR_3DHILIGHT); | 247 FROB (color_3d_light, COLOR_3DHILIGHT, COLOR_3DLIGHT); |
255 FROB (color_3d_dark, COLOR_3DSHADOW, COLOR_3DDKSHADOW); | 248 FROB (color_3d_dark, COLOR_3DDKSHADOW, COLOR_3DSHADOW); |
256 FROB (color_menu, COLOR_MENU, COLOR_MENUTEXT); | 249 FROB (color_menu, COLOR_MENUTEXT, COLOR_MENU); |
257 FROB (color_menu_highlight, COLOR_HIGHLIGHT, COLOR_HIGHLIGHTTEXT); | 250 FROB (color_menu_highlight, COLOR_HIGHLIGHTTEXT, COLOR_HIGHLIGHT); |
258 FROB (color_menu_button, COLOR_MENU, COLOR_MENUTEXT); | 251 FROB (color_menu_button, COLOR_MENUTEXT, COLOR_MENU); |
259 FROB (color_menu_disabled, COLOR_MENU, COLOR_GRAYTEXT); | 252 FROB (color_menu_disabled, COLOR_GRAYTEXT, COLOR_MENU); |
260 FROB (color_toolbar, COLOR_BTNFACE, COLOR_BTNTEXT); | 253 FROB (color_toolbar, COLOR_BTNTEXT, COLOR_BTNFACE); |
261 FROB (color_scrollbar, COLOR_SCROLLBAR, COLOR_CAPTIONTEXT); | 254 FROB (color_scrollbar, COLOR_CAPTIONTEXT, COLOR_SCROLLBAR); |
262 FROB (color_desktop, -1, COLOR_DESKTOP); | 255 FROB (color_desktop, -1, COLOR_DESKTOP); |
263 FROB (color_workspace, -1, COLOR_APPWORKSPACE); | 256 FROB (color_workspace, -1, COLOR_APPWORKSPACE); |
264 #undef FROB | 257 #undef FROB |
265 | 258 |
266 /*** Sizes ***/ | 259 /*** Sizes ***/ |
356 DocumentProperties (NULL, DEVICE_MSPRINTER_HPRINTER(d), | 349 DocumentProperties (NULL, DEVICE_MSPRINTER_HPRINTER(d), |
357 printer_name, NULL, NULL, 0); | 350 printer_name, NULL, NULL, 0); |
358 if (DEVICE_MSPRINTER_DEVMODE_SIZE(d) <= 0) | 351 if (DEVICE_MSPRINTER_DEVMODE_SIZE(d) <= 0) |
359 signal_open_printer_error (d); | 352 signal_open_printer_error (d); |
360 | 353 |
361 DEVICE_MSPRINTER_DEVMODE(d) = xmalloc (DEVICE_MSPRINTER_DEVMODE_SIZE(d)); | 354 DEVICE_MSPRINTER_DEVMODE(d) = |
355 (DEVMODE*) xmalloc (DEVICE_MSPRINTER_DEVMODE_SIZE(d)); | |
362 DocumentProperties (NULL, DEVICE_MSPRINTER_HPRINTER(d), | 356 DocumentProperties (NULL, DEVICE_MSPRINTER_HPRINTER(d), |
363 printer_name, DEVICE_MSPRINTER_DEVMODE(d), | 357 printer_name, DEVICE_MSPRINTER_DEVMODE(d), |
364 NULL, DM_OUT_BUFFER); | 358 NULL, DM_OUT_BUFFER); |
365 | 359 |
366 /* We do not use printer fon list as we do with the display | 360 /* We do not use printer fon list as we do with the display |
457 { | 451 { |
458 assert (DEVICE_MSPRINTER_P (d)); | 452 assert (DEVICE_MSPRINTER_P (d)); |
459 | 453 |
460 if (DEVICE_MSPRINTER_DEVMODE_MIRROR(d) == NULL) | 454 if (DEVICE_MSPRINTER_DEVMODE_MIRROR(d) == NULL) |
461 DEVICE_MSPRINTER_DEVMODE_MIRROR(d) = | 455 DEVICE_MSPRINTER_DEVMODE_MIRROR(d) = |
462 xmalloc (DEVICE_MSPRINTER_DEVMODE_SIZE(d)); | 456 (DEVMODE*) xmalloc (DEVICE_MSPRINTER_DEVMODE_SIZE(d)); |
463 | 457 |
464 memcpy (DEVICE_MSPRINTER_DEVMODE_MIRROR(d), | 458 memcpy (DEVICE_MSPRINTER_DEVMODE_MIRROR(d), |
465 DEVICE_MSPRINTER_DEVMODE(d), | 459 DEVICE_MSPRINTER_DEVMODE(d), |
466 DEVICE_MSPRINTER_DEVMODE_SIZE(d)); | 460 DEVICE_MSPRINTER_DEVMODE_SIZE(d)); |
467 | 461 |