Пример #1
0
        //---------------------------------------------------------------------------
        #region ** handle commands

        internal override void HandleItemEvent(RibbonEventArgs e)
        {
            C1RibbonEditorXhtml ed   = Editor;
            HtmlList            list = null;
            RibbonItem          item = (RibbonItem)e.Item;

            if (e.EventType == RibbonEventType.Click)
            {
                switch (item.ID)
                {
                // find/replace
                case "Find":
                    ed.Find();
                    break;

                case "Replace":
                    ed.FindAndReplace();
                    break;

                // clibpboard
                case "Cut":
                    ed.Cut();
                    break;

                case "Copy":
                    ed.Copy();
                    break;

                case "Paste":
                    ed.Paste(false);
                    break;

                case "PasteText":
                    ed.Paste(true);
                    break;

                case "PasteSpecial":
                    ed.Paste(true);
                    break;

                // font
                case "Bold":
                    ed.SelectionFontBold = ((RibbonToggleButton)item).Pressed;
                    break;

                case "Italic":
                    ed.SelectionFontItalic = ((RibbonToggleButton)item).Pressed;
                    break;

                case "Underline":
                    ed.SelectionFontUnderline = ((RibbonToggleButton)item).Pressed;
                    break;

                case "Strikethrough":
                    ed.SelectionFontStrikethrough = ((RibbonToggleButton)item).Pressed;
                    break;

                case "IncreaseFontSize":
                    ed.SelectionFontBig = ((RibbonToggleButton)item).Pressed;
                    break;

                case "DecreaseFontSize":
                    ed.SelectionFontSmall = ((RibbonToggleButton)item).Pressed;
                    break;

                case "Subscript":
                    Editor.SelectionSubscript = ((RibbonToggleButton)item).Pressed;
                    UpdateUI();
                    break;

                case "Superscript":
                    Editor.SelectionSuperscript = ((RibbonToggleButton)item).Pressed;
                    UpdateUI();
                    break;

                //color
                case "FontColor":
                    Editor.SelectionColor = ((RibbonColorPicker)item).Color;
                    break;

                case "HighlightColor":
                    Editor.SelectionBackColor = ((RibbonColorPicker)item).Color;
                    break;

                case "BackgroundColor":
                    Editor.SelectionParagraphColor = ((RibbonColorPicker)item).Color;
                    break;

                // paragraph
                case "AlignLeft":
                    ed.SelectionAlignment = TextAlignment.Left;
                    break;

                case "Center":
                    ed.SelectionAlignment = TextAlignment.Center;
                    break;

                case "AlignRight":
                    ed.SelectionAlignment = TextAlignment.Right;
                    break;

                case "Justify":
                    ed.SelectionAlignment = TextAlignment.Justify;
                    break;

                case "Bullets":
                    list      = ed.Editor.Selection.List;
                    list.Type = ((RibbonToggleButton)item).Pressed ? HtmlList.ListType.Bulleted : HtmlList.ListType.None;
                    break;

                case "Numbering":
                case "MultiLevel":
                    list      = ed.Editor.Selection.List;
                    list.Type = ((RibbonToggleButton)item).Pressed ? HtmlList.ListType.Numbered : HtmlList.ListType.None;
                    break;

                case "DecreaseIndent":
                    if (ed.IsSelectionInsideList())
                    {
                        list = ed.Editor.Selection.List;
                        list.Execute(HtmlList.Action.DecreaseLevel);
                    }
                    else
                    {
                        ed.DecreaseIndent();
                    }
                    break;

                case "IncreaseIndent":
                    if (ed.IsSelectionInsideList())
                    {
                        list = ed.Editor.Selection.List;
                        list.Execute(HtmlList.Action.IncreaseLevel);
                    }
                    else
                    {
                        ed.IncreaseIndent();
                    }
                    break;

                // clear formatting
                case "ClearFormatting":
                    ed.ClearFontFormatting();
                    ed.SelectionColor          = System.Drawing.Color.Empty;
                    ed.SelectionBackColor      = System.Drawing.Color.Empty;
                    ed.SelectionParagraphColor = System.Drawing.Color.Empty;
                    UpdateUI();
                    break;

                case "SelectAll":
                    ed.Select(0, int.MaxValue);
                    UpdateUI();
                    break;

                // character casing
                case "LowerCase":
                    ed.SelectionChangeCase(CharCasing.LowerCase);
                    break;

                case "UpperCase":
                    ed.SelectionChangeCase(CharCasing.UpperCase);
                    break;

                case "CapitalizeCase":
                    ed.SelectionChangeCase(CharCasing.CapitalizeWords);
                    break;

                default:
                    if (item.Parent.Equals(GetItemByID("LineSpacing")))
                    {
                        float  spacing;
                        string text = ((RibbonButton)item).Text;
                        text = text.Replace(".", System.Globalization.NumberFormatInfo.CurrentInfo.CurrencyDecimalSeparator);
                        if (float.TryParse(text, out spacing))
                        {
                            ed.SelectionLineSpacing = spacing;
                        }
                    }
                    else if (item.Parent.Equals(GetItemByID("FontColor")))
                    {
                        ed.SelectionColor = ((RibbonColorPicker)item.Parent).Color;
                    }
                    else if (item.Parent.Equals(GetItemByID("HighlightColor")))
                    {
                        ed.SelectionBackColor = ((RibbonColorPicker)item.Parent).Color;
                    }
                    else if (item.Parent.Equals(GetItemByID("BackgroundColor")))
                    {
                        ed.SelectionParagraphColor = ((RibbonColorPicker)item.Parent).Color;
                    }
                    break;
                }
            }
            else if (e.EventType == RibbonEventType.ChangeCommitted)
            {
                switch (item.ID)
                {
                // font
                case "FontFace":
                    ed.SelectionFontName = (((RibbonComboBox)item).Text);
                    break;

                case "FontSize":
                    ed.SelectionFontSize = (((RibbonComboBox)item).Text);
                    break;
                }
            }
        }
