DesignerForm.cs 66 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Drawing;
  4. using System.Windows.Forms;
  5. using System.IO;
  6. using FastReport.Controls;
  7. using FastReport.Forms;
  8. using FastReport.Utils;
  9. using FastReport.Design.PageDesigners.Page;
  10. using FastReport.Design.Toolbars;
  11. using FastReport.DevComponents.DotNetBar;
  12. namespace FastReport.Design.StandardDesigner
  13. {
  14. /// <summary>
  15. /// Represents standard designer's form.
  16. /// </summary>
  17. /// <remarks>
  18. /// This form contains the <see cref="DesignerControl"/>. Use the <see cref="Designer"/>
  19. /// property to get access to this control.
  20. /// <para/>Usually you don't need to create an instance of this class. The designer can be called
  21. /// using the <see cref="FastReport.Report.Design()"/> method of
  22. /// the <see cref="FastReport.Report"/> instance.
  23. /// <para/>If you decided to use this class, you need:
  24. /// <list type="bullet">
  25. /// <item>
  26. /// <description>create an instance of this class;</description>
  27. /// </item>
  28. /// <item>
  29. /// <description>set the <b>Designer.Report</b> property to report that you need to design;</description>
  30. /// </item>
  31. /// <item>
  32. /// <description>call either <b>ShowModal</b> or <b>Show</b> methods to display a form.</description>
  33. /// </item>
  34. /// </list>
  35. /// </remarks>
  36. public partial class DesignerForm : BaseForm, IDesignerPlugin
  37. {
  38. #region Fields
  39. private Dictionary<BaseItem, ItemInfo> ribbonItems = new Dictionary<BaseItem, ItemInfo>();
  40. #endregion
  41. #region Properties
  42. /// <summary>
  43. /// Gets a reference to the <see cref="Designer"/> control which is actually a designer.
  44. /// </summary>
  45. public DesignerControl Designer
  46. {
  47. get { return designer; }
  48. }
  49. /// <summary>
  50. /// Gets a list of File menu buttons
  51. /// </summary>
  52. public Dictionary<string, ButtonItem> Items
  53. {
  54. get
  55. {
  56. if (items == null)
  57. {
  58. items = new Dictionary<string, ButtonItem>();
  59. items.Add("btnFileNew", this.btnFileNew);
  60. items.Add("btnFileOpen", this.btnFileOpen);
  61. items.Add("btnFileSave", this.btnFileSave);
  62. items.Add("btnFileSaveAs", this.btnFileSaveAs);
  63. items.Add("btnFileSaveWithRandomData", this.btnFileSaveWithRandomData);
  64. items.Add("btnFileSaveAll", this.btnFileSaveAll);
  65. items.Add("btnFilePreview", this.btnFilePreview);
  66. items.Add("btnFilePrinterSetup", this.btnFilePrinterSetup);
  67. items.Add("btnFileSelectLanguage", this.btnFileSelectLanguage);
  68. items.Add("btnWelcome", this.btnWelcome);
  69. items.Add("btnHelp", this.btnHelp);
  70. items.Add("btnAbout", this.btnAbout);
  71. items.Add("btnFileClose", this.btnFileClose);
  72. }
  73. return items;
  74. }
  75. }
  76. private ReportWorkspace Workspace
  77. {
  78. get
  79. {
  80. if (designer.ActiveReportTab != null && designer.ActiveReportTab.ActivePageDesigner is ReportPageDesigner)
  81. return (Designer.ActiveReportTab.ActivePageDesigner as ReportPageDesigner).Workspace;
  82. return null;
  83. }
  84. }
  85. private ReportPageDesigner ReportPageDesigner
  86. {
  87. get
  88. {
  89. //Fixed try catch 66fcd219-30f1-45e6-8ee5-ce65cfb9d35d
  90. //rly annoying freezes on designer start
  91. ReportTab tab = Designer.ActiveReportTab;
  92. if (tab != null)
  93. return tab.ActivePageDesigner as ReportPageDesigner;
  94. return null;
  95. }
  96. }
  97. private PageBase Page
  98. {
  99. get
  100. {
  101. //Fixed try catch 66fcd219-30f1-45e6-8ee5-ce65cfb9d35d
  102. //rly annoying freezes on designer start
  103. ReportPageDesigner d = ReportPageDesigner;
  104. if (d != null)
  105. return d.Page;
  106. return null;
  107. }
  108. }
  109. private DesignerControl designer;
  110. private Dictionary<string, ButtonItem> items;
  111. private Timer clipboardTimer;
  112. private Timer previewTimer;
  113. #endregion
  114. /// <summary>
  115. /// Creates a new instance of the <see cref="DesignerForm"/> class with default settings.
  116. /// </summary>
  117. public DesignerForm()
  118. {
  119. InitDesigner();
  120. }
  121. /// <summary>
  122. /// Creates a new instance of the <see cref="DesignerForm"/> class with default settings.
  123. /// </summary>
  124. /// <param name="welcome">enables welcome window</param>
  125. public DesignerForm(bool welcome)
  126. {
  127. InitDesigner();
  128. if (welcome)
  129. Shown += ShowWelcomeWindow;
  130. }
  131. private void InitDesigner()
  132. {
  133. RightToLeft = Config.RightToLeft ? RightToLeft.Yes : RightToLeft.No;
  134. InitializeComponent();
  135. if (Config.RightToLeft)
  136. {
  137. btnFind.ImagePosition = eImagePosition.Right;
  138. btnSelectAll.ImagePosition = eImagePosition.Right;
  139. }
  140. Font = DrawUtils.DefaultFont;
  141. Icon = Config.DesignerSettings.Icon;
  142. designer = new DesignerControl();
  143. this.ribbonControl.AllowDrop = true;
  144. this.AllowDrop = true;
  145. this.ribbonControl.RecalcLayout();
  146. Controls.Add(designer);
  147. designer.Dock = DockStyle.Fill;
  148. designer.BringToFront();
  149. designer.Plugins.Add(this);
  150. designer.ShowStatusBar = true;
  151. SetupControls();
  152. Localize();
  153. UpdateDpiDependencies();
  154. KeyPreview = true;
  155. KeyDown += DesignerForm_KeyDown;
  156. designer.UIStyle = Config.UIStyle;
  157. }
  158. /// <inheritdoc/>
  159. protected override void WndProc(ref Message m)
  160. {
  161. const int WM_ACTIVATEAPP = 0x001C;
  162. if (m.Msg == WM_ACTIVATEAPP)
  163. {
  164. if (m.WParam == IntPtr.Zero)
  165. {
  166. PopupManager.CloseAllPopups();
  167. }
  168. }
  169. base.WndProc(ref m);
  170. }
  171. private void DesignerForm_KeyDown(object sender, KeyEventArgs e)
  172. {
  173. if (e.KeyValue == 0x9 && e.Control)
  174. {
  175. if (e.Shift)
  176. Designer.ActiveReportTab.CtrlShiftTab();
  177. else
  178. Designer.ActiveReportTab.CtrlTab();
  179. e.Handled = true;
  180. }
  181. }
  182. private void ShowWelcomeWindow(object s, EventArgs e)
  183. {
  184. Shown -= ShowWelcomeWindow;
  185. if (Config.WelcomeEnabled &&
  186. Config.WelcomeShowOnStartup &&
  187. String.IsNullOrEmpty(designer.Report.FileName))
  188. {
  189. Designer.cmdWelcome.Invoke();
  190. }
  191. }
  192. #region Utils
  193. private void CreateItem(BaseItem item, string textRes)
  194. {
  195. CreateItem(item, -1, textRes, textRes, null);
  196. }
  197. private void CreateItem(BaseItem item, string textRes, EventHandler click)
  198. {
  199. CreateItem(item, -1, textRes, textRes, click);
  200. }
  201. private void CreateItem(BaseItem item, int imageIndex, string textRes)
  202. {
  203. CreateItem(item, imageIndex, textRes, textRes, null);
  204. }
  205. private void CreateItem(BaseItem item, int imageIndex, string textRes, EventHandler click)
  206. {
  207. CreateItem(item, imageIndex, textRes, textRes, click);
  208. }
  209. private void CreateItem(BaseItem item, int imageIndex, string textRes, string tooltipRes, EventHandler click)
  210. {
  211. ribbonItems.Add(item, new ItemInfo(imageIndex, "", textRes, tooltipRes));
  212. if (click != null)
  213. item.Click += click;
  214. }
  215. private void CreateItem(BaseItem item, string imageRes, string textRes, EventHandler click)
  216. {
  217. CreateItem(item, imageRes, textRes, textRes, click);
  218. }
  219. private void CreateItem(BaseItem item, string imageRes, string textRes, string tooltipRes, EventHandler click)
  220. {
  221. ribbonItems.Add(item, new ItemInfo(-1, imageRes, textRes, tooltipRes));
  222. if (click != null)
  223. item.Click += click;
  224. }
  225. #endregion
  226. #region Setup Controls
  227. private void SetupControls()
  228. {
  229. SetupFileControls();
  230. SetupHomeControls();
  231. SetupReportControls();
  232. SetupLayoutControls();
  233. SetupViewControls();
  234. }
  235. private void SetupFileControls()
  236. {
  237. Bitmap cap = new Bitmap(32, 32);
  238. btnFile.PopupOpen += miFile_PopupOpen;
  239. string res = "Designer,Menu,File,";
  240. string res1 = "Designer,Toolbar,Standard,";
  241. CreateItem(btnFileNew, res + "New", Designer.cmdNew.Invoke);
  242. CreateItem(btnFileOpen, -1, res + "Open", res1 + "Open", Designer.cmdOpen.Invoke);
  243. CreateItem(btnFileClose, res + "Close", Designer.cmdClose.Invoke);
  244. CreateItem(btnFileSave, -1, res + "Save", res1 + "Save", Designer.cmdSave.Invoke);
  245. CreateItem(btnFileSaveAs, res + "SaveAs", Designer.cmdSaveAs.Invoke);
  246. CreateItem(btnFileSaveWithRandomData, res + "SaveWithRandomData", Designer.cmdSaveWithRandomData.Invoke);
  247. CreateItem(btnFileSaveAll, -1, res + "SaveAll", res1 + "SaveAll", Designer.cmdSaveAll.Invoke);
  248. CreateItem(btnFilePrinterSetup, res + "PrinterSetup", Designer.cmdPrinterSetup.Invoke);
  249. CreateItem(btnFilePreview, res + "Preview", btnPreview_Click);
  250. btnFilePreview.Image = cap;
  251. CreateItem(btnFileSelectLanguage, res + "SelectLanguage", Designer.cmdSelectLanguage.Invoke);
  252. btnFileSelectLanguage.Image = cap;
  253. CreateItem(btnFileExit, res + "Exit", Designer.Exit);
  254. CreateItem(btnOptions, "Designer,Menu,View,Options", Designer.cmdOptions.Invoke);
  255. CreateItem(btnAccount, 257, "Designer,Menu,Help,Account", Designer.cmdAccount.Invoke);
  256. CreateItem(btnWelcome, "Designer,Welcome,Button", Designer.cmdWelcome.Invoke);
  257. btnWelcome.Visible = Designer.cmdWelcome.Enabled;
  258. btnWelcome.Image = cap;
  259. CreateItem(btnHelp, "Designer,Menu,Help,Contents", Designer.cmdHelpContents.Invoke);
  260. btnHelp.Image = cap;
  261. CreateItem(btnAbout, "Designer,Menu,Help,About", Designer.cmdAbout.Invoke);
  262. btnAbout.Image = cap;
  263. }
  264. private void SetupHomeControls()
  265. {
  266. string res = "Designer,Menu,Edit,";
  267. string res1 = "Designer,Toolbar,Standard,";
  268. //-------------------------------------------------------------------
  269. // Undo
  270. //-------------------------------------------------------------------
  271. CreateItem(btnUndo, 8, res + "Undo", res1 + "Undo", Designer.cmdUndo.Invoke);
  272. CreateItem(btnRedo, 9, res + "Redo", res1 + "Redo", Designer.cmdRedo.Invoke);
  273. //-------------------------------------------------------------------
  274. // Clipboard
  275. //-------------------------------------------------------------------
  276. CreateItem(btnCut, 5, res + "Cut", res1 + "Cut", Designer.cmdCut.Invoke);
  277. CreateItem(btnCopy, 6, res + "Copy", res1 + "Copy", Designer.cmdCopy.Invoke);
  278. CreateItem(btnPaste, "Ribbon.Paste.png", res + "Paste", res1 + "Paste", Designer.cmdPaste.Invoke);
  279. CreateItem(btnFormatPainter, 18, res1 + "FormatPainter", Designer.cmdFormatPainter.Invoke);
  280. clipboardTimer = new Timer();
  281. clipboardTimer.Interval = 500;
  282. clipboardTimer.Tick += clipboardTimer_Tick;
  283. clipboardTimer.Start();
  284. //-------------------------------------------------------------------
  285. // Text
  286. //-------------------------------------------------------------------
  287. res = "Designer,Toolbar,Text,";
  288. CreateItem(cbxFontName, res + "Name");
  289. cbxFontName.FontSelected += cbxName_FontSelected;
  290. CreateItem(cbxFontSize, res + "Size");
  291. cbxFontSize.SizeSelected += cbxSize_SizeSelected;
  292. CreateItem(btnTextColor, 23, res + "Color", btnColor_Click);
  293. btnTextColor.SetStyle(designer.UIStyle);
  294. CreateItem(btnBold, 20, res + "Bold", btnBold_Click);
  295. CreateItem(btnItalic, 21, res + "Italic", btnItalic_Click);
  296. CreateItem(btnUnderline, 22, res + "Underline", btnUnderline_Click);
  297. CreateItem(btnAlignLeft, 25, res + "Left", btnLeft_Click);
  298. CreateItem(btnAlignCenter, 26, res + "Center", btnCenter_Click);
  299. CreateItem(btnAlignRight, 27, res + "Right", btnRight_Click);
  300. CreateItem(btnJustify, 28, res + "Justify", btnJustify_Click);
  301. CreateItem(btnAlignTop, 29, res + "Top", btnTop_Click);
  302. CreateItem(btnAlignMiddle, 30, res + "Middle", btnMiddle_Click);
  303. CreateItem(btnAlignBottom, 31, res + "Bottom", btnBottom_Click);
  304. CreateItem(btnTextRotation, 64, res + "Angle", btnRotation_Click);
  305. //-------------------------------------------------------------------
  306. // Border and Fill
  307. //-------------------------------------------------------------------
  308. res = "Designer,Toolbar,Border,";
  309. CreateItem(btnTopLine, 32, res + "Top", btnTopLine_Click);
  310. CreateItem(btnBottomLine, 33, res + "Bottom", btnBottomLine_Click);
  311. CreateItem(btnLeftLine, 34, res + "Left", btnLeftLine_Click);
  312. CreateItem(btnRightLine, 35, res + "Right", btnRightLine_Click);
  313. CreateItem(btnAllLines, 36, res + "All", btnAll_Click);
  314. CreateItem(btnNoLines, 37, res + "None", btnNone_Click);
  315. CreateItem(btnFillColor, 38, res + "FillColor", btnFillColor_Click);
  316. btnFillColor.DefaultColor = Color.Transparent;
  317. CreateItem(btnFillProps, 141, res + "FillStyle", btnFillProps_Click);
  318. CreateItem(btnLineColor, 39, res + "LineColor", btnLineColor_Click);
  319. btnLineColor.DefaultColor = Color.Black;
  320. CreateItem(btnLineWidth, 71, res + "Width");
  321. btnLineWidth.WidthSelected += cbxWidth_WidthSelected;
  322. CreateItem(btnLineStyle, 85, res + "Style");
  323. btnLineStyle.StyleSelected += cbxLineStyle_StyleSelected;
  324. CreateItem(btnBorderProps, 40, res + "Props", btnBorderProps_Click);
  325. //-------------------------------------------------------------------
  326. // Format
  327. //-------------------------------------------------------------------
  328. CreateItem(btnHighlight, "Ribbon.Highlight.png", "Designer,Toolbar,Text,Highlight", btnHighlight_Click);
  329. CreateItem(btnFormat, "Ribbon.Format.png", "ComponentMenu,TextObject,Format", btnFormat_Click);
  330. //-------------------------------------------------------------------
  331. // Styles
  332. //-------------------------------------------------------------------
  333. cbxStyles.StyleSelected += cbxStyle_StyleSelected;
  334. CreateItem(btnStyles, 87, "Designer,Menu,Report,Styles", Designer.cmdReportStyles.Invoke);
  335. //-------------------------------------------------------------------
  336. // Editing
  337. //-------------------------------------------------------------------
  338. res = "Designer,Menu,Edit,";
  339. CreateItem(btnFind, 181, res + "Find", Designer.cmdFind.Invoke);
  340. CreateItem(btnReplace, "Ribbon.Replace.png", res + "Replace", Designer.cmdReplace.Invoke);
  341. CreateItem(btnSelectAll, 100, res + "SelectAll", Designer.cmdSelectAll.Invoke);
  342. //-------------------------------------------------------------------
  343. // Polygon
  344. //-------------------------------------------------------------------
  345. res = "Designer,Toolbar,Polygon,";
  346. CreateItem(btnPolyMove, 256, res + "MoveScale", Designer.CmdPolySelectMove.Invoke);
  347. CreateItem(btnPolyPointer, 252, res + "Pointer", Designer.CmdPolySelectPointer.Invoke);
  348. CreateItem(btnPolyAddPoint, 253, res + "AddPoint", Designer.CmdPolySelectAddPoint.Invoke);
  349. CreateItem(btnPolyAddBezier, 254, res + "Bezier", Designer.CmdPolySelectBezier.Invoke);
  350. CreateItem(btnPolyRemovePoint, 255, res + "RemovePoint", Designer.CmdPolySelectRemovePoint.Invoke);
  351. }
  352. private void SetupReportControls()
  353. {
  354. string res = "";
  355. CreateItem(btnReportOptions, "Ribbon.Report1.png", "Designer,Menu,Report,Options", Designer.cmdReportSettings.Invoke);
  356. CreateItem(btnPreview, "Ribbon.Report.png", "Designer,Menu,File,Preview", "Designer,Toolbar,Standard,Preview", btnPreview_Click);
  357. res = "Designer,Menu,Data,";
  358. CreateItem(btnDataChoose, "Ribbon.ChooseData.png", res + "Choose", Designer.cmdChooseData.Invoke);
  359. CreateItem(btnDataAdd, "Ribbon.AddDataSource.png", res + "Add", Designer.cmdAddData.Invoke);
  360. res = "Designer,Toolbar,Standard,";
  361. CreateItem(btnAddPage, 10, res + "NewPage", Designer.cmdNewPage.Invoke);
  362. CreateItem(btnCopyPage, 6, res + "CopyPage", Designer.cmdCopyPage.Invoke);
  363. CreateItem(btnAddDialog, 11, res + "NewDialog", Designer.cmdNewDialog.Invoke);
  364. CreateItem(btnDeletePage, 12, res + "DeletePage", Designer.cmdDeletePage.Invoke);
  365. CreateItem(btnPageSetup, "Ribbon.PageSetup.png", res + "PageSetup", Designer.cmdPageSetup.Invoke);
  366. res = "Designer,Menu,Report,";
  367. CreateItem(btnConfigureBands, "Ribbon.Bands.png", res + "Bands", miInsertBands_Click);
  368. CreateItem(btnGroupExpert, "Ribbon.Grouping.png", res + "GroupExpert", miReportGroupExpert_Click);
  369. res = "Objects,Bands,";
  370. CreateItem(btnReportTitle, res + "ReportTitle", miReportTitle_Click);
  371. CreateItem(btnReportSummary, res + "ReportSummary", miReportSummary_Click);
  372. CreateItem(btnPageHeader, res + "PageHeader", miPageHeader_Click);
  373. CreateItem(btnPageFooter, res + "PageFooter", miPageFooter_Click);
  374. CreateItem(btnColumnHeader, res + "ColumnHeader", miColumnHeader_Click);
  375. CreateItem(btnColumnFooter, res + "ColumnFooter", miColumnFooter_Click);
  376. CreateItem(btnOverlay, res + "Overlay", miOverlay_Click);
  377. previewTimer = new Timer();
  378. previewTimer.Interval = 20;
  379. previewTimer.Tick += previewTimer_Tick;
  380. }
  381. private void SetupLayoutControls()
  382. {
  383. string res = "Designer,Toolbar,Layout,";
  384. CreateItem(btnAlignToGrid, "Ribbon.AlignToGrid.png", res + "AlignToGrid", btnAlignToGrid_Click);
  385. CreateItem(btnFitToGrid, "Ribbon.FitToGrid.png", res + "SizeToGrid", btnSizeToGrid_Click);
  386. CreateItem(btnAlignLefts, 41, res + "Left", btnAlignLefts_Click);
  387. CreateItem(btnAlignCenters, 42, res + "Center", btnAlignCenters_Click);
  388. CreateItem(btnAlignRights, 45, res + "Right", btnAlignRights_Click);
  389. CreateItem(btnAlignTops, 46, res + "Top", btnAlignTops_Click);
  390. CreateItem(btnAlignMiddles, 47, res + "Middle", btnAlignMiddles_Click);
  391. CreateItem(btnAlignBottoms, 50, res + "Bottom", btnAlignBottoms_Click);
  392. CreateItem(btnSameWidth, 83, res + "SameWidth", btnSameWidth_Click);
  393. CreateItem(btnSameHeight, 84, res + "SameHeight", btnSameHeight_Click);
  394. CreateItem(btnSameSize, 91, res + "SameSize", btnSameSize_Click);
  395. CreateItem(btnSpaceHorizontally, 44, res + "SpaceHorizontally", btnSpaceHorizontally_Click);
  396. CreateItem(btnIncreaseHorizontalSpacing, 92, res + "IncreaseHorizontalSpacing", btnIncreaseHorizontalSpacing_Click);
  397. CreateItem(btnDecreaseHorizontalSpacing, 93, res + "DecreaseHorizontalSpacing", btnDecreaseHorizontalSpacing_Click);
  398. CreateItem(btnRemoveHorizontalSpacing, 94, res + "RemoveHorizontalSpacing", btnRemoveHorizontalSpacing_Click);
  399. CreateItem(btnSpaceVertically, 49, res + "SpaceVertically", btnSpaceVertically_Click);
  400. CreateItem(btnIncreaseVerticalSpacing, 95, res + "IncreaseVerticalSpacing", btnIncreaseVerticalSpacing_Click);
  401. CreateItem(btnDecreaseVerticalSpacing, 96, res + "DecreaseVerticalSpacing", btnDecreaseVerticalSpacing_Click);
  402. CreateItem(btnRemoveVerticalSpacing, 97, res + "RemoveVerticalSpacing", btnRemoveVerticalSpacing_Click);
  403. CreateItem(btnCenterHorizontally, 43, res + "CenterHorizontally", btnCenterHorizontally_Click);
  404. CreateItem(btnCenterVertically, 48, res + "CenterVertically", btnCenterVertically_Click);
  405. CreateItem(btnBringToFront, "Ribbon.BringToFront.png", res + "BringToFront", Designer.cmdBringToFront.Invoke);
  406. CreateItem(btnSendToBack, "Ribbon.SendToBack.png", res + "SendToBack", Designer.cmdSendToBack.Invoke);
  407. CreateItem(btnAlignment, "Ribbon.AlignMenu.png", "", null);
  408. CreateItem(btnSize, "Ribbon.SizeMenu.png", "", null);
  409. CreateItem(btnSpacing, "Ribbon.SpacingMenu.png", "", null);
  410. res = "Designer,Toolbar,Standard,";
  411. CreateItem(btnGroup, "Ribbon.Group.png", res + "Group", Designer.cmdGroup.Invoke);
  412. CreateItem(btnUngroup, "Ribbon.Ungroup.png", res + "Ungroup", Designer.cmdUngroup.Invoke);
  413. }
  414. private void SetupViewControls()
  415. {
  416. string res = "Designer,Menu,View,";
  417. CreateItem(btnViewGrid, "Ribbon.ViewGridlines.png", res + "Grid", MenuViewGrid_Click);
  418. CreateItem(btnViewGuides, "Ribbon.ViewGuides.png", res + "Guides", MenuViewGuides_Click);
  419. CreateItem(btnAutoGuides, res + "AutoGuides", MenuViewAutoGuides_Click);
  420. CreateItem(btnDeleteHGuides, res + "DeleteHGuides", MenuViewDeleteHGuides_Click);
  421. CreateItem(btnDeleteVGuides, res + "DeleteVGuides", MenuViewDeleteVGuides_Click);
  422. res = "Designer,ToolWindow,";
  423. CreateItem(btnPanels, "Ribbon.Panels.png", "", null);
  424. CreateItem(btnProperties, 68, res + "Properties", BtnProperties_Click);
  425. CreateItem(btnData, 72, res + "Dictionary", BtnData_Click);
  426. CreateItem(btnReportTree, 189, res + "ReportTree", BtnReportTree_Click);
  427. CreateItem(btnMessages, 70, res + "Messages", BtnMessages_Click);
  428. CreateItem(btnValidate, 70, res + "Validator", BtnValidate_Click);
  429. designer.PropertiesWindow.VisibleChanged += (object s, EventArgs e) =>
  430. {
  431. btnProperties.Checked = designer.PropertiesWindow.Visible;
  432. };
  433. designer.DataWindow.VisibleChanged += (object s, EventArgs e) =>
  434. {
  435. btnData.Checked = designer.DataWindow.Visible;
  436. };
  437. designer.ReportTreeWindow.VisibleChanged += (object s, EventArgs e) =>
  438. {
  439. btnReportTree.Checked = designer.ReportTreeWindow.Visible;
  440. };
  441. designer.MessagesWindow.VisibleChanged += (object s, EventArgs e) =>
  442. {
  443. btnMessages.Checked = designer.MessagesWindow.Visible;
  444. };
  445. designer.ValidatorWindow.VisibleChanged += (object s, EventArgs e) =>
  446. {
  447. btnValidate.Checked = designer.ValidatorWindow.Visible;
  448. };
  449. res = "Forms,ReportPageOptions,";
  450. CreateItem(btnUnits, "Ribbon.Page.png", "Designer,Menu,View,Units", null);
  451. CreateItem(btnUnitsMillimeters, res + "Millimeters", miViewUnits_Click);
  452. CreateItem(btnUnitsCentimeters, res + "Centimeters", miViewUnits_Click);
  453. CreateItem(btnUnitsInches, res + "Inches", miViewUnits_Click);
  454. CreateItem(btnUnitsHundrethsOfInch, res + "HundrethsOfInch", miViewUnits_Click);
  455. }
  456. #endregion
  457. #region Update Controls
  458. private void UpdateControls()
  459. {
  460. UpdateFileControls();
  461. UpdateHomeControls();
  462. UpdateReportControls();
  463. UpdateLayoutControls();
  464. UpdateViewControls();
  465. }
  466. private void UpdateFileControls()
  467. {
  468. btnFileNew.Enabled = Designer.cmdNew.Enabled;
  469. btnFileOpen.Enabled = Designer.cmdOpen.Enabled;
  470. btnFileClose.Enabled = Designer.cmdClose.Enabled;
  471. btnFileClose.Visible = Designer.MdiMode;
  472. btnFileSave.Enabled = Designer.cmdSave.Enabled;
  473. btnFileSaveAs.Enabled = Designer.cmdSaveAs.Enabled;
  474. btnFileSaveWithRandomData.Enabled = Designer.cmdSaveWithRandomData.Enabled;
  475. btnFileSaveAll.Visible = Designer.MdiMode;
  476. btnFileSaveAll.Enabled = Designer.cmdSaveAll.Enabled;
  477. //btnFilePageSetup.Enabled = Designer.cmdPageSetup.Enabled;
  478. btnFilePrinterSetup.Enabled = Designer.cmdPrinterSetup.Enabled;
  479. btnFilePreview.Enabled = Designer.cmdPreview.Enabled;
  480. btnWelcome.Enabled = Designer.cmdWelcome.Enabled;
  481. btnHelp.Enabled = Designer.cmdHelpContents.Enabled;
  482. }
  483. private void UpdateHomeControls()
  484. {
  485. //-------------------------------------------------------------------
  486. // Undo
  487. //-------------------------------------------------------------------
  488. btnUndo.Enabled = Designer.cmdUndo.Enabled;
  489. btnRedo.Enabled = Designer.cmdRedo.Enabled;
  490. //-------------------------------------------------------------------
  491. // Clipboard
  492. //-------------------------------------------------------------------
  493. btnCut.Enabled = Designer.cmdCut.Enabled;
  494. btnCopy.Enabled = Designer.cmdCopy.Enabled;
  495. btnPaste.Enabled = Designer.cmdPaste.Enabled;
  496. btnFormatPainter.Enabled = Designer.cmdFormatPainter.Enabled;
  497. btnFormatPainter.Checked = Designer.FormatPainter;
  498. //-------------------------------------------------------------------
  499. // Text
  500. //-------------------------------------------------------------------
  501. bool enabled = Designer.SelectedTextObjects.Enabled;
  502. cbxFontName.Enabled = enabled;
  503. cbxFontSize.Enabled = enabled;
  504. btnBold.Enabled = enabled;
  505. btnItalic.Enabled = enabled;
  506. btnUnderline.Enabled = enabled;
  507. btnAlignLeft.Enabled = enabled;
  508. btnAlignCenter.Enabled = enabled;
  509. btnAlignRight.Enabled = enabled;
  510. btnJustify.Enabled = enabled;
  511. btnAlignTop.Enabled = enabled;
  512. btnAlignMiddle.Enabled = enabled;
  513. btnAlignBottom.Enabled = enabled;
  514. btnTextColor.Enabled = enabled;
  515. btnTextRotation.Enabled = enabled;
  516. if (enabled)
  517. {
  518. TextObject text = Designer.SelectedTextObjects.First;
  519. cbxFontName.FontName = text.Font.Name;
  520. cbxFontSize.FontSize = text.Font.Size;
  521. btnBold.Checked = text.Font.Bold;
  522. btnItalic.Checked = text.Font.Italic;
  523. btnUnderline.Checked = text.Font.Underline;
  524. btnAlignLeft.Checked = text.HorzAlign == HorzAlign.Left;
  525. btnAlignCenter.Checked = text.HorzAlign == HorzAlign.Center;
  526. btnAlignRight.Checked = text.HorzAlign == HorzAlign.Right;
  527. btnJustify.Checked = text.HorzAlign == HorzAlign.Justify;
  528. btnAlignTop.Checked = text.VertAlign == VertAlign.Top;
  529. btnAlignMiddle.Checked = text.VertAlign == VertAlign.Center;
  530. btnAlignBottom.Checked = text.VertAlign == VertAlign.Bottom;
  531. if (text.TextFill is SolidFill)
  532. btnTextColor.Color = (text.TextFill as SolidFill).Color;
  533. }
  534. else
  535. {
  536. btnBold.Checked = false;
  537. btnItalic.Checked = false;
  538. btnUnderline.Checked = false;
  539. btnAlignLeft.Checked = false;
  540. btnAlignCenter.Checked = false;
  541. btnAlignRight.Checked = false;
  542. btnJustify.Checked = false;
  543. btnAlignTop.Checked = false;
  544. btnAlignMiddle.Checked = false;
  545. btnAlignBottom.Checked = false;
  546. }
  547. //-------------------------------------------------------------------
  548. // Border and Fill
  549. //-------------------------------------------------------------------
  550. enabled = Designer.SelectedReportComponents.Enabled;
  551. bool simple = Designer.SelectedReportComponents.SimpleBorder;
  552. bool useBorder = Designer.SelectedReportComponents.BorderEnabled;
  553. bool borderEnabled = enabled && !simple && useBorder;
  554. btnTopLine.Enabled = borderEnabled;
  555. btnBottomLine.Enabled = borderEnabled;
  556. btnLeftLine.Enabled = borderEnabled;
  557. btnRightLine.Enabled = borderEnabled;
  558. btnAllLines.Enabled = borderEnabled;
  559. btnNoLines.Enabled = borderEnabled;
  560. btnFillColor.Enabled = enabled && Designer.SelectedReportComponents.FillEnabled;
  561. btnFillProps.Enabled = enabled && Designer.SelectedReportComponents.FillEnabled;
  562. btnLineColor.Enabled = enabled && useBorder;
  563. btnLineWidth.Enabled = enabled && useBorder;
  564. btnLineStyle.Enabled = enabled && useBorder;
  565. btnBorderProps.Enabled = borderEnabled;
  566. if (enabled)
  567. {
  568. Border border = Designer.SelectedReportComponents.First.Border;
  569. btnTopLine.Checked = (border.Lines & BorderLines.Top) != 0;
  570. btnBottomLine.Checked = (border.Lines & BorderLines.Bottom) != 0;
  571. btnLeftLine.Checked = (border.Lines & BorderLines.Left) != 0;
  572. btnRightLine.Checked = (border.Lines & BorderLines.Right) != 0;
  573. btnLineColor.Color = border.Color;
  574. if (Designer.SelectedReportComponents.First.Fill is SolidFill)
  575. btnFillColor.Color = (Designer.SelectedReportComponents.First.Fill as SolidFill).Color;
  576. btnLineWidth.LineWidth = border.Width;
  577. btnLineStyle.LineStyle = border.Style;
  578. }
  579. //-------------------------------------------------------------------
  580. // Format
  581. //-------------------------------------------------------------------
  582. btnHighlight.Enabled = Designer.SelectedTextObjects.Enabled;
  583. btnFormat.Enabled = Designer.SelectedTextObjects.Enabled;
  584. //-------------------------------------------------------------------
  585. // Editing
  586. //-------------------------------------------------------------------
  587. btnFind.Enabled = Designer.cmdFind.Enabled;
  588. btnReplace.Enabled = Designer.cmdReplace.Enabled;
  589. btnSelectAll.Enabled = Designer.cmdSelectAll.Enabled;
  590. //-------------------------------------------------------------------
  591. // Styles
  592. //-------------------------------------------------------------------
  593. enabled = Designer.SelectedReportComponents.Enabled;
  594. cbxStyles.Enabled = enabled;
  595. cbxStyles.Report = Designer.ActiveReport;
  596. if (enabled)
  597. cbxStyles.Style = Designer.SelectedReportComponents.First.Style;
  598. //-------------------------------------------------------------------
  599. // Polygon
  600. //-------------------------------------------------------------------
  601. enabled = (Designer.SelectedObjects.Count == 1) && (Designer.SelectedObjects[0] is PolyLineObject);
  602. btnPolyMove.Enabled = enabled;
  603. btnPolyPointer.Enabled = enabled;
  604. btnPolyAddBezier.Enabled = enabled;
  605. btnPolyAddPoint.Enabled = enabled;
  606. btnPolyRemovePoint.Enabled = enabled;
  607. if (!enabled)
  608. selectBtn(PolyLineObject.PolygonSelectionMode.MoveAndScale);
  609. else
  610. {
  611. PolyLineObject plobj = (Designer.SelectedObjects[0] as PolyLineObject);
  612. selectBtn(plobj.SelectionMode);
  613. }
  614. //-------------------------------------------------------------------
  615. }
  616. private void selectBtn(PolyLineObject.PolygonSelectionMode index)
  617. {
  618. PolyLineObject plobj = null;
  619. if ((Designer.SelectedObjects.Count == 1) && (Designer.SelectedObjects[0] is PolyLineObject))
  620. plobj = (Designer.SelectedObjects[0] as PolyLineObject);
  621. btnPolyMove.Checked = false;
  622. btnPolyPointer.Checked = false;
  623. btnPolyAddBezier.Checked = false;
  624. btnPolyAddPoint.Checked = false;
  625. btnPolyRemovePoint.Checked = false;
  626. switch (index)
  627. {
  628. case PolyLineObject.PolygonSelectionMode.Normal:
  629. btnPolyPointer.Checked = true;
  630. break;
  631. case PolyLineObject.PolygonSelectionMode.AddBezier:
  632. btnPolyAddBezier.Checked = true;
  633. break;
  634. case PolyLineObject.PolygonSelectionMode.AddToLine:
  635. btnPolyAddPoint.Checked = true;
  636. break;
  637. case PolyLineObject.PolygonSelectionMode.Delete:
  638. btnPolyRemovePoint.Checked = true;
  639. break;
  640. case PolyLineObject.PolygonSelectionMode.MoveAndScale:
  641. btnPolyMove.Checked = true;
  642. break;
  643. }
  644. }
  645. private void UpdateReportControls()
  646. {
  647. btnPreview.Enabled = Designer.cmdPreview.Enabled;
  648. btnReportOptions.Enabled = Designer.cmdReportSettings.Enabled;
  649. btnDataChoose.Enabled = Designer.cmdChooseData.Enabled;
  650. btnDataAdd.Enabled = Designer.cmdAddData.Enabled;
  651. btnAddPage.Enabled = Designer.cmdNewPage.Enabled;
  652. btnCopyPage.Enabled = Designer.cmdCopyPage.Enabled;
  653. btnAddDialog.Enabled = Designer.cmdNewDialog.Enabled;
  654. btnDeletePage.Enabled = Designer.cmdDeletePage.Enabled;
  655. btnPageSetup.Enabled = Designer.cmdPageSetup.Enabled;
  656. bool bandsEnabled = Designer.cmdInsertBand.Enabled;
  657. btnConfigureBands.Enabled = bandsEnabled;
  658. btnGroupExpert.Enabled = bandsEnabled;
  659. ReportPage page = null;
  660. try
  661. {
  662. //see fix # 66fcd219-30f1-45e6-8ee5-ce65cfb9d35d
  663. //rly annoying freezes on designer start
  664. page = Page as ReportPage;
  665. }
  666. catch
  667. {
  668. }
  669. if (page != null)
  670. {
  671. bool isSubreport = page.Subreport != null;
  672. btnReportTitle.Enabled = bandsEnabled && !isSubreport;
  673. btnReportSummary.Enabled = bandsEnabled && !isSubreport;
  674. btnPageHeader.Enabled = bandsEnabled && !isSubreport;
  675. btnPageFooter.Enabled = bandsEnabled && !isSubreport;
  676. btnColumnHeader.Enabled = bandsEnabled && !isSubreport;
  677. btnColumnFooter.Enabled = bandsEnabled && !isSubreport;
  678. btnOverlay.Enabled = bandsEnabled && !isSubreport;
  679. btnReportTitle.Checked = page.ReportTitle != null;
  680. btnReportSummary.Checked = page.ReportSummary != null;
  681. btnPageHeader.Checked = page.PageHeader != null;
  682. btnPageFooter.Checked = page.PageFooter != null;
  683. btnColumnHeader.Checked = page.ColumnHeader != null;
  684. btnColumnFooter.Checked = page.ColumnFooter != null;
  685. btnOverlay.Checked = page.Overlay != null;
  686. }
  687. else
  688. {
  689. btnReportTitle.Enabled = false;
  690. btnReportSummary.Enabled = false;
  691. btnPageHeader.Enabled = false;
  692. btnPageFooter.Enabled = false;
  693. btnColumnHeader.Enabled = false;
  694. btnColumnFooter.Enabled = false;
  695. btnOverlay.Enabled = false;
  696. }
  697. }
  698. private void UpdateLayoutControls()
  699. {
  700. bool oneObjSelected = Designer.SelectedComponents.Count > 0;
  701. bool threeObjSelected = Designer.SelectedComponents.Count >= 3;
  702. bool severalObjSelected = Designer.SelectedComponents.Count > 1;
  703. bool canChangeOrder = Designer.SelectedComponents.Count > 0 &&
  704. Designer.SelectedComponents.First.HasFlag(Flags.CanChangeOrder);
  705. bool canMove = Designer.SelectedComponents.Count > 0 && Designer.SelectedComponents.First.HasFlag(Flags.CanMove);
  706. bool canResize = Designer.SelectedComponents.Count > 0 &&
  707. Designer.SelectedComponents.First.HasFlag(Flags.CanResize);
  708. btnAlignToGrid.Enabled = oneObjSelected && canMove;
  709. btnAlignLefts.Enabled = severalObjSelected && canMove;
  710. btnAlignCenters.Enabled = severalObjSelected && canMove;
  711. btnAlignRights.Enabled = severalObjSelected && canMove;
  712. btnAlignTops.Enabled = severalObjSelected && canMove;
  713. btnAlignMiddles.Enabled = severalObjSelected && canMove;
  714. btnAlignBottoms.Enabled = severalObjSelected && canMove;
  715. btnSameWidth.Enabled = severalObjSelected && canResize;
  716. btnSameHeight.Enabled = severalObjSelected && canResize;
  717. btnSameSize.Enabled = severalObjSelected && canResize;
  718. btnFitToGrid.Enabled = oneObjSelected && canResize;
  719. btnSpaceHorizontally.Enabled = threeObjSelected && canMove;
  720. btnIncreaseHorizontalSpacing.Enabled = severalObjSelected && canMove;
  721. btnDecreaseHorizontalSpacing.Enabled = severalObjSelected && canMove;
  722. btnRemoveHorizontalSpacing.Enabled = severalObjSelected && canMove;
  723. btnSpaceVertically.Enabled = threeObjSelected && canMove;
  724. btnIncreaseVerticalSpacing.Enabled = severalObjSelected && canMove;
  725. btnDecreaseVerticalSpacing.Enabled = severalObjSelected && canMove;
  726. btnRemoveVerticalSpacing.Enabled = severalObjSelected && canMove;
  727. btnCenterHorizontally.Enabled = oneObjSelected && canMove;
  728. btnCenterVertically.Enabled = oneObjSelected && canMove;
  729. btnBringToFront.Enabled = canChangeOrder;
  730. btnSendToBack.Enabled = canChangeOrder;
  731. btnGroup.Enabled = Designer.cmdGroup.Enabled;
  732. btnUngroup.Enabled = Designer.cmdUngroup.Enabled;
  733. }
  734. private void UpdateViewControls()
  735. {
  736. if (Workspace != null)
  737. {
  738. btnViewGrid.Enabled = true;
  739. btnViewGuides.Enabled = true;
  740. btnViewGrid.Checked = ReportWorkspace.ShowGrid;
  741. btnViewGuides.Checked = ReportWorkspace.ShowGuides;
  742. btnAutoGuides.Enabled = true;
  743. bool autoGuides = ReportWorkspace.AutoGuides;
  744. btnAutoGuides.Checked = autoGuides;
  745. btnDeleteHGuides.Enabled = !autoGuides;
  746. btnDeleteVGuides.Enabled = !autoGuides;
  747. }
  748. else
  749. {
  750. btnViewGrid.Enabled = false;
  751. btnViewGuides.Enabled = false;
  752. btnAutoGuides.Enabled = false;
  753. btnDeleteHGuides.Enabled = false;
  754. btnDeleteVGuides.Enabled = false;
  755. }
  756. btnProperties.Checked = designer.PropertiesWindow.Visible;
  757. btnData.Checked = designer.DataWindow.Visible;
  758. btnReportTree.Checked = designer.ReportTreeWindow.Visible;
  759. btnMessages.Checked = designer.MessagesWindow.Visible;
  760. btnValidate.Checked = designer.ValidatorWindow.Visible;
  761. btnUnitsMillimeters.Checked = ReportWorkspace.Grid.GridUnits == PageUnits.Millimeters;
  762. btnUnitsCentimeters.Checked = ReportWorkspace.Grid.GridUnits == PageUnits.Centimeters;
  763. btnUnitsInches.Checked = ReportWorkspace.Grid.GridUnits == PageUnits.Inches;
  764. btnUnitsHundrethsOfInch.Checked = ReportWorkspace.Grid.GridUnits == PageUnits.HundrethsOfInch;
  765. }
  766. #endregion Update Controls
  767. #region Images
  768. /// <inheritdoc/>
  769. public override void UpdateDpiDependencies()
  770. {
  771. base.UpdateDpiDependencies();
  772. Designer.UpdateDpiDependencies(this);
  773. ribbonControl.SuspendLayout();
  774. foreach (KeyValuePair<BaseItem, ItemInfo> kv in ribbonItems)
  775. {
  776. if (kv.Key is ButtonItem)
  777. {
  778. if (kv.Value.ImageIndex != -1)
  779. (kv.Key as ButtonItem).Image = GetImage(kv.Value.ImageIndex);
  780. if (!String.IsNullOrEmpty(kv.Value.ImageResource))
  781. (kv.Key as ButtonItem).Image = GetImage(kv.Value.ImageResource);
  782. }
  783. }
  784. cbxFontName.Owner = this;
  785. cbxFontName.UpdateDpiDependencies();
  786. cbxFontName.ComboWidth = this.LogicalToDevice(110);
  787. cbxFontSize.ComboWidth = this.LogicalToDevice(45);
  788. cbxFontSize.DropDownHeight = this.LogicalToDevice(300);
  789. cbxFontSize.ItemHeight = this.LogicalToDevice(14);
  790. cbxStyles.ComboWidth = this.LogicalToDevice(120);
  791. cbxStyles.DropDownHeight = this.LogicalToDevice(300);
  792. cbxStyles.DropDownWidth = this.LogicalToDevice(150);
  793. cbxStyles.ItemHeight = this.LogicalToDevice(14);
  794. // this will recalc layout
  795. barText.Width++;
  796. barStyles.Width++;
  797. ribbonControl.ResumeLayout();
  798. }
  799. #endregion
  800. #region Methods
  801. #region Form Methods
  802. private void DesignerForm_Load(object sender, EventArgs e)
  803. {
  804. // bug/inconsistent behavior in .Net: if we set WindowState to Maximized, the
  805. // Load event will be fired *after* the form is shown.
  806. bool maximized = Config.RestoreFormState(this, true);
  807. // under some circumstances, the config file may contain wrong winodw position (-32000)
  808. if (!maximized && (Left < -10 || Top < -10))
  809. maximized = true;
  810. Designer.RestoreConfig();
  811. if (maximized)
  812. WindowState = FormWindowState.Maximized;
  813. Config.DesignerSettings.OnDesignerLoaded(Designer, EventArgs.Empty);
  814. Designer.StartAutoSave();
  815. }
  816. private void DesignerForm_FormClosing(object sender, FormClosingEventArgs e)
  817. {
  818. if (!Designer.CloseAll())
  819. {
  820. e.Cancel = true;
  821. }
  822. else
  823. {
  824. Config.SaveFormState(this);
  825. Designer.SaveConfig();
  826. }
  827. designer.ValidatorWindow.CancelUpdateErrors();
  828. }
  829. private void DesignerForm_FormClosed(object sender, FormClosedEventArgs e)
  830. {
  831. Config.DesignerSettings.OnDesignerClosed(Designer, EventArgs.Empty);
  832. Designer.StopAutoSave();
  833. }
  834. #endregion
  835. #region File Methods
  836. private void miFile_PopupOpen(object sender, PopupOpenEventArgs e)
  837. {
  838. // clear existing recent items
  839. for (int i = 0; i < itemContainer23.SubItems.Count; i++)
  840. {
  841. BaseItem item = itemContainer23.SubItems[i];
  842. if (item is ButtonItem)
  843. {
  844. item.Dispose();
  845. itemContainer23.SubItems.Remove(item);
  846. i--;
  847. }
  848. }
  849. // add new items
  850. if (Designer.cmdRecentFiles.Enabled && Designer.RecentFiles.Count > 0)
  851. {
  852. foreach (string file in Designer.RecentFiles)
  853. {
  854. ButtonItem menuItem = new ButtonItem();
  855. menuItem.Text = Path.GetFileName(file);
  856. menuItem.Tag = file;
  857. menuItem.Tooltip = file;
  858. menuItem.Click += recentFile_Click;
  859. itemContainer23.SubItems.Insert(1, menuItem);
  860. }
  861. }
  862. }
  863. private void recentFile_Click(object sender, EventArgs e)
  864. {
  865. Designer.UpdatePlugins(null);
  866. Designer.cmdOpen.LoadFile((sender as ButtonItem).Tag as string);
  867. }
  868. #endregion
  869. #region Home Methods
  870. //-------------------------------------------------------------------
  871. // Clipboard
  872. //-------------------------------------------------------------------
  873. private void clipboardTimer_Tick(object sender, EventArgs e)
  874. {
  875. btnPaste.Enabled = Designer.cmdPaste.Enabled;
  876. }
  877. //-------------------------------------------------------------------
  878. // Text
  879. //-------------------------------------------------------------------
  880. private void cbxName_FontSelected(object sender, EventArgs e)
  881. {
  882. (Designer.ActiveReportTab.ActivePageDesigner as ReportPageDesigner).Workspace.Focus();
  883. Designer.SelectedTextObjects.SetFontName(cbxFontName.FontName);
  884. }
  885. private void cbxSize_SizeSelected(object sender, EventArgs e)
  886. {
  887. (Designer.ActiveReportTab.ActivePageDesigner as ReportPageDesigner).Workspace.Focus();
  888. Designer.SelectedTextObjects.SetFontSize(cbxFontSize.FontSize);
  889. }
  890. private void btnBold_Click(object sender, EventArgs e)
  891. {
  892. btnBold.Checked = !btnBold.Checked;
  893. Designer.SelectedTextObjects.ToggleFontStyle(FontStyle.Bold, btnBold.Checked);
  894. }
  895. private void btnItalic_Click(object sender, EventArgs e)
  896. {
  897. btnItalic.Checked = !btnItalic.Checked;
  898. Designer.SelectedTextObjects.ToggleFontStyle(FontStyle.Italic, btnItalic.Checked);
  899. }
  900. private void btnUnderline_Click(object sender, EventArgs e)
  901. {
  902. btnUnderline.Checked = !btnUnderline.Checked;
  903. Designer.SelectedTextObjects.ToggleFontStyle(FontStyle.Underline, btnUnderline.Checked);
  904. }
  905. private void btnLeft_Click(object sender, EventArgs e)
  906. {
  907. Designer.SelectedTextObjects.SetHAlign(HorzAlign.Left);
  908. }
  909. private void btnCenter_Click(object sender, EventArgs e)
  910. {
  911. Designer.SelectedTextObjects.SetHAlign(HorzAlign.Center);
  912. }
  913. private void btnRight_Click(object sender, EventArgs e)
  914. {
  915. Designer.SelectedTextObjects.SetHAlign(HorzAlign.Right);
  916. }
  917. private void btnJustify_Click(object sender, EventArgs e)
  918. {
  919. Designer.SelectedTextObjects.SetHAlign(HorzAlign.Justify);
  920. }
  921. private void btnTop_Click(object sender, EventArgs e)
  922. {
  923. Designer.SelectedTextObjects.SetVAlign(VertAlign.Top);
  924. }
  925. private void btnMiddle_Click(object sender, EventArgs e)
  926. {
  927. Designer.SelectedTextObjects.SetVAlign(VertAlign.Center);
  928. }
  929. private void btnBottom_Click(object sender, EventArgs e)
  930. {
  931. Designer.SelectedTextObjects.SetVAlign(VertAlign.Bottom);
  932. }
  933. private void btnColor_Click(object sender, EventArgs e)
  934. {
  935. Designer.SelectedTextObjects.SetTextColor(btnTextColor.DefaultColor);
  936. }
  937. private void btnRotation_Click(object sender, EventArgs e)
  938. {
  939. AnglePopup popup = new AnglePopup(Designer.FindForm());
  940. popup.Angle = Designer.SelectedTextObjects.First.Angle;
  941. popup.AngleChanged += popup_RotationChanged;
  942. popup.Show(this, barText.Right, barText.Bottom);
  943. }
  944. private void popup_RotationChanged(object sender, EventArgs e)
  945. {
  946. Designer.SelectedTextObjects.SetAngle((sender as AnglePopup).Angle);
  947. }
  948. //-------------------------------------------------------------------
  949. // Border and Fill
  950. //-------------------------------------------------------------------
  951. private void btnTopLine_Click(object sender, EventArgs e)
  952. {
  953. btnTopLine.Checked = !btnTopLine.Checked;
  954. Designer.SelectedReportComponents.ToggleLine(BorderLines.Top, btnTopLine.Checked);
  955. }
  956. private void btnBottomLine_Click(object sender, EventArgs e)
  957. {
  958. btnBottomLine.Checked = !btnBottomLine.Checked;
  959. Designer.SelectedReportComponents.ToggleLine(BorderLines.Bottom, btnBottomLine.Checked);
  960. }
  961. private void btnLeftLine_Click(object sender, EventArgs e)
  962. {
  963. btnLeftLine.Checked = !btnLeftLine.Checked;
  964. Designer.SelectedReportComponents.ToggleLine(BorderLines.Left, btnLeftLine.Checked);
  965. }
  966. private void btnRightLine_Click(object sender, EventArgs e)
  967. {
  968. btnRightLine.Checked = !btnRightLine.Checked;
  969. Designer.SelectedReportComponents.ToggleLine(BorderLines.Right, btnRightLine.Checked);
  970. }
  971. private void btnAll_Click(object sender, EventArgs e)
  972. {
  973. Designer.SelectedReportComponents.ToggleLine(BorderLines.All, true);
  974. }
  975. private void btnNone_Click(object sender, EventArgs e)
  976. {
  977. Designer.SelectedReportComponents.ToggleLine(BorderLines.All, false);
  978. }
  979. private void btnLineColor_Click(object sender, EventArgs e)
  980. {
  981. Designer.SelectedReportComponents.SetLineColor(btnLineColor.DefaultColor);
  982. }
  983. private void btnFillColor_Click(object sender, EventArgs e)
  984. {
  985. Designer.SelectedReportComponents.SetColor(btnFillColor.DefaultColor);
  986. }
  987. private void btnFillProps_Click(object sender, EventArgs e)
  988. {
  989. Designer.SelectedReportComponents.InvokeFillEditor();
  990. }
  991. private void cbxWidth_WidthSelected(object sender, EventArgs e)
  992. {
  993. Designer.SelectedReportComponents.SetWidth(btnLineWidth.LineWidth);
  994. }
  995. private void cbxLineStyle_StyleSelected(object sender, EventArgs e)
  996. {
  997. Designer.SelectedReportComponents.SetLineStyle(btnLineStyle.LineStyle);
  998. }
  999. private void btnBorderProps_Click(object sender, EventArgs e)
  1000. {
  1001. Designer.SelectedReportComponents.InvokeBorderEditor();
  1002. }
  1003. //-------------------------------------------------------------------
  1004. // Format
  1005. //-------------------------------------------------------------------
  1006. private void btnHighlight_Click(object sender, EventArgs e)
  1007. {
  1008. Designer.SelectedTextObjects.InvokeHighlightEditor();
  1009. }
  1010. private void btnFormat_Click(object sender, EventArgs e)
  1011. {
  1012. using (FormatEditorForm form = new FormatEditorForm())
  1013. {
  1014. SelectedTextBaseObjects FTextObjects = new SelectedTextBaseObjects(designer);
  1015. FTextObjects.Update();
  1016. form.TextObject = FTextObjects.First;
  1017. if (form.ShowDialog() == DialogResult.OK)
  1018. {
  1019. FTextObjects.SetFormat(form.Formats);
  1020. Designer.SetModified(null, "Change");
  1021. //Change();
  1022. }
  1023. }
  1024. }
  1025. //-------------------------------------------------------------------
  1026. // Styles
  1027. //-------------------------------------------------------------------
  1028. private void cbxStyle_StyleSelected(object sender, EventArgs e)
  1029. {
  1030. (Designer.ActiveReportTab.ActivePageDesigner as ReportPageDesigner).Workspace.Focus();
  1031. Designer.SelectedReportComponents.SetStyle(cbxStyles.Style);
  1032. }
  1033. //-------------------------------------------------------------------
  1034. #endregion
  1035. #region Report Methods
  1036. private void btnPreview_Click(object sender, EventArgs e)
  1037. {
  1038. previewTimer.Start();
  1039. }
  1040. private void previewTimer_Tick(object sender, EventArgs e)
  1041. {
  1042. previewTimer.Stop();
  1043. Designer.cmdPreview.Invoke(sender, e);
  1044. }
  1045. private void miInsertBands_Click(object sender, EventArgs e)
  1046. {
  1047. using (ConfigureBandsForm form = new ConfigureBandsForm(Designer))
  1048. {
  1049. form.Page = Page as ReportPage;
  1050. form.ShowDialog();
  1051. }
  1052. }
  1053. private void miReportGroupExpert_Click(object sender, EventArgs e)
  1054. {
  1055. using (GroupExpertForm form = new GroupExpertForm(Designer))
  1056. {
  1057. if (form.ShowDialog() == DialogResult.OK)
  1058. Designer.SetModified(null, "ChangeReport");
  1059. }
  1060. }
  1061. private void miReportTitle_Click(object sender, EventArgs e)
  1062. {
  1063. ReportPage page = Page as ReportPage;
  1064. if ((sender as CheckBoxItem).Checked)
  1065. {
  1066. page.ReportTitle = new ReportTitleBand();
  1067. ReportPageDesigner.SetDefaults(page.ReportTitle);
  1068. }
  1069. else
  1070. {
  1071. page.ReportTitle = null;
  1072. }
  1073. ReportPageDesigner.Change();
  1074. }
  1075. private void miReportSummary_Click(object sender, EventArgs e)
  1076. {
  1077. ReportPage page = Page as ReportPage;
  1078. if ((sender as CheckBoxItem).Checked)
  1079. {
  1080. page.ReportSummary = new ReportSummaryBand();
  1081. ReportPageDesigner.SetDefaults(page.ReportSummary);
  1082. }
  1083. else
  1084. {
  1085. page.ReportSummary = null;
  1086. }
  1087. ReportPageDesigner.Change();
  1088. }
  1089. private void miPageHeader_Click(object sender, EventArgs e)
  1090. {
  1091. ReportPage page = Page as ReportPage;
  1092. if ((sender as CheckBoxItem).Checked)
  1093. {
  1094. page.PageHeader = new PageHeaderBand();
  1095. ReportPageDesigner.SetDefaults(page.PageHeader);
  1096. }
  1097. else
  1098. {
  1099. page.PageHeader = null;
  1100. }
  1101. ReportPageDesigner.Change();
  1102. }
  1103. private void miPageFooter_Click(object sender, EventArgs e)
  1104. {
  1105. ReportPage page = Page as ReportPage;
  1106. if ((sender as CheckBoxItem).Checked)
  1107. {
  1108. page.PageFooter = new PageFooterBand();
  1109. ReportPageDesigner.SetDefaults(page.PageFooter);
  1110. }
  1111. else
  1112. {
  1113. page.PageFooter = null;
  1114. }
  1115. ReportPageDesigner.Change();
  1116. }
  1117. private void miColumnHeader_Click(object sender, EventArgs e)
  1118. {
  1119. ReportPage page = Page as ReportPage;
  1120. if ((sender as CheckBoxItem).Checked)
  1121. {
  1122. page.ColumnHeader = new ColumnHeaderBand();
  1123. ReportPageDesigner.SetDefaults(page.ColumnHeader);
  1124. }
  1125. else
  1126. {
  1127. page.ColumnHeader = null;
  1128. }
  1129. ReportPageDesigner.Change();
  1130. }
  1131. private void miColumnFooter_Click(object sender, EventArgs e)
  1132. {
  1133. ReportPage page = Page as ReportPage;
  1134. if ((sender as CheckBoxItem).Checked)
  1135. {
  1136. page.ColumnFooter = new ColumnFooterBand();
  1137. ReportPageDesigner.SetDefaults(page.ColumnFooter);
  1138. }
  1139. else
  1140. {
  1141. page.ColumnFooter = null;
  1142. }
  1143. ReportPageDesigner.Change();
  1144. }
  1145. private void miOverlay_Click(object sender, EventArgs e)
  1146. {
  1147. ReportPage page = Page as ReportPage;
  1148. if ((sender as CheckBoxItem).Checked)
  1149. {
  1150. page.Overlay = new OverlayBand();
  1151. ReportPageDesigner.SetDefaults(page.Overlay);
  1152. }
  1153. else
  1154. {
  1155. page.Overlay = null;
  1156. }
  1157. ReportPageDesigner.Change();
  1158. }
  1159. #endregion
  1160. #region Layout Methods
  1161. private void btnAlignToGrid_Click(object sender, EventArgs e)
  1162. {
  1163. Designer.SelectedComponents.AlignToGrid();
  1164. }
  1165. private void btnAlignLefts_Click(object sender, EventArgs e)
  1166. {
  1167. Designer.SelectedComponents.AlignLeft();
  1168. }
  1169. private void btnAlignCenters_Click(object sender, EventArgs e)
  1170. {
  1171. Designer.SelectedComponents.AlignCenter();
  1172. }
  1173. private void btnAlignRights_Click(object sender, EventArgs e)
  1174. {
  1175. Designer.SelectedComponents.AlignRight();
  1176. }
  1177. private void btnAlignTops_Click(object sender, EventArgs e)
  1178. {
  1179. Designer.SelectedComponents.AlignTop();
  1180. }
  1181. private void btnAlignMiddles_Click(object sender, EventArgs e)
  1182. {
  1183. Designer.SelectedComponents.AlignMiddle();
  1184. }
  1185. private void btnAlignBottoms_Click(object sender, EventArgs e)
  1186. {
  1187. Designer.SelectedComponents.AlignBottom();
  1188. }
  1189. private void btnSameWidth_Click(object sender, EventArgs e)
  1190. {
  1191. Designer.SelectedComponents.SameWidth();
  1192. }
  1193. private void btnSameHeight_Click(object sender, EventArgs e)
  1194. {
  1195. Designer.SelectedComponents.SameHeight();
  1196. }
  1197. private void btnSameSize_Click(object sender, EventArgs e)
  1198. {
  1199. Designer.SelectedComponents.SameSize();
  1200. }
  1201. private void btnCenterHorizontally_Click(object sender, EventArgs e)
  1202. {
  1203. Designer.SelectedComponents.CenterHorizontally();
  1204. }
  1205. private void btnCenterVertically_Click(object sender, EventArgs e)
  1206. {
  1207. Designer.SelectedComponents.CenterVertically();
  1208. }
  1209. private void btnSizeToGrid_Click(object sender, EventArgs e)
  1210. {
  1211. Designer.SelectedComponents.SizeToGrid();
  1212. }
  1213. private void btnSpaceHorizontally_Click(object sender, EventArgs e)
  1214. {
  1215. Designer.SelectedComponents.SpaceHorizontally();
  1216. }
  1217. private void btnIncreaseHorizontalSpacing_Click(object sender, EventArgs e)
  1218. {
  1219. Designer.SelectedComponents.IncreaseHorizontalSpacing();
  1220. }
  1221. private void btnDecreaseHorizontalSpacing_Click(object sender, EventArgs e)
  1222. {
  1223. Designer.SelectedComponents.DecreaseHorizontalSpacing();
  1224. }
  1225. private void btnRemoveHorizontalSpacing_Click(object sender, EventArgs e)
  1226. {
  1227. Designer.SelectedComponents.RemoveHorizontalSpacing();
  1228. }
  1229. private void btnSpaceVertically_Click(object sender, EventArgs e)
  1230. {
  1231. Designer.SelectedComponents.SpaceVertically();
  1232. }
  1233. private void btnIncreaseVerticalSpacing_Click(object sender, EventArgs e)
  1234. {
  1235. Designer.SelectedComponents.IncreaseVerticalSpacing();
  1236. }
  1237. private void btnDecreaseVerticalSpacing_Click(object sender, EventArgs e)
  1238. {
  1239. Designer.SelectedComponents.DecreaseVerticalSpacing();
  1240. }
  1241. private void btnRemoveVerticalSpacing_Click(object sender, EventArgs e)
  1242. {
  1243. Designer.SelectedComponents.RemoveVerticalSpacing();
  1244. }
  1245. #endregion
  1246. #region View Methods
  1247. private void MenuViewGrid_Click(object sender, EventArgs e)
  1248. {
  1249. ReportWorkspace.ShowGrid = btnViewGrid.Checked;
  1250. Workspace.Refresh();
  1251. }
  1252. private void MenuViewGuides_Click(object sender, EventArgs e)
  1253. {
  1254. ReportWorkspace.ShowGuides = btnViewGuides.Checked;
  1255. Workspace.Refresh();
  1256. }
  1257. private void MenuViewAutoGuides_Click(object sender, EventArgs e)
  1258. {
  1259. ReportWorkspace.AutoGuides = btnAutoGuides.Checked;
  1260. Workspace.Refresh();
  1261. UpdateControls();
  1262. }
  1263. private void MenuViewDeleteHGuides_Click(object sender, EventArgs e)
  1264. {
  1265. Workspace.DeleteHGuides();
  1266. }
  1267. private void MenuViewDeleteVGuides_Click(object sender, EventArgs e)
  1268. {
  1269. Workspace.DeleteVGuides();
  1270. }
  1271. private void BtnMessages_Click(object sender, EventArgs e)
  1272. {
  1273. if (designer.MessagesWindow.Visible)
  1274. designer.MessagesWindow.Hide();
  1275. else
  1276. designer.MessagesWindow.Show();
  1277. }
  1278. private void BtnValidate_Click(object sender, EventArgs e)
  1279. {
  1280. if (designer.ValidatorWindow.Visible)
  1281. {
  1282. designer.ValidatorWindow.Hide();
  1283. designer.ValidatorWindow.CancelUpdateErrors();
  1284. }
  1285. else
  1286. {
  1287. designer.ValidatorWindow.Show();
  1288. designer.ValidatorWindow.UpdateErrors(!ReportWorkspace.EnableBacklightIntersectingObjects);
  1289. }
  1290. }
  1291. private void BtnReportTree_Click(object sender, EventArgs e)
  1292. {
  1293. if (designer.ReportTreeWindow.Visible)
  1294. designer.ReportTreeWindow.Hide();
  1295. else
  1296. designer.ReportTreeWindow.Show();
  1297. }
  1298. private void BtnData_Click(object sender, EventArgs e)
  1299. {
  1300. if (designer.DataWindow.Visible)
  1301. designer.DataWindow.Hide();
  1302. else
  1303. designer.DataWindow.Show();
  1304. }
  1305. private void BtnProperties_Click(object sender, EventArgs e)
  1306. {
  1307. if (designer.PropertiesWindow.Visible)
  1308. designer.PropertiesWindow.Hide();
  1309. else
  1310. designer.PropertiesWindow.Show();
  1311. }
  1312. private void miViewUnits_Click(object sender, EventArgs e)
  1313. {
  1314. if (sender == btnUnitsMillimeters)
  1315. ReportWorkspace.Grid.GridUnits = PageUnits.Millimeters;
  1316. else if (sender == btnUnitsCentimeters)
  1317. ReportWorkspace.Grid.GridUnits = PageUnits.Centimeters;
  1318. else if (sender == btnUnitsInches)
  1319. ReportWorkspace.Grid.GridUnits = PageUnits.Inches;
  1320. else
  1321. ReportWorkspace.Grid.GridUnits = PageUnits.HundrethsOfInch;
  1322. UpdateContent();
  1323. }
  1324. private void openfrx_DragEnter(object sender, DragEventArgs e)
  1325. {
  1326. string[] objects = (string[])e.Data.GetData(DataFormats.FileDrop);
  1327. if (objects != null)
  1328. if (objects.Length == 1)
  1329. {
  1330. if (Path.GetExtension(objects[0]).ToLower() == ".frx")
  1331. {
  1332. e.Effect = DragDropEffects.Move;
  1333. }
  1334. }
  1335. }
  1336. private void openfrx_DragDrop(object sender, DragEventArgs e)
  1337. {
  1338. string[] objects = (string[])e.Data.GetData(DataFormats.FileDrop);
  1339. if (objects.Length == 1)
  1340. {
  1341. if (Path.GetExtension(objects[0]).ToLower() == ".frx")
  1342. {
  1343. Designer.cmdOpen.LoadFile(objects[0]);
  1344. }
  1345. }
  1346. }
  1347. #endregion
  1348. #endregion
  1349. #region IDesignerPlugin
  1350. /// <inheritdoc/>
  1351. public string PluginName
  1352. {
  1353. get { return Name; }
  1354. }
  1355. /// <inheritdoc/>
  1356. public void SaveState()
  1357. {
  1358. }
  1359. /// <inheritdoc/>
  1360. public void RestoreState()
  1361. {
  1362. }
  1363. /// <inheritdoc/>
  1364. public void SelectionChanged()
  1365. {
  1366. UpdateContent();
  1367. }
  1368. /// <inheritdoc/>
  1369. public void UpdateContent()
  1370. {
  1371. UpdateControls();
  1372. }
  1373. /// <inheritdoc/>
  1374. public void Lock()
  1375. {
  1376. }
  1377. /// <inheritdoc/>
  1378. public void Unlock()
  1379. {
  1380. UpdateContent();
  1381. }
  1382. /// <inheritdoc/>
  1383. public override void Localize()
  1384. {
  1385. foreach (KeyValuePair<BaseItem, ItemInfo> kv in ribbonItems)
  1386. {
  1387. kv.Key.Text = Res.Get(kv.Value.TextResource);
  1388. kv.Key.Tooltip = Res.Get(kv.Value.TooltipResource);
  1389. }
  1390. MyRes res = new MyRes("Designer,Ribbon");
  1391. btnFile.Text = res.Get("File");
  1392. tabHome.Text = res.Get("Home");
  1393. tabReport.Text = res.Get("Report");
  1394. tabLayout.Text = res.Get("Layout");
  1395. tabView.Text = res.Get("View");
  1396. lblRecent.Text = res.Get("Recent");
  1397. barReport.Text = res.Get("Report");
  1398. barLayout.Text = res.Get("Layout");
  1399. barView.Text = res.Get("View");
  1400. barClipboard.Text = res.Get("Clipboard");
  1401. barText.Text = res.Get("Text");
  1402. barBorderAndFill.Text = res.Get("BorderAndFill");
  1403. barFormat.Text = res.Get("Format");
  1404. barStyles.Text = res.Get("Styles");
  1405. barPolygon.Text = Res.Get("Designer,Toolbar,Polygon");
  1406. barEditing.Text = res.Get("Editing");
  1407. barData.Text = res.Get("Data");
  1408. barPages.Text = res.Get("Pages");
  1409. barBands.Text = res.Get("Bands");
  1410. btnAlignment.Text = res.Get("Alignment");
  1411. btnSize.Text = res.Get("Size");
  1412. btnSpacing.Text = res.Get("Spacing");
  1413. btnPanels.Text = res.Get("Panels");
  1414. UpdateContent();
  1415. }
  1416. /// <inheritdoc/>
  1417. public DesignerOptionsPage GetOptionsPage()
  1418. {
  1419. return null;
  1420. }
  1421. /// <inheritdoc/>
  1422. public void UpdateUIStyle()
  1423. {
  1424. if (Config.UseRibbon)
  1425. {
  1426. designer.ShowMainMenu = false;
  1427. ribbonControl.Visible = true;
  1428. foreach (Bar bar in designer.DotNetBarManager.Bars)
  1429. if (bar is ToolbarBase)
  1430. bar.Hide();
  1431. }
  1432. else
  1433. {
  1434. designer.ShowMainMenu = true;
  1435. ribbonControl.Visible = false;
  1436. }
  1437. btnTextColor.SetStyle(designer.UIStyle);
  1438. btnFillColor.SetStyle(designer.UIStyle);
  1439. btnLineColor.SetStyle(designer.UIStyle);
  1440. }
  1441. #endregion
  1442. #region Private classes
  1443. private class ItemInfo
  1444. {
  1445. public int ImageIndex { get; set; }
  1446. public string ImageResource { get; set; }
  1447. public string TextResource { get; set; }
  1448. public string TooltipResource { get; set; }
  1449. public ItemInfo(int imageIndex, string imageRes, string textRes, string tooltipRes)
  1450. {
  1451. ImageIndex = imageIndex;
  1452. ImageResource = imageRes;
  1453. TextResource = textRes;
  1454. TooltipResource = tooltipRes;
  1455. }
  1456. }
  1457. #endregion
  1458. }
  1459. }