From 7249080588e30b4740adc138e793ffa0ead4b5ef Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Mon, 13 Dec 2004 01:02:32 +0000 Subject: [PATCH] added WX_FORWARD_STD_METHODS_TO_SUBWINDOWS macro git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@30981 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/msw/subwin.h | 50 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/include/wx/msw/subwin.h b/include/wx/msw/subwin.h index c32cade9b8..cf149b7382 100644 --- a/include/wx/msw/subwin.h +++ b/include/wx/msw/subwin.h @@ -106,6 +106,9 @@ public: for ( size_t n = 0; n < m_count; n++ ) { ::SendMessage(m_hwnds[n], WM_SETFONT, (WPARAM)hfont, 0); + + // otherwise the window might not be redrawn correctly + ::InvalidateRect(m_hwnds[n], NULL, FALSE /* don't erase bg */); } } @@ -141,5 +144,52 @@ private: DECLARE_NO_COPY_CLASS(wxSubwindows) }; +// convenient macro to forward a few methods which are usually propagated to +// subwindows to a wxSubwindows object +// +// parameters should be: +// - cname the name of the class implementing these methods +// - base the name of its base class +// - subwins the name of the member variable of type wxSubwindows * +#define WX_FORWARD_STD_METHODS_TO_SUBWINDOWS(cname, base, subwins) \ + bool cname::ContainsHWND(WXHWND hWnd) const \ + { \ + return subwins && subwins->HasWindow((HWND)hWnd); \ + } \ + \ + bool cname::Show(bool show) \ + { \ + if ( !base::Show(show) ) \ + return false; \ + \ + if ( subwins ) \ + subwins->Show(show); \ + \ + return true; \ + } \ + \ + bool cname::Enable(bool enable) \ + { \ + if ( !base::Enable(enable) ) \ + return false; \ + \ + if ( subwins ) \ + subwins->Enable(enable); \ + \ + return true; \ + } \ + \ + bool cname::SetFont(const wxFont& font) \ + { \ + if ( !base::SetFont(font) ) \ + return false; \ + \ + if ( subwins ) \ + subwins->SetFont(font); \ + \ + return true; \ + } + + #endif // _WX_MSW_SUBWIN_H_ -- 2.45.2