diff options
author | 2016-04-11 09:55:44 +0200 | |
---|---|---|
committer | 2016-04-11 09:55:44 +0200 | |
commit | 6b953d2c3f2c2dfca8c1c3157b3d040b108ae949 (patch) | |
tree | e2b2f4b1807ff2b5427d8c8bfc3cb700babd92e3 /3rdparty/lzma/CPP/Windows/Control/ComboBox.cpp | |
parent | 1bfed56b33c5f22645d1692dba6af8635bd0cf1f (diff) | |
parent | ed67061125c5784cfb101f12075d8c0d8b2ab92c (diff) |
Resolve conflicts in German/strings.po
Diffstat (limited to '3rdparty/lzma/CPP/Windows/Control/ComboBox.cpp')
-rw-r--r-- | 3rdparty/lzma/CPP/Windows/Control/ComboBox.cpp | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/3rdparty/lzma/CPP/Windows/Control/ComboBox.cpp b/3rdparty/lzma/CPP/Windows/Control/ComboBox.cpp new file mode 100644 index 00000000000..c6d5a8d688b --- /dev/null +++ b/3rdparty/lzma/CPP/Windows/Control/ComboBox.cpp @@ -0,0 +1,66 @@ +// Windows/Control/ComboBox.cpp + +#include "StdAfx.h" + +#ifndef _UNICODE +#include "../../Common/StringConvert.h" +#endif + +#include "ComboBox.h" + +#ifndef _UNICODE +extern bool g_IsNT; +#endif + +namespace NWindows { +namespace NControl { + +LRESULT CComboBox::GetLBText(int index, CSysString &s) +{ + s.Empty(); + LRESULT len = GetLBTextLen(index); // length, excluding the terminating null character + if (len == CB_ERR) + return len; + LRESULT len2 = GetLBText(index, s.GetBuf((unsigned)len)); + if (len2 == CB_ERR) + return len; + if (len > len2) + len = len2; + s.ReleaseBuf_CalcLen((unsigned)len); + return len; +} + +#ifndef _UNICODE +LRESULT CComboBox::AddString(LPCWSTR s) +{ + if (g_IsNT) + return SendMsgW(CB_ADDSTRING, 0, (LPARAM)s); + return AddString(GetSystemString(s)); +} + +LRESULT CComboBox::GetLBText(int index, UString &s) +{ + s.Empty(); + if (g_IsNT) + { + LRESULT len = SendMsgW(CB_GETLBTEXTLEN, index, 0); + if (len == CB_ERR) + return len; + LRESULT len2 = SendMsgW(CB_GETLBTEXT, index, (LPARAM)s.GetBuf((unsigned)len)); + if (len2 == CB_ERR) + return len; + if (len > len2) + len = len2; + s.ReleaseBuf_CalcLen(len); + return len; + } + AString sa; + LRESULT len = GetLBText(index, sa); + if (len == CB_ERR) + return len; + s = GetUnicodeString(sa); + return s.Len(); +} +#endif + +}} |