本文整理汇总了C++中LEditor::Create方法的典型用法代码示例。如果您正苦于以下问题:C++ LEditor::Create方法的具体用法?C++ LEditor::Create怎么用?C++ LEditor::Create使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类LEditor
的用法示例。
在下文中一共展示了LEditor::Create方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: OpenFile
LEditor* MainBook::OpenFile(const wxString& file_name,
const wxString& projectName,
int lineno,
long position,
OF_extra extra /*=OF_AddJump*/,
bool preserveSelection /*=true*/)
{
wxFileName fileName(file_name);
fileName.MakeAbsolute();
#ifdef __WXMSW__
// Handle cygwin paths
wxString curpath = fileName.GetFullPath();
static wxRegEx reCygdrive("/cygdrive/([A-Za-z])");
if(reCygdrive.Matches(curpath)) {
// Replace the /cygdrive/c with volume C:
wxString volume = reCygdrive.GetMatch(curpath, 1);
volume << ":";
reCygdrive.Replace(&curpath, volume);
fileName = curpath;
}
#endif
if(!IsFileExists(fileName)) {
wxLogMessage(wxT("Failed to open: %s: No such file or directory"), fileName.GetFullPath().c_str());
return NULL;
}
if(FileExtManager::GetType(fileName.GetFullName()) == FileExtManager::TypeBmp) {
// a bitmap file, open it using an image viewer
DoOpenImageViewer(fileName);
return NULL;
}
wxString projName = projectName;
if(projName.IsEmpty()) {
// try to match a project name to the file. otherwise, CC may not work
projName = ManagerST::Get()->GetProjectNameByFile(fileName.GetFullPath());
}
LEditor* editor = GetActiveEditor(true);
BrowseRecord jumpfrom = editor ? editor->CreateBrowseRecord() : BrowseRecord();
editor = FindEditor(fileName.GetFullPath());
if(editor) {
editor->SetProject(projName);
} else if(fileName.IsOk() == false) {
wxLogMessage(wxT("Invalid file name: ") + fileName.GetFullPath());
return NULL;
} else if(!fileName.FileExists()) {
wxLogMessage(wxT("File: ") + fileName.GetFullPath() + wxT(" does not exist!"));
return NULL;
} else {
// A Nice trick: hide the notebook, open the editor
// and then show it
bool hidden(false);
if(m_book->GetPageCount() == 0) hidden = GetSizer()->Hide(m_book);
editor = new LEditor(m_book);
editor->Create(projName, fileName);
int sel = m_book->GetSelection();
if((extra & OF_PlaceNextToCurrent) && (sel != wxNOT_FOUND)) {
AddPage(editor, fileName.GetFullName(), fileName.GetFullPath(), wxNullBitmap, false, sel + 1);
} else {
AddPage(editor, fileName.GetFullName(), fileName.GetFullPath());
}
editor->SetSyntaxHighlight();
// mark the editor as read only if neede
MarkEditorReadOnly(editor);
// SHow the notebook
if(hidden) GetSizer()->Show(m_book);
if(position == wxNOT_FOUND && lineno == wxNOT_FOUND && editor->GetContext()->GetName() == wxT("C++")) {
// try to find something interesting in the file to put the caret at
// for now, just skip past initial blank lines and comments
for(lineno = 0; lineno < editor->GetLineCount(); lineno++) {
switch(editor->GetStyleAt(editor->PositionFromLine(lineno))) {
case wxSTC_C_DEFAULT:
case wxSTC_C_COMMENT:
case wxSTC_C_COMMENTDOC:
case wxSTC_C_COMMENTLINE:
case wxSTC_C_COMMENTLINEDOC:
continue;
}
// if we got here, it's a line to stop on
break;
}
if(lineno == editor->GetLineCount()) {
lineno = 1; // makes sure a navigation record gets saved
}
}
}
if(position != wxNOT_FOUND) {
//.........这里部分代码省略.........
示例2: fileName
LEditor *MainBook::OpenFile(const wxString &file_name, const wxString &projectName, int lineno, long position, OF_extra extra/*=OF_AddJump*/, bool preserveSelection /*=true*/)
{
wxFileName fileName(file_name);
fileName.MakeAbsolute();
if(IsFileExists(fileName) == false) {
wxLogMessage(wxT("Failed to open: %s: No such file or directory"), fileName.GetFullPath().c_str());
return NULL;
}
wxString projName = projectName;
if (projName.IsEmpty()) {
// try to match a project name to the file. otherwise, CC may not work
projName = ManagerST::Get()->GetProjectNameByFile(fileName.GetFullPath());
}
LEditor* editor = GetActiveEditor(true);
BrowseRecord jumpfrom = editor ? editor->CreateBrowseRecord() : BrowseRecord();
editor = FindEditor(fileName.GetFullPath());
if (editor) {
editor->SetProject(projName);
} else if (fileName.IsOk() == false) {
wxLogMessage(wxT("Invalid file name: ") + fileName.GetFullPath());
return NULL;
} else if (!fileName.FileExists()) {
wxLogMessage(wxT("File: ") + fileName.GetFullPath() + wxT(" does not exist!"));
return NULL;
} else {
// A Nice trick: hide the notebook, open the editor
// and then show it
bool hidden(false);
if(m_book->GetPageCount() == 0)
hidden = GetSizer()->Hide(m_book);
editor = new LEditor(m_book);
editor->Create(projName, fileName);
// If we're here from 'Swap Header/Implementation file', insert the new page next door
#if !CL_USE_NATIVEBOOK
size_t sel = m_book->GetVisibleEditorIndex();
#else
size_t sel = (size_t)m_book->GetSelection();
#endif
if ((extra & OF_PlaceNextToCurrent) && (sel != Notebook::npos)) {
AddPage(editor, fileName.GetFullName(), wxNullBitmap, false, sel+1);
} else {
AddPage(editor, fileName.GetFullName());
}
editor->SetSyntaxHighlight();
// mark the editor as read only if needed
MarkEditorReadOnly(editor, IsFileReadOnly(editor->GetFileName()));
// SHow the notebook
if(hidden)
GetSizer()->Show(m_book);
if (position == wxNOT_FOUND && lineno == wxNOT_FOUND && editor->GetContext()->GetName() == wxT("C++")) {
// try to find something interesting in the file to put the caret at
// for now, just skip past initial blank lines and comments
for (lineno = 0; lineno < editor->GetLineCount(); lineno++) {
switch (editor->GetStyleAt(editor->PositionFromLine(lineno))) {
case wxSTC_C_DEFAULT:
case wxSTC_C_COMMENT:
case wxSTC_C_COMMENTDOC:
case wxSTC_C_COMMENTLINE:
case wxSTC_C_COMMENTLINEDOC:
continue;
}
// if we got here, it's a line to stop on
break;
}
if (lineno == editor->GetLineCount()) {
lineno = 1; // makes sure a navigation record gets saved
}
}
}
if (position != wxNOT_FOUND) {
editor->SetEnsureCaretIsVisible(position, preserveSelection);
} else if (lineno != wxNOT_FOUND) {
editor->SetEnsureCaretIsVisible(editor->PositionFromLine(lineno), preserveSelection);
}
if (m_reloadingDoRaise) {
if (GetActiveEditor() == editor) {
editor->SetActive();
} else {
SelectPage(editor);
}
}
// Add this file to the history. Don't check for uniqueness:
//.........这里部分代码省略.........