RibbonPageGroup.cs 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. using FastReport.Controls;
  2. using FastReport.Utils;
  3. using System.Windows.Forms;
  4. namespace FastReport.Design.RibbonDesigner
  5. {
  6. internal class RibbonPageGroup : RibbonGroup
  7. {
  8. #region Fields
  9. private StackedPanel Panel1 { get; }
  10. public ToolbarButton btnNewPage;
  11. public ToolbarButton btnNewDialog;
  12. public ToolbarButton btnCopyPage;
  13. public ToolbarButton btnDeletePage;
  14. public ToolbarButton btnPageSetup;
  15. #endregion
  16. #region Private Methods
  17. private void UpdateControls()
  18. {
  19. btnNewPage.Enabled = Designer.cmdNewPage.Enabled;
  20. btnNewDialog.Enabled = Designer.cmdNewDialog.Enabled;
  21. btnCopyPage.Enabled = Designer.cmdCopyPage.Enabled;
  22. btnDeletePage.Enabled = Designer.cmdDeletePage.Enabled;
  23. btnPageSetup.Enabled = Designer.cmdPageSetup.Enabled;
  24. }
  25. #endregion
  26. #region Public Methods
  27. public override void SelectionChanged()
  28. {
  29. base.SelectionChanged();
  30. Throttle.Execute(UpdateControls);
  31. }
  32. public override void UpdateContent()
  33. {
  34. base.UpdateContent();
  35. Throttle.Execute(UpdateControls);
  36. }
  37. public override void Localize()
  38. {
  39. base.Localize();
  40. MyRes res = new MyRes("Designer,Toolbar,Standard");
  41. Text = Res.Get("Designer,Ribbon,Pages");
  42. SetItemText(btnNewPage, res.Get("NewPage"));
  43. SetItemText(btnNewDialog, res.Get("NewDialog"));
  44. SetItemText(btnCopyPage, res.Get("CopyPage"));
  45. SetItemText(btnDeletePage, res.Get("DeletePage"));
  46. SetItemText(btnPageSetup, res.Get("PageSetup"));
  47. }
  48. public override void UpdateDpiDependencies()
  49. {
  50. if (State == GroupState.Collapsed)
  51. return;
  52. base.UpdateDpiDependencies();
  53. Panel1.UpdateDpiDependencies();
  54. btnPageSetup.Image = Designer.GetImage("Ribbon.PageSetup.png");
  55. }
  56. public override void UpdateState()
  57. {
  58. base.UpdateState();
  59. btnNewPage.DisplayStyle = btnNewDialog.DisplayStyle = btnDeletePage.DisplayStyle = State == GroupState.Reduced ? ToolStripItemDisplayStyle.Image : ToolStripItemDisplayStyle.ImageAndText;
  60. }
  61. #endregion
  62. public RibbonPageGroup(Designer designer) : base(designer)
  63. {
  64. Name = "PageGroup";
  65. CollapsedImageName = "Ribbon.PageSetup.png";
  66. Priority = GroupPriority.Medium;
  67. btnNewPage = new ToolbarButton("btnStdNewPage", 10, Designer.cmdNewPage.Invoke);
  68. btnNewDialog = new ToolbarButton("btnStdNewDialog", 11, Designer.cmdNewDialog.Invoke);
  69. btnCopyPage = new ToolbarButton("btnStdCopyPage", 6, Designer.cmdCopyPage.Invoke);
  70. btnDeletePage = new ToolbarButton("btnStdDeletePage", 12, Designer.cmdDeletePage.Invoke);
  71. btnPageSetup = new ToolbarButton("btnStdPageSetup", 13, Designer.cmdPageSetup.Invoke);
  72. btnPageSetup.MakeBig();
  73. Panel1 = new StackedPanel() { Margin = new Padding(0, 0, 0, 2) };
  74. Panel1.AddItems(
  75. btnNewPage, btnNewDialog, btnDeletePage);
  76. Panel.AddItems(btnPageSetup);
  77. Panel.AddPanels(Panel1);
  78. Localize();
  79. UpdateState();
  80. UpdateDpiDependencies();
  81. }
  82. }
  83. }