本文整理汇总了C++中LEditor::CopyAllowLine方法的典型用法代码示例。如果您正苦于以下问题:C++ LEditor::CopyAllowLine方法的具体用法?C++ LEditor::CopyAllowLine怎么用?C++ LEditor::CopyAllowLine使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类LEditor
的用法示例。
在下文中一共展示了LEditor::CopyAllowLine方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ProcessCommandEvent
//------------------------------------
// Handle copy events
//------------------------------------
void EditHandler::ProcessCommandEvent(wxWindow *owner, wxCommandEvent &event)
{
wxUnusedVar(event);
LEditor *editor = (LEditor*)owner;
OptionsConfigPtr options = editor->GetOptions();
// hide completion box
editor->HideCompletionBox();
bool isSelectionEmpty = editor->GetSelectedText().IsEmpty();
if (event.GetId() == wxID_COPY) {
// reset the 'full line' copy/cut flag
editor->SetFullLineCopyCut(false);
if ( isSelectionEmpty && options->HasOption( OptionsConfig::Opt_CopyNothing) ) {
// do nothing
} else if ( isSelectionEmpty && options->HasOption( OptionsConfig::Opt_CopyLineIfLineNotEmpty ) ) {
// Copy the line content only when the caret line is not empty
int lineNumber = editor->GetCurrentLine();
wxString lineContent = editor->GetLine(lineNumber);
if ( !lineContent.Trim().Trim(false).IsEmpty() ) {
editor->CopyAllowLine();
editor->SetFullLineCopyCut(true);
}
} else if ( isSelectionEmpty ) {
// default behavior
editor->CopyAllowLine();
editor->SetFullLineCopyCut(true);
} else {
editor->Copy();
}
} else if (event.GetId() == wxID_CUT) {
// reset the 'full line' copy/cut flag
editor->SetFullLineCopyCut(false);
if ( isSelectionEmpty && options->HasOption( OptionsConfig::Opt_CopyNothing) ) {
// do nothing
} else if ( isSelectionEmpty && options->HasOption( OptionsConfig::Opt_CopyLineIfLineNotEmpty ) ) {
// Copy the line content only when the caret line is not empty
int lineNumber = editor->GetCurrentLine();
wxString lineContent = editor->GetLine(lineNumber);
if ( !lineContent.Trim().Trim(false).IsEmpty() ) {
editor->CopyAllowLine();
editor->LineDelete();
editor->SetFullLineCopyCut(true);
}
} else if ( isSelectionEmpty ) {
// default behavior
editor->CopyAllowLine();
editor->LineDelete();
editor->SetFullLineCopyCut(true);
} else {
editor->Cut();
}
} else if (event.GetId() == wxID_PASTE) {
if ( editor->IsFullLineCopyCut() ) {
// paste one line above the caret
editor->PasteLineAbove();
} else {
// paste at caret position
editor->Paste();
}
} else if (event.GetId() == wxID_UNDO) {
if (editor->GetCommandsProcessor().CanUndo()) {
editor->Undo();
editor->GetCommandsProcessor().DecrementCurrentCommand();
}
} else if (event.GetId() == wxID_REDO) {
if (editor->GetCommandsProcessor().CanRedo()) {
editor->Redo();
editor->GetCommandsProcessor().IncrementCurrentCommand();
}
} else if (event.GetId() == XRCID("label_current_state")) {
wxString label = wxGetTextFromUser("What would you like to call the current state?", "Label current state", "", editor);
if (!label.empty()) {
editor->GetCommandsProcessor().SetUserLabel(label);
}
} else if (event.GetId() == wxID_SELECTALL) {
editor->SelectAll();
} else if (event.GetId() == wxID_DUPLICATE) {
editor->SelectionDuplicate();
//.........这里部分代码省略.........