bool ThreadSearchView::UpdatePreview(const wxString& file, long line) { bool success(true); if ( line > 0 ) { // Line display begins at 1 but line index at 0 line--; } // Disable read only m_pSearchPreview->Enable(false); m_pSearchPreview->SetReadOnly(false); // Loads file if different from current loaded wxFileName filename(file); if ( (m_PreviewFilePath != file) || (m_PreviewFileDate != filename.GetModificationTime()) ) { ConfigManager* mgr = Manager::Get()->GetConfigManager(_T("editor")); // Remember current file path and modification time m_PreviewFilePath = file; m_PreviewFileDate = filename.GetModificationTime(); EncodingDetector enc(m_PreviewFilePath, false); success = enc.IsOK(); m_pSearchPreview->SetText(enc.GetWxStr()); // Colorize cbEditor::ApplyStyles(m_pSearchPreview); EditorColourSet EdColSet; EdColSet.Apply(EdColSet.GetLanguageForFilename(m_PreviewFilePath), m_pSearchPreview, false, true); SetFoldingIndicator(mgr->ReadInt(_T("/folding/indicator"), 2)); UnderlineFoldedLines(mgr->ReadBool(_T("/folding/underline_folded_line"), true)); } if ( success == true ) { // Display the selected line int onScreen = m_pSearchPreview->LinesOnScreen() >> 1; m_pSearchPreview->GotoLine(line - onScreen); m_pSearchPreview->GotoLine(line + onScreen); m_pSearchPreview->GotoLine(line); m_pSearchPreview->EnsureVisible(line); int startPos = m_pSearchPreview->PositionFromLine(line); int endPos = m_pSearchPreview->GetLineEndPosition(line); m_pSearchPreview->SetSelectionVoid(endPos, startPos); }
FInfoWindow::FInfoWindow() :wxPanel(Manager::Get()->GetAppWindow()) { //ctor m_pView = new cbStyledTextCtrl(this, wxID_ANY, wxDefaultPosition, wxSize(1,1)); wxBoxSizer* sizer = new wxBoxSizer(wxVERTICAL); sizer->Add(m_pView, 1, wxEXPAND|wxALIGN_CENTER_VERTICAL, 0); SetSizer(sizer); sizer->Fit(this); sizer->SetSizeHints(this); m_pView->SetReadOnly(true); // Colorize cbEditor::ApplyStyles(m_pView); EditorColourSet edColSet; edColSet.Apply(edColSet.GetLanguageForFilename(_T("name.f90")), m_pView); SetFoldingIndicator(); CodeBlocksLogEvent evtAdd(cbEVT_ADD_LOG_WINDOW, this, _("Fortran info")); Manager::Get()->ProcessEvent(evtAdd); }