void ReopenEditorListView::DoOpen(wxString fname) { EditorManager* em = Manager::Get()->GetEditorManager(); if(!fname.IsEmpty() && !em->IsOpen(fname)) { em->Open(fname); } }
// ---------------------------------------------------------------------------- void JumpTracker::OnMenuJumpNext(wxCommandEvent &event) // ---------------------------------------------------------------------------- { #if defined(LOGGING) //LOGIT( _T("JT [%s]"), _T("OnMenuJumpNext")); #endif m_bJumpInProgress = true; do { int count = m_ArrayOfJumpData.GetCount(); if (not count) break; if ( count > 1 ) m_Cursor += 1; if (m_Cursor > (int)count-1) m_Cursor = 0; EditorManager* edmgr = Manager::Get()->GetEditorManager(); int cursor = m_Cursor; wxString edFilename; long edPosn; bool found = false; for (int i = 0; i<count; ++i, ++cursor) { if (cursor > count-1) cursor = 0; JumpData& jumpNext = m_ArrayOfJumpData.Item(cursor); edFilename = jumpNext.GetFilename(); edPosn = jumpNext.GetPosition(); if (not edmgr->IsOpen(edFilename)) continue; found = true; break; } if (not found) break; m_Cursor = cursor; #if defined(LOGGING) LOGIT( _T("JT OnMenuJumpNext [%s][%ld]curs[%d]"), edFilename.c_str(), edPosn, m_Cursor); #endif // activate editor EditorBase* eb = edmgr->GetEditor(edFilename); if (not eb) break; edmgr->SetActiveEditor(eb); // position to editor line cbEditor* cbed = edmgr->GetBuiltinEditor(eb); if (not cbed) break; cbed->GotoLine(cbed->GetControl()->LineFromPosition(edPosn)); //center on scrn cbed->GetControl()->GotoPos(edPosn); }while(0); m_bJumpInProgress = false; return; }
void ReopenEditorListView::DoOpen(wxArrayString fnames) { EditorManager* em = Manager::Get()->GetEditorManager(); for(size_t i = 0; i < fnames.GetCount(); ++i) { if(!fnames[i].IsEmpty() && !em->IsOpen(fnames[i])) { em->Open(fnames[i]); } } }
void CodeChecker::OnProcessTerminate(wxProcessEvent &e) { if(m_processqueue.empty()) return; wxString file(m_processqueue.begin()->file); wxString out=m_process->GetStdout(); wxString err=m_process->GetStderr(); LangData &ld=m_commands[m_processqueue.begin()->lang]; wxRegEx re(ld.regexp,wxRE_ADVANCED); wxString data=out+err; if(m_issues.find(file)!=m_issues.end()) m_issues[file].clear(); while(re.Matches(data)) { long linenum; if(re.GetMatch(data,ld.regexp_indline).ToLong(&linenum)) { CodeIssue ci; ci.line=linenum-1; ci.msg=re.GetMatch(data,ld.regexp_indmsg);//_T(""); m_issues[file].push_back(ci); } size_t start,end; re.GetMatch(&start,&end,0); data=data.Mid(end); } LogMessage(_("Syntax Check Results")); LogMessage(out); LogMessage(err); EditorManager* em = Manager::Get()->GetEditorManager(); EditorBase* eb = em->IsOpen(file); if (eb && eb->IsBuiltinEditor()) { cbEditor *ed=(cbEditor *)eb; cbStyledTextCtrl *control=ed->GetControl(); // control->MarkerDefine(CHECK_MARKER, CHECK_STYLE); // control->MarkerSetForeground(CHECK_MARKER, wxColour(0xFF, 0xA0, 0xA0)); // control->MarkerSetBackground(CHECK_MARKER, wxColour(0xA0, 0xA0, 0xA0)); control->MarkerDeleteAll(CHECK_MARKER); CodeIssues::iterator iend=m_issues[file].end(); for(CodeIssues::iterator it=m_issues[file].begin();it!=iend;++it) control->MarkerAdd(it->line,CHECK_MARKER); } //TODO: retrieve a handle to the editor control //TODO: Parse stdout/stderr //TODO: Define the marker (if not defined already) // // if(!control->LineHasMarker(CHECK_MARKER,linenum)) // control->MarkerAdd(CHECK_MARKER,linenum)); m_processqueue.pop_front(); }
void ReopenEditor::OnReopenEditor(wxCommandEvent& /*event*/) { if(m_pListLog->GetItemsCount() > 0) { EditorManager* em = Manager::Get()->GetEditorManager(); wxString fname = m_pListLog->GetFilename(0); if(!fname.IsEmpty() && !em->IsOpen(fname)) { em->Open(fname); } } }
bool PromptSaveOpenFile(wxString message, wxFileName path) { EditorManager* em = Manager::Get()->GetEditorManager(); EditorBase *eb=em->IsOpen(path.GetFullPath()); if(eb) { if(eb->GetModified()) switch(cbMessageBox(message,_("Save File?"),wxYES_NO|wxCANCEL)) { case wxYES: if(!eb->Save()) cbMessageBox(_("Save failed - proceeding with unsaved file")); case wxNO: eb->Close(); return true; case wxCANCEL: return false; } } return true; }