本文整理汇总了C++中wxFindDialogEvent::GetString方法的典型用法代码示例。如果您正苦于以下问题:C++ wxFindDialogEvent::GetString方法的具体用法?C++ wxFindDialogEvent::GetString怎么用?C++ wxFindDialogEvent::GetString使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类wxFindDialogEvent
的用法示例。
在下文中一共展示了wxFindDialogEvent::GetString方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: OnFindDialog
void wxSTEditorNotebook::OnFindDialog(wxFindDialogEvent &event)
{
wxSTERecursionGuard guard(m_rGuard_OnFindDialog);
if (guard.IsInside()) return;
// currently opened page is where the search starts
wxSTEditor *editor = GetEditor();
if (!editor)
return;
// just search the given page by letting the editor handle it
if (!STE_HASBIT(event.GetFlags(), STE_FR_ALLDOCS))
{
editor->HandleFindDialogEvent(event);
return;
}
wxEventType eventType = event.GetEventType();
wxString findString = event.GetFindString();
long flags = event.GetFlags();
editor->SetFindString(findString, true);
editor->SetFindFlags(flags, true);
STE_TextPos pos = editor->GetCurrentPos();
if ((eventType == wxEVT_COMMAND_FIND) && STE_HASBIT(flags, STE_FR_WHOLEDOC))
pos = -1;
// we have to move cursor to start of word if last backwards search suceeded
// note cmp is ok since regexp doesn't handle searching backwards
if ((eventType == wxEVT_COMMAND_FIND_NEXT) && !STE_HASBIT(flags, wxFR_DOWN))
{
if ((labs(editor->GetSelectionEnd() - editor->GetSelectionStart()) == long(findString.Length()))
&& (editor->GetFindReplaceData()->StringCmp(findString, editor->GetSelectedText(), flags)))
pos -= (STE_TextPos)findString.Length() + 1; // doesn't matter if it matches or not, skip it
}
if (eventType == wxEVT_STEFIND_GOTO)
{
wxString findAllString(event.GetString());
wxString fileName;
int line_number = 0;
int line_start_pos = 0;
int string_start_pos = 0;
int string_length = 0;
wxString lineText;
bool ok = wxSTEditorFindReplaceData::ParseFindAllString(findAllString,
fileName,
line_number, line_start_pos,
string_start_pos, string_length,
lineText);
int page = wxNOT_FOUND;
if (ok)
page = FindEditorPageByFileName(fileName);
if (page != wxNOT_FOUND)
{
SetSelection(page);
GetEditor(page)->HandleFindDialogEvent(event);
}
}
else if ((eventType == wxEVT_COMMAND_FIND) || (eventType == wxEVT_COMMAND_FIND_NEXT))
{
if (STE_HASBIT(flags, STE_FR_FINDALL|STE_FR_BOOKMARKALL))
{
// sum up all of the find strings in all editors
int n, count = (int)GetPageCount();
for (n = 0; n < count; n++)
{
wxSTEditor* e = GetEditor(n);
if (e)
e->HandleFindDialogEvent(event);
}
}
else
{
if ((eventType == wxEVT_COMMAND_FIND) && STE_HASBIT(flags, STE_FR_WHOLEDOC))
pos = 0;
pos = FindString(findString, pos, flags, STE_FINDSTRING_SELECT|STE_FINDSTRING_GOTO);
if (pos >= 0)
{
//editor->SetFocus();
}
else
{
wxBell(); // bell ok to signify no more occurances?
}
}
}
else if (eventType == wxEVT_COMMAND_FIND_REPLACE)
{
if (!editor->GetFindReplaceData()->StringCmp(findString, editor->GetSelectedText(), flags))
//.........这里部分代码省略.........