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