MatrixObjectMenu.cs 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using System.Drawing;
  5. using System.Windows.Forms;
  6. using FastReport.Table;
  7. using FastReport.Design;
  8. using FastReport.Utils;
  9. namespace FastReport.Matrix
  10. {
  11. internal class MatrixObjectMenu : TableObjectMenu
  12. {
  13. private MatrixObject matrix;
  14. private ContextMenuItem miAutoSize;
  15. private ContextMenuItem miShowTitle;
  16. private ContextMenuItem miCellsSideBySide;
  17. private ContextMenuItem miMatrixStyle;
  18. private new void Change()
  19. {
  20. matrix.BuildTemplate();
  21. base.Change();
  22. }
  23. private void BuildStyleMenu()
  24. {
  25. ContextMenuItem styleItem = CreateMenuItem(76, Res.Get("Designer,Toolbar,Style,NoStyle"), styleItem_Click);
  26. styleItem.Tag = "";
  27. styleItem.Checked = matrix.Style == "";
  28. styleItem.CheckOnClick = true;
  29. miMatrixStyle.DropDownItems.Add(styleItem);
  30. for (int i = 0; i < matrix.StyleSheet.Count; i++)
  31. {
  32. string text = matrix.StyleSheet[i].Name;
  33. styleItem = CreateMenuItem(Res.Get("ComponentsMisc,Matrix," + text), styleItem_Click);
  34. styleItem.Image = matrix.StyleSheet.GetStyleBitmap(i);
  35. styleItem.Tag = text;
  36. styleItem.Checked = matrix.Style == text;
  37. styleItem.CheckOnClick = true;
  38. miMatrixStyle.DropDownItems.Add(styleItem);
  39. }
  40. }
  41. private void styleItem_Click(object sender, EventArgs e)
  42. {
  43. matrix.Style = (string)(sender as ContextMenuItem).Tag;
  44. Change();
  45. }
  46. private void miAutoSize_Click(object sender, EventArgs e)
  47. {
  48. matrix.AutoSize = miAutoSize.Checked;
  49. Change();
  50. }
  51. private void miShowTitle_Click(object sender, EventArgs e)
  52. {
  53. matrix.ShowTitle = miShowTitle.Checked;
  54. Change();
  55. }
  56. private void miCellsSideBySide_Click(object sender, EventArgs e)
  57. {
  58. matrix.CellsSideBySide = miCellsSideBySide.Checked;
  59. Change();
  60. }
  61. public MatrixObjectMenu(Designer designer) : base(designer)
  62. {
  63. matrix = Designer.SelectedObjects[0] as MatrixObject;
  64. MyRes res = new MyRes("ComponentMenu,MatrixObject");
  65. miAutoSize = CreateMenuItem(Res.Get("ComponentMenu,TableRow,AutoSize"), miAutoSize_Click);
  66. miAutoSize.BeginGroup = true;
  67. miAutoSize.CheckOnClick = true;
  68. miShowTitle = CreateMenuItem(res.Get("ShowTitle"), miShowTitle_Click);
  69. miShowTitle.CheckOnClick = true;
  70. miCellsSideBySide = CreateMenuItem(res.Get("CellsSideBySide"), miCellsSideBySide_Click);
  71. miCellsSideBySide.CheckOnClick = true;
  72. miMatrixStyle = CreateMenuItem(87, res.Get("Style"), null);
  73. miMatrixStyle.BeginGroup = true;
  74. int insertIndex = Items.IndexOf(miRepeatHeaders);
  75. Items.Insert(insertIndex, miAutoSize);
  76. Items.Insert(insertIndex + 1, miShowTitle);
  77. Items.Insert(insertIndex + 3, miCellsSideBySide);
  78. Items.Insert(insertIndex + 4, miMatrixStyle);
  79. miRepeatHeaders.BeginGroup = false;
  80. miCanBreak.Visible = false;
  81. miGrowToBottom.Visible = false;
  82. miStyle.Visible = false;
  83. miAutoSize.Checked = matrix.AutoSize;
  84. miShowTitle.Checked = matrix.ShowTitle;
  85. miCellsSideBySide.Checked = matrix.CellsSideBySide;
  86. BuildStyleMenu();
  87. }
  88. }
  89. }