using System; using System.Text; using System.ComponentModel.Design; using System.Windows.Forms.Design; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; namespace DevComponents.DotNetBar.Design { /// /// Represents designer for RibbonPanel control. /// public class RibbonPanelDesigner:PanelControlDesigner { #region Internal Implementation public override SelectionRules SelectionRules { get{return (SelectionRules.Locked | SelectionRules.Visible);} } protected override void SetDesignTimeDefaults() { RibbonPanel p = this.Control as RibbonPanel; #if FRAMEWORK20 p.Padding = new System.Windows.Forms.Padding(3, 0, 3, 3); #else p.DockPadding.Left = 3; p.DockPadding.Right = 3; p.DockPadding.Bottom = 3; #endif } public override DesignerVerbCollection Verbs { get { DesignerVerbCollection verbs=new DesignerVerbCollection(new DesignerVerb[] { new DesignerVerb("Create RibbonBar", new EventHandler(CreateRibbonBar)), new DesignerVerb("Layout Ribbons", new EventHandler(LayoutRibbons)) }); //verbs.AddRange(base.Verbs); return verbs; } } private void LayoutRibbons(object sender, EventArgs e) { RibbonPanel panel = this.Control as RibbonPanel; if (panel == null) return; IDesignerHost host = this.GetService(typeof(IDesignerHost)) as IDesignerHost; DesignerTransaction trans=null; if (host != null) trans=host.CreateTransaction("Rendering Layout"); try { panel.LayoutRibbons(); } finally { if (trans != null) trans.Commit(); } } private void CreateRibbonBar(object sender, EventArgs e) { RibbonPanel panel = this.Control as RibbonPanel; if (panel == null) return; IDesignerHost dh = (IDesignerHost)GetService(typeof(IDesignerHost)); if (dh != null) { DesignerTransaction trans = dh.CreateTransaction("Create Default Ribbon Bar"); IComponentChangeService cc = (IComponentChangeService)GetService(typeof(IComponentChangeService)); try { RibbonBar bar = dh.CreateComponent(typeof(RibbonBar)) as RibbonBar; TypeDescriptor.GetProperties(bar)["Width"].SetValue(bar, 100); #if !TRIAL string key = RibbonBarDesigner.GetLicenseKey(); bar.LicenseKey = key; #endif TypeDescriptor.GetProperties(bar)["Text"].SetValue(bar, bar.Name); cc.OnComponentChanging(panel, TypeDescriptor.GetProperties(typeof(Control))["Controls"]); panel.Controls.Add(bar); bar.Dock = DockStyle.Left; bar.BringToFront(); cc.OnComponentChanged(panel, TypeDescriptor.GetProperties(typeof(Control))["Controls"], null, null); } catch { trans.Cancel(); throw; } finally { if (!trans.Canceled) trans.Commit(); } } } /// /// Draws design-time border around the panel when panel does not have one. /// /// protected override void DrawBorder(Graphics g) { } #endregion } }