BandBaseMenu.cs 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using FastReport.Design;
  5. using System.Windows.Forms;
  6. using FastReport.Utils;
  7. namespace FastReport
  8. {
  9. internal class BandBaseMenu : BreakableComponentMenu
  10. {
  11. private SelectedObjectCollection selection;
  12. public ContextMenuItem miAddChildBand;
  13. public ContextMenuItem miStartNewPage;
  14. public ContextMenuItem miPrintOnBottom;
  15. private void miAddChildBand_Click(object sender, EventArgs e)
  16. {
  17. BandBase band = selection[0] as BandBase;
  18. ChildBand child = new ChildBand();
  19. band.Child = child;
  20. child.CreateUniqueName();
  21. child.Height = child.GetPreferredSize().Height;
  22. Change();
  23. }
  24. private void miStartNewPage_Click(object sender, EventArgs e)
  25. {
  26. foreach (Base c in selection)
  27. {
  28. if (c is BandBase && !c.HasRestriction(Restrictions.DontModify))
  29. (c as BandBase).StartNewPage = miStartNewPage.Checked;
  30. }
  31. Change();
  32. }
  33. private void miPrintOnBottom_Click(object sender, EventArgs e)
  34. {
  35. foreach (Base c in selection)
  36. {
  37. if (c is BandBase && !c.HasRestriction(Restrictions.DontModify))
  38. (c as BandBase).PrintOnBottom = miPrintOnBottom.Checked;
  39. }
  40. Change();
  41. }
  42. public BandBaseMenu(Designer designer)
  43. : base(designer)
  44. {
  45. selection = Designer.SelectedObjects;
  46. miAddChildBand = CreateMenuItem(Res.Get("ComponentMenu,Band,AddChildBand"), miAddChildBand_Click);
  47. miStartNewPage = CreateMenuItem(Res.Get("ComponentMenu,Band,StartNewPage"), miStartNewPage_Click);
  48. miStartNewPage.BeginGroup = true;
  49. miStartNewPage.CheckOnClick = true;
  50. miPrintOnBottom = CreateMenuItem(Res.Get("ComponentMenu,Band,PrintOnBottom"), miPrintOnBottom_Click);
  51. miPrintOnBottom.CheckOnClick = true;
  52. int insertPos = Items.IndexOf(miHyperlink);
  53. Items.Insert(insertPos, miAddChildBand);
  54. insertPos = Items.IndexOf(miGrowToBottom);
  55. Items.Insert(insertPos, miStartNewPage);
  56. Items.Insert(insertPos + 1, miPrintOnBottom);
  57. BandBase band = selection[0] as BandBase;
  58. miAddChildBand.Enabled = !band.HasRestriction(Restrictions.DontModify) && band.Child == null;
  59. bool enabled = !band.HasRestriction(Restrictions.DontModify) && band.FlagUseStartNewPage;
  60. miStartNewPage.Enabled = enabled;
  61. miPrintOnBottom.Enabled = enabled;
  62. miStartNewPage.Checked = band.StartNewPage;
  63. miPrintOnBottom.Checked = band.PrintOnBottom;
  64. miGrowToBottom.Visible = false;
  65. miCut.Visible = false;
  66. miCopy.Visible = false;
  67. miPaste.BeginGroup = true;
  68. miBringToFront.Visible = false;
  69. miSendToBack.Visible = false;
  70. }
  71. }
  72. }