#include "wx/msw/private.h"
+#if wxUSE_UXTHEME
+ #include "wx/msw/uxtheme.h"
+#endif
+
#define GetEditHwnd() ((HWND)(GetEditHWND()))
// ----------------------------------------------------------------------------
memcpy(olestr, wcbuf, size);
- *rgelt++ = wx_static_cast(LPOLESTR, olestr);
+ *rgelt++ = static_cast<LPOLESTR>(olestr);
++(*pceltFetched);
}
const wxArrayString m_strings;
unsigned m_index;
- DECLARE_NO_COPY_CLASS(wxIEnumString)
+ wxDECLARE_NO_COPY_CLASS(wxIEnumString);
};
BEGIN_IID_TABLE(wxIEnumString)
::SendMessage(GetEditHwnd(), EM_REPLACESEL, 0, (LPARAM)text.wx_str());
}
-wxString wxTextEntry::GetValue() const
+wxString wxTextEntry::DoGetValue() const
{
return wxGetWindowText(GetEditHWND());
}
NULL,
CLSCTX_INPROC_SERVER,
IID_IAutoComplete,
- wx_reinterpret_cast(void **, &pAutoComplete)
+ reinterpret_cast<void **>(&pAutoComplete)
);
if ( FAILED(hr) )
{
hr = pAutoComplete->QueryInterface
(
IID_IAutoComplete2,
- wx_reinterpret_cast(void **, &pAutoComplete2)
+ reinterpret_cast<void **>(&pAutoComplete2)
);
if ( SUCCEEDED(hr) )
{
::SendMessage(GetEditHwnd(), EM_LIMITTEXT, len, 0);
}
+// ----------------------------------------------------------------------------
+// hints
+// ----------------------------------------------------------------------------
+
+#if wxUSE_UXTHEME
+
+#ifndef EM_SETCUEBANNER
+ #define EM_SETCUEBANNER 0x1501
+ #define EM_GETCUEBANNER 0x1502
+#endif
+
+bool wxTextEntry::SetHint(const wxString& hint)
+{
+ if ( wxUxThemeEngine::GetIfActive() )
+ {
+ // notice that this message always works with Unicode strings
+ if ( ::SendMessage(GetEditHwnd(), EM_SETCUEBANNER,
+ 0, (LPARAM)(const wchar_t *)hint.wc_str()) )
+ return true;
+ }
+
+ return wxTextEntryBase::SetHint(hint);
+}
+
+wxString wxTextEntry::GetHint() const
+{
+ if ( wxUxThemeEngine::GetIfActive() )
+ {
+ wchar_t buf[256];
+ if ( ::SendMessage(GetEditHwnd(), EM_GETCUEBANNER,
+ (WPARAM)buf, WXSIZEOF(buf)) )
+ return wxString(buf);
+ }
+
+ return wxTextEntryBase::GetHint();
+}
+
+
+#endif // wxUSE_UXTHEME
+
#endif // wxUSE_TEXTCTRL || wxUSE_COMBOBOX