Derive generic wxSearchCtrl from wxCompositeWindow<> to ensure that calls to
its Set{Fore,Back}groundColour() are propagated to all its children, otherwise
they applied only to the composite control itself but not e.g. its text part.
Also update the bitmaps when the background colour changes to ensure that it
appears as transparent.
Closes #13428.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68911
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
// wxWindow overrides
virtual bool SetFont(const wxFont& font);
// wxWindow overrides
virtual bool SetFont(const wxFont& font);
+ virtual bool SetBackgroundColour(const wxColour& colour);
// search control generic only
void SetSearchBitmap( const wxBitmap& bitmap );
// search control generic only
void SetSearchBitmap( const wxBitmap& bitmap );
private:
friend class wxSearchButton;
private:
friend class wxSearchButton;
+ // Implement pure virtual function inherited from wxCompositeWindow.
+ virtual wxWindowList GetCompositeWindowParts() const;
+
#if wxUSE_MENUS
void PopupSearchMenu();
#endif // wxUSE_MENUS
#if wxUSE_MENUS
void PopupSearchMenu();
#endif // wxUSE_MENUS
// no native version, use the generic one
#define wxUSE_NATIVE_SEARCH_CONTROL 0
// no native version, use the generic one
#define wxUSE_NATIVE_SEARCH_CONTROL 0
+ #include "wx/compositewin.h"
#include "wx/containr.h"
class WXDLLIMPEXP_CORE wxSearchCtrlBaseBaseClass
#include "wx/containr.h"
class WXDLLIMPEXP_CORE wxSearchCtrlBaseBaseClass
- : public wxNavigationEnabled<wxControl>,
+ : public wxCompositeWindow< wxNavigationEnabled<wxControl> >,
public wxTextCtrlIface
{
};
public wxTextCtrlIface
{
};
m_cancelBitmap);
SetForegroundColour( m_text->GetForegroundColour() );
m_cancelBitmap);
SetForegroundColour( m_text->GetForegroundColour() );
- m_searchButton->SetForegroundColour( m_text->GetForegroundColour() );
- m_cancelButton->SetForegroundColour( m_text->GetForegroundColour() );
-
SetBackgroundColour( m_text->GetBackgroundColour() );
SetBackgroundColour( m_text->GetBackgroundColour() );
- m_searchButton->SetBackgroundColour( m_text->GetBackgroundColour() );
- m_cancelButton->SetBackgroundColour( m_text->GetBackgroundColour() );
y + ICON_OFFSET - 1, sizeCancel.x, height);
}
y + ICON_OFFSET - 1, sizeCancel.x, height);
}
+wxWindowList wxSearchCtrl::GetCompositeWindowParts() const
+{
+ wxWindowList parts;
+ parts.push_back(m_text);
+ parts.push_back(m_searchButton);
+ parts.push_back(m_cancelButton);
+ return parts;
+}
// accessors
// ---------
// accessors
// ---------
bool wxSearchCtrl::SetFont(const wxFont& font)
{
bool wxSearchCtrl::SetFont(const wxFont& font)
{
- bool result = wxSearchCtrlBase::SetFont(font);
- if ( result && m_text )
- {
- result = m_text->SetFont(font);
- }
+ if ( !wxSearchCtrlBase::SetFont(font) )
+ return false;
+
+ // Recreate the bitmaps as their size may have changed.
+
+ return true;
+}
+
+bool wxSearchCtrl::SetBackgroundColour(const wxColour& colour)
+{
+ if ( !wxSearchCtrlBase::SetBackgroundColour(colour) )
+ return false;
+
+ // When the background changes, re-render the bitmaps so that the correct
+ // colour shows in their "transparent" area.
+ RecalcBitmaps();
+
+ return true;
}
// search control generic only
}
// search control generic only