Nikolay Sivov : comctl32/monthcal: Get/set unicode format flag using MCM_[ GET|SET]UNICODEFORMAT.

Alexandre Julliard julliard at winehq.org
Fri Oct 16 11:26:08 CDT 2009


Module: wine
Branch: master
Commit: cbdc99cdbaec40b7639c0948c3e21d6e07d846e0
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=cbdc99cdbaec40b7639c0948c3e21d6e07d846e0

Author: Nikolay Sivov <bunglehead at gmail.com>
Date:   Thu Oct 15 20:16:27 2009 +0400

comctl32/monthcal: Get/set unicode format flag using MCM_[GET|SET]UNICODEFORMAT.

---

 dlls/comctl32/monthcal.c       |   23 +++++++++++++++++++++++
 dlls/comctl32/tests/monthcal.c |    2 --
 2 files changed, 23 insertions(+), 2 deletions(-)

diff --git a/dlls/comctl32/monthcal.c b/dlls/comctl32/monthcal.c
index ee7dc4e..1c06d23 100644
--- a/dlls/comctl32/monthcal.c
+++ b/dlls/comctl32/monthcal.c
@@ -100,6 +100,8 @@ typedef struct
 				   stored in SYSTEMTIME format */
     BOOL	firstDaySet;    /* first week day differs from locale defined */
 
+    BOOL	isUnicode;      /* value set with MCM_SETUNICODE format */
+
     int		monthRange;
     MONTHDAYSTATE *monthdayState;
     SYSTEMTIME	todaysDate;
@@ -2412,6 +2414,7 @@ MONTHCAL_Create(HWND hwnd, LPCREATESTRUCTW lpcs)
   infoPtr->minSel = infoPtr->todaysDate;
   infoPtr->maxSel = infoPtr->todaysDate;
   infoPtr->curSel = infoPtr->todaysDate;
+  infoPtr->isUnicode = TRUE;
 
   /* call MONTHCAL_UpdateSize to set all of the dimensions */
   /* of the control */
@@ -2465,6 +2468,20 @@ MONTHCAL_Notify(MONTHCAL_INFO *infoPtr, NMHDR *hdr)
   return 0;
 }
 
+static inline BOOL
+MONTHCAL_SetUnicodeFormat(MONTHCAL_INFO *infoPtr, BOOL isUnicode)
+{
+  BOOL prev = infoPtr->isUnicode;
+  infoPtr->isUnicode = isUnicode;
+  return prev;
+}
+
+static inline BOOL
+MONTHCAL_GetUnicodeFormat(const MONTHCAL_INFO *infoPtr)
+{
+  return infoPtr->isUnicode;
+}
+
 static LRESULT WINAPI
 MONTHCAL_WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
 {
@@ -2540,6 +2557,12 @@ MONTHCAL_WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
   case MCM_GETMAXTODAYWIDTH:
     return MONTHCAL_GetMaxTodayWidth(infoPtr);
 
+  case MCM_SETUNICODEFORMAT:
+    return MONTHCAL_SetUnicodeFormat(infoPtr, (BOOL)wParam);
+
+  case MCM_GETUNICODEFORMAT:
+    return MONTHCAL_GetUnicodeFormat(infoPtr);
+
   case WM_GETDLGCODE:
     return DLGC_WANTARROWS | DLGC_WANTCHARS;
 
diff --git a/dlls/comctl32/tests/monthcal.c b/dlls/comctl32/tests/monthcal.c
index 2e84af5..f59614c 100644
--- a/dlls/comctl32/tests/monthcal.c
+++ b/dlls/comctl32/tests/monthcal.c
@@ -901,14 +901,12 @@ static void test_monthcal_unicode(void)
 
     /* current setting is 1, so, should return 1 */
     res = SendMessage(hwnd, MCM_GETUNICODEFORMAT, 0, 0);
-    todo_wine
     ok(1 == res ||
        broken(0 == res), /* comctl32 <= 4.70 */
        "Expected 1, got %d\n", res);
 
     /* setting to 0, should return previous settings */
     res = SendMessage(hwnd, MCM_SETUNICODEFORMAT, 0, 0);
-    todo_wine
     ok(1 == res ||
        broken(0 == res), /* comctl32 <= 4.70 */
        "Expected 1, got %d\n", res);




More information about the wine-cvs mailing list