git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45827
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxSearchCtrlNameStr);
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxSearchCtrlNameStr);
// get/set search button menu
// --------------------------
virtual void SetMenu( wxMenu* menu );
virtual wxMenu* GetMenu();
// get/set search button menu
// --------------------------
virtual void SetMenu( wxMenu* menu );
virtual wxMenu* GetMenu();
// get/set search options
// ----------------------
// get/set search options
// ----------------------
// search control generic only
void SetSearchBitmap( const wxBitmap& bitmap );
// search control generic only
void SetSearchBitmap( const wxBitmap& bitmap );
- void SetSearchMenuBitmap( const wxBitmap& bitmap );
void SetCancelBitmap( 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);
protected:
virtual void DoSetValue(const wxString& value, int flags = 0);
void OnSetFocus( wxFocusEvent& event );
void OnSize( wxSizeEvent& event );
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;
private:
friend class wxSearchButton;
// the subcontrols
wxSearchTextCtrl *m_text;
wxSearchButton *m_searchButton;
wxSearchButton *m_cancelButton;
// the subcontrols
wxSearchTextCtrl *m_text;
wxSearchButton *m_searchButton;
wxSearchButton *m_cancelButton;
bool m_searchButtonVisible;
bool m_cancelButtonVisible;
bool m_searchBitmapUser;
bool m_searchButtonVisible;
bool m_cancelButtonVisible;
bool m_searchBitmapUser;
- bool m_searchMenuBitmapUser;
+#if wxUSE_MENUS
+ bool m_searchMenuBitmapUser;
+#endif // wxUSE_MENUS
+
- wxBitmap m_searchMenuBitmap;
+#if wxUSE_MENUS
+ wxBitmap m_searchMenuBitmap;
+#endif // wxUSE_MENUS
+
private:
DECLARE_DYNAMIC_CLASS(wxSearchCtrl)
private:
DECLARE_DYNAMIC_CLASS(wxSearchCtrl)
wxSearchCtrlBase() { }
virtual ~wxSearchCtrlBase() { }
wxSearchCtrlBase() { }
virtual ~wxSearchCtrlBase() { }
+ // search control
+#if wxUSE_MENUS
virtual void SetMenu(wxMenu *menu) = 0;
virtual wxMenu *GetMenu() = 0;
virtual void SetMenu(wxMenu *menu) = 0;
virtual wxMenu *GetMenu() = 0;
// get/set options
virtual void ShowSearchButton( bool show ) = 0;
// get/set options
virtual void ShowSearchButton( bool show ) = 0;
if ( m_eventType == wxEVT_COMMAND_SEARCHCTRL_SEARCH_BTN )
{
// this happens automatically, just like on Mac OS X
m_search->PopupSearchMenu();
}
if ( m_eventType == wxEVT_COMMAND_SEARCHCTRL_SEARCH_BTN )
{
// this happens automatically, just like on Mac OS X
m_search->PopupSearchMenu();
}
}
void OnPaint(wxPaintEvent&)
}
void OnPaint(wxPaintEvent&)
void wxSearchCtrl::Init()
{
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_searchButtonVisible = true;
m_cancelButtonVisible = false;
- m_searchMenuBitmapUser = false;
m_searchBitmapUser = false;
m_cancelBitmapUser = false;
m_searchBitmapUser = false;
m_cancelBitmapUser = false;
+#if wxUSE_MENUS
+ m_searchMenuBitmapUser = false;
+#endif // wxUSE_MENUS
}
bool wxSearchCtrl::Create(wxWindow *parent, wxWindowID id,
}
bool wxSearchCtrl::Create(wxWindow *parent, wxWindowID id,
delete m_text;
delete m_searchButton;
delete m_cancelButton;
delete m_text;
delete m_searchButton;
delete m_cancelButton;
}
// search control specific interfaces
}
// search control specific interfaces
void wxSearchCtrl::SetMenu( wxMenu* menu )
{
if ( menu == m_menu )
void wxSearchCtrl::SetMenu( wxMenu* menu )
{
if ( menu == m_menu )
void wxSearchCtrl::ShowSearchButton( bool show )
{
if ( m_searchButtonVisible == show )
void wxSearchCtrl::ShowSearchButton( bool show )
{
if ( m_searchButtonVisible == show )
wxSize sizeCancel(0,0);
int searchMargin = 0;
int cancelMargin = 0;
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;
{
sizeSearch = m_searchButton->GetBestSize();
searchMargin = MARGIN;
wxSize sizeCancel(0,0);
int searchMargin = 0;
int cancelMargin = 0;
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;
{
sizeSearch = m_searchButton->GetBestSize();
searchMargin = MARGIN;
sizeCancel = m_cancelButton->GetBestSize();
cancelMargin = MARGIN;
}
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 )
m_cancelButton->Show( m_cancelButtonVisible );
if ( sizeSearch.x + sizeCancel.x > width )
m_searchBitmapUser = bitmap.Ok();
if ( m_searchBitmapUser )
{
m_searchBitmapUser = bitmap.Ok();
if ( m_searchBitmapUser )
{
- if ( m_searchButton && !m_menu )
+ if ( m_searchButton && !HasMenu() )
{
m_searchButton->SetBitmapLabel( m_searchBitmap );
}
{
m_searchButton->SetBitmapLabel( m_searchBitmap );
}
void wxSearchCtrl::SetSearchMenuBitmap( const wxBitmap& bitmap )
{
m_searchMenuBitmap = bitmap;
void wxSearchCtrl::SetSearchMenuBitmap( const wxBitmap& bitmap )
{
m_searchMenuBitmap = bitmap;
void wxSearchCtrl::SetCancelBitmap( const wxBitmap& bitmap )
{
m_cancelBitmap = bitmap;
void wxSearchCtrl::SetCancelBitmap( const wxBitmap& bitmap )
{
m_cancelBitmap = bitmap;
)
{
m_searchBitmap = RenderSearchBitmap(bitmapWidth,bitmapHeight,false);
)
{
m_searchBitmap = RenderSearchBitmap(bitmapWidth,bitmapHeight,false);
{
m_searchButton->SetBitmapLabel(m_searchBitmap);
}
{
m_searchButton->SetBitmapLabel(m_searchBitmap);
}
// else this bitmap was set by user, don't alter
}
// else this bitmap was set by user, don't alter
}
if ( !m_searchMenuBitmapUser )
{
if (
if ( !m_searchMenuBitmapUser )
{
if (
}
// else this bitmap was set by user, don't alter
}
}
// else this bitmap was set by user, don't alter
}
if ( !m_cancelBitmapUser )
{
if ( !m_cancelBitmapUser )
{
LayoutControls(0, 0, width, height);
}
LayoutControls(0, 0, width, height);
}
void wxSearchCtrl::PopupSearchMenu()
{
if ( m_menu )
void wxSearchCtrl::PopupSearchMenu()
{
if ( m_menu )
#endif // !wxUSE_NATIVE_SEARCH_CONTROL
#endif // wxUSE_SEARCHCTRL
#endif // !wxUSE_NATIVE_SEARCH_CONTROL
#endif // wxUSE_SEARCHCTRL