function EditorSetSelectionFromOffsets(selRanges) { var rangeArr, start, end, i, node, offset; var selection = GetCurrentEditor().editorSelection; selection.clearSelection(); for (i = 0; i < selRanges.length; i++) { rangeArr = selRanges[i]; start = rangeArr[0]; end = rangeArr[1]; var range = GetCurrentEditor().editorDocument.createRange(); node = EditorGetNodeAtOffsets(start[0]); offset = start[1]; range.setStart(node, offset); node = EditorGetNodeAtOffsets(end[0]); offset = end[1]; range.setEnd(node, offset); selection.addRange(range); } }
bool GUI::LoadMap(FileName name) { if(GetCurrentEditor() && !GetCurrentMap().hasChanged() && !GetCurrentMap().hasFile()) g_gui.CloseCurrentEditor(); Editor* editor; try { editor = newd Editor(copybuffer, name); } catch(std::runtime_error& e) { PopupDialog(root, wxT("Error!"), wxString(e.what(), wxConvUTF8), wxOK); return false; } MapTab* mapTab = newd MapTab(tabbook, editor); mapTab->OnSwitchEditorMode(mode); root->AddRecentFile(name); mapTab->GetView()->FitToMap(); UpdateTitle(); ListDialog(wxT("Map loader errors"), mapTab->GetMap()->getWarnings()); root->DoQueryImportCreatures(); FitViewToMap(mapTab); root->UpdateMenubar(); return true; }
void GUI::StartPasting() { if(GetCurrentEditor()) { pasting = true; secondary_map = ©buffer.getBufferMap(); } }
void GUI::SaveCurrentMap(FileName filename, bool showdialog) { Editor* editor = GetCurrentEditor(); if(editor) editor->saveMap(filename, showdialog); UpdateTitle(); root->UpdateMenubar(); root->Refresh(); }
function EditorGetNodeAtOffsets(offsets) { var node = null; var i; node = GetCurrentEditor().editorDocument; for (i = 0; i < offsets.length; i++) { node = node.childNodes[offsets[i]]; } return node; }
bool GUI::ShouldSave() { const Map& map = GetCurrentMap(); if(map.hasChanged()) { if(map.getTileCount() == 0) { Editor* editor = GetCurrentEditor(); ASSERT(editor); return editor->actionQueue->canUndo(); } return true; } return false; }
bool GUI::DoRedo() { Editor* editor = GetCurrentEditor(); if(editor && editor->actionQueue->canRedo()) { editor->actionQueue->redo(); if(editor->selection.size() > 0) SetSelectionMode(); SetStatusText(wxT("Redo action")); UpdateMinimap(); root->UpdateMenubar(); root->Refresh(); return true; } return false; }
Map& GUI::GetCurrentMap() { Editor* editor = GetCurrentEditor(); ASSERT(editor); return editor->map; }
bool GUI::CanRedo() { Editor* editor = GetCurrentEditor(); return (editor && editor->actionQueue->canRedo()); }