First shot at search
This commit is contained in:
parent
289d52489b
commit
bc0f97dd0b
@ -475,7 +475,6 @@ void MainFrame::OnFindDialog(wxFindDialogEvent &event)
|
|||||||
|
|
||||||
// Position after search
|
// Position after search
|
||||||
int new_pos = 0;
|
int new_pos = 0;
|
||||||
int new_line = 1;
|
|
||||||
|
|
||||||
// Send find flags to editor control
|
// Send find flags to editor control
|
||||||
editor->SetSearchFlags(stc_flags);
|
editor->SetSearchFlags(stc_flags);
|
||||||
@ -484,27 +483,44 @@ void MainFrame::OnFindDialog(wxFindDialogEvent &event)
|
|||||||
{
|
{
|
||||||
wxLogDebug("wxEVT_FIND");
|
wxLogDebug("wxEVT_FIND");
|
||||||
|
|
||||||
editor->SetAnchor(0);
|
/*if (editor->GetCurrentPos() < 1)
|
||||||
|
{
|
||||||
|
editor->GotoPos(1);
|
||||||
|
}*/
|
||||||
|
|
||||||
editor->SearchAnchor();
|
editor->SearchAnchor();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (type == wxEVT_FIND_NEXT || type == wxEVT_FIND)
|
if (type == wxEVT_FIND_NEXT || type == wxEVT_FIND)
|
||||||
{
|
{
|
||||||
if ((fr_flags & wxFR_DOWN) != 0)
|
if (type == wxEVT_FIND_NEXT)
|
||||||
{
|
{
|
||||||
new_pos = editor->SearchNext(stc_flags, event.GetFindString());
|
wxLogDebug("wxEVT_FIND_NEXT");
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
new_pos = editor->SearchPrev(stc_flags, event.GetFindString());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
new_pos = ((fr_flags & wxFR_DOWN) != 0)
|
||||||
|
? editor->SearchNext(stc_flags, event.GetFindString())
|
||||||
|
: editor->SearchPrev(stc_flags, event.GetFindString());
|
||||||
|
|
||||||
|
int sel_start = editor->GetSelectionStart();
|
||||||
|
int sel_end = editor->GetSelectionEnd();
|
||||||
|
|
||||||
if (new_pos > 0)
|
if (new_pos > 0)
|
||||||
{
|
{
|
||||||
new_line = editor->LineFromPosition(new_pos);
|
if ((fr_flags & wxFR_DOWN) != 0)
|
||||||
editor->ScrollToLine(new_line);
|
{
|
||||||
//editor->SetAnchor(new_pos);
|
editor->GotoPos(sel_end + 1);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
((sel_start - 1) > 0)
|
||||||
|
? editor->GotoPos(sel_start - 1)
|
||||||
|
: editor->GotoPos(sel_start);
|
||||||
|
}
|
||||||
|
|
||||||
editor->SearchAnchor();
|
editor->SearchAnchor();
|
||||||
|
editor->SetSelectionStart(sel_start);
|
||||||
|
editor->SetSelectionEnd(sel_end);
|
||||||
}
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
@ -61,11 +61,11 @@ void TyroMenu::SetupMainMenus()
|
|||||||
editMenu->Append(wxID_COPY, "&Copy\tCtrl+C", "Copy selected text");
|
editMenu->Append(wxID_COPY, "&Copy\tCtrl+C", "Copy selected text");
|
||||||
editMenu->Append(wxID_PASTE, "&Paste\tCtrl+V", "Paste contents of clipboard");
|
editMenu->Append(wxID_PASTE, "&Paste\tCtrl+V", "Paste contents of clipboard");
|
||||||
//editMenu->Append(wxID_DELETE, "&Delete\tDel");
|
//editMenu->Append(wxID_DELETE, "&Delete\tDel");
|
||||||
//editMenu->AppendSeparator();
|
editMenu->AppendSeparator();
|
||||||
//editMenu->Append(wxID_FIND, "&Find\tCtrl+F");
|
editMenu->Append(wxID_FIND, "&Find\tCtrl+F");
|
||||||
//editMenu->Append(wxID_REPLACE, "&Replace\tCtrl+R");
|
//editMenu->Append(wxID_REPLACE, "&Replace\tCtrl+R");
|
||||||
|
|
||||||
//editMenu->AppendSeparator();
|
editMenu->AppendSeparator();
|
||||||
editMenu->Append(wxID_SELECTALL, "Select All\tCtrl+A", "Select all the text in the current document");
|
editMenu->Append(wxID_SELECTALL, "Select All\tCtrl+A", "Select all the text in the current document");
|
||||||
editMenu->AppendSeparator();
|
editMenu->AppendSeparator();
|
||||||
editMenu->Append(wxID_PREFERENCES, "&Preferences\tCtrl+P");
|
editMenu->Append(wxID_PREFERENCES, "&Preferences\tCtrl+P");
|
||||||
@ -111,6 +111,8 @@ void TyroMenu::EnableEditControls(bool enable)
|
|||||||
this->editMenu->Enable(wxID_COPY, enable);
|
this->editMenu->Enable(wxID_COPY, enable);
|
||||||
this->editMenu->Enable(wxID_PASTE, enable);
|
this->editMenu->Enable(wxID_PASTE, enable);
|
||||||
this->editMenu->Enable(wxID_SELECTALL, enable);
|
this->editMenu->Enable(wxID_SELECTALL, enable);
|
||||||
|
this->editMenu->Enable(wxID_FIND, enable);
|
||||||
|
//this->editMenu->Enable(wxID_REPLACE, enable);
|
||||||
|
|
||||||
// Enable/disable top level menus
|
// Enable/disable top level menus
|
||||||
this->EnableEntireMenu(myVIEW_MENU, this->viewMenu, enable);
|
this->EnableEntireMenu(myVIEW_MENU, this->viewMenu, enable);
|
||||||
|
Loading…
Reference in New Issue
Block a user