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:
Bryan Petty
2000-07-15 19:51:35 +00:00
parent 8a693e6e04
commit f6bcfd974e
1835 changed files with 237729 additions and 67990 deletions

View File

@@ -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();
}