merged 2.2 branch
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@7748 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -32,6 +32,7 @@
|
||||
#include "wx/choice.h"
|
||||
#include "wx/utils.h"
|
||||
#include "wx/log.h"
|
||||
#include "wx/brush.h"
|
||||
#include "wx/settings.h"
|
||||
#endif
|
||||
|
||||
@@ -59,17 +60,17 @@ bool wxChoice::Create(wxWindow *parent,
|
||||
if ( !CreateControl(parent, id, pos, size, style, validator, name) )
|
||||
return FALSE;
|
||||
|
||||
long msStyle = WS_CHILD | CBS_DROPDOWNLIST | WS_TABSTOP | WS_VISIBLE | WS_HSCROLL | WS_VSCROLL;
|
||||
long msStyle = WS_CHILD | CBS_DROPDOWNLIST | WS_TABSTOP | WS_VISIBLE | WS_HSCROLL | WS_VSCROLL /* | WS_CLIPSIBLINGS */;
|
||||
if ( style & wxCB_SORT )
|
||||
msStyle |= CBS_SORT;
|
||||
|
||||
// the experience shows that wxChoice vs. wxComboBox distinction confuses
|
||||
// Experience shows that wxChoice vs. wxComboBox distinction confuses
|
||||
// quite a few people - try to help them
|
||||
wxASSERT_MSG( !(style & wxCB_DROPDOWN) &&
|
||||
!(style & wxCB_READONLY) &&
|
||||
!(style & wxCB_SIMPLE),
|
||||
wxT("this style flag is ignored by wxChoice, you "
|
||||
"probably want to use a wxComboBox") );
|
||||
_T("this style flag is ignored by wxChoice, you ")
|
||||
_T("probably want to use a wxComboBox") );
|
||||
|
||||
if ( !MSWCreateControl(wxT("COMBOBOX"), msStyle) )
|
||||
return FALSE;
|
||||
@@ -102,7 +103,7 @@ int wxChoice::DoAppend(const wxString& item)
|
||||
int n = (int)SendMessage(GetHwnd(), CB_ADDSTRING, 0, (LONG)item.c_str());
|
||||
if ( n == CB_ERR )
|
||||
{
|
||||
wxLogLastError("SendMessage(CB_ADDSTRING)");
|
||||
wxLogLastError(wxT("SendMessage(CB_ADDSTRING)"));
|
||||
}
|
||||
|
||||
return n;
|
||||
@@ -201,7 +202,7 @@ wxString wxChoice::GetString(int n) const
|
||||
if (len) {
|
||||
if ( ::SendMessage(GetHwnd(), CB_GETLBTEXT, n,
|
||||
(LPARAM)str.GetWriteBuf(len)) == CB_ERR ) {
|
||||
wxLogLastError("SendMessage(CB_GETLBTEXT)");
|
||||
wxLogLastError(wxT("SendMessage(CB_GETLBTEXT)"));
|
||||
}
|
||||
str.UngetWriteBuf();
|
||||
}
|
||||
@@ -337,3 +338,36 @@ bool wxChoice::MSWCommand(WXUINT param, WXWORD WXUNUSED(id))
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
WXHBRUSH wxChoice::OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor,
|
||||
WXUINT message,
|
||||
WXWPARAM wParam,
|
||||
WXLPARAM lParam)
|
||||
{
|
||||
#if wxUSE_CTL3D
|
||||
if ( m_useCtl3D )
|
||||
{
|
||||
HBRUSH hbrush = Ctl3dCtlColorEx(message, wParam, lParam);
|
||||
return (WXHBRUSH) hbrush;
|
||||
}
|
||||
#endif // wxUSE_CTL3D
|
||||
|
||||
HDC hdc = (HDC)pDC;
|
||||
if (GetParent()->GetTransparentBackground())
|
||||
SetBkMode(hdc, TRANSPARENT);
|
||||
else
|
||||
SetBkMode(hdc, OPAQUE);
|
||||
|
||||
wxColour colBack = GetBackgroundColour();
|
||||
|
||||
if (!IsEnabled())
|
||||
colBack = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE);
|
||||
|
||||
::SetBkColor(hdc, wxColourToRGB(colBack));
|
||||
::SetTextColor(hdc, wxColourToRGB(GetForegroundColour()));
|
||||
|
||||
wxBrush *brush = wxTheBrushList->FindOrCreateBrush(colBack, wxSOLID);
|
||||
|
||||
return (WXHBRUSH)brush->GetResourceHandle();
|
||||
}
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user