BreakableComponentMenu.cs 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using System.Windows.Forms;
  5. using System.ComponentModel;
  6. using FastReport.Design;
  7. using FastReport.Utils;
  8. namespace FastReport
  9. {
  10. /// <summary>
  11. /// This class represents the context menu of the <see cref="BreakableComponent"/>.
  12. /// </summary>
  13. /// <remarks>
  14. /// This class adds the "Can Break" menu item to the component context menu.
  15. /// </remarks>
  16. [ToolboxItem(false)]
  17. public class BreakableComponentMenu : ReportComponentBaseMenu
  18. {
  19. private SelectedObjectCollection selection;
  20. /// <summary>
  21. /// The "Can Break" menu item.
  22. /// </summary>
  23. public ContextMenuItem miCanBreak;
  24. private void miCanBreak_Click(object sender, EventArgs e)
  25. {
  26. foreach (Base c in selection)
  27. {
  28. if (c is BreakableComponent && !c.HasRestriction(Restrictions.DontModify))
  29. (c as BreakableComponent).CanBreak = miCanBreak.Checked;
  30. }
  31. Change();
  32. }
  33. /// <summary>
  34. /// Initializes a new instance of the <b>BreakableComponentMenu</b> class with default settings.
  35. /// </summary>
  36. public BreakableComponentMenu(Designer designer) : base(designer)
  37. {
  38. selection = Designer.SelectedObjects;
  39. miCanBreak = CreateMenuItem(Res.Get("ComponentMenu,BreakableComponent,CanBreak"), new EventHandler(miCanBreak_Click));
  40. miCanBreak.CheckOnClick = true;
  41. int insertPos = Items.IndexOf(miCanShrink);
  42. Items.Insert(insertPos + 1, miCanBreak);
  43. if (selection[0] is BreakableComponent)
  44. {
  45. BreakableComponent component = selection[0] as BreakableComponent;
  46. miCanBreak.Enabled = !component.HasRestriction(Restrictions.DontModify);
  47. miCanBreak.Checked = component.CanBreak;
  48. }
  49. }
  50. }
  51. }