diff options
Diffstat (limited to 'src/mir_core')
-rw-r--r-- | src/mir_core/src/mir_core.def | 1 | ||||
-rw-r--r-- | src/mir_core/src/mir_core64.def | 1 | ||||
-rw-r--r-- | src/mir_core/src/utils.cpp | 13 |
3 files changed, 15 insertions, 0 deletions
diff --git a/src/mir_core/src/mir_core.def b/src/mir_core/src/mir_core.def index ebc69f8d19..5fd89d1bca 100644 --- a/src/mir_core/src/mir_core.def +++ b/src/mir_core/src/mir_core.def @@ -1050,3 +1050,4 @@ CallFunctionSync @1170 ?SetReadOnly@CCtrlRichEdit@@QAEX_N@Z @1237 NONAME
?Hide@CDlgBase@@QAEXXZ @1238 NONAME
?Resize@CDlgBase@@QAEXXZ @1239 NONAME
+Utils_IsRtl @1240
diff --git a/src/mir_core/src/mir_core64.def b/src/mir_core/src/mir_core64.def index 2e5c83b8af..02fa033f13 100644 --- a/src/mir_core/src/mir_core64.def +++ b/src/mir_core/src/mir_core64.def @@ -1050,3 +1050,4 @@ CallFunctionSync @1170 ?SetReadOnly@CCtrlRichEdit@@QEAAX_N@Z @1237 NONAME
?Hide@CDlgBase@@QEAAXXZ @1238 NONAME
?Resize@CDlgBase@@QEAAXXZ @1239 NONAME
+Utils_IsRtl @1240
diff --git a/src/mir_core/src/utils.cpp b/src/mir_core/src/utils.cpp index 7b26bb6aab..f2f007d2f4 100644 --- a/src/mir_core/src/utils.cpp +++ b/src/mir_core/src/utils.cpp @@ -536,3 +536,16 @@ MIR_CORE_DLL(void) Utils_GetRandom(void *pszDest, size_t cbLen) p[i] = rand() & 0xFF;
}
}
+
+MIR_CORE_DLL(bool) Utils_IsRtl(const wchar_t *pszwText)
+{
+ size_t iLen = mir_wstrlen(pszwText);
+ mir_ptr<WORD> infoTypeC2((WORD*)mir_calloc(sizeof(WORD) * (iLen + 2)));
+ GetStringTypeW(CT_CTYPE2, pszwText, (int)iLen, infoTypeC2);
+
+ for (size_t i = 0; i < iLen; i++)
+ if (infoTypeC2[i] == C2_RIGHTTOLEFT)
+ return true;
+
+ return false;
+}
|