DesignerForm.cs 67 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675
  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, IDesignerForm, 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 Designer 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("btnFileOpenPage", this.btnFileOpenPage);
  62. items.Add("btnFileOpenViaCloud", this.btnFileOpenViaCloud);
  63. items.Add("btnFileSave", this.btnFileSave);
  64. items.Add("btnFileSaveAs", this.btnFileSaveAs);
  65. items.Add("btnFileSaveWithRandomData", this.btnFileSaveWithRandomData);
  66. items.Add("btnFileSaveAll", this.btnFileSaveAll);
  67. items.Add("btnFilePreview", this.btnFilePreview);
  68. items.Add("btnFilePrinterSetup", this.btnFilePrinterSetup);
  69. items.Add("btnFileSelectLanguage", this.btnFileSelectLanguage);
  70. items.Add("btnWelcome", this.btnWelcome);
  71. items.Add("btnHelp", this.btnHelp);
  72. items.Add("btnAbout", this.btnAbout);
  73. items.Add("btnFileClose", this.btnFileClose);
  74. }
  75. return items;
  76. }
  77. }
  78. private ReportWorkspace Workspace
  79. {
  80. get
  81. {
  82. if (designer.ActiveReportTab != null && designer.ActiveReportTab.ActivePageDesigner is ReportPageDesigner)
  83. return (Designer.ActiveReportTab.ActivePageDesigner as ReportPageDesigner).Workspace;
  84. return null;
  85. }
  86. }
  87. private ReportPageDesigner ReportPageDesigner
  88. {
  89. get
  90. {
  91. //Fixed try catch 66fcd219-30f1-45e6-8ee5-ce65cfb9d35d
  92. //rly annoying freezes on designer start
  93. ReportTab tab = Designer.ActiveReportTab;
  94. if (tab != null)
  95. return tab.ActivePageDesigner as ReportPageDesigner;
  96. return null;
  97. }
  98. }
  99. private PageBase Page
  100. {
  101. get
  102. {
  103. //Fixed try catch 66fcd219-30f1-45e6-8ee5-ce65cfb9d35d
  104. //rly annoying freezes on designer start
  105. ReportPageDesigner d = ReportPageDesigner;
  106. if (d != null)
  107. return d.Page;
  108. return null;
  109. }
  110. }
  111. private DesignerControl designer;
  112. private Dictionary<string, ButtonItem> items;
  113. private Timer clipboardTimer;
  114. private Timer previewTimer;
  115. #endregion
  116. /// <summary>
  117. /// Creates a new instance of the <see cref="DesignerForm"/> class with default settings.
  118. /// </summary>
  119. public DesignerForm()
  120. {
  121. InitDesigner();
  122. }
  123. /// <summary>
  124. /// Creates a new instance of the <see cref="DesignerForm"/> class with default settings.
  125. /// </summary>
  126. /// <param name="welcome">enables welcome window</param>
  127. public DesignerForm(bool welcome)
  128. {
  129. InitDesigner();
  130. if (welcome)
  131. Shown += ShowWelcomeWindow;
  132. }
  133. private void InitDesigner()
  134. {
  135. RightToLeft = Config.RightToLeft ? RightToLeft.Yes : RightToLeft.No;
  136. InitializeComponent();
  137. if (Config.RightToLeft)
  138. {
  139. btnFind.ImagePosition = eImagePosition.Right;
  140. btnSelectAll.ImagePosition = eImagePosition.Right;
  141. }
  142. Font = DrawUtils.DefaultFont;
  143. Icon = Config.DesignerSettings.Icon;
  144. designer = new DesignerControl();
  145. this.ribbonControl.AllowDrop = true;
  146. this.AllowDrop = true;
  147. this.ribbonControl.RecalcLayout();
  148. Controls.Add(designer);
  149. designer.Dock = DockStyle.Fill;
  150. designer.BringToFront();
  151. designer.Plugins.Add(this);
  152. designer.ShowStatusBar = true;
  153. SetupControls();
  154. Localize();
  155. UpdateDpiDependencies();
  156. KeyPreview = true;
  157. KeyDown += DesignerForm_KeyDown;
  158. designer.UIStyle = Config.UIStyle;
  159. #if Demo
  160. this.Shown += (s, e) => FRMessageBox.Information("Demo version");
  161. #endif
  162. }
  163. /// <inheritdoc/>
  164. protected override void WndProc(ref Message m)
  165. {
  166. const int WM_ACTIVATEAPP = 0x001C;
  167. if (m.Msg == WM_ACTIVATEAPP)
  168. {
  169. if (m.WParam == IntPtr.Zero)
  170. {
  171. PopupManager.CloseAllPopups();
  172. }
  173. }
  174. base.WndProc(ref m);
  175. }
  176. private void DesignerForm_KeyDown(object sender, KeyEventArgs e)
  177. {
  178. if (e.KeyValue == 0x9 && e.Control)
  179. {
  180. if (e.Shift)
  181. Designer.ActiveReportTab.CtrlShiftTab();
  182. else
  183. Designer.ActiveReportTab.CtrlTab();
  184. e.Handled = true;
  185. }
  186. }
  187. private void ShowWelcomeWindow(object s, EventArgs e)
  188. {
  189. Shown -= ShowWelcomeWindow;
  190. if (Config.WelcomeEnabled &&
  191. Config.WelcomeShowOnStartup &&
  192. String.IsNullOrEmpty(designer.Report.FileName))
  193. {
  194. Designer.cmdWelcome.Invoke();
  195. }
  196. }
  197. #region Utils
  198. private void CreateItem(BaseItem item, string textRes)
  199. {
  200. CreateItem(item, -1, textRes, textRes, null);
  201. }
  202. private void CreateItem(BaseItem item, string textRes, EventHandler click)
  203. {
  204. CreateItem(item, -1, textRes, textRes, click);
  205. }
  206. private void CreateItem(BaseItem item, int imageIndex, string textRes)
  207. {
  208. CreateItem(item, imageIndex, textRes, textRes, null);
  209. }
  210. private void CreateItem(BaseItem item, int imageIndex, string textRes, EventHandler click)
  211. {
  212. CreateItem(item, imageIndex, textRes, textRes, click);
  213. }
  214. private void CreateItem(BaseItem item, int imageIndex, string textRes, string tooltipRes, EventHandler click)
  215. {
  216. ribbonItems.Add(item, new ItemInfo(imageIndex, "", textRes, tooltipRes));
  217. if (click != null)
  218. item.Click += click;
  219. }
  220. private void CreateItem(BaseItem item, string imageRes, string textRes, EventHandler click)
  221. {
  222. CreateItem(item, imageRes, textRes, textRes, click);
  223. }
  224. private void CreateItem(BaseItem item, string imageRes, string textRes, string tooltipRes, EventHandler click)
  225. {
  226. ribbonItems.Add(item, new ItemInfo(-1, imageRes, textRes, tooltipRes));
  227. if (click != null)
  228. item.Click += click;
  229. }
  230. #endregion
  231. #region Setup Controls
  232. private void SetupControls()
  233. {
  234. SetupFileControls();
  235. SetupHomeControls();
  236. SetupReportControls();
  237. SetupLayoutControls();
  238. SetupViewControls();
  239. }
  240. private void SetupFileControls()
  241. {
  242. int _32 = this.LogicalToDevice(32);
  243. Bitmap cap = new Bitmap(_32, _32);
  244. btnFile.PopupOpen += miFile_PopupOpen;
  245. string res = "Designer,Menu,File,";
  246. CreateItem(btnFileNew, "Ribbon.New.png", res + "New", Designer.cmdNew.Invoke);
  247. CreateItem(btnFileOpen, "Ribbon.Open.png", res + "Open", Designer.cmdOpen.Invoke);
  248. CreateItem(btnFileOpenPage, "Ribbon.Open.png", res + "OpenPage", Designer.cmdOpenPage.Invoke);
  249. CreateItem(btnFileOpenViaCloud, "Ribbon.CloudOpen.png", res + "OpenViaCloud", Designer.cmdOpenViaCloud.Invoke);
  250. CreateItem(btnFileSave, "Ribbon.Save.png", res + "Save", Designer.cmdSave.Invoke);
  251. CreateItem(btnFileSaveToCloud, "Ribbon.CloudSave.png", res + "SaveToCloud", Designer.cmdSaveToCloudCommand.Invoke);
  252. CreateItem(btnFileSaveAs, "Ribbon.Save.png", res + "SaveAs", Designer.cmdSaveAs.Invoke);
  253. CreateItem(btnFileSaveWithRandomData, res + "SaveWithRandomData", Designer.cmdSaveWithRandomData.Invoke);
  254. btnFileSaveWithRandomData.Image = cap;
  255. CreateItem(btnFileSaveAll, "Ribbon.Save.png", res + "SaveAll", Designer.cmdSaveAll.Invoke);
  256. CreateItem(btnFilePrinterSetup, "Ribbon.Print.png", res + "PrinterSetup", Designer.cmdPrinterSetup.Invoke);
  257. CreateItem(btnFilePreview, "Ribbon.Report.png", res + "Preview", btnPreview_Click);
  258. CreateItem(btnFileSelectLanguage, res + "SelectLanguage", Designer.cmdSelectLanguage.Invoke);
  259. btnFileSelectLanguage.Image = cap;
  260. CreateItem(btnFileExit, "Ribbon.Exit.png", res + "Exit", Designer.Exit);
  261. CreateItem(btnOptions, "Ribbon.Options.png", "Designer,Menu,View,Options", Designer.cmdOptions.Invoke);
  262. CreateItem(btnAccount, "Ribbon.Account.png", "Designer,Menu,Help,Account", Designer.cmdAccount.Invoke);
  263. CreateItem(btnWelcome, "Designer,Welcome,Button", Designer.cmdWelcome.Invoke);
  264. btnWelcome.Visible = Designer.cmdWelcome.Enabled;
  265. btnWelcome.Image = cap;
  266. CreateItem(btnHelp, "Ribbon.HelpContents.png", "Designer,Menu,Help,Contents", Designer.cmdHelpContents.Invoke);
  267. CreateItem(btnAbout, "Ribbon.About.png", "Designer,Menu,Help,About", Designer.cmdAbout.Invoke);
  268. CreateItem(btnFileClose, res + "Close", Designer.cmdClose.Invoke);
  269. CreateItem(btnFileWebPreview, "Ribbon.WebPreview.png", res + "PreviewCloud", Designer.cmdPreviewCloud.Invoke);
  270. }
  271. private void SetupHomeControls()
  272. {
  273. string res = "Designer,Menu,Edit,";
  274. string res1 = "Designer,Toolbar,Standard,";
  275. //-------------------------------------------------------------------
  276. // Undo
  277. //-------------------------------------------------------------------
  278. CreateItem(btnUndo, 8, res + "Undo", res1 + "Undo", Designer.cmdUndo.Invoke);
  279. CreateItem(btnRedo, 9, res + "Redo", res1 + "Redo", Designer.cmdRedo.Invoke);
  280. //-------------------------------------------------------------------
  281. // Clipboard
  282. //-------------------------------------------------------------------
  283. CreateItem(btnCut, 5, res + "Cut", res1 + "Cut", Designer.cmdCut.Invoke);
  284. CreateItem(btnCopy, 6, res + "Copy", res1 + "Copy", Designer.cmdCopy.Invoke);
  285. CreateItem(btnPaste, "Ribbon.Paste.png", res + "Paste", res1 + "Paste", Designer.cmdPaste.Invoke);
  286. CreateItem(btnFormatPainter, 18, res1 + "FormatPainter", Designer.cmdFormatPainter.Invoke);
  287. clipboardTimer = new Timer();
  288. clipboardTimer.Interval = 500;
  289. clipboardTimer.Tick += clipboardTimer_Tick;
  290. clipboardTimer.Start();
  291. //-------------------------------------------------------------------
  292. // Text
  293. //-------------------------------------------------------------------
  294. res = "Designer,Toolbar,Text,";
  295. CreateItem(cbxFontName, res + "Name");
  296. cbxFontName.FontSelected += cbxName_FontSelected;
  297. CreateItem(cbxFontSize, res + "Size");
  298. cbxFontSize.SizeSelected += cbxSize_SizeSelected;
  299. CreateItem(btnTextColor, 23, res + "Color", btnColor_Click);
  300. btnTextColor.SetStyle(designer.UIStyle);
  301. CreateItem(btnBold, 20, res + "Bold", btnBold_Click);
  302. CreateItem(btnItalic, 21, res + "Italic", btnItalic_Click);
  303. CreateItem(btnUnderline, 22, res + "Underline", btnUnderline_Click);
  304. CreateItem(btnAlignLeft, 25, res + "Left", btnLeft_Click);
  305. CreateItem(btnAlignCenter, 26, res + "Center", btnCenter_Click);
  306. CreateItem(btnAlignRight, 27, res + "Right", btnRight_Click);
  307. CreateItem(btnJustify, 28, res + "Justify", btnJustify_Click);
  308. CreateItem(btnAlignTop, 29, res + "Top", btnTop_Click);
  309. CreateItem(btnAlignMiddle, 30, res + "Middle", btnMiddle_Click);
  310. CreateItem(btnAlignBottom, 31, res + "Bottom", btnBottom_Click);
  311. CreateItem(btnTextRotation, 64, res + "Angle");
  312. btnTextRotation.AngleChanged += btnTextRotation_AngleChanged;
  313. //-------------------------------------------------------------------
  314. // Border and Fill
  315. //-------------------------------------------------------------------
  316. res = "Designer,Toolbar,Border,";
  317. CreateItem(btnTopLine, 32, res + "Top", btnTopLine_Click);
  318. CreateItem(btnBottomLine, 33, res + "Bottom", btnBottomLine_Click);
  319. CreateItem(btnLeftLine, 34, res + "Left", btnLeftLine_Click);
  320. CreateItem(btnRightLine, 35, res + "Right", btnRightLine_Click);
  321. CreateItem(btnAllLines, 36, res + "All", btnAll_Click);
  322. CreateItem(btnNoLines, 37, res + "None", btnNone_Click);
  323. CreateItem(btnFillColor, 38, res + "FillColor", btnFillColor_Click);
  324. btnFillColor.DefaultColor = Color.Transparent;
  325. CreateItem(btnFillProps, 141, res + "FillStyle", btnFillProps_Click);
  326. CreateItem(btnLineColor, 39, res + "LineColor", btnLineColor_Click);
  327. btnLineColor.DefaultColor = Color.Black;
  328. CreateItem(btnLineWidth, 71, res + "Width");
  329. btnLineWidth.WidthSelected += cbxWidth_WidthSelected;
  330. CreateItem(btnLineStyle, 85, res + "Style");
  331. btnLineStyle.StyleSelected += cbxLineStyle_StyleSelected;
  332. CreateItem(btnBorderProps, 40, res + "Props", btnBorderProps_Click);
  333. //-------------------------------------------------------------------
  334. // Format
  335. //-------------------------------------------------------------------
  336. CreateItem(btnHighlight, "Ribbon.Highlight.png", "Designer,Toolbar,Text,Highlight", btnHighlight_Click);
  337. CreateItem(btnFormat, "Ribbon.Format.png", "ComponentMenu,TextObject,Format", btnFormat_Click);
  338. //-------------------------------------------------------------------
  339. // Styles
  340. //-------------------------------------------------------------------
  341. cbxStyles.StyleSelected += cbxStyle_StyleSelected;
  342. CreateItem(btnStyles, 87, "Designer,Menu,Report,Styles", Designer.cmdReportStyles.Invoke);
  343. //-------------------------------------------------------------------
  344. // Editing
  345. //-------------------------------------------------------------------
  346. res = "Designer,Menu,Edit,";
  347. CreateItem(btnFind, 181, res + "Find", Designer.cmdFind.Invoke);
  348. CreateItem(btnReplace, "Ribbon.Replace.png", res + "Replace", Designer.cmdReplace.Invoke);
  349. CreateItem(btnSelectAll, 100, res + "SelectAll", Designer.cmdSelectAll.Invoke);
  350. //-------------------------------------------------------------------
  351. // Polygon
  352. //-------------------------------------------------------------------
  353. res = "Designer,Toolbar,Polygon,";
  354. CreateItem(btnPolyMove, 256, res + "MoveScale", Designer.CmdPolySelectMove.Invoke);
  355. CreateItem(btnPolyPointer, 252, res + "Pointer", Designer.CmdPolySelectPointer.Invoke);
  356. CreateItem(btnPolyAddPoint, 253, res + "AddPoint", Designer.CmdPolySelectAddPoint.Invoke);
  357. CreateItem(btnPolyAddBezier, 254, res + "Bezier", Designer.CmdPolySelectBezier.Invoke);
  358. CreateItem(btnPolyRemovePoint, 255, res + "RemovePoint", Designer.CmdPolySelectRemovePoint.Invoke);
  359. }
  360. private void SetupReportControls()
  361. {
  362. string res = "";
  363. CreateItem(btnPreview, "Ribbon.Report.png", "Designer,Menu,File,Preview", "Designer,Toolbar,Standard,Preview", btnPreview_Click);
  364. CreateItem(btnWebPreview, "Ribbon.WebPreview.png", "Designer,Menu,File,PreviewCloud", "Designer,Toolbar,Standard,PreviewCloud", Designer.cmdPreviewCloud.Invoke);
  365. CreateItem(btnValidate, 70, "Designer,Menu,Report,Validate", Designer.cmdReportValidation.Invoke);
  366. CreateItem(btnReportOptions, 198, "Designer,Menu,Report,Options", Designer.cmdReportSettings.Invoke);
  367. res = "Designer,Menu,Data,";
  368. CreateItem(btnDataChoose, "Ribbon.ChooseData.png", res + "Choose", Designer.cmdChooseData.Invoke);
  369. CreateItem(btnDataAdd, "Ribbon.AddDataSource.png", res + "Add", Designer.cmdAddData.Invoke);
  370. res = "Designer,Toolbar,Standard,";
  371. CreateItem(btnAddPage, 10, res + "NewPage", Designer.cmdNewPage.Invoke);
  372. CreateItem(btnCopyPage, 6, res + "CopyPage", Designer.cmdCopyPage.Invoke);
  373. CreateItem(btnAddDialog, 11, res + "NewDialog", Designer.cmdNewDialog.Invoke);
  374. CreateItem(btnDeletePage, 12, res + "DeletePage", Designer.cmdDeletePage.Invoke);
  375. CreateItem(btnPageSetup, "Ribbon.PageSetup.png", res + "PageSetup", Designer.cmdPageSetup.Invoke);
  376. res = "Designer,Menu,Report,";
  377. CreateItem(btnConfigureBands, "Ribbon.Bands.png", res + "Bands", miInsertBands_Click);
  378. CreateItem(btnGroupExpert, "Ribbon.Grouping.png", res + "GroupExpert", miReportGroupExpert_Click);
  379. res = "Objects,Bands,";
  380. CreateItem(btnReportTitle, res + "ReportTitle", miReportTitle_Click);
  381. CreateItem(btnReportSummary, res + "ReportSummary", miReportSummary_Click);
  382. CreateItem(btnPageHeader, res + "PageHeader", miPageHeader_Click);
  383. CreateItem(btnPageFooter, res + "PageFooter", miPageFooter_Click);
  384. CreateItem(btnColumnHeader, res + "ColumnHeader", miColumnHeader_Click);
  385. CreateItem(btnColumnFooter, res + "ColumnFooter", miColumnFooter_Click);
  386. CreateItem(btnOverlay, res + "Overlay", miOverlay_Click);
  387. previewTimer = new Timer();
  388. previewTimer.Interval = 20;
  389. previewTimer.Tick += previewTimer_Tick;
  390. }
  391. private void SetupLayoutControls()
  392. {
  393. string res = "Designer,Toolbar,Layout,";
  394. CreateItem(btnAlignToGrid, "Ribbon.AlignToGrid.png", res + "AlignToGrid", btnAlignToGrid_Click);
  395. CreateItem(btnFitToGrid, "Ribbon.FitToGrid.png", res + "SizeToGrid", btnSizeToGrid_Click);
  396. CreateItem(btnAlignLefts, 41, res + "Left", btnAlignLefts_Click);
  397. CreateItem(btnAlignCenters, 42, res + "Center", btnAlignCenters_Click);
  398. CreateItem(btnAlignRights, 45, res + "Right", btnAlignRights_Click);
  399. CreateItem(btnAlignTops, 46, res + "Top", btnAlignTops_Click);
  400. CreateItem(btnAlignMiddles, 47, res + "Middle", btnAlignMiddles_Click);
  401. CreateItem(btnAlignBottoms, 50, res + "Bottom", btnAlignBottoms_Click);
  402. CreateItem(btnSameWidth, 83, res + "SameWidth", btnSameWidth_Click);
  403. CreateItem(btnSameHeight, 84, res + "SameHeight", btnSameHeight_Click);
  404. CreateItem(btnSameSize, 91, res + "SameSize", btnSameSize_Click);
  405. CreateItem(btnSpaceHorizontally, 44, res + "SpaceHorizontally", btnSpaceHorizontally_Click);
  406. CreateItem(btnIncreaseHorizontalSpacing, 92, res + "IncreaseHorizontalSpacing", btnIncreaseHorizontalSpacing_Click);
  407. CreateItem(btnDecreaseHorizontalSpacing, 93, res + "DecreaseHorizontalSpacing", btnDecreaseHorizontalSpacing_Click);
  408. CreateItem(btnRemoveHorizontalSpacing, 94, res + "RemoveHorizontalSpacing", btnRemoveHorizontalSpacing_Click);
  409. CreateItem(btnSpaceVertically, 49, res + "SpaceVertically", btnSpaceVertically_Click);
  410. CreateItem(btnIncreaseVerticalSpacing, 95, res + "IncreaseVerticalSpacing", btnIncreaseVerticalSpacing_Click);
  411. CreateItem(btnDecreaseVerticalSpacing, 96, res + "DecreaseVerticalSpacing", btnDecreaseVerticalSpacing_Click);
  412. CreateItem(btnRemoveVerticalSpacing, 97, res + "RemoveVerticalSpacing", btnRemoveVerticalSpacing_Click);
  413. CreateItem(btnCenterHorizontally, 43, res + "CenterHorizontally", btnCenterHorizontally_Click);
  414. CreateItem(btnCenterVertically, 48, res + "CenterVertically", btnCenterVertically_Click);
  415. CreateItem(btnBringToFront, "Ribbon.BringToFront.png", res + "BringToFront", Designer.cmdBringToFront.Invoke);
  416. CreateItem(btnSendToBack, "Ribbon.SendToBack.png", res + "SendToBack", Designer.cmdSendToBack.Invoke);
  417. CreateItem(btnAlignment, "Ribbon.AlignMenu.png", "", null);
  418. CreateItem(btnSize, "Ribbon.SizeMenu.png", "", null);
  419. CreateItem(btnSpacing, "Ribbon.SpacingMenu.png", "", null);
  420. res = "Designer,Toolbar,Standard,";
  421. CreateItem(btnGroup, "Ribbon.Group.png", res + "Group", Designer.cmdGroup.Invoke);
  422. CreateItem(btnUngroup, "Ribbon.Ungroup.png", res + "Ungroup", Designer.cmdUngroup.Invoke);
  423. }
  424. private void SetupViewControls()
  425. {
  426. string res = "Designer,Menu,View,";
  427. CreateItem(btnViewGrid, "Ribbon.ViewGridlines.png", res + "Grid", MenuViewGrid_Click);
  428. CreateItem(btnViewGuides, "Ribbon.ViewGuides.png", res + "Guides", MenuViewGuides_Click);
  429. CreateItem(btnAutoGuides, res + "AutoGuides", MenuViewAutoGuides_Click);
  430. CreateItem(btnDeleteHGuides, res + "DeleteHGuides", MenuViewDeleteHGuides_Click);
  431. CreateItem(btnDeleteVGuides, res + "DeleteVGuides", MenuViewDeleteVGuides_Click);
  432. res = "Designer,ToolWindow,";
  433. CreateItem(btnPanels, "Ribbon.Panels.png", "", null);
  434. CreateItem(btnProperties, 68, res + "Properties", BtnProperties_Click);
  435. CreateItem(btnData, 72, res + "Dictionary", BtnData_Click);
  436. CreateItem(btnReportTree, 189, res + "ReportTree", BtnReportTree_Click);
  437. CreateItem(btnMessages, 70, res + "Messages", BtnMessages_Click);
  438. designer.PropertiesWindow.VisibleChanged += (object s, EventArgs e) =>
  439. {
  440. btnProperties.Checked = designer.PropertiesWindow.Visible;
  441. };
  442. designer.DataWindow.VisibleChanged += (object s, EventArgs e) =>
  443. {
  444. btnData.Checked = designer.DataWindow.Visible;
  445. };
  446. designer.ReportTreeWindow.VisibleChanged += (object s, EventArgs e) =>
  447. {
  448. btnReportTree.Checked = designer.ReportTreeWindow.Visible;
  449. };
  450. designer.MessagesWindow.VisibleChanged += (object s, EventArgs e) =>
  451. {
  452. btnMessages.Checked = designer.MessagesWindow.Visible;
  453. };
  454. res = "Forms,ReportPageOptions,";
  455. CreateItem(btnUnits, "Ribbon.Page.png", "Designer,Menu,View,Units", null);
  456. CreateItem(btnUnitsMillimeters, res + "Millimeters", miViewUnits_Click);
  457. CreateItem(btnUnitsCentimeters, res + "Centimeters", miViewUnits_Click);
  458. CreateItem(btnUnitsInches, res + "Inches", miViewUnits_Click);
  459. CreateItem(btnUnitsHundrethsOfInch, res + "HundrethsOfInch", miViewUnits_Click);
  460. }
  461. #endregion
  462. #region Update Controls
  463. private void UpdateControls()
  464. {
  465. UpdateFileControls();
  466. UpdateHomeControls();
  467. UpdateReportControls();
  468. UpdateLayoutControls();
  469. UpdateViewControls();
  470. }
  471. private void UpdateFileControls()
  472. {
  473. btnFileNew.Enabled = Designer.cmdNew.Enabled;
  474. btnFileOpen.Enabled = Designer.cmdOpen.Enabled;
  475. btnFileOpenPage.Enabled = Designer.cmdOpenPage.Enabled;
  476. btnFileClose.Enabled = Designer.cmdClose.Enabled;
  477. btnFileClose.Visible = Designer.MdiMode;
  478. btnFileSave.Enabled = Designer.cmdSave.Enabled;
  479. btnFileSaveAs.Enabled = Designer.cmdSaveAs.Enabled;
  480. btnFileSaveWithRandomData.Enabled = Designer.cmdSaveWithRandomData.Enabled;
  481. btnFileSaveAll.Visible = Designer.MdiMode;
  482. btnFileSaveAll.Enabled = Designer.cmdSaveAll.Enabled;
  483. //btnFilePageSetup.Enabled = Designer.cmdPageSetup.Enabled;
  484. btnFilePrinterSetup.Enabled = Designer.cmdPrinterSetup.Enabled;
  485. btnFilePreview.Enabled = Designer.cmdPreview.Enabled;
  486. btnFileWebPreview.Enabled = Designer.cmdPreviewCloud.Enabled;
  487. btnWelcome.Enabled = Designer.cmdWelcome.Enabled;
  488. btnHelp.Enabled = Designer.cmdHelpContents.Enabled;
  489. }
  490. private void UpdateHomeControls()
  491. {
  492. //-------------------------------------------------------------------
  493. // Undo
  494. //-------------------------------------------------------------------
  495. btnUndo.Enabled = Designer.cmdUndo.Enabled;
  496. btnRedo.Enabled = Designer.cmdRedo.Enabled;
  497. //-------------------------------------------------------------------
  498. // Clipboard
  499. //-------------------------------------------------------------------
  500. btnCut.Enabled = Designer.cmdCut.Enabled;
  501. btnCopy.Enabled = Designer.cmdCopy.Enabled;
  502. btnPaste.Enabled = Designer.cmdPaste.Enabled;
  503. btnFormatPainter.Enabled = Designer.cmdFormatPainter.Enabled;
  504. btnFormatPainter.Checked = Designer.FormatPainter;
  505. //-------------------------------------------------------------------
  506. // Text
  507. //-------------------------------------------------------------------
  508. bool enabled = Designer.SelectedTextObjects.Enabled;
  509. cbxFontName.Enabled = enabled;
  510. cbxFontSize.Enabled = enabled;
  511. btnBold.Enabled = enabled;
  512. btnItalic.Enabled = enabled;
  513. btnUnderline.Enabled = enabled;
  514. btnAlignLeft.Enabled = enabled;
  515. btnAlignCenter.Enabled = enabled;
  516. btnAlignRight.Enabled = enabled;
  517. btnJustify.Enabled = enabled;
  518. btnAlignTop.Enabled = enabled;
  519. btnAlignMiddle.Enabled = enabled;
  520. btnAlignBottom.Enabled = enabled;
  521. btnTextColor.Enabled = enabled;
  522. btnTextRotation.Enabled = enabled;
  523. if (enabled)
  524. {
  525. TextObject text = Designer.SelectedTextObjects.First;
  526. cbxFontName.FontName = text.Font.Name;
  527. cbxFontSize.FontSize = text.Font.Size;
  528. btnBold.Checked = text.Font.Bold;
  529. btnItalic.Checked = text.Font.Italic;
  530. btnUnderline.Checked = text.Font.Underline;
  531. btnAlignLeft.Checked = text.HorzAlign == HorzAlign.Left;
  532. btnAlignCenter.Checked = text.HorzAlign == HorzAlign.Center;
  533. btnAlignRight.Checked = text.HorzAlign == HorzAlign.Right;
  534. btnJustify.Checked = text.HorzAlign == HorzAlign.Justify;
  535. btnAlignTop.Checked = text.VertAlign == VertAlign.Top;
  536. btnAlignMiddle.Checked = text.VertAlign == VertAlign.Center;
  537. btnAlignBottom.Checked = text.VertAlign == VertAlign.Bottom;
  538. if (text.TextFill is SolidFill)
  539. btnTextColor.Color = (text.TextFill as SolidFill).Color;
  540. btnTextRotation.Angle = text.Angle;
  541. }
  542. else
  543. {
  544. btnBold.Checked = false;
  545. btnItalic.Checked = false;
  546. btnUnderline.Checked = false;
  547. btnAlignLeft.Checked = false;
  548. btnAlignCenter.Checked = false;
  549. btnAlignRight.Checked = false;
  550. btnJustify.Checked = false;
  551. btnAlignTop.Checked = false;
  552. btnAlignMiddle.Checked = false;
  553. btnAlignBottom.Checked = false;
  554. }
  555. //-------------------------------------------------------------------
  556. // Border and Fill
  557. //-------------------------------------------------------------------
  558. enabled = Designer.SelectedReportComponents.Enabled;
  559. bool simple = Designer.SelectedReportComponents.SimpleBorder;
  560. bool useBorder = Designer.SelectedReportComponents.BorderEnabled;
  561. bool borderEnabled = enabled && !simple && useBorder;
  562. btnTopLine.Enabled = borderEnabled;
  563. btnBottomLine.Enabled = borderEnabled;
  564. btnLeftLine.Enabled = borderEnabled;
  565. btnRightLine.Enabled = borderEnabled;
  566. btnAllLines.Enabled = borderEnabled;
  567. btnNoLines.Enabled = borderEnabled;
  568. btnFillColor.Enabled = enabled && Designer.SelectedReportComponents.FillEnabled;
  569. btnFillProps.Enabled = enabled && Designer.SelectedReportComponents.FillEnabled;
  570. btnLineColor.Enabled = enabled && useBorder;
  571. btnLineWidth.Enabled = enabled && useBorder;
  572. btnLineStyle.Enabled = enabled && useBorder;
  573. btnBorderProps.Enabled = borderEnabled;
  574. if (enabled)
  575. {
  576. Border border = Designer.SelectedReportComponents.First.Border;
  577. btnTopLine.Checked = (border.Lines & BorderLines.Top) != 0;
  578. btnBottomLine.Checked = (border.Lines & BorderLines.Bottom) != 0;
  579. btnLeftLine.Checked = (border.Lines & BorderLines.Left) != 0;
  580. btnRightLine.Checked = (border.Lines & BorderLines.Right) != 0;
  581. btnLineColor.Color = border.Color;
  582. if (Designer.SelectedReportComponents.First.Fill is SolidFill)
  583. btnFillColor.Color = (Designer.SelectedReportComponents.First.Fill as SolidFill).Color;
  584. btnLineWidth.LineWidth = border.Width;
  585. btnLineStyle.LineStyle = border.Style;
  586. }
  587. //-------------------------------------------------------------------
  588. // Format
  589. //-------------------------------------------------------------------
  590. btnHighlight.Enabled = Designer.SelectedTextObjects.Enabled;
  591. btnFormat.Enabled = Designer.SelectedTextObjects.Enabled;
  592. //-------------------------------------------------------------------
  593. // Editing
  594. //-------------------------------------------------------------------
  595. btnFind.Enabled = Designer.cmdFind.Enabled;
  596. btnReplace.Enabled = Designer.cmdReplace.Enabled;
  597. btnSelectAll.Enabled = Designer.cmdSelectAll.Enabled;
  598. //-------------------------------------------------------------------
  599. // Styles
  600. //-------------------------------------------------------------------
  601. enabled = Designer.SelectedReportComponents.Enabled;
  602. cbxStyles.Enabled = enabled;
  603. cbxStyles.Report = Designer.ActiveReport;
  604. if (enabled)
  605. cbxStyles.Style = Designer.SelectedReportComponents.First.Style;
  606. //-------------------------------------------------------------------
  607. // Polygon
  608. //-------------------------------------------------------------------
  609. enabled = (Designer.SelectedObjects.Count == 1) && (Designer.SelectedObjects[0] is PolyLineObject);
  610. btnPolyMove.Enabled = enabled;
  611. btnPolyPointer.Enabled = enabled;
  612. btnPolyAddBezier.Enabled = enabled;
  613. btnPolyAddPoint.Enabled = enabled;
  614. btnPolyRemovePoint.Enabled = enabled;
  615. if (!enabled)
  616. selectBtn(PolyLineObject.PolygonSelectionMode.MoveAndScale);
  617. else
  618. {
  619. PolyLineObject plobj = (Designer.SelectedObjects[0] as PolyLineObject);
  620. selectBtn(plobj.SelectionMode);
  621. }
  622. //-------------------------------------------------------------------
  623. }
  624. private void selectBtn(PolyLineObject.PolygonSelectionMode index)
  625. {
  626. PolyLineObject plobj = null;
  627. if ((Designer.SelectedObjects.Count == 1) && (Designer.SelectedObjects[0] is PolyLineObject))
  628. plobj = (Designer.SelectedObjects[0] as PolyLineObject);
  629. btnPolyMove.Checked = false;
  630. btnPolyPointer.Checked = false;
  631. btnPolyAddBezier.Checked = false;
  632. btnPolyAddPoint.Checked = false;
  633. btnPolyRemovePoint.Checked = false;
  634. switch (index)
  635. {
  636. case PolyLineObject.PolygonSelectionMode.Normal:
  637. btnPolyPointer.Checked = true;
  638. break;
  639. case PolyLineObject.PolygonSelectionMode.AddBezier:
  640. btnPolyAddBezier.Checked = true;
  641. break;
  642. case PolyLineObject.PolygonSelectionMode.AddToLine:
  643. btnPolyAddPoint.Checked = true;
  644. break;
  645. case PolyLineObject.PolygonSelectionMode.Delete:
  646. btnPolyRemovePoint.Checked = true;
  647. break;
  648. case PolyLineObject.PolygonSelectionMode.MoveAndScale:
  649. btnPolyMove.Checked = true;
  650. break;
  651. }
  652. }
  653. private void UpdateReportControls()
  654. {
  655. btnPreview.Enabled = Designer.cmdPreview.Enabled;
  656. btnWebPreview.Enabled = Designer.cmdPreviewCloud.Enabled;
  657. btnReportOptions.Enabled = Designer.cmdReportSettings.Enabled;
  658. btnDataChoose.Enabled = Designer.cmdChooseData.Enabled;
  659. btnDataAdd.Enabled = Designer.cmdAddData.Enabled;
  660. btnAddPage.Enabled = Designer.cmdNewPage.Enabled;
  661. btnCopyPage.Enabled = Designer.cmdCopyPage.Enabled;
  662. btnAddDialog.Enabled = Designer.cmdNewDialog.Enabled;
  663. btnDeletePage.Enabled = Designer.cmdDeletePage.Enabled;
  664. btnPageSetup.Enabled = Designer.cmdPageSetup.Enabled;
  665. bool bandsEnabled = Designer.cmdInsertBand.Enabled;
  666. btnConfigureBands.Enabled = bandsEnabled;
  667. btnGroupExpert.Enabled = bandsEnabled;
  668. ReportPage page = null;
  669. try
  670. {
  671. //see fix # 66fcd219-30f1-45e6-8ee5-ce65cfb9d35d
  672. //rly annoying freezes on designer start
  673. page = Page as ReportPage;
  674. }
  675. catch
  676. {
  677. }
  678. if (page != null)
  679. {
  680. bool isSubreport = page.Subreport != null;
  681. btnReportTitle.Enabled = bandsEnabled && !isSubreport;
  682. btnReportSummary.Enabled = bandsEnabled && !isSubreport;
  683. btnPageHeader.Enabled = bandsEnabled && !isSubreport;
  684. btnPageFooter.Enabled = bandsEnabled && !isSubreport;
  685. btnColumnHeader.Enabled = bandsEnabled && !isSubreport;
  686. btnColumnFooter.Enabled = bandsEnabled && !isSubreport;
  687. btnOverlay.Enabled = bandsEnabled && !isSubreport;
  688. btnReportTitle.Checked = page.ReportTitle != null;
  689. btnReportSummary.Checked = page.ReportSummary != null;
  690. btnPageHeader.Checked = page.PageHeader != null;
  691. btnPageFooter.Checked = page.PageFooter != null;
  692. btnColumnHeader.Checked = page.ColumnHeader != null;
  693. btnColumnFooter.Checked = page.ColumnFooter != null;
  694. btnOverlay.Checked = page.Overlay != null;
  695. }
  696. else
  697. {
  698. btnReportTitle.Enabled = false;
  699. btnReportSummary.Enabled = false;
  700. btnPageHeader.Enabled = false;
  701. btnPageFooter.Enabled = false;
  702. btnColumnHeader.Enabled = false;
  703. btnColumnFooter.Enabled = false;
  704. btnOverlay.Enabled = false;
  705. }
  706. }
  707. private void UpdateLayoutControls()
  708. {
  709. bool oneObjSelected = Designer.SelectedComponents.Count > 0;
  710. bool threeObjSelected = Designer.SelectedComponents.Count >= 3;
  711. bool severalObjSelected = Designer.SelectedComponents.Count > 1;
  712. bool canChangeOrder = Designer.SelectedComponents.Count > 0 &&
  713. Designer.SelectedComponents.First.HasFlag(Flags.CanChangeOrder);
  714. bool canMove = Designer.SelectedComponents.Count > 0 && Designer.SelectedComponents.First.HasFlag(Flags.CanMove);
  715. bool canResize = Designer.SelectedComponents.Count > 0 &&
  716. Designer.SelectedComponents.First.HasFlag(Flags.CanResize);
  717. btnAlignToGrid.Enabled = oneObjSelected && canMove;
  718. btnAlignLefts.Enabled = severalObjSelected && canMove;
  719. btnAlignCenters.Enabled = severalObjSelected && canMove;
  720. btnAlignRights.Enabled = severalObjSelected && canMove;
  721. btnAlignTops.Enabled = severalObjSelected && canMove;
  722. btnAlignMiddles.Enabled = severalObjSelected && canMove;
  723. btnAlignBottoms.Enabled = severalObjSelected && canMove;
  724. btnSameWidth.Enabled = severalObjSelected && canResize;
  725. btnSameHeight.Enabled = severalObjSelected && canResize;
  726. btnSameSize.Enabled = severalObjSelected && canResize;
  727. btnFitToGrid.Enabled = oneObjSelected && canResize;
  728. btnSpaceHorizontally.Enabled = threeObjSelected && canMove;
  729. btnIncreaseHorizontalSpacing.Enabled = severalObjSelected && canMove;
  730. btnDecreaseHorizontalSpacing.Enabled = severalObjSelected && canMove;
  731. btnRemoveHorizontalSpacing.Enabled = severalObjSelected && canMove;
  732. btnSpaceVertically.Enabled = threeObjSelected && canMove;
  733. btnIncreaseVerticalSpacing.Enabled = severalObjSelected && canMove;
  734. btnDecreaseVerticalSpacing.Enabled = severalObjSelected && canMove;
  735. btnRemoveVerticalSpacing.Enabled = severalObjSelected && canMove;
  736. btnCenterHorizontally.Enabled = oneObjSelected && canMove;
  737. btnCenterVertically.Enabled = oneObjSelected && canMove;
  738. btnBringToFront.Enabled = canChangeOrder;
  739. btnSendToBack.Enabled = canChangeOrder;
  740. btnGroup.Enabled = Designer.cmdGroup.Enabled;
  741. btnUngroup.Enabled = Designer.cmdUngroup.Enabled;
  742. }
  743. private void UpdateViewControls()
  744. {
  745. if (Workspace != null)
  746. {
  747. btnViewGrid.Enabled = true;
  748. btnViewGuides.Enabled = true;
  749. btnViewGrid.Checked = ReportWorkspace.ShowGrid;
  750. btnViewGuides.Checked = ReportWorkspace.ShowGuides;
  751. btnAutoGuides.Enabled = true;
  752. bool autoGuides = ReportWorkspace.AutoGuides;
  753. btnAutoGuides.Checked = autoGuides;
  754. btnDeleteHGuides.Enabled = !autoGuides;
  755. btnDeleteVGuides.Enabled = !autoGuides;
  756. }
  757. else
  758. {
  759. btnViewGrid.Enabled = false;
  760. btnViewGuides.Enabled = false;
  761. btnAutoGuides.Enabled = false;
  762. btnDeleteHGuides.Enabled = false;
  763. btnDeleteVGuides.Enabled = false;
  764. }
  765. btnProperties.Checked = designer.PropertiesWindow.Visible;
  766. btnData.Checked = designer.DataWindow.Visible;
  767. btnReportTree.Checked = designer.ReportTreeWindow.Visible;
  768. btnMessages.Checked = designer.MessagesWindow.Visible;
  769. btnUnitsMillimeters.Checked = ReportWorkspace.Grid.GridUnits == PageUnits.Millimeters;
  770. btnUnitsCentimeters.Checked = ReportWorkspace.Grid.GridUnits == PageUnits.Centimeters;
  771. btnUnitsInches.Checked = ReportWorkspace.Grid.GridUnits == PageUnits.Inches;
  772. btnUnitsHundrethsOfInch.Checked = ReportWorkspace.Grid.GridUnits == PageUnits.HundrethsOfInch;
  773. }
  774. #endregion Update Controls
  775. #region Images
  776. /// <inheritdoc/>
  777. public override void UpdateDpiDependencies()
  778. {
  779. base.UpdateDpiDependencies();
  780. Designer.UpdateDpiDependencies(this);
  781. ribbonControl.SuspendLayout();
  782. foreach (KeyValuePair<BaseItem, ItemInfo> kv in ribbonItems)
  783. {
  784. if (kv.Key is ButtonItem btn)
  785. {
  786. if (kv.Value.ImageIndex != -1)
  787. btn.Image = GetImage(kv.Value.ImageIndex);
  788. if (!String.IsNullOrEmpty(kv.Value.ImageResource))
  789. btn.Image = GetImage(kv.Value.ImageResource);
  790. }
  791. }
  792. cbxFontName.Owner = this;
  793. cbxFontName.UpdateDpiDependencies();
  794. cbxFontName.ComboWidth = this.LogicalToDevice(110);
  795. cbxFontSize.ComboWidth = this.LogicalToDevice(45);
  796. cbxFontSize.DropDownHeight = this.LogicalToDevice(300);
  797. cbxFontSize.ItemHeight = this.LogicalToDevice(14);
  798. cbxStyles.ComboWidth = this.LogicalToDevice(120);
  799. cbxStyles.DropDownHeight = this.LogicalToDevice(300);
  800. cbxStyles.DropDownWidth = this.LogicalToDevice(150);
  801. cbxStyles.ItemHeight = this.LogicalToDevice(14);
  802. // this will recalc layout
  803. barText.Width++;
  804. barStyles.Width++;
  805. ribbonControl.ResumeLayout();
  806. }
  807. #endregion
  808. #region Methods
  809. #region Form Methods
  810. private void DesignerForm_Load(object sender, EventArgs e)
  811. {
  812. // bug/inconsistent behavior in .Net: if we set WindowState to Maximized, the
  813. // Load event will be fired *after* the form is shown.
  814. bool maximized = Storage.RestoreFormState(true);
  815. // under some circumstances, the config file may contain wrong winodw position (-32000)
  816. if (!maximized && (Left < -10 || Top < -10))
  817. maximized = true;
  818. Designer.RestoreConfig();
  819. if (maximized)
  820. WindowState = FormWindowState.Maximized;
  821. Config.DesignerSettings.OnDesignerLoaded(Designer, EventArgs.Empty);
  822. Designer.StartAutoSave();
  823. }
  824. private void DesignerForm_FormClosing(object sender, FormClosingEventArgs e)
  825. {
  826. Designer.ParentFormClosing(e);
  827. if (!e.Cancel)
  828. {
  829. Storage.SaveFormState();
  830. Designer.SaveConfig();
  831. }
  832. }
  833. private void DesignerForm_FormClosed(object sender, FormClosedEventArgs e)
  834. {
  835. Config.DesignerSettings.OnDesignerClosed(Designer, EventArgs.Empty);
  836. Designer.StopAutoSave();
  837. }
  838. #endregion
  839. #region File Methods
  840. private void miFile_PopupOpen(object sender, PopupOpenEventArgs e)
  841. {
  842. // clear existing recent items
  843. for (int i = 0; i < itemContainer23.SubItems.Count; i++)
  844. {
  845. BaseItem item = itemContainer23.SubItems[i];
  846. if (item is ButtonItem)
  847. {
  848. item.Dispose();
  849. itemContainer23.SubItems.Remove(item);
  850. i--;
  851. }
  852. }
  853. // add new items
  854. if (Designer.cmdRecentFiles.Enabled && Designer.RecentFiles.Count > 0)
  855. {
  856. var t = Designer.CloudReportDictionary;
  857. foreach (string file in Designer.RecentFiles)
  858. {
  859. ButtonItem menuItem = new ButtonItem();
  860. menuItem.ButtonStyle = eButtonStyle.ImageAndText;
  861. menuItem.Text = Path.GetFileName(file);
  862. menuItem.Tag = file;
  863. menuItem.Tooltip = file;
  864. if (Designer.cmdRecentFiles.IsCloudFile(file))
  865. menuItem.Image = Designer.GetImage(259);
  866. menuItem.Click += recentFile_Click;
  867. itemContainer23.SubItems.Insert(1, menuItem);
  868. }
  869. }
  870. }
  871. private void recentFile_Click(object sender, EventArgs e)
  872. {
  873. Designer.cmdRecentFiles.LoadFile((sender as ButtonItem).Tag as string);
  874. }
  875. #endregion
  876. #region Home Methods
  877. //-------------------------------------------------------------------
  878. // Clipboard
  879. //-------------------------------------------------------------------
  880. private void clipboardTimer_Tick(object sender, EventArgs e)
  881. {
  882. btnPaste.Enabled = Designer.cmdPaste.Enabled;
  883. }
  884. //-------------------------------------------------------------------
  885. // Text
  886. //-------------------------------------------------------------------
  887. private void cbxName_FontSelected(object sender, EventArgs e)
  888. {
  889. (Designer.ActiveReportTab.ActivePageDesigner as ReportPageDesigner).Workspace.Focus();
  890. Designer.SelectedTextObjects.SetFontName(cbxFontName.FontName);
  891. }
  892. private void cbxSize_SizeSelected(object sender, EventArgs e)
  893. {
  894. (Designer.ActiveReportTab.ActivePageDesigner as ReportPageDesigner).Workspace.Focus();
  895. Designer.SelectedTextObjects.SetFontSize(cbxFontSize.FontSize);
  896. }
  897. private void btnBold_Click(object sender, EventArgs e)
  898. {
  899. btnBold.Checked = !btnBold.Checked;
  900. Designer.SelectedTextObjects.ToggleFontStyle(FontStyle.Bold, btnBold.Checked);
  901. }
  902. private void btnItalic_Click(object sender, EventArgs e)
  903. {
  904. btnItalic.Checked = !btnItalic.Checked;
  905. Designer.SelectedTextObjects.ToggleFontStyle(FontStyle.Italic, btnItalic.Checked);
  906. }
  907. private void btnUnderline_Click(object sender, EventArgs e)
  908. {
  909. btnUnderline.Checked = !btnUnderline.Checked;
  910. Designer.SelectedTextObjects.ToggleFontStyle(FontStyle.Underline, btnUnderline.Checked);
  911. }
  912. private void btnLeft_Click(object sender, EventArgs e)
  913. {
  914. Designer.SelectedTextObjects.SetHAlign(HorzAlign.Left);
  915. }
  916. private void btnCenter_Click(object sender, EventArgs e)
  917. {
  918. Designer.SelectedTextObjects.SetHAlign(HorzAlign.Center);
  919. }
  920. private void btnRight_Click(object sender, EventArgs e)
  921. {
  922. Designer.SelectedTextObjects.SetHAlign(HorzAlign.Right);
  923. }
  924. private void btnJustify_Click(object sender, EventArgs e)
  925. {
  926. Designer.SelectedTextObjects.SetHAlign(HorzAlign.Justify);
  927. }
  928. private void btnTop_Click(object sender, EventArgs e)
  929. {
  930. Designer.SelectedTextObjects.SetVAlign(VertAlign.Top);
  931. }
  932. private void btnMiddle_Click(object sender, EventArgs e)
  933. {
  934. Designer.SelectedTextObjects.SetVAlign(VertAlign.Center);
  935. }
  936. private void btnBottom_Click(object sender, EventArgs e)
  937. {
  938. Designer.SelectedTextObjects.SetVAlign(VertAlign.Bottom);
  939. }
  940. private void btnColor_Click(object sender, EventArgs e)
  941. {
  942. Designer.SelectedTextObjects.SetTextColor(btnTextColor.DefaultColor);
  943. }
  944. private void btnTextRotation_AngleChanged(object sender, EventArgs e)
  945. {
  946. Designer.SelectedTextObjects.SetAngle((sender as TextAngleButtonItem).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 BtnReportTree_Click(object sender, EventArgs e)
  1279. {
  1280. if (designer.ReportTreeWindow.Visible)
  1281. designer.ReportTreeWindow.Hide();
  1282. else
  1283. designer.ReportTreeWindow.Show();
  1284. }
  1285. private void BtnData_Click(object sender, EventArgs e)
  1286. {
  1287. if (designer.DataWindow.Visible)
  1288. designer.DataWindow.Hide();
  1289. else
  1290. designer.DataWindow.Show();
  1291. }
  1292. private void BtnProperties_Click(object sender, EventArgs e)
  1293. {
  1294. if (designer.PropertiesWindow.Visible)
  1295. designer.PropertiesWindow.Hide();
  1296. else
  1297. designer.PropertiesWindow.Show();
  1298. }
  1299. private void miViewUnits_Click(object sender, EventArgs e)
  1300. {
  1301. if (sender == btnUnitsMillimeters)
  1302. ReportWorkspace.Grid.GridUnits = PageUnits.Millimeters;
  1303. else if (sender == btnUnitsCentimeters)
  1304. ReportWorkspace.Grid.GridUnits = PageUnits.Centimeters;
  1305. else if (sender == btnUnitsInches)
  1306. ReportWorkspace.Grid.GridUnits = PageUnits.Inches;
  1307. else
  1308. ReportWorkspace.Grid.GridUnits = PageUnits.HundrethsOfInch;
  1309. UpdateContent();
  1310. }
  1311. private void openfrx_DragEnter(object sender, DragEventArgs e)
  1312. {
  1313. string[] objects = (string[])e.Data.GetData(DataFormats.FileDrop);
  1314. if (objects != null)
  1315. if (objects.Length == 1)
  1316. {
  1317. if (Path.GetExtension(objects[0]).ToLower() == ".frx")
  1318. {
  1319. e.Effect = DragDropEffects.Move;
  1320. }
  1321. }
  1322. }
  1323. private void openfrx_DragDrop(object sender, DragEventArgs e)
  1324. {
  1325. string[] objects = (string[])e.Data.GetData(DataFormats.FileDrop);
  1326. if (objects.Length == 1)
  1327. {
  1328. if (Path.GetExtension(objects[0]).ToLower() == ".frx")
  1329. {
  1330. Designer.cmdOpen.LoadFile(objects[0]);
  1331. }
  1332. }
  1333. }
  1334. #endregion
  1335. #endregion
  1336. #region IDesignerPlugin
  1337. /// <inheritdoc/>
  1338. public string PluginName
  1339. {
  1340. get { return Name; }
  1341. }
  1342. /// <inheritdoc/>
  1343. public void SaveState()
  1344. {
  1345. }
  1346. /// <inheritdoc/>
  1347. public void RestoreState()
  1348. {
  1349. }
  1350. /// <inheritdoc/>
  1351. public void SelectionChanged()
  1352. {
  1353. UpdateContent();
  1354. }
  1355. /// <inheritdoc/>
  1356. public void UpdateContent()
  1357. {
  1358. UpdateControls();
  1359. }
  1360. /// <inheritdoc/>
  1361. public void Lock()
  1362. {
  1363. }
  1364. /// <inheritdoc/>
  1365. public void Unlock()
  1366. {
  1367. UpdateContent();
  1368. }
  1369. /// <inheritdoc/>
  1370. public override void Localize()
  1371. {
  1372. foreach (KeyValuePair<BaseItem, ItemInfo> kv in ribbonItems)
  1373. {
  1374. kv.Key.Text = Res.Get(kv.Value.TextResource);
  1375. kv.Key.Tooltip = string.IsNullOrEmpty(kv.Value.TooltipResource) ? "" : Res.Get(kv.Value.TooltipResource);
  1376. }
  1377. MyRes res = new MyRes("Designer,Ribbon");
  1378. btnFile.Text = res.Get("File");
  1379. tabHome.Text = res.Get("Home");
  1380. tabReport.Text = res.Get("Report");
  1381. tabLayout.Text = res.Get("Layout");
  1382. tabView.Text = res.Get("View");
  1383. lblRecent.Text = res.Get("Recent");
  1384. barReport.Text = res.Get("Report");
  1385. barLayout.Text = res.Get("Layout");
  1386. barView.Text = res.Get("View");
  1387. barClipboard.Text = res.Get("Clipboard");
  1388. barText.Text = res.Get("Text");
  1389. barBorderAndFill.Text = res.Get("BorderAndFill");
  1390. barFormat.Text = res.Get("Format");
  1391. barStyles.Text = res.Get("Styles");
  1392. barPolygon.Text = Res.Get("Designer,Toolbar,Polygon");
  1393. barEditing.Text = res.Get("Editing");
  1394. barData.Text = res.Get("Data");
  1395. barPages.Text = res.Get("Pages");
  1396. barBands.Text = res.Get("Bands");
  1397. btnAlignment.Text = res.Get("Alignment");
  1398. btnSize.Text = res.Get("Size");
  1399. btnSpacing.Text = res.Get("Spacing");
  1400. btnPanels.Text = res.Get("Panels");
  1401. UpdateContent();
  1402. }
  1403. /// <inheritdoc/>
  1404. public DesignerOptionsPage GetOptionsPage()
  1405. {
  1406. return null;
  1407. }
  1408. /// <inheritdoc/>
  1409. public void UpdateUIStyle()
  1410. {
  1411. if (Config.UseRibbon)
  1412. {
  1413. designer.ShowMainMenu = false;
  1414. ribbonControl.Visible = true;
  1415. foreach (Bar bar in designer.DotNetBarManager.Bars)
  1416. if (bar is DesignerToolbarBase)
  1417. bar.Hide();
  1418. }
  1419. else
  1420. {
  1421. designer.ShowMainMenu = true;
  1422. ribbonControl.Visible = false;
  1423. }
  1424. btnTextColor.SetStyle(designer.UIStyle);
  1425. btnFillColor.SetStyle(designer.UIStyle);
  1426. btnLineColor.SetStyle(designer.UIStyle);
  1427. }
  1428. #endregion
  1429. #region Private classes
  1430. private class ItemInfo
  1431. {
  1432. public int ImageIndex { get; set; }
  1433. public string ImageResource { get; set; }
  1434. public string TextResource { get; set; }
  1435. public string TooltipResource { get; set; }
  1436. public ItemInfo(int imageIndex, string imageRes, string textRes, string tooltipRes)
  1437. {
  1438. ImageIndex = imageIndex;
  1439. ImageResource = imageRes;
  1440. TextResource = textRes;
  1441. TooltipResource = tooltipRes;
  1442. }
  1443. }
  1444. #endregion
  1445. }
  1446. }