void FindReplaceDialog::OnClick(wxCommandEvent& event) { wxObject* btnClicked = event.GetEventObject(); size_t flags = m_data.GetFlags(); m_data.SetFindString(m_findString->GetValue()); m_data.SetReplaceString(m_replaceString->GetValue()); // disable the 'Find/Replace' buttons when the 'Selection only' is enabled if(m_selectionOnly->IsChecked()) { m_find->Enable(false); m_replace->Enable(false); } else { m_find->Enable(true); m_replace->Enable(true); } if(btnClicked == m_find) { VALIDATE_FINDWHAT(); SendEvent(wxEVT_FRD_FIND_NEXT); } else if(btnClicked == m_replace) { VALIDATE_FINDWHAT(); SendEvent(wxEVT_FRD_REPLACE); } else if(btnClicked == m_replaceAll) { VALIDATE_FINDWHAT(); SendEvent(wxEVT_FRD_REPLACEALL); } else if(btnClicked == m_markAll) { VALIDATE_FINDWHAT(); SendEvent(wxEVT_FRD_BOOKMARKALL); } else if(btnClicked == m_clearBookmarks) { SendEvent(wxEVT_FRD_CLEARBOOKMARKS); } else if(btnClicked == m_cancel) { // Fire a close event SendEvent(wxEVT_FRD_CLOSE); // Hide the dialog Hide(); // Make sure the Search in Selected Text flag is clear, otherwise we can't Find Next flags &= ~(wxFRD_SELECTIONONLY); } else if(btnClicked == m_matchCase) { if(m_matchCase->IsChecked()) { flags |= wxFRD_MATCHCASE; } else { flags &= ~(wxFRD_MATCHCASE); } } else if(btnClicked == m_matchWholeWord) { if(m_matchWholeWord->IsChecked()) { flags |= wxFRD_MATCHWHOLEWORD; } else { flags &= ~(wxFRD_MATCHWHOLEWORD); } } else if(btnClicked == m_regualrExpression) { if(m_regualrExpression->IsChecked()) { flags |= wxFRD_REGULAREXPRESSION; } else { flags &= ~(wxFRD_REGULAREXPRESSION); } } else if(btnClicked == m_searchUp) { if(m_searchUp->IsChecked()) { flags |= wxFRD_SEARCHUP; } else { flags &= ~(wxFRD_SEARCHUP); } } else if(btnClicked == m_selectionOnly) { if(m_selectionOnly->IsChecked()) { flags |= wxFRD_SELECTIONONLY; } else { flags &= ~(wxFRD_SELECTIONONLY); } } // Set the updated flags, unless it was ReplaceAll which does this itself if(btnClicked != m_replaceAll) { m_data.SetFlags(flags); } // update the data of the find/replace dialog, in particular, // update the history of the Find What / replace with controls #if defined(__WXGTK__) && wxVERSION_NUMBER >= 2900 // But if it's a findNext or a Replace, do it by posting an event, // otherwise strange duplications happen (because scintilla steals the primary selection?) wxCommandEvent e(wxEVT_FRD_FIND_NEXT); // Arbitrary choice of event-type wxPostEvent(this, e); #else SetFindReplaceData(m_data, false); #endif }
void FindReplaceDialog::OnClick(wxCommandEvent &event) { wxObject *btnClicked = event.GetEventObject(); size_t flags = m_data.GetFlags(); m_data.SetFindString( m_findString->GetValue() ); m_data.SetReplaceString( m_replaceString->GetValue() ); // disable the 'Find/Replace' buttons when the 'Selection only' is enabled if ( m_selectionOnly->IsChecked() ) { m_find->Enable(false); m_replace->Enable(false); } else { m_find->Enable(true); m_replace->Enable(true); } if (btnClicked == m_find) { VALIDATE_FINDWHAT(); SendEvent(wxEVT_FRD_FIND_NEXT); } else if (btnClicked == m_replace) { VALIDATE_FINDWHAT(); SendEvent(wxEVT_FRD_REPLACE); } else if (btnClicked == m_replaceAll) { VALIDATE_FINDWHAT(); SendEvent(wxEVT_FRD_REPLACEALL); } else if (btnClicked == m_markAll) { VALIDATE_FINDWHAT(); SendEvent(wxEVT_FRD_BOOKMARKALL); } else if (btnClicked == m_clearBookmarks) { SendEvent(wxEVT_FRD_CLEARBOOKMARKS); } else if (btnClicked == m_cancel) { // Fire a close event SendEvent(wxEVT_FRD_CLOSE); // Hide the dialog Hide(); // Make sure the Search in Selected Text flag is clear, otherwise we can't Find Next flags &= ~(wxFRD_SELECTIONONLY); } else if (btnClicked == m_matchCase) { if (m_matchCase->IsChecked()) { flags |= wxFRD_MATCHCASE; } else { flags &= ~(wxFRD_MATCHCASE); } } else if (btnClicked == m_matchWholeWord) { if (m_matchWholeWord->IsChecked()) { flags |= wxFRD_MATCHWHOLEWORD; } else { flags &= ~(wxFRD_MATCHWHOLEWORD); } } else if (btnClicked == m_regualrExpression) { if (m_regualrExpression->IsChecked()) { flags |= wxFRD_REGULAREXPRESSION; } else { flags &= ~(wxFRD_REGULAREXPRESSION); } } else if (btnClicked == m_searchUp) { if (m_searchUp->IsChecked()) { flags |= wxFRD_SEARCHUP; } else { flags &= ~(wxFRD_SEARCHUP); } } else if (btnClicked == m_selectionOnly) { if (m_selectionOnly->IsChecked()) { flags |= wxFRD_SELECTIONONLY; } else { flags &= ~(wxFRD_SELECTIONONLY); } } // Set the updated flags, unless it was ReplaceAll which does this itself if (btnClicked != m_replaceAll) { m_data.SetFlags(flags); } // update the data of the find/replace dialog, in particular, // update the history of the Find What / replace with controls SetFindReplaceData(m_data, false); }