X-Git-Url: http://git.chise.org/gitweb/?p=chise%2Fxemacs-chise.git.1;a=blobdiff_plain;f=src%2Fdevice-msw.c;h=ded93db09cad06e031dad15b17fff7a6a609db09;hp=67d08ad9996a9b70cbdedfa3c15ad4fd55f724b4;hb=3890a2e3064a7f562107c58e59d928284ec04741;hpb=a4106e305f464a1d09e395329e2426f7759a4281 diff --git a/src/device-msw.c b/src/device-msw.c index 67d08ad..ded93db 100644 --- a/src/device-msw.c +++ b/src/device-msw.c @@ -34,6 +34,7 @@ Boston, MA 02111-1307, USA. */ #include "console-msw.h" #include "console-stream.h" +#include "objects-msw.h" #include "events.h" #include "faces.h" #include "frame.h" @@ -68,18 +69,7 @@ Lisp_Object Qinit_pre_mswindows_win, Qinit_post_mswindows_win; static Lisp_Object build_syscolor_string (int idx) { - DWORD clr; - char buf[16]; - - if (idx < 0) - return Qnil; - - clr = GetSysColor (idx); - sprintf (buf, "#%02X%02X%02X", - GetRValue (clr), - GetGValue (clr), - GetBValue (clr)); - return build_string (buf); + return (idx < 0 ? Qnil : mswindows_color_to_string (GetSysColor (idx))); } static Lisp_Object @@ -159,7 +149,7 @@ mswindows_init_device (struct device *d, Lisp_Object props) wc.lpszMenuName = NULL; wc.lpszClassName = XEMACS_CLASS; - wc.hIconSm = LoadImage (GetModuleHandle (NULL), XEMACS_CLASS, + wc.hIconSm = (HICON) LoadImage (GetModuleHandle (NULL), XEMACS_CLASS, IMAGE_ICON, 16, 16, 0); RegisterClassEx (&wc); @@ -201,7 +191,10 @@ static void mswindows_delete_device (struct device *d) { #ifdef HAVE_DRAGNDROP - DdeNameService (mswindows_dde_mlid, 0L, 0L, DNS_REGISTER); + DdeNameService (mswindows_dde_mlid, 0L, 0L, DNS_UNREGISTER); + DdeFreeStringHandle (mswindows_dde_mlid, mswindows_dde_item_open); + DdeFreeStringHandle (mswindows_dde_mlid, mswindows_dde_topic_system); + DdeFreeStringHandle (mswindows_dde_mlid, mswindows_dde_service); DdeUninitialize (mswindows_dde_mlid); #endif @@ -243,22 +236,22 @@ mswindows_device_system_metrics (struct device *d, break; /*** Colors ***/ -#define FROB(met, index1, index2) \ +#define FROB(met, fore, back) \ case DM_##met: \ - return build_syscolor_cons (index1, index2); + return build_syscolor_cons (fore, back); - FROB (color_default, COLOR_WINDOW, COLOR_WINDOWTEXT); - FROB (color_select, COLOR_HIGHLIGHT, COLOR_HIGHLIGHTTEXT); - FROB (color_balloon, COLOR_INFOBK, COLOR_INFOTEXT); - FROB (color_3d_face, COLOR_3DFACE, COLOR_BTNTEXT); - FROB (color_3d_light, COLOR_3DLIGHT, COLOR_3DHILIGHT); - FROB (color_3d_dark, COLOR_3DSHADOW, COLOR_3DDKSHADOW); - FROB (color_menu, COLOR_MENU, COLOR_MENUTEXT); - FROB (color_menu_highlight, COLOR_HIGHLIGHT, COLOR_HIGHLIGHTTEXT); - FROB (color_menu_button, COLOR_MENU, COLOR_MENUTEXT); - FROB (color_menu_disabled, COLOR_MENU, COLOR_GRAYTEXT); - FROB (color_toolbar, COLOR_BTNFACE, COLOR_BTNTEXT); - FROB (color_scrollbar, COLOR_SCROLLBAR, COLOR_CAPTIONTEXT); + FROB (color_default, COLOR_WINDOWTEXT, COLOR_WINDOW); + FROB (color_select, COLOR_HIGHLIGHTTEXT, COLOR_HIGHLIGHT); + FROB (color_balloon, COLOR_INFOTEXT, COLOR_INFOBK); + FROB (color_3d_face, COLOR_BTNTEXT, COLOR_BTNFACE); + FROB (color_3d_light, COLOR_3DHILIGHT, COLOR_3DLIGHT); + FROB (color_3d_dark, COLOR_3DDKSHADOW, COLOR_3DSHADOW); + FROB (color_menu, COLOR_MENUTEXT, COLOR_MENU); + FROB (color_menu_highlight, COLOR_HIGHLIGHTTEXT, COLOR_HIGHLIGHT); + FROB (color_menu_button, COLOR_MENUTEXT, COLOR_MENU); + FROB (color_menu_disabled, COLOR_GRAYTEXT, COLOR_MENU); + FROB (color_toolbar, COLOR_BTNTEXT, COLOR_BTNFACE); + FROB (color_scrollbar, COLOR_CAPTIONTEXT, COLOR_SCROLLBAR); FROB (color_desktop, -1, COLOR_DESKTOP); FROB (color_workspace, -1, COLOR_APPWORKSPACE); #undef FROB @@ -358,7 +351,8 @@ msprinter_init_device (struct device *d, Lisp_Object props) if (DEVICE_MSPRINTER_DEVMODE_SIZE(d) <= 0) signal_open_printer_error (d); - DEVICE_MSPRINTER_DEVMODE(d) = xmalloc (DEVICE_MSPRINTER_DEVMODE_SIZE(d)); + DEVICE_MSPRINTER_DEVMODE(d) = + (DEVMODE*) xmalloc (DEVICE_MSPRINTER_DEVMODE_SIZE(d)); DocumentProperties (NULL, DEVICE_MSPRINTER_HPRINTER(d), printer_name, DEVICE_MSPRINTER_DEVMODE(d), NULL, DM_OUT_BUFFER); @@ -459,7 +453,7 @@ msprinter_get_devmode_copy (struct device *d) if (DEVICE_MSPRINTER_DEVMODE_MIRROR(d) == NULL) DEVICE_MSPRINTER_DEVMODE_MIRROR(d) = - xmalloc (DEVICE_MSPRINTER_DEVMODE_SIZE(d)); + (DEVMODE*) xmalloc (DEVICE_MSPRINTER_DEVMODE_SIZE(d)); memcpy (DEVICE_MSPRINTER_DEVMODE_MIRROR(d), DEVICE_MSPRINTER_DEVMODE(d),