diff --git a/include/wx/generic/srchctlg.h b/include/wx/generic/srchctlg.h index bf8fef4d32..043ecfa879 100644 --- a/include/wx/generic/srchctlg.h +++ b/include/wx/generic/srchctlg.h @@ -47,10 +47,12 @@ public: const wxValidator& validator = wxDefaultValidator, const wxString& name = wxSearchCtrlNameStr); +#if wxUSE_MENUS // get/set search button menu // -------------------------- virtual void SetMenu( wxMenu* menu ); virtual wxMenu* GetMenu(); +#endif // wxUSE_MENUS // get/set search options // ---------------------- @@ -195,8 +197,10 @@ public: // search control generic only void SetSearchBitmap( const wxBitmap& bitmap ); - void SetSearchMenuBitmap( const wxBitmap& bitmap ); void SetCancelBitmap( const wxBitmap& bitmap ); +#if wxUSE_MENUS + void SetSearchMenuBitmap( const wxBitmap& bitmap ); +#endif // wxUSE_MENUS protected: virtual void DoSetValue(const wxString& value, int flags = 0); @@ -217,27 +221,46 @@ protected: void OnSetFocus( wxFocusEvent& event ); void OnSize( wxSizeEvent& event ); - + + bool HasMenu() const + { +#if wxUSE_MENUS + return m_menu != NULL; +#else // !wxUSE_MENUS + return false; +#endif // wxUSE_MENUS/!wxUSE_MENUS + } + private: friend class wxSearchButton; +#if wxUSE_MENUS void PopupSearchMenu(); +#endif // wxUSE_MENUS // the subcontrols wxSearchTextCtrl *m_text; wxSearchButton *m_searchButton; wxSearchButton *m_cancelButton; +#if wxUSE_MENUS wxMenu *m_menu; +#endif // wxUSE_MENUS bool m_searchButtonVisible; bool m_cancelButtonVisible; bool m_searchBitmapUser; - bool m_searchMenuBitmapUser; bool m_cancelBitmapUser; +#if wxUSE_MENUS + bool m_searchMenuBitmapUser; +#endif // wxUSE_MENUS + wxBitmap m_searchBitmap; - wxBitmap m_searchMenuBitmap; wxBitmap m_cancelBitmap; +#if wxUSE_MENUS + wxBitmap m_searchMenuBitmap; +#endif // wxUSE_MENUS + private: DECLARE_DYNAMIC_CLASS(wxSearchCtrl) diff --git a/include/wx/srchctrl.h b/include/wx/srchctrl.h index 5ec9336f3f..c76678af90 100644 --- a/include/wx/srchctrl.h +++ b/include/wx/srchctrl.h @@ -52,9 +52,11 @@ public: wxSearchCtrlBase() { } virtual ~wxSearchCtrlBase() { } - // search control + // search control +#if wxUSE_MENUS virtual void SetMenu(wxMenu *menu) = 0; virtual wxMenu *GetMenu() = 0; +#endif // wxUSE_MENUS // get/set options virtual void ShowSearchButton( bool show ) = 0; diff --git a/src/generic/srchctlg.cpp b/src/generic/srchctlg.cpp index 9efb1aed4a..5953983109 100644 --- a/src/generic/srchctlg.cpp +++ b/src/generic/srchctlg.cpp @@ -228,11 +228,13 @@ protected: m_search->SetFocus(); +#if wxUSE_MENUS if ( m_eventType == wxEVT_COMMAND_SEARCHCTRL_SEARCH_BTN ) { // this happens automatically, just like on Mac OS X m_search->PopupSearchMenu(); } +#endif // wxUSE_MENUS } void OnPaint(wxPaintEvent&) @@ -294,17 +296,21 @@ wxSearchCtrl::wxSearchCtrl(wxWindow *parent, wxWindowID id, void wxSearchCtrl::Init() { - m_text = 0; - m_searchButton = 0; - m_cancelButton = 0; - m_menu = 0; + m_text = NULL; + m_searchButton = NULL; + m_cancelButton = NULL; +#if wxUSE_MENUS + m_menu = NULL; +#endif // wxUSE_MENUS m_searchButtonVisible = true; m_cancelButtonVisible = false; - m_searchMenuBitmapUser = false; m_searchBitmapUser = false; m_cancelBitmapUser = false; +#if wxUSE_MENUS + m_searchMenuBitmapUser = false; +#endif // wxUSE_MENUS } bool wxSearchCtrl::Create(wxWindow *parent, wxWindowID id, @@ -359,11 +365,15 @@ wxSearchCtrl::~wxSearchCtrl() delete m_text; delete m_searchButton; delete m_cancelButton; +#if wxUSE_MENUS delete m_menu; +#endif // wxUSE_MENUS } // search control specific interfaces +#if wxUSE_MENUS + void wxSearchCtrl::SetMenu( wxMenu* menu ) { if ( menu == m_menu ) @@ -397,6 +407,8 @@ wxMenu* wxSearchCtrl::GetMenu() return m_menu; } +#endif // wxUSE_MENUS + void wxSearchCtrl::ShowSearchButton( bool show ) { if ( m_searchButtonVisible == show ) @@ -459,7 +471,7 @@ wxSize wxSearchCtrl::DoGetBestSize() const wxSize sizeCancel(0,0); int searchMargin = 0; int cancelMargin = 0; - if ( m_searchButtonVisible || m_menu ) + if ( m_searchButtonVisible || HasMenu() ) { sizeSearch = m_searchButton->GetBestSize(); searchMargin = MARGIN; @@ -502,7 +514,7 @@ void wxSearchCtrl::LayoutControls(int x, int y, int width, int height) wxSize sizeCancel(0,0); int searchMargin = 0; int cancelMargin = 0; - if ( m_searchButtonVisible || m_menu ) + if ( m_searchButtonVisible || HasMenu() ) { sizeSearch = m_searchButton->GetBestSize(); searchMargin = MARGIN; @@ -512,7 +524,7 @@ void wxSearchCtrl::LayoutControls(int x, int y, int width, int height) sizeCancel = m_cancelButton->GetBestSize(); cancelMargin = MARGIN; } - m_searchButton->Show( m_searchButtonVisible || m_menu ); + m_searchButton->Show( m_searchButtonVisible || HasMenu() ); m_cancelButton->Show( m_cancelButtonVisible ); if ( sizeSearch.x + sizeCancel.x > width ) @@ -810,7 +822,7 @@ void wxSearchCtrl::SetSearchBitmap( const wxBitmap& bitmap ) m_searchBitmapUser = bitmap.Ok(); if ( m_searchBitmapUser ) { - if ( m_searchButton && !m_menu ) + if ( m_searchButton && !HasMenu() ) { m_searchButton->SetBitmapLabel( m_searchBitmap ); } @@ -822,6 +834,8 @@ void wxSearchCtrl::SetSearchBitmap( const wxBitmap& bitmap ) } } +#if wxUSE_MENUS + void wxSearchCtrl::SetSearchMenuBitmap( const wxBitmap& bitmap ) { m_searchMenuBitmap = bitmap; @@ -840,6 +854,8 @@ void wxSearchCtrl::SetSearchMenuBitmap( const wxBitmap& bitmap ) } } +#endif // wxUSE_MENUS + void wxSearchCtrl::SetCancelBitmap( const wxBitmap& bitmap ) { m_cancelBitmap = bitmap; @@ -1121,7 +1137,7 @@ void wxSearchCtrl::RecalcBitmaps() ) { m_searchBitmap = RenderSearchBitmap(bitmapWidth,bitmapHeight,false); - if ( !m_menu ) + if ( !HasMenu() ) { m_searchButton->SetBitmapLabel(m_searchBitmap); } @@ -1129,6 +1145,7 @@ void wxSearchCtrl::RecalcBitmaps() // else this bitmap was set by user, don't alter } +#if wxUSE_MENUS if ( !m_searchMenuBitmapUser ) { if ( @@ -1145,6 +1162,7 @@ void wxSearchCtrl::RecalcBitmaps() } // else this bitmap was set by user, don't alter } +#endif // wxUSE_MENUS if ( !m_cancelBitmapUser ) { @@ -1181,6 +1199,8 @@ void wxSearchCtrl::OnSize( wxSizeEvent& WXUNUSED(event) ) LayoutControls(0, 0, width, height); } +#if wxUSE_MENUS + void wxSearchCtrl::PopupSearchMenu() { if ( m_menu ) @@ -1190,6 +1210,8 @@ void wxSearchCtrl::PopupSearchMenu() } } +#endif // wxUSE_MENUS + #endif // !wxUSE_NATIVE_SEARCH_CONTROL #endif // wxUSE_SEARCHCTRL