StyleToolbar.cs 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. using FastReport.Controls;
  2. using FastReport.Design.PageDesigners.Page;
  3. using FastReport.Utils;
  4. using System;
  5. namespace FastReport.Design.Toolbars
  6. {
  7. internal class StyleToolbar : DesignerToolbarBase
  8. {
  9. #region Fields
  10. public ToolbarStyleComboBox cbxStyle;
  11. public ToolbarButton btnStyles;
  12. #endregion
  13. #region Private Methods
  14. private void UpdateControls()
  15. {
  16. bool enabled = Designer.SelectedReportComponents.Enabled;
  17. cbxStyle.Enabled = enabled;
  18. cbxStyle.Report = Designer.ActiveReport;
  19. if (enabled)
  20. cbxStyle.Style = Designer.SelectedReportComponents.First.Style;
  21. }
  22. private void cbxStyle_StyleSelected(object sender, EventArgs e)
  23. {
  24. (Designer.ActiveReportTab?.ActivePageDesigner as ReportPageDesigner)?.Workspace.Focus();
  25. Designer.SelectedReportComponents.SetStyle(cbxStyle.Style);
  26. }
  27. #endregion
  28. #region Public Methods
  29. public override void SelectionChanged()
  30. {
  31. base.SelectionChanged();
  32. Throttle.Execute(UpdateControls);
  33. }
  34. public override void UpdateContent()
  35. {
  36. base.UpdateContent();
  37. Throttle.Execute(UpdateControls);
  38. }
  39. public override void Localize()
  40. {
  41. base.Localize();
  42. MyRes res = new MyRes("Designer,Toolbar,Style");
  43. Text = res.Get("");
  44. SetItemText(btnStyles, res.Get("Styles"));
  45. UpdateContent();
  46. }
  47. public override void UpdateDpiDependencies()
  48. {
  49. base.UpdateDpiDependencies();
  50. cbxStyle.UpdateDpiDependencies(Designer);
  51. }
  52. #endregion
  53. public StyleToolbar(Designer designer) : base(designer)
  54. {
  55. Name = "StyleToolbar";
  56. cbxStyle = new ToolbarStyleComboBox("cbxStyleStyle", cbxStyle_StyleSelected);
  57. btnStyles = new ToolbarButton("btnStyleStyles", 87, Designer.cmdReportStyles.Invoke);
  58. AddItems(cbxStyle, btnStyles);
  59. Localize();
  60. UpdateDpiDependencies();
  61. }
  62. }
  63. }