summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
9a81018)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@33488
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
// MSW only
virtual bool MSWCommand(WXUINT param, WXWORD id);
WXLRESULT MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam);
// MSW only
virtual bool MSWCommand(WXUINT param, WXWORD id);
WXLRESULT MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam);
- virtual WXHBRUSH MSWControlColor(WXHDC hDC);
+ virtual WXHBRUSH MSWControlColor(WXHDC hDC, WXHWND hWnd);
protected:
virtual void DoMoveWindow(int x, int y, int width, int height);
protected:
virtual void DoMoveWindow(int x, int y, int width, int height);
// default handling of WM_CTLCOLORxxx: this is public so that wxWindow
// could call it
// default handling of WM_CTLCOLORxxx: this is public so that wxWindow
// could call it
- virtual WXHBRUSH MSWControlColor(WXHDC pDC);
+ virtual WXHBRUSH MSWControlColor(WXHDC pDC, WXHWND hWnd);
protected:
// choose the default border for this window
protected:
// choose the default border for this window
// common part of the 3 functions above: pass wxNullColour to use the
// appropriate background colour (meaning ours or our parents) or a fixed
// one
// common part of the 3 functions above: pass wxNullColour to use the
// appropriate background colour (meaning ours or our parents) or a fixed
// one
- virtual WXHBRUSH DoMSWControlColor(WXHDC pDC, wxColour colBg);
+ virtual WXHBRUSH DoMSWControlColor(WXHDC pDC, wxColour colBg, WXHWND hWnd);
// this is a helper for the derived class GetClassDefaultAttributes()
// implementation: it returns the right colours for the classes which
// this is a helper for the derived class GetClassDefaultAttributes()
// implementation: it returns the right colours for the classes which
void UpdateBgBrush();
// return the themed brush for painting our children
void UpdateBgBrush();
// return the themed brush for painting our children
- virtual WXHBRUSH MSWGetBgBrushForChild(WXHDC hDC, wxWindow *win);
+ virtual WXHBRUSH MSWGetBgBrushForChild(WXHDC hDC, WXHWND hWnd);
// draw child background
virtual bool MSWPrintChild(WXHDC hDC, wxWindow *win);
// draw child background
virtual bool MSWPrintChild(WXHDC hDC, wxWindow *win);
virtual void Command(wxCommandEvent& event);
virtual bool MSWCommand(WXUINT param, WXWORD id);
virtual void Command(wxCommandEvent& event);
virtual bool MSWCommand(WXUINT param, WXWORD id);
- virtual WXHBRUSH MSWControlColor(WXHDC hDC);
+ virtual WXHBRUSH MSWControlColor(WXHDC hDC, WXHWND hWnd);
#if wxUSE_RICHEDIT
virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result);
#if wxUSE_RICHEDIT
virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result);
//
// the base class version returns a solid brush if we have a non default
// background colour or 0 otherwise
//
// the base class version returns a solid brush if we have a non default
// background colour or 0 otherwise
- virtual WXHBRUSH MSWGetBgBrushForChild(WXHDC hDC, wxWindow *child);
+ virtual WXHBRUSH MSWGetBgBrushForChild(WXHDC hDC, WXHWND hWnd);
// return the background brush to use for painting the given window by
// quering the parent windows via their MSWGetBgBrushForChild() recursively
//
// return the background brush to use for painting the given window by
// quering the parent windows via their MSWGetBgBrushForChild() recursively
//
- // winToPaint is normally NULL meaning this window itself, but it can also
+ // hWndToPaint is normally NULL meaning this window itself, but it can also
// be a child of this window which is used by the static box and could be
// potentially useful for other transparent controls
// be a child of this window which is used by the static box and could be
// potentially useful for other transparent controls
- WXHBRUSH MSWGetBgBrush(WXHDC hDC, wxWindow *winToPaint = NULL);
+ WXHBRUSH MSWGetBgBrush(WXHDC hDC, WXHWND hWndToPaint = NULL);
// gives the parent the possibility to draw its children background, e.g.
// this is used by wxNotebook to do it using DrawThemeBackground()
// gives the parent the possibility to draw its children background, e.g.
// this is used by wxNotebook to do it using DrawThemeBackground()
WXHWND hwnd;
UnpackCtlColor(wParam, lParam, &hdc, &hwnd);
WXHWND hwnd;
UnpackCtlColor(wParam, lParam, &hdc, &hwnd);
- WXHBRUSH hbr = MSWControlColor((WXHDC)hdc);
+ WXHBRUSH hbr = MSWControlColor((WXHDC)hdc, hwnd);
if ( hbr )
return (WXLRESULT)hbr;
//else: fall through to default window proc
if ( hbr )
return (WXLRESULT)hbr;
//else: fall through to default window proc
-WXHBRUSH wxChoice::MSWControlColor(WXHDC hDC)
+WXHBRUSH wxChoice::MSWControlColor(WXHDC hDC, WXHWND hWnd)
{
if ( !IsEnabled() )
return MSWControlColorDisabled(hDC);
{
if ( !IsEnabled() )
return MSWControlColorDisabled(hDC);
- return wxChoiceBase::MSWControlColor(hDC);
+ return wxChoiceBase::MSWControlColor(hDC, hWnd);
}
#endif // wxUSE_CHOICE && !(__SMARTPHONE__ && __WXWINCE__)
}
#endif // wxUSE_CHOICE && !(__SMARTPHONE__ && __WXWINCE__)
-WXHBRUSH wxControl::DoMSWControlColor(WXHDC pDC, wxColour colBg)
+WXHBRUSH wxControl::DoMSWControlColor(WXHDC pDC, wxColour colBg, WXHWND hWnd)
{
HDC hdc = (HDC)pDC;
if ( m_hasFgCol )
{
HDC hdc = (HDC)pDC;
if ( m_hasFgCol )
WXHBRUSH hbr = 0;
if ( !colBg.Ok() )
{
WXHBRUSH hbr = 0;
if ( !colBg.Ok() )
{
- hbr = MSWGetBgBrush(pDC);
+ hbr = MSWGetBgBrush(pDC, hWnd);
// if the control doesn't have any bg colour, foreground colour will be
// ignored as the return value would be 0 -- so forcefully give it a
// if the control doesn't have any bg colour, foreground colour will be
// ignored as the return value would be 0 -- so forcefully give it a
-WXHBRUSH wxControl::MSWControlColor(WXHDC pDC)
+WXHBRUSH wxControl::MSWControlColor(WXHDC pDC, WXHWND hWnd)
else // if the control is opaque it shouldn't use the parents background
colBg = GetBackgroundColour();
else // if the control is opaque it shouldn't use the parents background
colBg = GetBackgroundColour();
- return DoMSWControlColor(pDC, colBg);
+ return DoMSWControlColor(pDC, colBg, hWnd);
}
WXHBRUSH wxControl::MSWControlColorDisabled(WXHDC pDC)
{
return DoMSWControlColor(pDC,
}
WXHBRUSH wxControl::MSWControlColorDisabled(WXHDC pDC)
{
return DoMSWControlColor(pDC,
- wxSystemSettings::GetColour(wxSYS_COLOUR_BTNFACE));
+ wxSystemSettings::GetColour(wxSYS_COLOUR_BTNFACE),
+ GetHWND());
}
// ---------------------------------------------------------------------------
}
// ---------------------------------------------------------------------------
-WXHBRUSH wxNotebook::MSWGetBgBrushForChild(WXHDC hDC, wxWindow *win)
+WXHBRUSH wxNotebook::MSWGetBgBrushForChild(WXHDC hDC, WXHWND hWnd)
{
if ( m_hbrBackground )
{
// before drawing with the background brush, we need to position it
// correctly
RECT rc;
{
if ( m_hbrBackground )
{
// before drawing with the background brush, we need to position it
// correctly
RECT rc;
- ::GetWindowRect(GetHwndOf(win), &rc);
+ ::GetWindowRect((HWND)hWnd, &rc);
::MapWindowPoints(NULL, GetHwnd(), (POINT *)&rc, 1);
::MapWindowPoints(NULL, GetHwnd(), (POINT *)&rc, 1);
return m_hbrBackground;
}
return m_hbrBackground;
}
- return wxNotebookBase::MSWGetBgBrushForChild(hDC, win);
+ return wxNotebookBase::MSWGetBgBrushForChild(hDC, hWnd);
}
bool wxNotebook::MSWPrintChild(WXHDC hDC, wxWindow *child)
}
bool wxNotebook::MSWPrintChild(WXHDC hDC, wxWindow *child)
-WXHBRUSH wxTextCtrl::MSWControlColor(WXHDC hDC)
+WXHBRUSH wxTextCtrl::MSWControlColor(WXHDC hDC, WXHWND hWnd)
{
if ( !IsEnabled() && !HasFlag(wxTE_MULTILINE) )
return MSWControlColorDisabled(hDC);
{
if ( !IsEnabled() && !HasFlag(wxTE_MULTILINE) )
return MSWControlColorDisabled(hDC);
- return wxTextCtrlBase::MSWControlColor(hDC);
+ return wxTextCtrlBase::MSWControlColor(hDC, hWnd);
}
bool wxTextCtrl::AdjustSpaceLimit()
}
bool wxTextCtrl::AdjustSpaceLimit()
-bool wxWindowMSW::HandleCtlColor(WXHBRUSH *brush, WXHDC pDC, WXHWND pWnd)
+bool wxWindowMSW::HandleCtlColor(WXHBRUSH *brush, WXHDC pDC, WXHWND hWnd)
- wxControl *item = wxDynamicCast(FindItemByHWND(pWnd, true), wxControl);
+ wxControl *item = wxDynamicCast(FindItemByHWND(hWnd, true), wxControl);
- *brush = item->MSWControlColor(pDC);
+ *brush = item->MSWControlColor(pDC, hWnd);
else
#endif // wxUSE_CONTROLS
*brush = NULL;
else
#endif // wxUSE_CONTROLS
*brush = NULL;
-wxWindowMSW::MSWGetBgBrushForChild(WXHDC WXUNUSED(hDC), wxWindow *child)
+wxWindowMSW::MSWGetBgBrushForChild(WXHDC WXUNUSED(hDC), WXHWND hWnd)
// children because it would look wrong if a child of non
// transparent child would show our bg colour when the child itself
// does not
// children because it would look wrong if a child of non
// transparent child would show our bg colour when the child itself
// does not
+ wxWindow *win = wxFindWinFromHandle(hWnd);
+ if ( win == this ||
- (child->HasTransparentBackground() &&
- child->GetParent() == this) )
+ (win && win->HasTransparentBackground() &&
+ win->GetParent() == this) )
{
// draw children with the same colour as the parent
wxBrush *
{
// draw children with the same colour as the parent
wxBrush *
-WXHBRUSH wxWindowMSW::MSWGetBgBrush(WXHDC hDC, wxWindow *winToPaint)
+WXHBRUSH wxWindowMSW::MSWGetBgBrush(WXHDC hDC, WXHWND hWndToPaint)
- if ( !winToPaint )
- winToPaint = this;
+ if ( !hWndToPaint )
+ hWndToPaint = GetHWND();
for ( wxWindowMSW *win = this; win; win = win->GetParent() )
{
for ( wxWindowMSW *win = this; win; win = win->GetParent() )
{
- WXHBRUSH hBrush = win->MSWGetBgBrushForChild(hDC, winToPaint);
+ WXHBRUSH hBrush = win->MSWGetBgBrushForChild(hDC, hWndToPaint);
if ( hBrush )
return hBrush;
if ( hBrush )
return hBrush;