void WorkspaceWork::ToggleFileSpeed() { if(IsActiveFile()) { ActiveFile().optimize_speed = !ActiveFile().optimize_speed; SaveLoadPackageNS(); } }
void WorkspaceWork::TogglePCH() { if(IsActiveFile()) { ActiveFile().pch = !ActiveFile().pch; SaveLoadPackageNS(); } }
void Ide::UpdateFormat(CodeEditor& editor) { if(!IsActiveFile() || ActiveFile().tabsize <= 0) editor.TabSize(editortabsize); editor.IndentSpaces(indent_spaces); editor.IndentAmount(indent_amount); editor.ShowTabs(show_tabs); editor.ShowLineEndings(show_tabs); editor.WarnWhiteSpace(warnwhitespace); editor.NoParenthesisIndent(no_parenthesis_indent); editor.HiliteScope(hilite_scope); editor.HiliteBracket(hilite_bracket); editor.HiliteIfDef(hilite_ifdef); editor.BarLine(barline); editor.HiliteIfEndif(hilite_if_endif); editor.ThousandsSeparator(thousands_separator); editor.ShowCurrentLine(hline ? HighlightSetup::GetHlStyle(HighlightSetup::SHOW_LINE).color : (Color)Null); editor.LineNumbers(line_numbers); editor.AutoEnclose(auto_enclose); editor.MarkLines(mark_lines); editor.BorderColumn(bordercolumn, bordercolor); editor.PersistentFindReplace(persistent_find_replace); editor.FindReplaceRestorePos(find_replace_restore_pos); editor.Refresh(); }
void Ide::EditorFontScroll(int d) { if(!IsActiveFile()) return; Package::File& f = ActiveFile(); if(f.font != 0 || editorsplit.GetZoom() < 0) return; int h = editorfont.GetCy(); int q = editorfont.GetHeight(); while(editorfont.GetCy() == h && (d < 0 ? editorfont.GetCy() > 5 : editorfont.GetCy() < 40)) editorfont.Height(q += d); editor.SetFont(editorfont); editor.EditorBarLayout(); }
void WorkspaceWork::SaveLoadPackageNS(bool sel) { SavePackage(); String p = actualpackage; String f; if(IsActiveFile()) f = ActiveFile(); int psc = package.GetSbPos(); int fsc = filelist.GetSbPos(); ScanWorkspace(); package.SetSbPos(psc); package.FindSetCursor(p); if (sel) { filelist.SetSbPos(fsc); filelist.FindSetCursor(f); } }
void Ide::ToggleReadOnly() { if(CanToggleReadOnly() && IsActiveFile()) { #ifdef PLATFORM_WIN32 FindFile ff(editfile); if(ff && ff.IsReadOnly()) { dword attrib = GetFileAttributes(editfile); attrib &= ~FILE_ATTRIBUTE_READONLY; SetFileAttributes(editfile, attrib); } #endif editor.SetEditable(editor.IsReadOnly()); ActiveFile().readonly = editor.IsReadOnly(); SavePackage(); MakeTitle(); SetBar(); } }
void WorkspaceWork::FileMenu(Bar& menu) { bool sel = filelist.IsCursor() && filelist[filelist.GetCursor()].isdir; bool isaux = IsAux(); if(isaux) InsertSpecialMenu(menu); else { menu.Add(!isaux, "Insert package directory file(s)", THISBACK1(AddFile, PACKAGE_FILE)) .Help("Insert file relative to current package"); menu.Add(!isaux, "Insert topic++ group", THISBACK(AddTopicGroup)); menu.Add("Special", THISBACK(SpecialFileMenu)) .Help("Less frequently used methods of adding files to the package"); } menu.Add("Insert separator", THISBACK(AddSeparator)) .Help("Insert text separator line"); menu.Separator(); if(!organizer) { if(sel) menu.Add(closed.Find(GetActiveSepfo()) < 0 ? "Close group\t[double-click]" : "Open group\t[double-click]", THISBACK(Group)); menu.Add("Open all groups", THISBACK(OpenAllGroups)); menu.Add("Close all groups", THISBACK(CloseAllGroups)); menu.Separator(); BuildFileMenu(menu); menu.Separator(); } menu.Add("Rename...", THISBACK(RenameFile)) .Help("Rename file / separator / topic group"); menu.Add("Remove", THISBACK(RemoveFile)) .Key(organizer ? K_DELETE : K_ALT_DELETE) .Help("Remove file / separator / topic group from package"); menu.Add(filelist.IsCursor() && !sel, "Delete", THISBACK(DelFile)) .Help("Remove file / topic group reference from package & delete file / folder on disk"); menu.Separator(); menu.Add("Open File Directory",THISBACK(OpenFileFolder)); menu.Add("Copy File Path", callback1(WriteClipboardText, GetActiveFilePath())); menu.Separator(); menu.Add(filelist.GetCursor() > 0, "Move up", THISBACK1(MoveFile, -1)) .Key(organizer ? K_CTRL_UP : K_SHIFT_CTRL_UP) .Help("Move current file one position towards package beginning"); menu.Add(filelist.IsCursor() && filelist.GetCursor() < filelist.GetCount() - 1, "Move down", THISBACK1(MoveFile, 1)) .Key(organizer ? K_CTRL_DOWN : K_SHIFT_CTRL_DOWN) .Help("Move current file one position towards package end"); if(IsActiveFile()) { menu.Separator(); String p = GetActiveFilePath(); String ext = GetFileExt(p); if(ext == ".tpp" && IsFolder(p)) { menu.Add("Includeable topic group", THISBACK(ToggleIncludeable)) .Check(FileExists(AppendFileName(p, "all.i"))); if(IsSvnDir(p)) menu.Add("Svn Synchronize " + p, THISBACK1(SyncSvnDir, p)); } else { menu.Add("Optimize for speed", THISBACK(ToggleFileSpeed)) .Check(ActiveFile().optimize_speed); if(IsHeaderExt(ext)) menu.Add("Precompile header", THISBACK(TogglePCH)) .Check(ActiveFile().pch); } } FilePropertiesMenu(menu); }