X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/274e4265a85e0de5a5a7ad7ed8038ddbf0dbeecb..e733c4ce1e24cf7e4b0b0d8362fc59aaa7a7641c:/src/generic/srchctlg.cpp diff --git a/src/generic/srchctlg.cpp b/src/generic/srchctlg.cpp index 2317d2bfb5..ccf7ccbcfc 100644 --- a/src/generic/srchctlg.cpp +++ b/src/generic/srchctlg.cpp @@ -3,7 +3,6 @@ // Purpose: implements wxSearchCtrl as a composite control // Author: Vince Harron // Created: 2006-02-19 -// RCS-ID: $Id$ // Copyright: Vince Harron // Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// @@ -72,6 +71,10 @@ public: InvalidateBestSize(); } + virtual wxWindow* GetMainWindowOfCompositeControl() + { + return m_search; + } // provide access to the base class protected methods to wxSearchCtrl which // needs to forward to them @@ -168,7 +171,11 @@ public: m_bmp(bmp) { } - void SetBitmapLabel(const wxBitmap& label) { m_bmp = label; } + void SetBitmapLabel(const wxBitmap& label) + { + m_bmp = label; + InvalidateBestSize(); + } // The buttons in wxSearchCtrl shouldn't accept focus from keyboard because // this would interfere with the usual TAB processing: the user expects @@ -178,6 +185,11 @@ public: // is really no reason for it to be able to get focus from keyboard. virtual bool AcceptsFocusFromKeyboard() const { return false; } + virtual wxWindow* GetMainWindowOfCompositeControl() + { + return m_search; + } + protected: wxSize DoGetBestSize() const { @@ -189,7 +201,7 @@ protected: wxCommandEvent event(m_eventType, m_search->GetId()); event.SetEventObject(m_search); - if ( m_eventType == wxEVT_COMMAND_SEARCHCTRL_SEARCH_BTN ) + if ( m_eventType == wxEVT_SEARCHCTRL_SEARCH_BTN ) { // it's convenient to have the string to search for directly in the // event instead of having to retrieve it from the control in the @@ -202,7 +214,7 @@ protected: m_search->SetFocus(); #if wxUSE_MENUS - if ( m_eventType == wxEVT_COMMAND_SEARCHCTRL_SEARCH_BTN ) + if ( m_eventType == wxEVT_SEARCHCTRL_SEARCH_BTN ) { // this happens automatically, just like on Mac OS X m_search->PopupSearchMenu(); @@ -231,7 +243,7 @@ BEGIN_EVENT_TABLE(wxSearchButton, wxControl) END_EVENT_TABLE() BEGIN_EVENT_TABLE(wxSearchCtrl, wxSearchCtrlBase) - EVT_SEARCHCTRL_SEARCH_BTN(wxID_ANY, wxSearchCtrl::OnSearchButton) + EVT_SEARCHCTRL_CANCEL_BTN(wxID_ANY, wxSearchCtrl::OnCancelButton) EVT_SET_FOCUS(wxSearchCtrl::OnSetFocus) EVT_SIZE(wxSearchCtrl::OnSize) END_EVENT_TABLE() @@ -316,10 +328,10 @@ bool wxSearchCtrl::Create(wxWindow *parent, wxWindowID id, m_text = new wxSearchTextCtrl(this, value, style); m_searchButton = new wxSearchButton(this, - wxEVT_COMMAND_SEARCHCTRL_SEARCH_BTN, + wxEVT_SEARCHCTRL_SEARCH_BTN, m_searchBitmap); m_cancelButton = new wxSearchButton(this, - wxEVT_COMMAND_SEARCHCTRL_CANCEL_BTN, + wxEVT_SEARCHCTRL_CANCEL_BTN, m_cancelBitmap); SetBackgroundColour( m_text->GetBackgroundColour() ); @@ -1172,8 +1184,9 @@ void wxSearchCtrl::RecalcBitmaps() } } -void wxSearchCtrl::OnSearchButton( wxCommandEvent& event ) +void wxSearchCtrl::OnCancelButton( wxCommandEvent& event ) { + m_text->Clear(); event.Skip(); }