Пример #2
0
        internal override void UpdateUI()
        {
            if (Editor == null)
            {
                return;
            }
            // clipboard
            GetItemByID("Cut").Enabled       = Editor.CanCut;
            GetItemByID("Copy").Enabled      = Editor.CanCopy;
            GetItemByID("Paste").Enabled     = Editor.CanPaste;
            GetItemByID("PasteText").Enabled = Editor.CanPasteAsText;

            // font
            RibbonToggleButton bb    = (RibbonToggleButton)GetItemByID("Bold");
            RibbonToggleButton bi    = (RibbonToggleButton)GetItemByID("Italic");
            RibbonToggleButton bu    = (RibbonToggleButton)GetItemByID("Underline");
            RibbonToggleButton bs    = (RibbonToggleButton)GetItemByID("Strikethrough");
            RibbonComboBox     ff    = (RibbonComboBox)GetItemByID("FontFace");
            RibbonComboBox     fs    = (RibbonComboBox)GetItemByID("FontSize");
            RibbonToggleButton big   = (RibbonToggleButton)GetItemByID("IncreaseFontSize");
            RibbonToggleButton small = (RibbonToggleButton)GetItemByID("DecreaseFontSize");

            bb.Pressed    = Editor.SelectionFontBold;
            bi.Pressed    = Editor.SelectionFontItalic;
            bu.Pressed    = Editor.SelectionFontUnderline;
            bs.Pressed    = Editor.SelectionFontStrikethrough;
            big.Pressed   = Editor.SelectionFontBig;
            small.Pressed = Editor.SelectionFontSmall;
            ff.Text       = Editor.SelectionFontName;
            fs.Text       = Editor.SelectionFontSize;

            ((RibbonToggleButton)GetItemByID("Subscript")).Pressed   = Editor.SelectionSubscript;
            ((RibbonToggleButton)GetItemByID("Superscript")).Pressed = Editor.SelectionSuperscript;

            RibbonColorPicker cp = (RibbonColorPicker)GetItemByID("FontColor");

            if (Editor.SelectionColor != System.Drawing.Color.Empty)
            {
                cp.Color = Editor.SelectionColor;
            }
            cp = (RibbonColorPicker)GetItemByID("HighlightColor");
            if (Editor.SelectionBackColor != System.Drawing.Color.Empty)
            {
                cp.Color = Editor.SelectionBackColor;
            }
            cp = (RibbonColorPicker)GetItemByID("BackgroundColor");
            if (Editor.SelectionParagraphColor != System.Drawing.Color.Empty)
            {
                cp.Color = Editor.SelectionParagraphColor;
            }

            // paragraph
            ((RibbonToggleButton)GetItemByID("AlignLeft")).Pressed  = false;
            ((RibbonToggleButton)GetItemByID("Center")).Pressed     = false;
            ((RibbonToggleButton)GetItemByID("AlignRight")).Pressed = false;
            ((RibbonToggleButton)GetItemByID("Justify")).Pressed    = false;
            switch (Editor.SelectionAlignment)
            {
            case TextAlignment.Left:
                ((RibbonToggleButton)GetItemByID("AlignLeft")).Pressed = true;
                break;

            case TextAlignment.Center:
                ((RibbonToggleButton)GetItemByID("Center")).Pressed = true;
                break;

            case TextAlignment.Right:
                ((RibbonToggleButton)GetItemByID("AlignRight")).Pressed = true;
                break;

            case TextAlignment.Justify:
                ((RibbonToggleButton)GetItemByID("Justify")).Pressed = true;
                break;
            }

            HtmlList list = Editor.Editor.Selection.List;
            bool     isSelectionInsideList = Editor.IsSelectionInsideList();

            GetItemByID("IncreaseIndent").Enabled = !isSelectionInsideList || list.CanExecute(HtmlList.Action.IncreaseLevel);
            GetItemByID("DecreaseIndent").Enabled = !isSelectionInsideList || list.CanExecute(HtmlList.Action.DecreaseLevel);
            (GetItemByID("Bullets") as RibbonToggleButton).Pressed   = list.Type == HtmlList.ListType.Bulleted;
            (GetItemByID("Numbering") as RibbonToggleButton).Pressed = list.Type == HtmlList.ListType.Numbered;
        }