/// <summary> /// Processes the command key. /// </summary> /// <seealso cref="M:System.Windows.Forms.Form.ProcessCmdKey(Message@,Keys)"/> protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { if (Globals.IsReady) { switch (keyData) { // Top menu system case Keys.Alt | Keys.S: ActionSettings.ShowDropDown(); return(true); case Keys.Alt | Keys.I: ActionInformation.ShowDropDown(); return(true); case Keys.F9: ActionPreferences.PerformClick(); return(true); case Keys.Alt | Keys.Control | Keys.F4: ActionExit.PerformClick(); return(true); case Keys.Escape: if (!EditESCtoExit.Checked || EditMeanings.IsCurrentCellInEditMode) { break; } ActionExit.PerformClick(); return(true); // Rotate view case Keys.Control | Keys.Shift | Keys.Tab: if (Globals.AllowClose) { SetView(Settings.CurrentView.Previous(ViewMode.Notebook));// TODO notebook remove when ready } return(true); case Keys.Control | Keys.Tab: if (Globals.AllowClose) { SetView(Settings.CurrentView.Next(ViewMode.Notebook));// TODO notebook remove when ready } return(true); // Change view case Keys.F1: ActionViewAnalysis.PerformClick(); return(true); case Keys.F2: ActionViewLetters.PerformClick(); return(true); case Keys.F3: if (!Globals.IsDebugExecutable) { break; // TODO remove when ready } ActionViewNotebook.PerformClick(); return(true); // Application functions case Keys.F5: case Keys.Control | Keys.F: ActionSearchTerm.PerformClick(); return(true); case Keys.Control | Keys.N: ActionNewInstance.PerformClick(); return(true); // Top menu system case Keys.Alt | Keys.T: ActionTools.ShowDropDown(); return(true); case Keys.Alt | Keys.L: if (ActionWebLinks.Enabled) { ActionWebLinks.ShowDropDown(); } return(true); // Data edition case Keys.Control | Keys.S: ActionSave.PerformClick(); return(true); case Keys.Control | Keys.Back: ActionUndo.Focus(); ActionUndo.PerformClick(); return(true); } } // Letters navigation if (Globals.AllowClose && Settings.CurrentView == ViewMode.Letters) { switch (keyData) { case Keys.Control | Keys.Home: LettersNavigator.ActionFirst.PerformClick(); return(true); case Keys.Control | Keys.End: LettersNavigator.ActionLast.PerformClick(); return(true); case Keys.Control | Keys.PageUp: LettersNavigator.ActionPrevious.PerformClick(); return(true); case Keys.Control | Keys.PageDown: LettersNavigator.ActionNext.PerformClick(); return(true); } } return(base.ProcessCmdKey(ref msg, keyData)); }
public void SetView(ViewMode view, bool first) { var viewPanels = new Dictionary <ViewMode, ViewConnector> { { ViewMode.ChapterVerses, new ViewConnector { MenuItem = ActionViewVerses, Panel = PanelViewVerses, Focused = PanelViewVerses } }, { ViewMode.VerseFiltered, new ViewConnector { MenuItem = ActionViewVerseFiltered, Panel = PanelViewVerseFiltered, Focused = PanelViewVerseFiltered } }, { ViewMode.ChapterTranslation, new ViewConnector { MenuItem = ActionViewTranslations, Panel = PanelViewTranslations, Focused = TextBoxTranslations } }, { ViewMode.ChapterOriginal, new ViewConnector { MenuItem = ActionViewRawText, Panel = PanelViewOriginalText, Focused = EditChapterOriginal } }, { ViewMode.BookELS50, new ViewConnector { MenuItem = ActionViewELS50, Panel = PanelViewELS50, Focused = EditChapterELS50 } }, { ViewMode.Search, new ViewConnector { MenuItem = ActionViewSearch, Panel = PanelViewSearch, Focused = SelectSearchType } } }; if (Settings.CurrentView == view && !first) { if (Settings.CurrentView == ViewMode.Search) { RotateSearchTab(); } return; } checkFirst(); viewPanels[Settings.CurrentView].MenuItem.Checked = false; viewPanels[Settings.CurrentView].Panel.Parent = null; viewPanels[view].MenuItem.Checked = true; viewPanels[view].Panel.Parent = PanelMainCenter; if (view != ViewMode.Search) { viewPanels[view].Focused?.Focus(); } Settings.CurrentView = view; updateControls(); switch (view) { case ViewMode.ChapterVerses: case ViewMode.ChapterOriginal: case ViewMode.ChapterTranslation: case ViewMode.BookELS50: SetTanakItemFocus(); break; case ViewMode.Search: SelectSearchType_Selected(null, null); break; case ViewMode.VerseFiltered: VerseControl.ResetMetricsRequired = true; WordControl.ResetMetricsRequired = true; RenderVerseFiltered(); break; } // void checkFirst() { if (first) { UpdateFilters(null, null); SelectSearchType.SelectedIndex = Settings.CurrentSearchTypeTab; setRadio(SelectSearchTypeTranslation, Settings.SearchTranslationRadioButtonIndex); setRadio(SelectSearchTypeVerses, Settings.SearchVerseRadioButtonIndex); void setRadio(TabPage page, int index) { var radio = page.Controls.OfType <RadioButton>().FirstOrDefault(c => c.TabIndex == index); if (radio is not null) { radio.Checked = true; } } } else { ActionSave.PerformClick(); if (!Settings.RenderAllChapterVersesKeep && Settings.RenderAllChapterVerses) { if (view == ViewMode.VerseFiltered || view == ViewMode.Search) { Settings.RenderAllChapterVerses = false; } } } } // void updateControls() { LabelTitle.Text = AppTranslations.ViewPanelTitle.GetLang(view).ToUpper(); LabelTitle.Refresh(); // PanelNavigation.Visible = view != ViewMode.VerseFiltered && view != ViewMode.Search; PanelMain.Refresh(); // ActionCopyToClipboard.Enabled = view == ViewMode.ChapterTranslation || view == ViewMode.ChapterOriginal || view == ViewMode.BookELS50; SelectRenderAllVerses.Enabled = view == ViewMode.ChapterVerses; ActionExportBook.Enabled = PanelNavigation.Visible; ActionExportChapter.Enabled = PanelNavigation.Visible; // SelectBook.Enabled = PanelNavigation.Visible; SelectBookNavigator.Enabled = SelectBook.Enabled; LabelSelectBook.Enabled = SelectBook.Enabled; EditBookTranslation.Enabled = SelectBook.Enabled; ActionEditBookMemo.Enabled = SelectBook.Enabled; // SelectChapter.Enabled = PanelNavigation.Visible; SelectChapterNavigator.Enabled = SelectChapter.Enabled; LabelSelectChapter.Enabled = SelectChapter.Enabled; EditChapterTitle.Enabled = SelectChapter.Enabled; EditChapterMemo.Enabled = SelectChapter.Enabled; // SelectVerse.Enabled = PanelNavigation.Visible && view != ViewMode.BookELS50; SelectVerseNavigator.Enabled = SelectVerse.Enabled; LabelSelectVerse.Enabled = SelectVerse.Enabled; ActionSearchVerse.Enabled = SelectVerse.Enabled; // UpdateHistoryButtons(); } }