コード例 #1
0
    /// <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));
    }
コード例 #2
0
    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();
        }
    }