StandardToolbar.cs 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. using System;
  2. using System.Windows.Forms;
  3. using FastReport.Controls;
  4. using FastReport.Utils;
  5. namespace FastReport.Design.Toolbars
  6. {
  7. internal class StandardToolbar : DesignerToolbarBase
  8. {
  9. #region Fields
  10. public ToolbarButton btnNew;
  11. public ToolbarOpenButton btnOpen;
  12. public ToolbarButton btnSave;
  13. public ToolbarButton btnSaveAll;
  14. public ToolbarButton btnPreview;
  15. public ToolbarButton btnPreviewCloud;
  16. public ToolbarButton btnNewPage;
  17. public ToolbarButton btnNewDialog;
  18. public ToolbarButton btnDeletePage;
  19. public ToolbarButton btnPageSetup;
  20. public ToolbarButton btnCut;
  21. public ToolbarButton btnCopy;
  22. public ToolbarButton btnPaste;
  23. public ToolbarButton btnFormatPainter;
  24. public ToolbarUndoButton btnUndo;
  25. public ToolbarRedoButton btnRedo;
  26. public ToolbarButton btnGroup;
  27. public ToolbarButton btnUngroup;
  28. private Timer clipboardTimer;
  29. private Timer previewTimer;
  30. #endregion
  31. #region Private Methods
  32. private void UpdateControls()
  33. {
  34. btnNew.Enabled = Designer.cmdNew.Enabled;
  35. btnOpen.Enabled = Designer.cmdOpen.Enabled;
  36. btnSave.Enabled = Designer.cmdSave.Enabled;
  37. btnSaveAll.Enabled = Designer.cmdSaveAll.Enabled;
  38. btnPreview.Enabled = Designer.cmdPreview.Enabled;
  39. btnPreviewCloud.Enabled = Designer.cmdPreviewCloud.Enabled;
  40. btnNewPage.Enabled = Designer.cmdNewPage.Enabled;
  41. #if COMMUNITY
  42. btnNewDialog.Enabled = false;
  43. #else
  44. btnNewDialog.Enabled = Designer.cmdNewDialog.Enabled;
  45. #endif
  46. btnDeletePage.Enabled = Designer.cmdDeletePage.Enabled;
  47. btnPageSetup.Enabled = Designer.cmdPageSetup.Enabled;
  48. btnCut.Enabled = Designer.cmdCut.Enabled;
  49. btnCopy.Enabled = Designer.cmdCopy.Enabled;
  50. btnFormatPainter.Enabled = Designer.cmdFormatPainter.Enabled;
  51. btnFormatPainter.Checked = Designer.FormatPainter;
  52. btnUndo.Enabled = Designer.cmdUndo.Enabled;
  53. btnRedo.Enabled = Designer.cmdRedo.Enabled;
  54. btnGroup.Enabled = Designer.cmdGroup.Enabled;
  55. btnUngroup.Enabled = Designer.cmdUngroup.Enabled;
  56. }
  57. private void FClipboardTimer_Tick(object sender, EventArgs e)
  58. {
  59. btnPaste.Enabled = Designer.cmdPaste.Enabled;
  60. }
  61. private void FPreviewTimer_Tick(object sender, EventArgs e)
  62. {
  63. previewTimer.Stop();
  64. Designer.cmdPreview.Invoke(sender, e);
  65. }
  66. private void btnPreview_Click(object sender, EventArgs e)
  67. {
  68. previewTimer.Start();
  69. }
  70. #endregion
  71. #region Protected Methods
  72. protected override void Dispose(bool disposing)
  73. {
  74. if (disposing)
  75. {
  76. clipboardTimer.Dispose();
  77. previewTimer.Dispose();
  78. }
  79. base.Dispose(disposing);
  80. }
  81. #endregion
  82. #region Public Methods
  83. public override void SelectionChanged()
  84. {
  85. base.SelectionChanged();
  86. Throttle.Execute(UpdateControls);
  87. }
  88. public override void UpdateContent()
  89. {
  90. base.UpdateContent();
  91. Throttle.Execute(UpdateControls);
  92. }
  93. public override void Localize()
  94. {
  95. base.Localize();
  96. MyRes res = new MyRes("Designer,Toolbar,Standard");
  97. Text = res.Get("");
  98. SetItemText(btnNew, res.Get("New"));
  99. SetItemText(btnOpen, res.Get("Open"));
  100. SetItemText(btnSave, res.Get("Save"));
  101. SetItemText(btnSaveAll, res.Get("SaveAll"));
  102. SetItemText(btnPreview, res.Get("Preview"));
  103. SetItemText(btnPreviewCloud, res.Get("PreviewCloud"));
  104. SetItemText(btnNewPage, res.Get("NewPage"));
  105. SetItemText(btnNewDialog, res.Get("NewDialog"));
  106. SetItemText(btnDeletePage, res.Get("DeletePage"));
  107. SetItemText(btnPageSetup, res.Get("PageSetup"));
  108. SetItemText(btnCut, res.Get("Cut"));
  109. SetItemText(btnCopy, res.Get("Copy"));
  110. SetItemText(btnPaste, res.Get("Paste"));
  111. SetItemText(btnFormatPainter, res.Get("FormatPainter"));
  112. SetItemText(btnUndo, res.Get("Undo"));
  113. SetItemText(btnRedo, res.Get("Redo"));
  114. SetItemText(btnGroup, res.Get("Group"));
  115. SetItemText(btnUngroup, res.Get("Ungroup"));
  116. }
  117. #endregion
  118. public StandardToolbar(Designer designer)
  119. : base(designer)
  120. {
  121. Name = "StandardToolbar";
  122. btnNew = new ToolbarButton("btnStdNew", 4, Designer.cmdNew.Invoke);
  123. btnOpen = new ToolbarOpenButton(designer, "btnStdOpen", 1);
  124. btnSave = new ToolbarButton("btnStdSave", 2, Designer.cmdSave.Invoke);
  125. btnSaveAll = new ToolbarButton("btnStdSaveAll", 178, Designer.cmdSaveAll.Invoke);
  126. btnPreview = new ToolbarButton("btnStdPreview", 3, btnPreview_Click);
  127. btnPreviewCloud = new ToolbarButton("btnStdPreviewCloud", 263, Designer.cmdPreviewCloud.Invoke);
  128. btnNewPage = new ToolbarButton("btnStdNewPage", 10, Designer.cmdNewPage.Invoke);
  129. btnNewPage.BeginGroup = true;
  130. btnNewDialog = new ToolbarButton("btnStdNewDialog", 11, Designer.cmdNewDialog.Invoke);
  131. btnDeletePage = new ToolbarButton("btnStdDeletePage", 12, Designer.cmdDeletePage.Invoke);
  132. btnPageSetup = new ToolbarButton("btnStdPageSetup", 13, Designer.cmdPageSetup.Invoke);
  133. btnCut = new ToolbarButton("btnStdCut", 5, Designer.cmdCut.Invoke);
  134. btnCut.BeginGroup = true;
  135. btnCopy = new ToolbarButton("btnStdCopy", 6, Designer.cmdCopy.Invoke);
  136. btnPaste = new ToolbarButton("btnStdPaste", 7, Designer.cmdPaste.Invoke);
  137. btnFormatPainter = new ToolbarButton("btnStdFormatPainter", 18, Designer.cmdFormatPainter.Invoke);
  138. btnFormatPainter.CheckOnClick = true;
  139. btnUndo = new ToolbarUndoButton(designer, "btnStdUndo", 8);
  140. btnUndo.BeginGroup = true;
  141. btnRedo = new ToolbarRedoButton(designer, "btnStdRedo", 9);
  142. btnGroup = new ToolbarButton("btnStdGroup", 17, Designer.cmdGroup.Invoke);
  143. btnGroup.BeginGroup = true;
  144. btnUngroup = new ToolbarButton("btnStdUngroup", 16, Designer.cmdUngroup.Invoke);
  145. AddItems(
  146. btnNew, btnOpen, btnSave, btnSaveAll, btnPreview, btnPreviewCloud,
  147. btnNewPage, btnNewDialog, btnDeletePage, btnPageSetup,
  148. btnCut, btnCopy, btnPaste, btnFormatPainter,
  149. btnUndo, btnRedo,
  150. btnGroup, btnUngroup);
  151. Localize();
  152. UpdateDpiDependencies();
  153. clipboardTimer = new Timer();
  154. clipboardTimer.Interval = 500;
  155. clipboardTimer.Tick += FClipboardTimer_Tick;
  156. clipboardTimer.Start();
  157. previewTimer = new Timer();
  158. previewTimer.Interval = 20;
  159. previewTimer.Tick += FPreviewTimer_Tick;
  160. }
  161. }
  162. }