Mercurial > projects > dwt-win
comparison dwt/widgets/Display.d @ 237:e2affbeb686d
Making tango.sys.win32.Types and dwt.internal.win32.WINTYPES to match common declaration. Make ansi charactars of type ubyte.
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Thu, 19 Jun 2008 03:25:36 +0200 |
parents | 82b599d21983 |
children | 43b41c7fe84a |
comparison
equal
deleted
inserted
replaced
236:9c1bb90eba13 | 237:e2affbeb686d |
---|---|
2904 */ | 2904 */ |
2905 static wchar mbcsToWcs (int ch, int codePage) { | 2905 static wchar mbcsToWcs (int ch, int codePage) { |
2906 if (OS.IsUnicode) return cast(wchar) ch; | 2906 if (OS.IsUnicode) return cast(wchar) ch; |
2907 int key = ch & 0xFFFF; | 2907 int key = ch & 0xFFFF; |
2908 if (key <= 0x7F) return cast(wchar) ch; | 2908 if (key <= 0x7F) return cast(wchar) ch; |
2909 char [] buffer; | 2909 CHAR[] buffer; |
2910 if (key <= 0xFF) { | 2910 if (key <= 0xFF) { |
2911 buffer = new char [1]; | 2911 buffer = new CHAR [1]; |
2912 buffer [0] = cast(char) key; | 2912 buffer [0] = cast(CHAR) key; |
2913 } else { | 2913 } else { |
2914 buffer = new char [2]; | 2914 buffer = new CHAR [2]; |
2915 buffer [0] = cast(char) ((key >> 8) & 0xFF); | 2915 buffer [0] = cast(CHAR) ((key >> 8) & 0xFF); |
2916 buffer [1] = cast(char) (key & 0xFF); | 2916 buffer [1] = cast(CHAR) (key & 0xFF); |
2917 } | 2917 } |
2918 wchar [] unicode = new wchar [1]; | 2918 wchar [] unicode = new wchar [1]; |
2919 int cp = codePage !is 0 ? codePage : OS.CP_ACP; | 2919 int cp = codePage !is 0 ? codePage : OS.CP_ACP; |
2920 int count = OS.MultiByteToWideChar (cp, OS.MB_PRECOMPOSED, buffer.ptr, buffer.length, unicode.ptr, 1); | 2920 int count = OS.MultiByteToWideChar (cp, OS.MB_PRECOMPOSED, buffer.ptr, buffer.length, unicode.ptr, 1); |
2921 if (count is 0) return 0; | 2921 if (count is 0) return 0; |