Set the string to search for in wxSearchCtrl events.
It's more convenient to have the string to search for directly in the event object than to retrieve it from wxSearchCtrl itself as it had to be done before. Closes #4665. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64886 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -44,7 +44,10 @@
|
|||||||
just as you would with wxTextCtrl.
|
just as you would with wxTextCtrl.
|
||||||
@event{EVT_SEARCHCTRL_SEARCH_BTN(id, func)}
|
@event{EVT_SEARCHCTRL_SEARCH_BTN(id, func)}
|
||||||
Respond to a wxEVT_SEARCHCTRL_SEARCH_BTN event, generated when the
|
Respond to a wxEVT_SEARCHCTRL_SEARCH_BTN event, generated when the
|
||||||
search button is clicked. Note that this does not initiate a search.
|
search button is clicked. Note that this does not initiate a search on
|
||||||
|
its own, you need to perform the appropriate action in your event
|
||||||
|
handler. You may use @code event.GetString() @endcode to retrieve the
|
||||||
|
string to search for in the event handler code.
|
||||||
@event{EVT_SEARCHCTRL_CANCEL_BTN(id, func)}
|
@event{EVT_SEARCHCTRL_CANCEL_BTN(id, func)}
|
||||||
Respond to a wxEVT_SEARCHCTRL_CANCEL_BTN event, generated when the
|
Respond to a wxEVT_SEARCHCTRL_CANCEL_BTN event, generated when the
|
||||||
cancel button is clicked.
|
cancel button is clicked.
|
||||||
|
@@ -84,6 +84,8 @@ protected:
|
|||||||
void OnToggleCancelButton(wxCommandEvent&);
|
void OnToggleCancelButton(wxCommandEvent&);
|
||||||
void OnToggleSearchMenu(wxCommandEvent&);
|
void OnToggleSearchMenu(wxCommandEvent&);
|
||||||
|
|
||||||
|
void OnSearch(wxCommandEvent& event);
|
||||||
|
|
||||||
wxMenu* CreateTestMenu();
|
wxMenu* CreateTestMenu();
|
||||||
|
|
||||||
// (re)create the control
|
// (re)create the control
|
||||||
@@ -111,6 +113,8 @@ BEGIN_EVENT_TABLE(SearchCtrlWidgetsPage, WidgetsPage)
|
|||||||
EVT_CHECKBOX(ID_SEARCH_CB, SearchCtrlWidgetsPage::OnToggleSearchButton)
|
EVT_CHECKBOX(ID_SEARCH_CB, SearchCtrlWidgetsPage::OnToggleSearchButton)
|
||||||
EVT_CHECKBOX(ID_CANCEL_CB, SearchCtrlWidgetsPage::OnToggleCancelButton)
|
EVT_CHECKBOX(ID_CANCEL_CB, SearchCtrlWidgetsPage::OnToggleCancelButton)
|
||||||
EVT_CHECKBOX(ID_MENU_CB, SearchCtrlWidgetsPage::OnToggleSearchMenu)
|
EVT_CHECKBOX(ID_MENU_CB, SearchCtrlWidgetsPage::OnToggleSearchMenu)
|
||||||
|
|
||||||
|
EVT_SEARCHCTRL_SEARCH_BTN(wxID_ANY, SearchCtrlWidgetsPage::OnSearch)
|
||||||
END_EVENT_TABLE()
|
END_EVENT_TABLE()
|
||||||
|
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
@@ -222,5 +226,9 @@ void SearchCtrlWidgetsPage::OnToggleSearchMenu(wxCommandEvent&)
|
|||||||
m_srchCtrl->SetMenu(NULL);
|
m_srchCtrl->SetMenu(NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SearchCtrlWidgetsPage::OnSearch(wxCommandEvent& event)
|
||||||
|
{
|
||||||
|
wxLogMessage("Search button: search for \"%s\".", event.GetString());
|
||||||
|
}
|
||||||
|
|
||||||
#endif // wxUSE_SEARCHCTRL
|
#endif // wxUSE_SEARCHCTRL
|
||||||
|
@@ -242,6 +242,14 @@ protected:
|
|||||||
wxCommandEvent event(m_eventType, m_search->GetId());
|
wxCommandEvent event(m_eventType, m_search->GetId());
|
||||||
event.SetEventObject(m_search);
|
event.SetEventObject(m_search);
|
||||||
|
|
||||||
|
if ( m_eventType == wxEVT_COMMAND_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
|
||||||
|
// event handler code later, so provide it here
|
||||||
|
event.SetString(m_search->GetValue());
|
||||||
|
}
|
||||||
|
|
||||||
GetEventHandler()->ProcessEvent(event);
|
GetEventHandler()->ProcessEvent(event);
|
||||||
|
|
||||||
m_search->SetFocus();
|
m_search->SetFocus();
|
||||||
|
@@ -205,6 +205,11 @@ bool wxSearchCtrl::HandleSearchFieldSearchHit()
|
|||||||
{
|
{
|
||||||
wxCommandEvent event(wxEVT_COMMAND_SEARCHCTRL_SEARCH_BTN, m_windowId );
|
wxCommandEvent event(wxEVT_COMMAND_SEARCHCTRL_SEARCH_BTN, m_windowId );
|
||||||
event.SetEventObject(this);
|
event.SetEventObject(this);
|
||||||
|
|
||||||
|
// provide the string to search for directly in the event, this is more
|
||||||
|
// convenient than retrieving it from the control in event handler code
|
||||||
|
event.SetString(GetValue());
|
||||||
|
|
||||||
return ProcessCommand(event);
|
return ProcessCommand(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user