本文整理汇总了C++中wxFindDialogEvent类的典型用法代码示例。如果您正苦于以下问题:C++ wxFindDialogEvent类的具体用法?C++ wxFindDialogEvent怎么用?C++ wxFindDialogEvent使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了wxFindDialogEvent类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: MenuReplaceAll
void MyFrame::MenuReplaceAll ( wxFindDialogEvent& event ) {
if (stc==0)
return;
int flags = 0;
if (event.GetFlags() & wxFR_WHOLEWORD)
flags += wxSTC_FIND_WHOLEWORD;
if (event.GetFlags() & wxFR_MATCHCASE)
flags += wxSTC_FIND_MATCHCASE;
ReplaceAll(event.GetFindString(), event.GetReplaceString(), flags);
}
示例2: FindClose
void MyFrame::FindClose ( wxFindDialogEvent& event ) {
if (event.GetDialog() == FindDialog) {
FindDialog->Destroy();
FindDialog = NULL;
}
else if (event.GetDialog() == ReplaceDialog) {
ReplaceDialog->Destroy();
ReplaceDialog = NULL;
}
return;
}
示例3: OnFindDrcMarker
void SCH_EDIT_FRAME::OnFindDrcMarker( wxFindDialogEvent& event )
{
static SCH_MARKER* lastMarker = NULL;
wxString msg;
SCH_SHEET_LIST schematic;
SCH_SHEET_PATH* sheetFoundIn = NULL;
bool wrap = ( event.GetFlags() & FR_SEARCH_WRAP ) != 0;
wxRect clientRect( wxPoint( 0, 0 ), GetClientSize() );
bool warpCursor = ( ( event.GetId() == wxEVT_COMMAND_FIND_CLOSE ) ||
!( event.GetFlags() & FR_NO_WARP_CURSOR ) );
if( event.GetFlags() & FR_CURRENT_SHEET_ONLY )
{
sheetFoundIn = m_CurrentSheet;
lastMarker = (SCH_MARKER*) m_CurrentSheet->FindNextItem( SCH_MARKER_T, lastMarker, wrap );
}
else
{
lastMarker = (SCH_MARKER*) schematic.FindNextItem( SCH_MARKER_T, &sheetFoundIn,
lastMarker, wrap );
}
if( lastMarker != NULL )
{
if( *sheetFoundIn != *m_CurrentSheet )
{
sheetFoundIn->LastScreen()->SetZoom( GetScreen()->GetZoom() );
*m_CurrentSheet = *sheetFoundIn;
m_CurrentSheet->UpdateAllScreenReferences();
}
sheetFoundIn->LastScreen()->SetCrossHairPosition( lastMarker->GetPosition() );
RedrawScreen( lastMarker->GetPosition(), warpCursor );
wxString path = sheetFoundIn->Path();
wxString units = GetAbbreviatedUnitsLabel();
double x = To_User_Unit( g_UserUnit, (double) lastMarker->GetPosition().x,
m_internalUnits );
double y = To_User_Unit( g_UserUnit, (double) lastMarker->GetPosition().y,
m_internalUnits );
msg.Printf( _( "Design rule check marker found in sheet %s at %0.3f%s, %0.3f%s" ),
GetChars( path ), x, GetChars( units ), y, GetChars( units) );
SetStatusText( msg );
}
else
{
SetStatusText( _( "No more markers were found." ) );
}
}
示例4: OnFind
void ctFindReplaceDialog::OnFind(wxFindDialogEvent& event)
{
wxString textToFind = event.GetFindString();
bool matchCase = ((event.GetFlags() & wxFR_MATCHCASE) != 0);
bool wholeWord = ((event.GetFlags() & wxFR_WHOLEWORD) != 0);
wxGetApp().GetSettings().m_matchCase = matchCase;
wxGetApp().GetSettings().m_matchWholeWord = wholeWord;
if (!DoFind(textToFind, matchCase, wholeWord))
{
wxMessageBox(wxT("No more matches."), wxT("Search"), wxOK|wxICON_INFORMATION, this);
}
}
示例5: OnFindDialog
void MyFrame::OnFindDialog(wxFindDialogEvent& event)
{
wxEventType type = event.GetEventType();
if ( type == wxEVT_COMMAND_FIND || type == wxEVT_COMMAND_FIND_NEXT )
{
wxLogMessage(wxT("Find %s'%s' (flags: %s)"),
type == wxEVT_COMMAND_FIND_NEXT ? wxT("next ") : wxT(""),
event.GetFindString().c_str(),
DecodeFindDialogEventFlags(event.GetFlags()).c_str());
}
else if ( type == wxEVT_COMMAND_FIND_REPLACE ||
type == wxEVT_COMMAND_FIND_REPLACE_ALL )
{
wxLogMessage(wxT("Replace %s'%s' with '%s' (flags: %s)"),
type == wxEVT_COMMAND_FIND_REPLACE_ALL ? _T("all ") : wxT(""),
event.GetFindString().c_str(),
event.GetReplaceString().c_str(),
DecodeFindDialogEventFlags(event.GetFlags()).c_str());
}
else if ( type == wxEVT_COMMAND_FIND_CLOSE )
{
wxFindReplaceDialog *dlg = event.GetDialog();
int idMenu;
const wxChar *txt;
if ( dlg == m_dlgFind )
{
txt = _T("Find");
idMenu = DIALOGS_FIND;
m_dlgFind = NULL;
}
else if ( dlg == m_dlgReplace )
{
txt = _T("Replace");
idMenu = DIALOGS_REPLACE;
m_dlgReplace = NULL;
}
else
{
txt = _T("Unknown");
idMenu = wxID_ANY;
wxFAIL_MSG( _T("unexpected event") );
}
wxLogMessage(wxT("%s dialog is being closed."), txt);
if ( idMenu != wxID_ANY )
{
GetMenuBar()->Check(idMenu, false);
}
dlg->Destroy();
}
else
{
wxLogError(wxT("Unknown find dialog event!"));
}
}
示例6: OnClose
void ctFindReplaceDialog::OnClose(wxFindDialogEvent& event)
{
bool matchCase = ((event.GetFlags() & wxFR_MATCHCASE) != 0);
bool wholeWord = ((event.GetFlags() & wxFR_WHOLEWORD) != 0);
wxGetApp().GetSettings().m_matchCase = matchCase;
wxGetApp().GetSettings().m_matchWholeWord = wholeWord;
this->Destroy();
((ctMainFrame*) GetParent())->SetFindDialog(NULL);
}
示例7: FindButton
void MyFrame::FindButton ( wxFindDialogEvent& event ) {
if (stc==0)
return;
int flags = 0;
if (event.GetFlags() & wxFR_WHOLEWORD)
flags += wxSTC_FIND_WHOLEWORD;
if (event.GetFlags() & wxFR_MATCHCASE)
flags += wxSTC_FIND_MATCHCASE;
// Search Down
if (event.GetFlags() & wxFR_DOWN)
FindOccurence(event.GetFindString(), 0, flags);
// Search Up
else
FindOccurence(event.GetFindString(), 1, flags);
return;
}
示例8: Send
void wxFindReplaceDialogBase::Send(wxFindDialogEvent& event)
{
// we copy the data to dialog->GetData() as well
m_FindReplaceData->m_Flags = event.GetFlags();
m_FindReplaceData->m_FindWhat = event.GetFindString();
if ( HasFlag(wxFR_REPLACEDIALOG) &&
(event.GetEventType() == wxEVT_FIND_REPLACE ||
event.GetEventType() == wxEVT_FIND_REPLACE_ALL) )
{
m_FindReplaceData->m_ReplaceWith = event.GetReplaceString();
}
// translate wxEVT_FIND_NEXT to wxEVT_FIND if needed
if ( event.GetEventType() == wxEVT_FIND_NEXT )
{
if ( m_FindReplaceData->m_FindWhat != m_lastSearch )
{
event.SetEventType(wxEVT_FIND);
m_lastSearch = m_FindReplaceData->m_FindWhat;
}
}
if ( !GetEventHandler()->ProcessEvent(event) )
{
// the event is not propagated upwards to the parent automatically
// because the dialog is a top level window, so do it manually as
// in 9 cases of 10 the message must be processed by the dialog
// owner and not the dialog itself
(void)GetParent()->GetEventHandler()->ProcessEvent(event);
}
}
示例9: OnFindReplaceDialog
void Edit::OnFindReplaceDialog(wxFindDialogEvent& event)
{
const wxEventType type = event.GetEventType();
const wxString find_string = m_FindData.GetFindString();
int found_start, found_end;
if (type == wxEVT_FIND || type == wxEVT_FIND_NEXT) {
// search
if (FindText(found_start, found_end, type == wxEVT_FIND_NEXT)) {
SetSelection(found_start, found_end);
}
else {
wxMessageDialog dialog(this, wxT("Cannot find the text \"" + find_string + "\" from current position"), wxT("Find"));
dialog.ShowModal();
}
}
else if (type == wxEVT_FIND_REPLACE) {
ReplaceText(find_string);
}
else if (type == wxEVT_FIND_REPLACE_ALL) {
const wxString replace_string = m_FindData.GetReplaceString();
int start_index = 0;
bool found = true;
int found_count = 0;
do {
// set search area
SetTargetStart(start_index); SetTargetEnd(GetLastPosition());
// search and replace
found_start = SearchInTarget(find_string);
if (found_start > -1) {
found_end = found_start + find_string.size();
SetTargetStart(found_start);
SetTargetEnd(found_end);
ReplaceTarget(replace_string);
start_index = found_start + replace_string.size();
found_count++;
}
else {
found = false;
}
}
while (found);
const wxString message = wxString::Format(wxT("%d occurrence(s) of \"%s\" were replaced with \"%s\"."),
found_count, find_string, replace_string);
wxMessageDialog replace_dialog(this, message, wxT("Replaced Text"));
replace_dialog.ShowModal();
}
}
示例10: OnFindReplace
void SCH_EDIT_FRAME::OnFindReplace( wxFindDialogEvent& aEvent )
{
SCH_FIND_COLLECTOR_DATA data;
bool warpCursor = !( aEvent.GetFlags() & FR_NO_WARP_CURSOR );
SCH_ITEM* item = (SCH_ITEM*) m_foundItems.GetItem( data );
wxCHECK_RET( item != NULL, wxT( "Invalid replace item in find collector list." ) );
wxLogTrace( traceFindReplace, wxT( "Replacing %s with %s in item %s" ),
GetChars( aEvent.GetFindString() ), GetChars( aEvent.GetReplaceString() ),
GetChars( m_foundItems.GetText() ) );
SCH_ITEM* undoItem = data.GetParent();
if( undoItem == NULL )
undoItem = item;
SetUndoItem( undoItem );
if( m_foundItems.ReplaceItem() )
{
OnModify();
SaveUndoItemInUndoList( undoItem );
RedrawScreen( data.GetPosition(), warpCursor );
}
OnFindSchematicItem( aEvent );
if( aEvent.GetEventType() == wxEVT_COMMAND_FIND_REPLACE_ALL )
{
while( ( item = (SCH_ITEM*) m_foundItems.GetItem( data ) ) != NULL )
{
wxLogTrace( traceFindReplace, wxT( "Replacing %s with %s in item %s" ),
GetChars( aEvent.GetFindString() ), GetChars( aEvent.GetReplaceString() ),
GetChars( m_foundItems.GetText() ) );
SCH_ITEM* undoItem = data.GetParent();
// Don't save child items in undo list.
if( undoItem == NULL )
undoItem = item;
SetUndoItem( undoItem );
if( m_foundItems.ReplaceItem() )
{
OnModify();
SaveUndoItemInUndoList( undoItem );
RedrawScreen( data.GetPosition(), warpCursor );
}
OnFindSchematicItem( aEvent );
}
}
}
示例11: OnFindSchematicItem
void SCH_EDIT_FRAME::OnFindSchematicItem( wxFindDialogEvent& aEvent )
{
SCH_FIND_REPLACE_DATA searchCriteria;
SCH_FIND_COLLECTOR_DATA data;
searchCriteria.SetFlags( aEvent.GetFlags() );
searchCriteria.SetFindString( aEvent.GetFindString() );
searchCriteria.SetReplaceString( aEvent.GetReplaceString() );
if( aEvent.GetEventType() == wxEVT_COMMAND_FIND_CLOSE )
{
if( m_foundItems.GetCount() == 0 )
return;
// Refresh the search cache in case something has changed. This prevents any stale
// pointers from crashing Eeschema when the wxEVT_FIND_CLOSE event is handled.
if( IsSearchCacheObsolete( searchCriteria ) )
{
if( aEvent.GetFlags() & FR_CURRENT_SHEET_ONLY && g_RootSheet->CountSheets() > 1 )
{
m_foundItems.Collect( searchCriteria, m_CurrentSheet );
}
else
{
m_foundItems.Collect( searchCriteria );
}
}
}
else if( IsSearchCacheObsolete( searchCriteria ) )
{
if( aEvent.GetFlags() & FR_CURRENT_SHEET_ONLY && g_RootSheet->CountSheets() > 1 )
{
m_foundItems.Collect( searchCriteria, m_CurrentSheet );
}
else
{
m_foundItems.Collect( searchCriteria );
}
}
else
{
EDA_ITEM* currentItem = m_foundItems.GetItem( data );
if( currentItem != NULL )
currentItem->SetForceVisible( false );
m_foundItems.UpdateIndex();
}
updateFindReplaceView( aEvent );
}
示例12: OnFindDialog
void wxExFrame::OnFindDialog(wxFindDialogEvent& event)
{
if (event.GetEventType() == wxEVT_COMMAND_FIND_CLOSE)
{
wxASSERT(m_FindReplaceDialog != NULL);
// Hiding instead of destroying, does not
// show the dialog next time.
m_FindReplaceDialog->Destroy();
m_FindReplaceDialog = NULL;
}
else
{
if (m_FindFocus != NULL)
{
wxPostEvent(m_FindFocus, event);
}
}
}
示例13: OnFindDialog
void CCTestFrame::OnFindDialog(wxFindDialogEvent& event)
{
wxEventType type = event.GetEventType();
if (type == wxEVT_COMMAND_FIND || type == wxEVT_COMMAND_FIND_NEXT)
{
if (event.GetFlags() & wxFR_DOWN)
{
if (type == wxEVT_COMMAND_FIND)
{
m_LastIndex = m_LogCtrl->GetInsertionPoint();
wxString tmp = m_LogCtrl->GetValue().SubString(m_LastIndex, m_LogCtrl->GetLastPosition() - 1);
int i;
if (event.GetFlags() & wxFR_MATCHCASE)
i = m_LogCtrl->GetValue().Find(event.GetFindString().c_str());
else
i = tmp.Upper().Find(event.GetFindString().Upper().c_str());
if (i >= 0)
{
m_LastIndex += i;
m_LogCtrl->SetSelection(m_LastIndex, m_LastIndex + event.GetFindString().Length());
}
}
else // find next
{
wxString tmp = m_LogCtrl->GetValue().SubString(++m_LastIndex, m_LogCtrl->GetLastPosition() - 1) ;
int i;
if (event.GetFlags() & wxFR_MATCHCASE)
i = tmp.Find(event.GetFindString().c_str());
else
i = tmp.Upper().Find(event.GetFindString().Upper().c_str());
if (i >= 0)
{
m_LastIndex += i;
m_LogCtrl->SetSelection(m_LastIndex, m_LastIndex + event.GetFindString().Length());
}
}
m_LogCtrl->SetFocus();
}
else //find up
{
if (type == wxEVT_COMMAND_FIND)
{
m_LastIndex = m_LogCtrl->GetInsertionPoint();
int i;
if (event.GetFlags() & wxFR_MATCHCASE)
i = m_LogCtrl->GetValue().rfind(event.GetFindString().c_str(), m_LastIndex);
else
i = m_LogCtrl->GetValue().Upper().rfind(event.GetFindString().Upper().c_str(), m_LastIndex);
if (i >= 0)
{
m_LogCtrl->SetSelection(i, i + event.GetFindString().Length());
m_LastIndex = i;
}
}
else
{
wxString tmp = m_LogCtrl->GetValue().SubString(0, --m_LastIndex) ;
int i;
if (event.GetFlags() & wxFR_MATCHCASE)
i = tmp.rfind(event.GetFindString().c_str(), m_LastIndex);
else
i = tmp.Upper().rfind(event.GetFindString().Upper().c_str(), m_LastIndex);
if (i >= 0)
{
m_LastIndex = i;
m_LogCtrl->SetSelection(m_LastIndex, m_LastIndex + event.GetFindString().Length());
}
}
}
m_LogCtrl->SetFocus();
}
else if (type == wxEVT_COMMAND_FIND_CLOSE)
{
delete m_FRDlg;
m_FRDlg = NULL;
}
}
示例14: if
void SavvyEditor::AppFrame::OnFindDialog(wxFindDialogEvent& a_Event)
{
wxEventType type = a_Event.GetEventType();
if (type == wxEVT_FIND || type == wxEVT_FIND_NEXT)
{
if (!DoFind(a_Event.GetFindString(), a_Event.GetFlags()))
{
wxMessageBox(wxT("No more matches."), DEFAULT_FRAME_TITLE);
}
}
else if (type == wxEVT_FIND_REPLACE)
{
if (!DoReplace(a_Event.GetFindString(), a_Event.GetReplaceString(), a_Event.GetFlags()))
{
wxMessageBox(wxT("Nothing to replace."), DEFAULT_FRAME_TITLE);
}
}
else if (type == wxEVT_FIND_REPLACE_ALL)
{
int numReplaced = DoReplaceAll(a_Event.GetFindString(), a_Event.GetReplaceString(), a_Event.GetFlags());
if (numReplaced > 0)
{
wxString numString = wxString::Format(wxT("%i"), numReplaced);
numString.Append(" occurrences replaced.");
wxMessageBox(numString, DEFAULT_FRAME_TITLE);
}
else
{
wxMessageBox(wxT("Nothing to replace."), DEFAULT_FRAME_TITLE);
}
}
else if (type == wxEVT_FIND_CLOSE)
{
wxFindReplaceDialog *dlg = a_Event.GetDialog();
int idMenu;
const wxChar *txt;
if (dlg == m_FindDialog)
{
txt = wxT("Find");
idMenu = ID_FindDialog;
m_FindDialog = NULL;
}
else if (dlg == m_ReplaceDialog)
{
txt = wxT("Replace");
idMenu = ID_ReplaceDialog;
m_ReplaceDialog = NULL;
}
else
{
txt = wxT("Unknown");
idMenu = wxID_ANY;
wxFAIL_MSG(wxT("unexpected event"));
}
if (idMenu != wxID_ANY)
{
GetMenuBar()->Check(idMenu, false);
}
dlg->Destroy();
}
else
{
wxLogError(wxT("Unknown find dialog event!"));
}
}
示例15: OnFindDialog
//----------------------------------------
void CRichTextFrame::OnFindDialog(wxFindDialogEvent& event)
{
wxEventType type = event.GetEventType();
if ( type == wxEVT_COMMAND_FIND || type == wxEVT_COMMAND_FIND_NEXT )
{
/*
wxLogMessage(wxT("Find %s'%s' (flags: %s)"),
type == wxEVT_COMMAND_FIND_NEXT ? wxT("next ") : wxT(""),
event.GetFindString().c_str(),
DecodeFindDialogEventFlags(event.GetFlags()).c_str());
*/
wxString sSearch = event.GetFindString();
wxString sText = m_textCtrl->GetValue();
//sText.Replace(wxT( "\n" ), wxT( " \n" ) ) ;
int iStart = -1;
long from = m_textCtrl->GetInsertionPoint();
long to = 0;
m_textCtrl->GetSelection(&from, &to);
bool matchCase = ((event.GetFlags() & wxFR_MATCHCASE) == wxFR_MATCHCASE);
bool down = ((event.GetFlags() & wxFR_DOWN) == wxFR_DOWN);
if (matchCase)
{
if (down)
{
from = to + 1;
iStart = sText.find (sSearch, from);
}
else
{
from = from - 1;
iStart = sText.rfind (sSearch, from);
}
}
else
{
if (down)
{
from = to + 1;
iStart = CTools::FindNoCase(sText.c_str(), sSearch.c_str(), from);
}
else
{
from = from - 1;
iStart = CTools::RFindNoCase(sText.c_str(), sSearch.c_str(), from);
}
}
if (iStart < 0)
{
wxMessageBox(wxString::Format("Cannot find the string '%s'",
sSearch.c_str()),
"Find text...",
wxOK | wxICON_EXCLAMATION,
this);
event.GetDialog()->SetFocus();
}
else
{
int iEnd = iStart + sSearch.Length();
m_textCtrl->SetFocus();
m_textCtrl->SetInsertionPoint(iEnd+1);
m_textCtrl->SetSelection (iStart, iEnd);
}
}
else if ( type == wxEVT_COMMAND_FIND_CLOSE )
{
wxFindReplaceDialog *dlg = event.GetDialog();
if ( dlg == m_dlgFind )
{
m_dlgFind = NULL;
}
dlg->Destroy();
}
else
{
//wxLogError(wxT("Unknown find dialog event!"));
}
}