diff options
author | elfmz <fenix1905@tut.by> | 2021-12-31 00:27:16 +0300 |
---|---|---|
committer | elfmz <fenix1905@tut.by> | 2021-12-31 02:27:02 +0300 |
commit | a14dc1a81c797928d4f1b7d6a6b46ecc63f98308 (patch) | |
tree | c27c61ac33582bc4d469c6608cd042add388f230 /far2l/src/options.cpp | |
parent | d5f1bf245e96834d44390d1723cfef3dfbb1fb02 (diff) |
shuffle a bit far2l sources
Diffstat (limited to 'far2l/src/options.cpp')
-rw-r--r-- | far2l/src/options.cpp | 659 |
1 files changed, 659 insertions, 0 deletions
diff --git a/far2l/src/options.cpp b/far2l/src/options.cpp new file mode 100644 index 00000000..3c290e27 --- /dev/null +++ b/far2l/src/options.cpp @@ -0,0 +1,659 @@ +/* +options.cpp + +Фаровское горизонтальное меню (вызов hmenu.cpp с конкретными параметрами) +*/ +/* +Copyright (c) 1996 Eugene Roshal +Copyright (c) 2000 Far Group +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. The name of the authors may not be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#include "headers.hpp" + + +#include "options.hpp" +#include "lang.hpp" +#include "keys.hpp" +#include "hmenu.hpp" +#include "vmenu.hpp" +#include "filepanels.hpp" +#include "panel.hpp" +#include "chgmmode.hpp" +#include "filelist.hpp" +#include "hilight.hpp" +#include "cmdline.hpp" +#include "manager.hpp" +#include "ctrlobj.hpp" +#include "history.hpp" +#include "message.hpp" +#include "config.hpp" +#include "usermenu.hpp" +#include "datetime.hpp" +#include "setcolor.hpp" +#include "plist.hpp" +#include "filetype.hpp" +#include "Bookmarks.hpp" +#include "strmix.hpp" +#include "interf.hpp" +#include "codepage.hpp" + +enum enumMenus +{ + MENU_LEFT, + MENU_FILES, + MENU_COMMANDS, + MENU_OPTIONS, + MENU_RIGHT +}; + +enum enumLeftMenu +{ + MENU_LEFT_BRIEFVIEW, + MENU_LEFT_MEDIUMVIEW, + MENU_LEFT_FULLVIEW, + MENU_LEFT_WIDEVIEW, + MENU_LEFT_DETAILEDVIEW, + MENU_LEFT_DIZVIEW, + MENU_LEFT_LONGVIEW, + MENU_LEFT_OWNERSVIEW, + MENU_LEFT_LINKSVIEW, + MENU_LEFT_ALTERNATIVEVIEW, + MENU_LEFT_SEPARATOR1, + MENU_LEFT_INFOPANEL, + MENU_LEFT_TREEPANEL, + MENU_LEFT_QUICKVIEW, + MENU_LEFT_SEPARATOR2, + MENU_LEFT_SORTMODES, + MENU_LEFT_TOGGLEPANEL, + MENU_LEFT_REREAD, + MENU_LEFT_CHANGEDRIVE +}; + +//currently left == right + +enum enumFilesMenu +{ + MENU_FILES_VIEW, + MENU_FILES_EDIT, + MENU_FILES_COPY, + MENU_FILES_MOVE, + MENU_FILES_CREATEFOLDER, + MENU_FILES_DELETE, + MENU_FILES_WIPE, + MENU_FILES_SEPARATOR1, + MENU_FILES_ADD, + MENU_FILES_EXTRACT, + MENU_FILES_ARCHIVECOMMANDS, + MENU_FILES_SEPARATOR2, + MENU_FILES_ATTRIBUTES, + MENU_FILES_APPLYCOMMAND, + MENU_FILES_DESCRIBE, + MENU_FILES_SEPARATOR3, + MENU_FILES_SELECTGROUP, + MENU_FILES_UNSELECTGROUP, + MENU_FILES_INVERTSELECTION, + MENU_FILES_RESTORESELECTION +}; + +enum enumCommandsMenu +{ + MENU_COMMANDS_FINDFILE, + MENU_COMMANDS_HISTORY, + MENU_COMMANDS_VIDEOMODE, + MENU_COMMANDS_FINDFOLDER, + MENU_COMMANDS_VIEWHISTORY, + MENU_COMMANDS_FOLDERHISTORY, + MENU_COMMANDS_SEPARATOR1, + MENU_COMMANDS_SWAPPANELS, + MENU_COMMANDS_TOGGLEPANELS, + MENU_COMMANDS_COMPAREFOLDERS, + MENU_COMMANDS_SEPARATOR2, + MENU_COMMANDS_EDITUSERMENU, + MENU_COMMANDS_FILEASSOCIATIONS, + MENU_COMMANDS_FOLDERSHORTCUTS, + MENU_COMMANDS_FILTER, + MENU_COMMANDS_SEPARATOR3, + MENU_COMMANDS_PLUGINCOMMANDS, + MENU_COMMANDS_WINDOWSLIST, + MENU_COMMANDS_PROCESSLIST, + MENU_COMMANDS_HOTPLUGLIST +}; + +enum enumOptionsMenu +{ + MENU_OPTIONS_SYSTEMSETTINGS, + MENU_OPTIONS_PANELSETTINGS, + MENU_OPTIONS_INTERFACESETTINGS, + MENU_OPTIONS_LANGUAGES, + MENU_OPTIONS_PLUGINSCONFIG, + MENU_OPTIONS_PLUGINSMANAGERSETTINGS, + MENU_OPTIONS_DIALOGSETTINGS, + MENU_OPTIONS_VMENUSETTINGS, + MENU_OPTIONS_CMDLINESETTINGS, + MENU_OPTIONS_AUTOCOMPLETESETTINGS, +// MENU_OPTIONS_INFOPANELSETTINGS, + MENU_OPTIONS_SEPARATOR1, + MENU_OPTIONS_CONFIRMATIONS, + MENU_OPTIONS_FILEPANELMODES, + MENU_OPTIONS_FILEDESCRIPTIONS, + MENU_OPTIONS_FOLDERINFOFILES, + MENU_OPTIONS_SEPARATOR2, + MENU_OPTIONS_VIEWERSETTINGS, + MENU_OPTIONS_EDITORSETTINGS, + MENU_OPTIONS_CODEPAGESSETTINGS, + MENU_OPTIONS_SEPARATOR3, + MENU_OPTIONS_COLORS, + MENU_OPTIONS_FILESHIGHLIGHTING, + MENU_OPTIONS_NOTIFICATIONSSETTINGS, + MENU_OPTIONS_SEPARATOR4, + MENU_OPTIONS_SAVESETUP +}; + +void SetLeftRightMenuChecks(MenuDataEx *pMenu, bool bLeft) +{ + Panel *pPanel = bLeft?CtrlObject->Cp()->LeftPanel:CtrlObject->Cp()->RightPanel; + + switch (pPanel->GetType()) + { + case FILE_PANEL: + { + int MenuLine = pPanel->GetViewMode()-VIEW_0; + + if (MenuLine <= MENU_LEFT_ALTERNATIVEVIEW) + { + if (!MenuLine) + pMenu[MENU_LEFT_ALTERNATIVEVIEW].SetCheck(1); + else + pMenu[MenuLine-1].SetCheck(1); + } + } + break; + case INFO_PANEL: + pMenu[MENU_LEFT_INFOPANEL].SetCheck(1); + break; + case TREE_PANEL: + pMenu[MENU_LEFT_TREEPANEL].SetCheck(1); + break; + case QVIEW_PANEL: + pMenu[MENU_LEFT_QUICKVIEW].SetCheck(1); + break; + } +} + +void ShellOptions(int LastCommand,MOUSE_EVENT_RECORD *MouseEvent) +{ + MenuDataEx LeftMenu[]= + { + {MSG(MMenuBriefView),LIF_SELECTED,KEY_CTRL1}, + {MSG(MMenuMediumView),0,KEY_CTRL2}, + {MSG(MMenuFullView),0,KEY_CTRL3}, + {MSG(MMenuWideView),0,KEY_CTRL4}, + {MSG(MMenuDetailedView),0,KEY_CTRL5}, + {MSG(MMenuDizView),0,KEY_CTRL6}, + {MSG(MMenuLongDizView),0,KEY_CTRL7}, + {MSG(MMenuOwnersView),0,KEY_CTRL8}, + {MSG(MMenuLinksView),0,KEY_CTRL9}, + {MSG(MMenuAlternativeView),0,KEY_CTRL0}, + {L"",LIF_SEPARATOR,0}, + {MSG(MMenuInfoPanel),0,KEY_CTRLL}, + {MSG(MMenuTreePanel),0,KEY_CTRLT}, + {MSG(MMenuQuickView),0,KEY_CTRLQ}, + {L"",LIF_SEPARATOR,0}, + {MSG(MMenuSortModes),0,KEY_CTRLF12}, + {MSG(MMenuTogglePanel),0,KEY_CTRLF1}, + {MSG(MMenuReread),0,KEY_CTRLR}, + {MSG(MMenuChangeDrive),0,KEY_ALTF1} + }; + MenuDataEx FilesMenu[]= + { + {MSG(MMenuView),LIF_SELECTED,KEY_F3}, + {MSG(MMenuEdit),0,KEY_F4}, + {MSG(MMenuCopy),0,KEY_F5}, + {MSG(MMenuMove),0,KEY_F6}, + {MSG(MMenuCreateFolder),0,KEY_F7}, + {MSG(MMenuDelete),0,KEY_F8}, + {MSG(MMenuWipe),0,KEY_ALTDEL}, + {L"",LIF_SEPARATOR,0}, + {MSG(MMenuAdd),0,KEY_SHIFTF1}, + {MSG(MMenuExtract),0,KEY_SHIFTF2}, + {MSG(MMenuArchiveCommands),0,KEY_SHIFTF3}, + {L"",LIF_SEPARATOR,0}, + {MSG(MMenuAttributes),0,KEY_CTRLA}, + {MSG(MMenuApplyCommand),0,KEY_CTRLG}, + {MSG(MMenuDescribe),0,KEY_CTRLZ}, + {L"",LIF_SEPARATOR,0}, + {MSG(MMenuSelectGroup),0,KEY_ADD}, + {MSG(MMenuUnselectGroup),0,KEY_SUBTRACT}, + {MSG(MMenuInvertSelection),0,KEY_MULTIPLY}, + {MSG(MMenuRestoreSelection),0,KEY_CTRLM} + }; + MenuDataEx CmdMenu[]= + { + {MSG(MMenuFindFile),LIF_SELECTED,KEY_ALTF7}, + {MSG(MMenuHistory),0,KEY_ALTF8}, + {MSG(MMenuVideoMode),0,KEY_ALTF9}, + {MSG(MMenuFindFolder),0,KEY_ALTF10}, + {MSG(MMenuViewHistory),0,KEY_ALTF11}, + {MSG(MMenuFoldersHistory),0,KEY_ALTF12}, + {L"",LIF_SEPARATOR,0}, + {MSG(MMenuSwapPanels),0,KEY_CTRLU}, + {MSG(MMenuTogglePanels),0,KEY_CTRLO}, + {MSG(MMenuCompareFolders),0,0}, + {L"",LIF_SEPARATOR,0}, + {MSG(MMenuUserMenu),0,0}, + {MSG(MMenuFileAssociations),0,0}, + {MSG(MMenuBookmarks),0,0}, + {MSG(MMenuFilter),0,KEY_CTRLI}, + {L"",LIF_SEPARATOR,0}, + {MSG(MMenuPluginCommands),0,KEY_F11}, + {MSG(MMenuWindowsList),0,KEY_F12}, + {MSG(MMenuProcessList),0,KEY_CTRLW} + //, + //{MSG(MMenuHotPlugList),0,0} + }; + MenuDataEx OptionsMenu[]= + { + {MSG(MMenuSystemSettings),LIF_SELECTED,0}, + {MSG(MMenuPanelSettings),0,0}, + {MSG(MMenuInterface),0,0}, + {MSG(MMenuLanguages),0,0}, + {MSG(MMenuPluginsConfig),0,0}, + {MSG(MMenuPluginsManagerSettings),0,0}, + {MSG(MMenuDialogSettings),0,0}, + {MSG(MMenuVMenuSettings),0,0}, + {MSG(MMenuCmdlineSettings),0,0}, + {MSG(MMenuAutoCompleteSettings),0,0}, +// {MSG(MMenuInfoPanelSettings),0,0}, + {L"",LIF_SEPARATOR,0}, + {MSG(MMenuConfirmation),0,0}, + {MSG(MMenuFilePanelModes),0,0}, + {MSG(MMenuFileDescriptions),0,0}, + {MSG(MMenuFolderInfoFiles),0,0}, + {L"",LIF_SEPARATOR,0}, + {MSG(MMenuViewer),0,0}, + {MSG(MMenuEditor),0,0}, + {MSG(MMenuCodePages),0,0}, + {L"",LIF_SEPARATOR,0}, + {MSG(MMenuColors),0,0}, + {MSG(MMenuFilesHighlighting),0,0}, + {MSG(MMenuNotifications),0,0}, + {L"",LIF_SEPARATOR,0}, + {MSG(MMenuSaveSetup),0,KEY_SHIFTF9} + }; + MenuDataEx RightMenu[]= + { + {MSG(MMenuBriefView),LIF_SELECTED,KEY_CTRL1}, + {MSG(MMenuMediumView),0,KEY_CTRL2}, + {MSG(MMenuFullView),0,KEY_CTRL3}, + {MSG(MMenuWideView),0,KEY_CTRL4}, + {MSG(MMenuDetailedView),0,KEY_CTRL5}, + {MSG(MMenuDizView),0,KEY_CTRL6}, + {MSG(MMenuLongDizView),0,KEY_CTRL7}, + {MSG(MMenuOwnersView),0,KEY_CTRL8}, + {MSG(MMenuLinksView),0,KEY_CTRL9}, + {MSG(MMenuAlternativeView),0,KEY_CTRL0}, + {L"",LIF_SEPARATOR,0}, + {MSG(MMenuInfoPanel),0,KEY_CTRLL}, + {MSG(MMenuTreePanel),0,KEY_CTRLT}, + {MSG(MMenuQuickView),0,KEY_CTRLQ}, + {L"",LIF_SEPARATOR,0}, + {MSG(MMenuSortModes),0,KEY_CTRLF12}, + {MSG(MMenuTogglePanelRight),0,KEY_CTRLF2}, + {MSG(MMenuReread),0,KEY_CTRLR}, + {MSG(MMenuChangeDriveRight),0,KEY_ALTF2} + }; + HMenuData MainMenu[]= + { + {MSG(MMenuLeftTitle),1,LeftMenu,ARRAYSIZE(LeftMenu),L"LeftRightMenu"}, + {MSG(MMenuFilesTitle),0,FilesMenu,ARRAYSIZE(FilesMenu),L"FilesMenu"}, + {MSG(MMenuCommandsTitle),0,CmdMenu,ARRAYSIZE(CmdMenu),L"CmdMenu"}, + {MSG(MMenuOptionsTitle),0,OptionsMenu,ARRAYSIZE(OptionsMenu),L"OptMenu"}, + {MSG(MMenuRightTitle),0,RightMenu,ARRAYSIZE(RightMenu),L"LeftRightMenu"} + }; + static int LastHItem=-1,LastVItem=0; + int HItem,VItem; + + if (Opt.Policies.DisabledOptions) + { + for (size_t I = 0; I < ARRAYSIZE(OptionsMenu); ++I) + { + if (I >= MENU_OPTIONS_CONFIRMATIONS) + OptionsMenu[I].SetGrayed((Opt.Policies.DisabledOptions >> (I-1)) & 1); + else + OptionsMenu[I].SetGrayed((Opt.Policies.DisabledOptions >> I) & 1); + } + } + + SetLeftRightMenuChecks(LeftMenu, true); + SetLeftRightMenuChecks(RightMenu, false); + // Навигация по меню + { + HMenu HOptMenu(MainMenu,ARRAYSIZE(MainMenu)); + HOptMenu.SetHelp(L"Menus"); + HOptMenu.SetPosition(0,0,ScrX,0); + + if (LastCommand) + { + MenuDataEx *VMenuTable[] = {LeftMenu, FilesMenu, CmdMenu, OptionsMenu, RightMenu}; + int HItemToShow = LastHItem; + + if (HItemToShow == -1) + { + if (CtrlObject->Cp()->ActivePanel == CtrlObject->Cp()->RightPanel && + CtrlObject->Cp()->ActivePanel->IsVisible()) + HItemToShow = 4; + else + HItemToShow = 0; + } + + MainMenu[0].Selected = 0; + MainMenu[HItemToShow].Selected = 1; + VMenuTable[HItemToShow][0].SetSelect(0); + VMenuTable[HItemToShow][LastVItem].SetSelect(1); + HOptMenu.Show(); + { + ChangeMacroMode MacroMode(MACRO_MAINMENU); + HOptMenu.ProcessKey(KEY_DOWN); + } + } + else + { + if (CtrlObject->Cp()->ActivePanel==CtrlObject->Cp()->RightPanel && + CtrlObject->Cp()->ActivePanel->IsVisible()) + { + MainMenu[0].Selected = 0; + MainMenu[4].Selected = 1; + } + } + + if (MouseEvent) + { + ChangeMacroMode MacroMode(MACRO_MAINMENU); + HOptMenu.Show(); + HOptMenu.ProcessMouse(MouseEvent); + } + + { + ChangeMacroMode MacroMode(MACRO_MAINMENU); + HOptMenu.Process(); + } + + HOptMenu.GetExitCode(HItem,VItem); + } + + // "Исполнятор команд меню" + switch (HItem) + { + case MENU_LEFT: + case MENU_RIGHT: + { + Panel *pPanel = (HItem == MENU_LEFT)?CtrlObject->Cp()->LeftPanel:CtrlObject->Cp()->RightPanel; + + if (VItem >= MENU_LEFT_BRIEFVIEW && VItem <= MENU_LEFT_ALTERNATIVEVIEW) + { + CtrlObject->Cp()->ChangePanelToFilled(pPanel, FILE_PANEL); + pPanel=(HItem == MENU_LEFT)?CtrlObject->Cp()->LeftPanel:CtrlObject->Cp()->RightPanel; + pPanel->SetViewMode((VItem == MENU_LEFT_ALTERNATIVEVIEW)?VIEW_0:VIEW_1+VItem); + } + else + { + switch (VItem) + { + case MENU_LEFT_INFOPANEL: // Info panel + CtrlObject->Cp()->ChangePanelToFilled(pPanel, INFO_PANEL); + break; + case MENU_LEFT_TREEPANEL: // Tree panel + CtrlObject->Cp()->ChangePanelToFilled(pPanel, TREE_PANEL); + break; + case MENU_LEFT_QUICKVIEW: // Quick view + CtrlObject->Cp()->ChangePanelToFilled(pPanel, QVIEW_PANEL); + break; + case MENU_LEFT_SORTMODES: // Sort modes + pPanel->ProcessKey(KEY_CTRLF12); + break; + case MENU_LEFT_TOGGLEPANEL: // Panel On/Off + FrameManager->ProcessKey((HItem==MENU_LEFT)?KEY_CTRLF1:KEY_CTRLF2); + break; + case MENU_LEFT_REREAD: // Re-read + pPanel->ProcessKey(KEY_CTRLR); + break; + case MENU_LEFT_CHANGEDRIVE: // Change drive + pPanel->ChangeDisk(); + break; + } + } + + break; + } + case MENU_FILES: + { + switch (VItem) + { + case MENU_FILES_VIEW: // View + FrameManager->ProcessKey(KEY_F3); + break; + case MENU_FILES_EDIT: // Edit + FrameManager->ProcessKey(KEY_F4); + break; + case MENU_FILES_COPY: // Copy + FrameManager->ProcessKey(KEY_F5); + break; + case MENU_FILES_MOVE: // Rename or move + FrameManager->ProcessKey(KEY_F6); + break; + case MENU_FILES_CREATEFOLDER: // Make folder + FrameManager->ProcessKey(KEY_F7); + break; + case MENU_FILES_DELETE: // Delete + FrameManager->ProcessKey(KEY_F8); + break; + case MENU_FILES_WIPE: // Wipe + FrameManager->ProcessKey(KEY_ALTDEL); + break; + case MENU_FILES_ADD: // Add to archive + CtrlObject->Cp()->ActivePanel->ProcessKey(KEY_SHIFTF1); + break; + case MENU_FILES_EXTRACT: // Extract files + CtrlObject->Cp()->ActivePanel->ProcessKey(KEY_SHIFTF2); + break; + case MENU_FILES_ARCHIVECOMMANDS: // Archive commands + CtrlObject->Cp()->ActivePanel->ProcessKey(KEY_SHIFTF3); + break; + case MENU_FILES_ATTRIBUTES: // File attributes + CtrlObject->Cp()->ActivePanel->ProcessKey(KEY_CTRLA); + break; + case MENU_FILES_APPLYCOMMAND: // Apply command + CtrlObject->Cp()->ActivePanel->ProcessKey(KEY_CTRLG); + break; + case MENU_FILES_DESCRIBE: // Describe files + CtrlObject->Cp()->ActivePanel->ProcessKey(KEY_CTRLZ); + break; + case MENU_FILES_SELECTGROUP: // Select group + CtrlObject->Cp()->ActivePanel->ProcessKey(KEY_ADD); + break; + case MENU_FILES_UNSELECTGROUP: // Unselect group + CtrlObject->Cp()->ActivePanel->ProcessKey(KEY_SUBTRACT); + break; + case MENU_FILES_INVERTSELECTION: // Invert selection + CtrlObject->Cp()->ActivePanel->ProcessKey(KEY_MULTIPLY); + break; + case MENU_FILES_RESTORESELECTION: // Restore selection + CtrlObject->Cp()->ActivePanel->RestoreSelection(); + break; + } + + break; + } + case MENU_COMMANDS: + { + switch (VItem) + { + case MENU_COMMANDS_FINDFILE: // Find file + FrameManager->ProcessKey(KEY_ALTF7); + break; + case MENU_COMMANDS_HISTORY: // History + FrameManager->ProcessKey(KEY_ALTF8); + break; + case MENU_COMMANDS_VIDEOMODE: // Video mode + FrameManager->ProcessKey(KEY_ALTF9); + break; + case MENU_COMMANDS_FINDFOLDER: // Find folder + FrameManager->ProcessKey(KEY_ALTF10); + break; + case MENU_COMMANDS_VIEWHISTORY: // File view history + FrameManager->ProcessKey(KEY_ALTF11); + break; + case MENU_COMMANDS_FOLDERHISTORY: // Folders history + FrameManager->ProcessKey(KEY_ALTF12); + break; + case MENU_COMMANDS_SWAPPANELS: // Swap panels + FrameManager->ProcessKey(KEY_CTRLU); + break; + case MENU_COMMANDS_TOGGLEPANELS: // Panels On/Off + FrameManager->ProcessKey(KEY_CTRLO); + break; + case MENU_COMMANDS_COMPAREFOLDERS: // Compare folders + CtrlObject->Cp()->ActivePanel->CompareDir(); + break; + case MENU_COMMANDS_EDITUSERMENU: // Edit user menu + { + UserMenu Menu(true); + } + break; + case MENU_COMMANDS_FILEASSOCIATIONS: // File associations + EditFileTypes(); + break; + case MENU_COMMANDS_FOLDERSHORTCUTS: // Folder shortcuts + ShowBookmarksMenu(); + break; + case MENU_COMMANDS_FILTER: // File panel filter + CtrlObject->Cp()->ActivePanel->EditFilter(); + break; + case MENU_COMMANDS_PLUGINCOMMANDS: // Plugin commands + FrameManager->ProcessKey(KEY_F11); + break; + case MENU_COMMANDS_WINDOWSLIST: // Screens list + FrameManager->ProcessKey(KEY_F12); + break; + case MENU_COMMANDS_PROCESSLIST: // Task list + ShowProcessList(); + break; + case MENU_COMMANDS_HOTPLUGLIST: // HotPlug list +// ShowHotplugDevice(); + break; + } + + break; + } + case MENU_OPTIONS: + { + switch (VItem) + { + case MENU_OPTIONS_SYSTEMSETTINGS: // System settings + SystemSettings(); + break; + case MENU_OPTIONS_PANELSETTINGS: // Panel settings + PanelSettings(); + break; + case MENU_OPTIONS_INTERFACESETTINGS: // Interface settings + InterfaceSettings(); + break; + case MENU_OPTIONS_LANGUAGES: // Languages + LanguageSettings(); + break; + case MENU_OPTIONS_PLUGINSCONFIG: // Plugins configuration + CtrlObject->Plugins.Configure(); + break; + case MENU_OPTIONS_PLUGINSMANAGERSETTINGS: + PluginsManagerSettings(); + break; + case MENU_OPTIONS_DIALOGSETTINGS: // Dialog settings (police=5) + DialogSettings(); + break; + case MENU_OPTIONS_VMENUSETTINGS: // VMenu settings + VMenuSettings(); + break; + case MENU_OPTIONS_CMDLINESETTINGS: // Command line settings + CmdlineSettings(); + break; + case MENU_OPTIONS_AUTOCOMPLETESETTINGS: + AutoCompleteSettings(); + break; +// case MENU_OPTIONS_INFOPANELSETTINGS: // InfoPanel Settings +// InfoPanelSettings(); +// break; + case MENU_OPTIONS_CONFIRMATIONS: // Confirmations + SetConfirmations(); + break; + case MENU_OPTIONS_FILEPANELMODES: // File panel modes + FileList::SetFilePanelModes(); + break; + case MENU_OPTIONS_FILEDESCRIPTIONS: // File descriptions + SetDizConfig(); + break; + case MENU_OPTIONS_FOLDERINFOFILES: // Folder description files + SetFolderInfoFiles(); + break; + case MENU_OPTIONS_VIEWERSETTINGS: // Viewer settings + ViewerConfig(Opt.ViOpt); + break; + case MENU_OPTIONS_EDITORSETTINGS: // Editor settings + EditorConfig(Opt.EdOpt); + break; + case MENU_OPTIONS_NOTIFICATIONSSETTINGS: // Notifications settings + NotificationsConfig(Opt.NotifOpt); + break; + case MENU_OPTIONS_CODEPAGESSETTINGS: // Code pages + SelectCodePage(CP_AUTODETECT, true, true, true); + break; + case MENU_OPTIONS_COLORS: // Colors + SetColors(); + break; + case MENU_OPTIONS_FILESHIGHLIGHTING: // Files highlighting + CtrlObject->HiFiles->HiEdit(0); + break; + case MENU_OPTIONS_SAVESETUP: // Save setup + SaveConfig(1); + break; + } + + break; + } + } + + int _CurrentFrame=FrameManager->GetCurrentFrame()->GetType(); + // TODO:Здесь как то нужно изменить, чтобы учесть будущие новые типы полноэкранных фреймов + // или то, что, скажем редактор/вьювер может быть не полноэкранным + + if (!(_CurrentFrame == MODALTYPE_VIEWER || _CurrentFrame == MODALTYPE_EDITOR)) + CtrlObject->CmdLine->Show(); + + if (HItem != -1 && VItem != -1) + { + LastHItem = HItem; + LastVItem = VItem; + } +} |