//--------------------------------------------------------------------------- #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; } } }
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; }