using FastReport.Controls; using FastReport.Utils; using System.Windows.Forms; namespace FastReport.Design.RibbonDesigner { internal class RibbonPageGroup : RibbonGroup { #region Fields private StackedPanel Panel1 { get; } public ToolbarButton btnNewPage; public ToolbarButton btnNewDialog; public ToolbarButton btnCopyPage; public ToolbarButton btnDeletePage; public ToolbarButton btnPageSetup; #endregion #region Private Methods private void UpdateControls() { btnNewPage.Enabled = Designer.cmdNewPage.Enabled; btnNewDialog.Enabled = Designer.cmdNewDialog.Enabled; btnCopyPage.Enabled = Designer.cmdCopyPage.Enabled; btnDeletePage.Enabled = Designer.cmdDeletePage.Enabled; btnPageSetup.Enabled = Designer.cmdPageSetup.Enabled; } #endregion #region Public Methods public override void SelectionChanged() { base.SelectionChanged(); Throttle.Execute(UpdateControls); } public override void UpdateContent() { base.UpdateContent(); Throttle.Execute(UpdateControls); } public override void Localize() { base.Localize(); MyRes res = new MyRes("Designer,Toolbar,Standard"); Text = Res.Get("Designer,Ribbon,Pages"); SetItemText(btnNewPage, res.Get("NewPage")); SetItemText(btnNewDialog, res.Get("NewDialog")); SetItemText(btnCopyPage, res.Get("CopyPage")); SetItemText(btnDeletePage, res.Get("DeletePage")); SetItemText(btnPageSetup, res.Get("PageSetup")); } public override void UpdateDpiDependencies() { if (State == GroupState.Collapsed) return; base.UpdateDpiDependencies(); Panel1.UpdateDpiDependencies(); btnPageSetup.Image = Designer.GetImage("Ribbon.PageSetup.png"); } public override void UpdateState() { base.UpdateState(); btnNewPage.DisplayStyle = btnNewDialog.DisplayStyle = btnDeletePage.DisplayStyle = State == GroupState.Reduced ? ToolStripItemDisplayStyle.Image : ToolStripItemDisplayStyle.ImageAndText; } #endregion public RibbonPageGroup(Designer designer) : base(designer) { Name = "PageGroup"; CollapsedImageName = "Ribbon.PageSetup.png"; Priority = GroupPriority.Medium; btnNewPage = new ToolbarButton("btnStdNewPage", 10, Designer.cmdNewPage.Invoke); btnNewDialog = new ToolbarButton("btnStdNewDialog", 11, Designer.cmdNewDialog.Invoke); btnCopyPage = new ToolbarButton("btnStdCopyPage", 6, Designer.cmdCopyPage.Invoke); btnDeletePage = new ToolbarButton("btnStdDeletePage", 12, Designer.cmdDeletePage.Invoke); btnPageSetup = new ToolbarButton("btnStdPageSetup", 13, Designer.cmdPageSetup.Invoke); btnPageSetup.MakeBig(); Panel1 = new StackedPanel() { Margin = new Padding(0, 0, 0, 2) }; Panel1.AddItems( btnNewPage, btnNewDialog, btnDeletePage); Panel.AddItems(btnPageSetup); Panel.AddPanels(Panel1); Localize(); UpdateState(); UpdateDpiDependencies(); } } }