using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;
using System.IO;
using FastReport.Controls;
using FastReport.Forms;
using FastReport.Utils;
using FastReport.Design.PageDesigners.Page;
using FastReport.Design.Toolbars;
using FastReport.DevComponents.DotNetBar;
namespace FastReport.Design.StandardDesigner
{
///
/// Represents standard designer's form.
///
///
/// This form contains the . Use the
/// property to get access to this control.
/// Usually you don't need to create an instance of this class. The designer can be called
/// using the method of
/// the instance.
/// If you decided to use this class, you need:
///
/// -
/// create an instance of this class;
///
/// -
/// set the Designer.Report property to report that you need to design;
///
/// -
/// call either ShowModal or Show methods to display a form.
///
///
///
public partial class DesignerForm : BaseForm, IDesignerPlugin
{
#region Fields
private Dictionary ribbonItems = new Dictionary();
#endregion
#region Properties
///
/// Gets a reference to the control which is actually a designer.
///
public DesignerControl Designer
{
get { return designer; }
}
///
/// Gets a list of File menu buttons
///
public Dictionary Items
{
get
{
if (items == null)
{
items = new Dictionary();
items.Add("btnFileNew", this.btnFileNew);
items.Add("btnFileOpen", this.btnFileOpen);
items.Add("btnFileSave", this.btnFileSave);
items.Add("btnFileSaveAs", this.btnFileSaveAs);
items.Add("btnFileSaveWithRandomData", this.btnFileSaveWithRandomData);
items.Add("btnFileSaveAll", this.btnFileSaveAll);
items.Add("btnFilePreview", this.btnFilePreview);
items.Add("btnFilePrinterSetup", this.btnFilePrinterSetup);
items.Add("btnFileSelectLanguage", this.btnFileSelectLanguage);
items.Add("btnWelcome", this.btnWelcome);
items.Add("btnHelp", this.btnHelp);
items.Add("btnAbout", this.btnAbout);
items.Add("btnFileClose", this.btnFileClose);
}
return items;
}
}
private ReportWorkspace Workspace
{
get
{
if (designer.ActiveReportTab != null && designer.ActiveReportTab.ActivePageDesigner is ReportPageDesigner)
return (Designer.ActiveReportTab.ActivePageDesigner as ReportPageDesigner).Workspace;
return null;
}
}
private ReportPageDesigner ReportPageDesigner
{
get
{
//Fixed try catch 66fcd219-30f1-45e6-8ee5-ce65cfb9d35d
//rly annoying freezes on designer start
ReportTab tab = Designer.ActiveReportTab;
if (tab != null)
return tab.ActivePageDesigner as ReportPageDesigner;
return null;
}
}
private PageBase Page
{
get
{
//Fixed try catch 66fcd219-30f1-45e6-8ee5-ce65cfb9d35d
//rly annoying freezes on designer start
ReportPageDesigner d = ReportPageDesigner;
if (d != null)
return d.Page;
return null;
}
}
private DesignerControl designer;
private Dictionary items;
private Timer clipboardTimer;
private Timer previewTimer;
#endregion
///
/// Creates a new instance of the class with default settings.
///
public DesignerForm()
{
InitDesigner();
}
///
/// Creates a new instance of the class with default settings.
///
/// enables welcome window
public DesignerForm(bool welcome)
{
InitDesigner();
if (welcome)
Shown += ShowWelcomeWindow;
}
private void InitDesigner()
{
RightToLeft = Config.RightToLeft ? RightToLeft.Yes : RightToLeft.No;
InitializeComponent();
if (Config.RightToLeft)
{
btnFind.ImagePosition = eImagePosition.Right;
btnSelectAll.ImagePosition = eImagePosition.Right;
}
Font = DrawUtils.DefaultFont;
Icon = Config.DesignerSettings.Icon;
designer = new DesignerControl();
this.ribbonControl.AllowDrop = true;
this.AllowDrop = true;
this.ribbonControl.RecalcLayout();
Controls.Add(designer);
designer.Dock = DockStyle.Fill;
designer.BringToFront();
designer.Plugins.Add(this);
designer.ShowStatusBar = true;
SetupControls();
Localize();
UpdateDpiDependencies();
KeyPreview = true;
KeyDown += DesignerForm_KeyDown;
designer.UIStyle = Config.UIStyle;
}
///
protected override void WndProc(ref Message m)
{
const int WM_ACTIVATEAPP = 0x001C;
if (m.Msg == WM_ACTIVATEAPP)
{
if (m.WParam == IntPtr.Zero)
{
PopupManager.CloseAllPopups();
}
}
base.WndProc(ref m);
}
private void DesignerForm_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyValue == 0x9 && e.Control)
{
if (e.Shift)
Designer.ActiveReportTab.CtrlShiftTab();
else
Designer.ActiveReportTab.CtrlTab();
e.Handled = true;
}
}
private void ShowWelcomeWindow(object s, EventArgs e)
{
Shown -= ShowWelcomeWindow;
if (Config.WelcomeEnabled &&
Config.WelcomeShowOnStartup &&
String.IsNullOrEmpty(designer.Report.FileName))
{
Designer.cmdWelcome.Invoke();
}
}
#region Utils
private void CreateItem(BaseItem item, string textRes)
{
CreateItem(item, -1, textRes, textRes, null);
}
private void CreateItem(BaseItem item, string textRes, EventHandler click)
{
CreateItem(item, -1, textRes, textRes, click);
}
private void CreateItem(BaseItem item, int imageIndex, string textRes)
{
CreateItem(item, imageIndex, textRes, textRes, null);
}
private void CreateItem(BaseItem item, int imageIndex, string textRes, EventHandler click)
{
CreateItem(item, imageIndex, textRes, textRes, click);
}
private void CreateItem(BaseItem item, int imageIndex, string textRes, string tooltipRes, EventHandler click)
{
ribbonItems.Add(item, new ItemInfo(imageIndex, "", textRes, tooltipRes));
if (click != null)
item.Click += click;
}
private void CreateItem(BaseItem item, string imageRes, string textRes, EventHandler click)
{
CreateItem(item, imageRes, textRes, textRes, click);
}
private void CreateItem(BaseItem item, string imageRes, string textRes, string tooltipRes, EventHandler click)
{
ribbonItems.Add(item, new ItemInfo(-1, imageRes, textRes, tooltipRes));
if (click != null)
item.Click += click;
}
#endregion
#region Setup Controls
private void SetupControls()
{
SetupFileControls();
SetupHomeControls();
SetupReportControls();
SetupLayoutControls();
SetupViewControls();
}
private void SetupFileControls()
{
Bitmap cap = new Bitmap(32, 32);
btnFile.PopupOpen += miFile_PopupOpen;
string res = "Designer,Menu,File,";
string res1 = "Designer,Toolbar,Standard,";
CreateItem(btnFileNew, res + "New", Designer.cmdNew.Invoke);
CreateItem(btnFileOpen, -1, res + "Open", res1 + "Open", Designer.cmdOpen.Invoke);
CreateItem(btnFileClose, res + "Close", Designer.cmdClose.Invoke);
CreateItem(btnFileSave, -1, res + "Save", res1 + "Save", Designer.cmdSave.Invoke);
CreateItem(btnFileSaveAs, res + "SaveAs", Designer.cmdSaveAs.Invoke);
CreateItem(btnFileSaveWithRandomData, res + "SaveWithRandomData", Designer.cmdSaveWithRandomData.Invoke);
CreateItem(btnFileSaveAll, -1, res + "SaveAll", res1 + "SaveAll", Designer.cmdSaveAll.Invoke);
CreateItem(btnFilePrinterSetup, res + "PrinterSetup", Designer.cmdPrinterSetup.Invoke);
CreateItem(btnFilePreview, res + "Preview", btnPreview_Click);
btnFilePreview.Image = cap;
CreateItem(btnFileSelectLanguage, res + "SelectLanguage", Designer.cmdSelectLanguage.Invoke);
btnFileSelectLanguage.Image = cap;
CreateItem(btnFileExit, res + "Exit", Designer.Exit);
CreateItem(btnOptions, "Designer,Menu,View,Options", Designer.cmdOptions.Invoke);
CreateItem(btnAccount, 257, "Designer,Menu,Help,Account", Designer.cmdAccount.Invoke);
CreateItem(btnWelcome, "Designer,Welcome,Button", Designer.cmdWelcome.Invoke);
btnWelcome.Visible = Designer.cmdWelcome.Enabled;
btnWelcome.Image = cap;
CreateItem(btnHelp, "Designer,Menu,Help,Contents", Designer.cmdHelpContents.Invoke);
btnHelp.Image = cap;
CreateItem(btnAbout, "Designer,Menu,Help,About", Designer.cmdAbout.Invoke);
btnAbout.Image = cap;
}
private void SetupHomeControls()
{
string res = "Designer,Menu,Edit,";
string res1 = "Designer,Toolbar,Standard,";
//-------------------------------------------------------------------
// Undo
//-------------------------------------------------------------------
CreateItem(btnUndo, 8, res + "Undo", res1 + "Undo", Designer.cmdUndo.Invoke);
CreateItem(btnRedo, 9, res + "Redo", res1 + "Redo", Designer.cmdRedo.Invoke);
//-------------------------------------------------------------------
// Clipboard
//-------------------------------------------------------------------
CreateItem(btnCut, 5, res + "Cut", res1 + "Cut", Designer.cmdCut.Invoke);
CreateItem(btnCopy, 6, res + "Copy", res1 + "Copy", Designer.cmdCopy.Invoke);
CreateItem(btnPaste, "Ribbon.Paste.png", res + "Paste", res1 + "Paste", Designer.cmdPaste.Invoke);
CreateItem(btnFormatPainter, 18, res1 + "FormatPainter", Designer.cmdFormatPainter.Invoke);
clipboardTimer = new Timer();
clipboardTimer.Interval = 500;
clipboardTimer.Tick += clipboardTimer_Tick;
clipboardTimer.Start();
//-------------------------------------------------------------------
// Text
//-------------------------------------------------------------------
res = "Designer,Toolbar,Text,";
CreateItem(cbxFontName, res + "Name");
cbxFontName.FontSelected += cbxName_FontSelected;
CreateItem(cbxFontSize, res + "Size");
cbxFontSize.SizeSelected += cbxSize_SizeSelected;
CreateItem(btnTextColor, 23, res + "Color", btnColor_Click);
btnTextColor.SetStyle(designer.UIStyle);
CreateItem(btnBold, 20, res + "Bold", btnBold_Click);
CreateItem(btnItalic, 21, res + "Italic", btnItalic_Click);
CreateItem(btnUnderline, 22, res + "Underline", btnUnderline_Click);
CreateItem(btnAlignLeft, 25, res + "Left", btnLeft_Click);
CreateItem(btnAlignCenter, 26, res + "Center", btnCenter_Click);
CreateItem(btnAlignRight, 27, res + "Right", btnRight_Click);
CreateItem(btnJustify, 28, res + "Justify", btnJustify_Click);
CreateItem(btnAlignTop, 29, res + "Top", btnTop_Click);
CreateItem(btnAlignMiddle, 30, res + "Middle", btnMiddle_Click);
CreateItem(btnAlignBottom, 31, res + "Bottom", btnBottom_Click);
CreateItem(btnTextRotation, 64, res + "Angle", btnRotation_Click);
//-------------------------------------------------------------------
// Border and Fill
//-------------------------------------------------------------------
res = "Designer,Toolbar,Border,";
CreateItem(btnTopLine, 32, res + "Top", btnTopLine_Click);
CreateItem(btnBottomLine, 33, res + "Bottom", btnBottomLine_Click);
CreateItem(btnLeftLine, 34, res + "Left", btnLeftLine_Click);
CreateItem(btnRightLine, 35, res + "Right", btnRightLine_Click);
CreateItem(btnAllLines, 36, res + "All", btnAll_Click);
CreateItem(btnNoLines, 37, res + "None", btnNone_Click);
CreateItem(btnFillColor, 38, res + "FillColor", btnFillColor_Click);
btnFillColor.DefaultColor = Color.Transparent;
CreateItem(btnFillProps, 141, res + "FillStyle", btnFillProps_Click);
CreateItem(btnLineColor, 39, res + "LineColor", btnLineColor_Click);
btnLineColor.DefaultColor = Color.Black;
CreateItem(btnLineWidth, 71, res + "Width");
btnLineWidth.WidthSelected += cbxWidth_WidthSelected;
CreateItem(btnLineStyle, 85, res + "Style");
btnLineStyle.StyleSelected += cbxLineStyle_StyleSelected;
CreateItem(btnBorderProps, 40, res + "Props", btnBorderProps_Click);
//-------------------------------------------------------------------
// Format
//-------------------------------------------------------------------
CreateItem(btnHighlight, "Ribbon.Highlight.png", "Designer,Toolbar,Text,Highlight", btnHighlight_Click);
CreateItem(btnFormat, "Ribbon.Format.png", "ComponentMenu,TextObject,Format", btnFormat_Click);
//-------------------------------------------------------------------
// Styles
//-------------------------------------------------------------------
cbxStyles.StyleSelected += cbxStyle_StyleSelected;
CreateItem(btnStyles, 87, "Designer,Menu,Report,Styles", Designer.cmdReportStyles.Invoke);
//-------------------------------------------------------------------
// Editing
//-------------------------------------------------------------------
res = "Designer,Menu,Edit,";
CreateItem(btnFind, 181, res + "Find", Designer.cmdFind.Invoke);
CreateItem(btnReplace, "Ribbon.Replace.png", res + "Replace", Designer.cmdReplace.Invoke);
CreateItem(btnSelectAll, 100, res + "SelectAll", Designer.cmdSelectAll.Invoke);
//-------------------------------------------------------------------
// Polygon
//-------------------------------------------------------------------
res = "Designer,Toolbar,Polygon,";
CreateItem(btnPolyMove, 256, res + "MoveScale", Designer.CmdPolySelectMove.Invoke);
CreateItem(btnPolyPointer, 252, res + "Pointer", Designer.CmdPolySelectPointer.Invoke);
CreateItem(btnPolyAddPoint, 253, res + "AddPoint", Designer.CmdPolySelectAddPoint.Invoke);
CreateItem(btnPolyAddBezier, 254, res + "Bezier", Designer.CmdPolySelectBezier.Invoke);
CreateItem(btnPolyRemovePoint, 255, res + "RemovePoint", Designer.CmdPolySelectRemovePoint.Invoke);
}
private void SetupReportControls()
{
string res = "";
CreateItem(btnReportOptions, "Ribbon.Report1.png", "Designer,Menu,Report,Options", Designer.cmdReportSettings.Invoke);
CreateItem(btnPreview, "Ribbon.Report.png", "Designer,Menu,File,Preview", "Designer,Toolbar,Standard,Preview", btnPreview_Click);
res = "Designer,Menu,Data,";
CreateItem(btnDataChoose, "Ribbon.ChooseData.png", res + "Choose", Designer.cmdChooseData.Invoke);
CreateItem(btnDataAdd, "Ribbon.AddDataSource.png", res + "Add", Designer.cmdAddData.Invoke);
res = "Designer,Toolbar,Standard,";
CreateItem(btnAddPage, 10, res + "NewPage", Designer.cmdNewPage.Invoke);
CreateItem(btnCopyPage, 6, res + "CopyPage", Designer.cmdCopyPage.Invoke);
CreateItem(btnAddDialog, 11, res + "NewDialog", Designer.cmdNewDialog.Invoke);
CreateItem(btnDeletePage, 12, res + "DeletePage", Designer.cmdDeletePage.Invoke);
CreateItem(btnPageSetup, "Ribbon.PageSetup.png", res + "PageSetup", Designer.cmdPageSetup.Invoke);
res = "Designer,Menu,Report,";
CreateItem(btnConfigureBands, "Ribbon.Bands.png", res + "Bands", miInsertBands_Click);
CreateItem(btnGroupExpert, "Ribbon.Grouping.png", res + "GroupExpert", miReportGroupExpert_Click);
res = "Objects,Bands,";
CreateItem(btnReportTitle, res + "ReportTitle", miReportTitle_Click);
CreateItem(btnReportSummary, res + "ReportSummary", miReportSummary_Click);
CreateItem(btnPageHeader, res + "PageHeader", miPageHeader_Click);
CreateItem(btnPageFooter, res + "PageFooter", miPageFooter_Click);
CreateItem(btnColumnHeader, res + "ColumnHeader", miColumnHeader_Click);
CreateItem(btnColumnFooter, res + "ColumnFooter", miColumnFooter_Click);
CreateItem(btnOverlay, res + "Overlay", miOverlay_Click);
previewTimer = new Timer();
previewTimer.Interval = 20;
previewTimer.Tick += previewTimer_Tick;
}
private void SetupLayoutControls()
{
string res = "Designer,Toolbar,Layout,";
CreateItem(btnAlignToGrid, "Ribbon.AlignToGrid.png", res + "AlignToGrid", btnAlignToGrid_Click);
CreateItem(btnFitToGrid, "Ribbon.FitToGrid.png", res + "SizeToGrid", btnSizeToGrid_Click);
CreateItem(btnAlignLefts, 41, res + "Left", btnAlignLefts_Click);
CreateItem(btnAlignCenters, 42, res + "Center", btnAlignCenters_Click);
CreateItem(btnAlignRights, 45, res + "Right", btnAlignRights_Click);
CreateItem(btnAlignTops, 46, res + "Top", btnAlignTops_Click);
CreateItem(btnAlignMiddles, 47, res + "Middle", btnAlignMiddles_Click);
CreateItem(btnAlignBottoms, 50, res + "Bottom", btnAlignBottoms_Click);
CreateItem(btnSameWidth, 83, res + "SameWidth", btnSameWidth_Click);
CreateItem(btnSameHeight, 84, res + "SameHeight", btnSameHeight_Click);
CreateItem(btnSameSize, 91, res + "SameSize", btnSameSize_Click);
CreateItem(btnSpaceHorizontally, 44, res + "SpaceHorizontally", btnSpaceHorizontally_Click);
CreateItem(btnIncreaseHorizontalSpacing, 92, res + "IncreaseHorizontalSpacing", btnIncreaseHorizontalSpacing_Click);
CreateItem(btnDecreaseHorizontalSpacing, 93, res + "DecreaseHorizontalSpacing", btnDecreaseHorizontalSpacing_Click);
CreateItem(btnRemoveHorizontalSpacing, 94, res + "RemoveHorizontalSpacing", btnRemoveHorizontalSpacing_Click);
CreateItem(btnSpaceVertically, 49, res + "SpaceVertically", btnSpaceVertically_Click);
CreateItem(btnIncreaseVerticalSpacing, 95, res + "IncreaseVerticalSpacing", btnIncreaseVerticalSpacing_Click);
CreateItem(btnDecreaseVerticalSpacing, 96, res + "DecreaseVerticalSpacing", btnDecreaseVerticalSpacing_Click);
CreateItem(btnRemoveVerticalSpacing, 97, res + "RemoveVerticalSpacing", btnRemoveVerticalSpacing_Click);
CreateItem(btnCenterHorizontally, 43, res + "CenterHorizontally", btnCenterHorizontally_Click);
CreateItem(btnCenterVertically, 48, res + "CenterVertically", btnCenterVertically_Click);
CreateItem(btnBringToFront, "Ribbon.BringToFront.png", res + "BringToFront", Designer.cmdBringToFront.Invoke);
CreateItem(btnSendToBack, "Ribbon.SendToBack.png", res + "SendToBack", Designer.cmdSendToBack.Invoke);
CreateItem(btnAlignment, "Ribbon.AlignMenu.png", "", null);
CreateItem(btnSize, "Ribbon.SizeMenu.png", "", null);
CreateItem(btnSpacing, "Ribbon.SpacingMenu.png", "", null);
res = "Designer,Toolbar,Standard,";
CreateItem(btnGroup, "Ribbon.Group.png", res + "Group", Designer.cmdGroup.Invoke);
CreateItem(btnUngroup, "Ribbon.Ungroup.png", res + "Ungroup", Designer.cmdUngroup.Invoke);
}
private void SetupViewControls()
{
string res = "Designer,Menu,View,";
CreateItem(btnViewGrid, "Ribbon.ViewGridlines.png", res + "Grid", MenuViewGrid_Click);
CreateItem(btnViewGuides, "Ribbon.ViewGuides.png", res + "Guides", MenuViewGuides_Click);
CreateItem(btnAutoGuides, res + "AutoGuides", MenuViewAutoGuides_Click);
CreateItem(btnDeleteHGuides, res + "DeleteHGuides", MenuViewDeleteHGuides_Click);
CreateItem(btnDeleteVGuides, res + "DeleteVGuides", MenuViewDeleteVGuides_Click);
res = "Designer,ToolWindow,";
CreateItem(btnPanels, "Ribbon.Panels.png", "", null);
CreateItem(btnProperties, 68, res + "Properties", BtnProperties_Click);
CreateItem(btnData, 72, res + "Dictionary", BtnData_Click);
CreateItem(btnReportTree, 189, res + "ReportTree", BtnReportTree_Click);
CreateItem(btnMessages, 70, res + "Messages", BtnMessages_Click);
CreateItem(btnValidate, 70, res + "Validator", BtnValidate_Click);
designer.PropertiesWindow.VisibleChanged += (object s, EventArgs e) =>
{
btnProperties.Checked = designer.PropertiesWindow.Visible;
};
designer.DataWindow.VisibleChanged += (object s, EventArgs e) =>
{
btnData.Checked = designer.DataWindow.Visible;
};
designer.ReportTreeWindow.VisibleChanged += (object s, EventArgs e) =>
{
btnReportTree.Checked = designer.ReportTreeWindow.Visible;
};
designer.MessagesWindow.VisibleChanged += (object s, EventArgs e) =>
{
btnMessages.Checked = designer.MessagesWindow.Visible;
};
designer.ValidatorWindow.VisibleChanged += (object s, EventArgs e) =>
{
btnValidate.Checked = designer.ValidatorWindow.Visible;
};
res = "Forms,ReportPageOptions,";
CreateItem(btnUnits, "Ribbon.Page.png", "Designer,Menu,View,Units", null);
CreateItem(btnUnitsMillimeters, res + "Millimeters", miViewUnits_Click);
CreateItem(btnUnitsCentimeters, res + "Centimeters", miViewUnits_Click);
CreateItem(btnUnitsInches, res + "Inches", miViewUnits_Click);
CreateItem(btnUnitsHundrethsOfInch, res + "HundrethsOfInch", miViewUnits_Click);
}
#endregion
#region Update Controls
private void UpdateControls()
{
UpdateFileControls();
UpdateHomeControls();
UpdateReportControls();
UpdateLayoutControls();
UpdateViewControls();
}
private void UpdateFileControls()
{
btnFileNew.Enabled = Designer.cmdNew.Enabled;
btnFileOpen.Enabled = Designer.cmdOpen.Enabled;
btnFileClose.Enabled = Designer.cmdClose.Enabled;
btnFileClose.Visible = Designer.MdiMode;
btnFileSave.Enabled = Designer.cmdSave.Enabled;
btnFileSaveAs.Enabled = Designer.cmdSaveAs.Enabled;
btnFileSaveWithRandomData.Enabled = Designer.cmdSaveWithRandomData.Enabled;
btnFileSaveAll.Visible = Designer.MdiMode;
btnFileSaveAll.Enabled = Designer.cmdSaveAll.Enabled;
//btnFilePageSetup.Enabled = Designer.cmdPageSetup.Enabled;
btnFilePrinterSetup.Enabled = Designer.cmdPrinterSetup.Enabled;
btnFilePreview.Enabled = Designer.cmdPreview.Enabled;
btnWelcome.Enabled = Designer.cmdWelcome.Enabled;
btnHelp.Enabled = Designer.cmdHelpContents.Enabled;
}
private void UpdateHomeControls()
{
//-------------------------------------------------------------------
// Undo
//-------------------------------------------------------------------
btnUndo.Enabled = Designer.cmdUndo.Enabled;
btnRedo.Enabled = Designer.cmdRedo.Enabled;
//-------------------------------------------------------------------
// Clipboard
//-------------------------------------------------------------------
btnCut.Enabled = Designer.cmdCut.Enabled;
btnCopy.Enabled = Designer.cmdCopy.Enabled;
btnPaste.Enabled = Designer.cmdPaste.Enabled;
btnFormatPainter.Enabled = Designer.cmdFormatPainter.Enabled;
btnFormatPainter.Checked = Designer.FormatPainter;
//-------------------------------------------------------------------
// Text
//-------------------------------------------------------------------
bool enabled = Designer.SelectedTextObjects.Enabled;
cbxFontName.Enabled = enabled;
cbxFontSize.Enabled = enabled;
btnBold.Enabled = enabled;
btnItalic.Enabled = enabled;
btnUnderline.Enabled = enabled;
btnAlignLeft.Enabled = enabled;
btnAlignCenter.Enabled = enabled;
btnAlignRight.Enabled = enabled;
btnJustify.Enabled = enabled;
btnAlignTop.Enabled = enabled;
btnAlignMiddle.Enabled = enabled;
btnAlignBottom.Enabled = enabled;
btnTextColor.Enabled = enabled;
btnTextRotation.Enabled = enabled;
if (enabled)
{
TextObject text = Designer.SelectedTextObjects.First;
cbxFontName.FontName = text.Font.Name;
cbxFontSize.FontSize = text.Font.Size;
btnBold.Checked = text.Font.Bold;
btnItalic.Checked = text.Font.Italic;
btnUnderline.Checked = text.Font.Underline;
btnAlignLeft.Checked = text.HorzAlign == HorzAlign.Left;
btnAlignCenter.Checked = text.HorzAlign == HorzAlign.Center;
btnAlignRight.Checked = text.HorzAlign == HorzAlign.Right;
btnJustify.Checked = text.HorzAlign == HorzAlign.Justify;
btnAlignTop.Checked = text.VertAlign == VertAlign.Top;
btnAlignMiddle.Checked = text.VertAlign == VertAlign.Center;
btnAlignBottom.Checked = text.VertAlign == VertAlign.Bottom;
if (text.TextFill is SolidFill)
btnTextColor.Color = (text.TextFill as SolidFill).Color;
}
else
{
btnBold.Checked = false;
btnItalic.Checked = false;
btnUnderline.Checked = false;
btnAlignLeft.Checked = false;
btnAlignCenter.Checked = false;
btnAlignRight.Checked = false;
btnJustify.Checked = false;
btnAlignTop.Checked = false;
btnAlignMiddle.Checked = false;
btnAlignBottom.Checked = false;
}
//-------------------------------------------------------------------
// Border and Fill
//-------------------------------------------------------------------
enabled = Designer.SelectedReportComponents.Enabled;
bool simple = Designer.SelectedReportComponents.SimpleBorder;
bool useBorder = Designer.SelectedReportComponents.BorderEnabled;
bool borderEnabled = enabled && !simple && useBorder;
btnTopLine.Enabled = borderEnabled;
btnBottomLine.Enabled = borderEnabled;
btnLeftLine.Enabled = borderEnabled;
btnRightLine.Enabled = borderEnabled;
btnAllLines.Enabled = borderEnabled;
btnNoLines.Enabled = borderEnabled;
btnFillColor.Enabled = enabled && Designer.SelectedReportComponents.FillEnabled;
btnFillProps.Enabled = enabled && Designer.SelectedReportComponents.FillEnabled;
btnLineColor.Enabled = enabled && useBorder;
btnLineWidth.Enabled = enabled && useBorder;
btnLineStyle.Enabled = enabled && useBorder;
btnBorderProps.Enabled = borderEnabled;
if (enabled)
{
Border border = Designer.SelectedReportComponents.First.Border;
btnTopLine.Checked = (border.Lines & BorderLines.Top) != 0;
btnBottomLine.Checked = (border.Lines & BorderLines.Bottom) != 0;
btnLeftLine.Checked = (border.Lines & BorderLines.Left) != 0;
btnRightLine.Checked = (border.Lines & BorderLines.Right) != 0;
btnLineColor.Color = border.Color;
if (Designer.SelectedReportComponents.First.Fill is SolidFill)
btnFillColor.Color = (Designer.SelectedReportComponents.First.Fill as SolidFill).Color;
btnLineWidth.LineWidth = border.Width;
btnLineStyle.LineStyle = border.Style;
}
//-------------------------------------------------------------------
// Format
//-------------------------------------------------------------------
btnHighlight.Enabled = Designer.SelectedTextObjects.Enabled;
btnFormat.Enabled = Designer.SelectedTextObjects.Enabled;
//-------------------------------------------------------------------
// Editing
//-------------------------------------------------------------------
btnFind.Enabled = Designer.cmdFind.Enabled;
btnReplace.Enabled = Designer.cmdReplace.Enabled;
btnSelectAll.Enabled = Designer.cmdSelectAll.Enabled;
//-------------------------------------------------------------------
// Styles
//-------------------------------------------------------------------
enabled = Designer.SelectedReportComponents.Enabled;
cbxStyles.Enabled = enabled;
cbxStyles.Report = Designer.ActiveReport;
if (enabled)
cbxStyles.Style = Designer.SelectedReportComponents.First.Style;
//-------------------------------------------------------------------
// Polygon
//-------------------------------------------------------------------
enabled = (Designer.SelectedObjects.Count == 1) && (Designer.SelectedObjects[0] is PolyLineObject);
btnPolyMove.Enabled = enabled;
btnPolyPointer.Enabled = enabled;
btnPolyAddBezier.Enabled = enabled;
btnPolyAddPoint.Enabled = enabled;
btnPolyRemovePoint.Enabled = enabled;
if (!enabled)
selectBtn(PolyLineObject.PolygonSelectionMode.MoveAndScale);
else
{
PolyLineObject plobj = (Designer.SelectedObjects[0] as PolyLineObject);
selectBtn(plobj.SelectionMode);
}
//-------------------------------------------------------------------
}
private void selectBtn(PolyLineObject.PolygonSelectionMode index)
{
PolyLineObject plobj = null;
if ((Designer.SelectedObjects.Count == 1) && (Designer.SelectedObjects[0] is PolyLineObject))
plobj = (Designer.SelectedObjects[0] as PolyLineObject);
btnPolyMove.Checked = false;
btnPolyPointer.Checked = false;
btnPolyAddBezier.Checked = false;
btnPolyAddPoint.Checked = false;
btnPolyRemovePoint.Checked = false;
switch (index)
{
case PolyLineObject.PolygonSelectionMode.Normal:
btnPolyPointer.Checked = true;
break;
case PolyLineObject.PolygonSelectionMode.AddBezier:
btnPolyAddBezier.Checked = true;
break;
case PolyLineObject.PolygonSelectionMode.AddToLine:
btnPolyAddPoint.Checked = true;
break;
case PolyLineObject.PolygonSelectionMode.Delete:
btnPolyRemovePoint.Checked = true;
break;
case PolyLineObject.PolygonSelectionMode.MoveAndScale:
btnPolyMove.Checked = true;
break;
}
}
private void UpdateReportControls()
{
btnPreview.Enabled = Designer.cmdPreview.Enabled;
btnReportOptions.Enabled = Designer.cmdReportSettings.Enabled;
btnDataChoose.Enabled = Designer.cmdChooseData.Enabled;
btnDataAdd.Enabled = Designer.cmdAddData.Enabled;
btnAddPage.Enabled = Designer.cmdNewPage.Enabled;
btnCopyPage.Enabled = Designer.cmdCopyPage.Enabled;
btnAddDialog.Enabled = Designer.cmdNewDialog.Enabled;
btnDeletePage.Enabled = Designer.cmdDeletePage.Enabled;
btnPageSetup.Enabled = Designer.cmdPageSetup.Enabled;
bool bandsEnabled = Designer.cmdInsertBand.Enabled;
btnConfigureBands.Enabled = bandsEnabled;
btnGroupExpert.Enabled = bandsEnabled;
ReportPage page = null;
try
{
//see fix # 66fcd219-30f1-45e6-8ee5-ce65cfb9d35d
//rly annoying freezes on designer start
page = Page as ReportPage;
}
catch
{
}
if (page != null)
{
bool isSubreport = page.Subreport != null;
btnReportTitle.Enabled = bandsEnabled && !isSubreport;
btnReportSummary.Enabled = bandsEnabled && !isSubreport;
btnPageHeader.Enabled = bandsEnabled && !isSubreport;
btnPageFooter.Enabled = bandsEnabled && !isSubreport;
btnColumnHeader.Enabled = bandsEnabled && !isSubreport;
btnColumnFooter.Enabled = bandsEnabled && !isSubreport;
btnOverlay.Enabled = bandsEnabled && !isSubreport;
btnReportTitle.Checked = page.ReportTitle != null;
btnReportSummary.Checked = page.ReportSummary != null;
btnPageHeader.Checked = page.PageHeader != null;
btnPageFooter.Checked = page.PageFooter != null;
btnColumnHeader.Checked = page.ColumnHeader != null;
btnColumnFooter.Checked = page.ColumnFooter != null;
btnOverlay.Checked = page.Overlay != null;
}
else
{
btnReportTitle.Enabled = false;
btnReportSummary.Enabled = false;
btnPageHeader.Enabled = false;
btnPageFooter.Enabled = false;
btnColumnHeader.Enabled = false;
btnColumnFooter.Enabled = false;
btnOverlay.Enabled = false;
}
}
private void UpdateLayoutControls()
{
bool oneObjSelected = Designer.SelectedComponents.Count > 0;
bool threeObjSelected = Designer.SelectedComponents.Count >= 3;
bool severalObjSelected = Designer.SelectedComponents.Count > 1;
bool canChangeOrder = Designer.SelectedComponents.Count > 0 &&
Designer.SelectedComponents.First.HasFlag(Flags.CanChangeOrder);
bool canMove = Designer.SelectedComponents.Count > 0 && Designer.SelectedComponents.First.HasFlag(Flags.CanMove);
bool canResize = Designer.SelectedComponents.Count > 0 &&
Designer.SelectedComponents.First.HasFlag(Flags.CanResize);
btnAlignToGrid.Enabled = oneObjSelected && canMove;
btnAlignLefts.Enabled = severalObjSelected && canMove;
btnAlignCenters.Enabled = severalObjSelected && canMove;
btnAlignRights.Enabled = severalObjSelected && canMove;
btnAlignTops.Enabled = severalObjSelected && canMove;
btnAlignMiddles.Enabled = severalObjSelected && canMove;
btnAlignBottoms.Enabled = severalObjSelected && canMove;
btnSameWidth.Enabled = severalObjSelected && canResize;
btnSameHeight.Enabled = severalObjSelected && canResize;
btnSameSize.Enabled = severalObjSelected && canResize;
btnFitToGrid.Enabled = oneObjSelected && canResize;
btnSpaceHorizontally.Enabled = threeObjSelected && canMove;
btnIncreaseHorizontalSpacing.Enabled = severalObjSelected && canMove;
btnDecreaseHorizontalSpacing.Enabled = severalObjSelected && canMove;
btnRemoveHorizontalSpacing.Enabled = severalObjSelected && canMove;
btnSpaceVertically.Enabled = threeObjSelected && canMove;
btnIncreaseVerticalSpacing.Enabled = severalObjSelected && canMove;
btnDecreaseVerticalSpacing.Enabled = severalObjSelected && canMove;
btnRemoveVerticalSpacing.Enabled = severalObjSelected && canMove;
btnCenterHorizontally.Enabled = oneObjSelected && canMove;
btnCenterVertically.Enabled = oneObjSelected && canMove;
btnBringToFront.Enabled = canChangeOrder;
btnSendToBack.Enabled = canChangeOrder;
btnGroup.Enabled = Designer.cmdGroup.Enabled;
btnUngroup.Enabled = Designer.cmdUngroup.Enabled;
}
private void UpdateViewControls()
{
if (Workspace != null)
{
btnViewGrid.Enabled = true;
btnViewGuides.Enabled = true;
btnViewGrid.Checked = ReportWorkspace.ShowGrid;
btnViewGuides.Checked = ReportWorkspace.ShowGuides;
btnAutoGuides.Enabled = true;
bool autoGuides = ReportWorkspace.AutoGuides;
btnAutoGuides.Checked = autoGuides;
btnDeleteHGuides.Enabled = !autoGuides;
btnDeleteVGuides.Enabled = !autoGuides;
}
else
{
btnViewGrid.Enabled = false;
btnViewGuides.Enabled = false;
btnAutoGuides.Enabled = false;
btnDeleteHGuides.Enabled = false;
btnDeleteVGuides.Enabled = false;
}
btnProperties.Checked = designer.PropertiesWindow.Visible;
btnData.Checked = designer.DataWindow.Visible;
btnReportTree.Checked = designer.ReportTreeWindow.Visible;
btnMessages.Checked = designer.MessagesWindow.Visible;
btnValidate.Checked = designer.ValidatorWindow.Visible;
btnUnitsMillimeters.Checked = ReportWorkspace.Grid.GridUnits == PageUnits.Millimeters;
btnUnitsCentimeters.Checked = ReportWorkspace.Grid.GridUnits == PageUnits.Centimeters;
btnUnitsInches.Checked = ReportWorkspace.Grid.GridUnits == PageUnits.Inches;
btnUnitsHundrethsOfInch.Checked = ReportWorkspace.Grid.GridUnits == PageUnits.HundrethsOfInch;
}
#endregion Update Controls
#region Images
///
public override void UpdateDpiDependencies()
{
base.UpdateDpiDependencies();
Designer.UpdateDpiDependencies(this);
ribbonControl.SuspendLayout();
foreach (KeyValuePair kv in ribbonItems)
{
if (kv.Key is ButtonItem)
{
if (kv.Value.ImageIndex != -1)
(kv.Key as ButtonItem).Image = GetImage(kv.Value.ImageIndex);
if (!String.IsNullOrEmpty(kv.Value.ImageResource))
(kv.Key as ButtonItem).Image = GetImage(kv.Value.ImageResource);
}
}
cbxFontName.Owner = this;
cbxFontName.UpdateDpiDependencies();
cbxFontName.ComboWidth = this.LogicalToDevice(110);
cbxFontSize.ComboWidth = this.LogicalToDevice(45);
cbxFontSize.DropDownHeight = this.LogicalToDevice(300);
cbxFontSize.ItemHeight = this.LogicalToDevice(14);
cbxStyles.ComboWidth = this.LogicalToDevice(120);
cbxStyles.DropDownHeight = this.LogicalToDevice(300);
cbxStyles.DropDownWidth = this.LogicalToDevice(150);
cbxStyles.ItemHeight = this.LogicalToDevice(14);
// this will recalc layout
barText.Width++;
barStyles.Width++;
ribbonControl.ResumeLayout();
}
#endregion
#region Methods
#region Form Methods
private void DesignerForm_Load(object sender, EventArgs e)
{
// bug/inconsistent behavior in .Net: if we set WindowState to Maximized, the
// Load event will be fired *after* the form is shown.
bool maximized = Config.RestoreFormState(this, true);
// under some circumstances, the config file may contain wrong winodw position (-32000)
if (!maximized && (Left < -10 || Top < -10))
maximized = true;
Designer.RestoreConfig();
if (maximized)
WindowState = FormWindowState.Maximized;
Config.DesignerSettings.OnDesignerLoaded(Designer, EventArgs.Empty);
Designer.StartAutoSave();
}
private void DesignerForm_FormClosing(object sender, FormClosingEventArgs e)
{
if (!Designer.CloseAll())
{
e.Cancel = true;
}
else
{
Config.SaveFormState(this);
Designer.SaveConfig();
}
designer.ValidatorWindow.CancelUpdateErrors();
}
private void DesignerForm_FormClosed(object sender, FormClosedEventArgs e)
{
Config.DesignerSettings.OnDesignerClosed(Designer, EventArgs.Empty);
Designer.StopAutoSave();
}
#endregion
#region File Methods
private void miFile_PopupOpen(object sender, PopupOpenEventArgs e)
{
// clear existing recent items
for (int i = 0; i < itemContainer23.SubItems.Count; i++)
{
BaseItem item = itemContainer23.SubItems[i];
if (item is ButtonItem)
{
item.Dispose();
itemContainer23.SubItems.Remove(item);
i--;
}
}
// add new items
if (Designer.cmdRecentFiles.Enabled && Designer.RecentFiles.Count > 0)
{
foreach (string file in Designer.RecentFiles)
{
ButtonItem menuItem = new ButtonItem();
menuItem.Text = Path.GetFileName(file);
menuItem.Tag = file;
menuItem.Tooltip = file;
menuItem.Click += recentFile_Click;
itemContainer23.SubItems.Insert(1, menuItem);
}
}
}
private void recentFile_Click(object sender, EventArgs e)
{
Designer.UpdatePlugins(null);
Designer.cmdOpen.LoadFile((sender as ButtonItem).Tag as string);
}
#endregion
#region Home Methods
//-------------------------------------------------------------------
// Clipboard
//-------------------------------------------------------------------
private void clipboardTimer_Tick(object sender, EventArgs e)
{
btnPaste.Enabled = Designer.cmdPaste.Enabled;
}
//-------------------------------------------------------------------
// Text
//-------------------------------------------------------------------
private void cbxName_FontSelected(object sender, EventArgs e)
{
(Designer.ActiveReportTab.ActivePageDesigner as ReportPageDesigner).Workspace.Focus();
Designer.SelectedTextObjects.SetFontName(cbxFontName.FontName);
}
private void cbxSize_SizeSelected(object sender, EventArgs e)
{
(Designer.ActiveReportTab.ActivePageDesigner as ReportPageDesigner).Workspace.Focus();
Designer.SelectedTextObjects.SetFontSize(cbxFontSize.FontSize);
}
private void btnBold_Click(object sender, EventArgs e)
{
btnBold.Checked = !btnBold.Checked;
Designer.SelectedTextObjects.ToggleFontStyle(FontStyle.Bold, btnBold.Checked);
}
private void btnItalic_Click(object sender, EventArgs e)
{
btnItalic.Checked = !btnItalic.Checked;
Designer.SelectedTextObjects.ToggleFontStyle(FontStyle.Italic, btnItalic.Checked);
}
private void btnUnderline_Click(object sender, EventArgs e)
{
btnUnderline.Checked = !btnUnderline.Checked;
Designer.SelectedTextObjects.ToggleFontStyle(FontStyle.Underline, btnUnderline.Checked);
}
private void btnLeft_Click(object sender, EventArgs e)
{
Designer.SelectedTextObjects.SetHAlign(HorzAlign.Left);
}
private void btnCenter_Click(object sender, EventArgs e)
{
Designer.SelectedTextObjects.SetHAlign(HorzAlign.Center);
}
private void btnRight_Click(object sender, EventArgs e)
{
Designer.SelectedTextObjects.SetHAlign(HorzAlign.Right);
}
private void btnJustify_Click(object sender, EventArgs e)
{
Designer.SelectedTextObjects.SetHAlign(HorzAlign.Justify);
}
private void btnTop_Click(object sender, EventArgs e)
{
Designer.SelectedTextObjects.SetVAlign(VertAlign.Top);
}
private void btnMiddle_Click(object sender, EventArgs e)
{
Designer.SelectedTextObjects.SetVAlign(VertAlign.Center);
}
private void btnBottom_Click(object sender, EventArgs e)
{
Designer.SelectedTextObjects.SetVAlign(VertAlign.Bottom);
}
private void btnColor_Click(object sender, EventArgs e)
{
Designer.SelectedTextObjects.SetTextColor(btnTextColor.DefaultColor);
}
private void btnRotation_Click(object sender, EventArgs e)
{
AnglePopup popup = new AnglePopup(Designer.FindForm());
popup.Angle = Designer.SelectedTextObjects.First.Angle;
popup.AngleChanged += popup_RotationChanged;
popup.Show(this, barText.Right, barText.Bottom);
}
private void popup_RotationChanged(object sender, EventArgs e)
{
Designer.SelectedTextObjects.SetAngle((sender as AnglePopup).Angle);
}
//-------------------------------------------------------------------
// Border and Fill
//-------------------------------------------------------------------
private void btnTopLine_Click(object sender, EventArgs e)
{
btnTopLine.Checked = !btnTopLine.Checked;
Designer.SelectedReportComponents.ToggleLine(BorderLines.Top, btnTopLine.Checked);
}
private void btnBottomLine_Click(object sender, EventArgs e)
{
btnBottomLine.Checked = !btnBottomLine.Checked;
Designer.SelectedReportComponents.ToggleLine(BorderLines.Bottom, btnBottomLine.Checked);
}
private void btnLeftLine_Click(object sender, EventArgs e)
{
btnLeftLine.Checked = !btnLeftLine.Checked;
Designer.SelectedReportComponents.ToggleLine(BorderLines.Left, btnLeftLine.Checked);
}
private void btnRightLine_Click(object sender, EventArgs e)
{
btnRightLine.Checked = !btnRightLine.Checked;
Designer.SelectedReportComponents.ToggleLine(BorderLines.Right, btnRightLine.Checked);
}
private void btnAll_Click(object sender, EventArgs e)
{
Designer.SelectedReportComponents.ToggleLine(BorderLines.All, true);
}
private void btnNone_Click(object sender, EventArgs e)
{
Designer.SelectedReportComponents.ToggleLine(BorderLines.All, false);
}
private void btnLineColor_Click(object sender, EventArgs e)
{
Designer.SelectedReportComponents.SetLineColor(btnLineColor.DefaultColor);
}
private void btnFillColor_Click(object sender, EventArgs e)
{
Designer.SelectedReportComponents.SetColor(btnFillColor.DefaultColor);
}
private void btnFillProps_Click(object sender, EventArgs e)
{
Designer.SelectedReportComponents.InvokeFillEditor();
}
private void cbxWidth_WidthSelected(object sender, EventArgs e)
{
Designer.SelectedReportComponents.SetWidth(btnLineWidth.LineWidth);
}
private void cbxLineStyle_StyleSelected(object sender, EventArgs e)
{
Designer.SelectedReportComponents.SetLineStyle(btnLineStyle.LineStyle);
}
private void btnBorderProps_Click(object sender, EventArgs e)
{
Designer.SelectedReportComponents.InvokeBorderEditor();
}
//-------------------------------------------------------------------
// Format
//-------------------------------------------------------------------
private void btnHighlight_Click(object sender, EventArgs e)
{
Designer.SelectedTextObjects.InvokeHighlightEditor();
}
private void btnFormat_Click(object sender, EventArgs e)
{
using (FormatEditorForm form = new FormatEditorForm())
{
SelectedTextBaseObjects FTextObjects = new SelectedTextBaseObjects(designer);
FTextObjects.Update();
form.TextObject = FTextObjects.First;
if (form.ShowDialog() == DialogResult.OK)
{
FTextObjects.SetFormat(form.Formats);
Designer.SetModified(null, "Change");
//Change();
}
}
}
//-------------------------------------------------------------------
// Styles
//-------------------------------------------------------------------
private void cbxStyle_StyleSelected(object sender, EventArgs e)
{
(Designer.ActiveReportTab.ActivePageDesigner as ReportPageDesigner).Workspace.Focus();
Designer.SelectedReportComponents.SetStyle(cbxStyles.Style);
}
//-------------------------------------------------------------------
#endregion
#region Report Methods
private void btnPreview_Click(object sender, EventArgs e)
{
previewTimer.Start();
}
private void previewTimer_Tick(object sender, EventArgs e)
{
previewTimer.Stop();
Designer.cmdPreview.Invoke(sender, e);
}
private void miInsertBands_Click(object sender, EventArgs e)
{
using (ConfigureBandsForm form = new ConfigureBandsForm(Designer))
{
form.Page = Page as ReportPage;
form.ShowDialog();
}
}
private void miReportGroupExpert_Click(object sender, EventArgs e)
{
using (GroupExpertForm form = new GroupExpertForm(Designer))
{
if (form.ShowDialog() == DialogResult.OK)
Designer.SetModified(null, "ChangeReport");
}
}
private void miReportTitle_Click(object sender, EventArgs e)
{
ReportPage page = Page as ReportPage;
if ((sender as CheckBoxItem).Checked)
{
page.ReportTitle = new ReportTitleBand();
ReportPageDesigner.SetDefaults(page.ReportTitle);
}
else
{
page.ReportTitle = null;
}
ReportPageDesigner.Change();
}
private void miReportSummary_Click(object sender, EventArgs e)
{
ReportPage page = Page as ReportPage;
if ((sender as CheckBoxItem).Checked)
{
page.ReportSummary = new ReportSummaryBand();
ReportPageDesigner.SetDefaults(page.ReportSummary);
}
else
{
page.ReportSummary = null;
}
ReportPageDesigner.Change();
}
private void miPageHeader_Click(object sender, EventArgs e)
{
ReportPage page = Page as ReportPage;
if ((sender as CheckBoxItem).Checked)
{
page.PageHeader = new PageHeaderBand();
ReportPageDesigner.SetDefaults(page.PageHeader);
}
else
{
page.PageHeader = null;
}
ReportPageDesigner.Change();
}
private void miPageFooter_Click(object sender, EventArgs e)
{
ReportPage page = Page as ReportPage;
if ((sender as CheckBoxItem).Checked)
{
page.PageFooter = new PageFooterBand();
ReportPageDesigner.SetDefaults(page.PageFooter);
}
else
{
page.PageFooter = null;
}
ReportPageDesigner.Change();
}
private void miColumnHeader_Click(object sender, EventArgs e)
{
ReportPage page = Page as ReportPage;
if ((sender as CheckBoxItem).Checked)
{
page.ColumnHeader = new ColumnHeaderBand();
ReportPageDesigner.SetDefaults(page.ColumnHeader);
}
else
{
page.ColumnHeader = null;
}
ReportPageDesigner.Change();
}
private void miColumnFooter_Click(object sender, EventArgs e)
{
ReportPage page = Page as ReportPage;
if ((sender as CheckBoxItem).Checked)
{
page.ColumnFooter = new ColumnFooterBand();
ReportPageDesigner.SetDefaults(page.ColumnFooter);
}
else
{
page.ColumnFooter = null;
}
ReportPageDesigner.Change();
}
private void miOverlay_Click(object sender, EventArgs e)
{
ReportPage page = Page as ReportPage;
if ((sender as CheckBoxItem).Checked)
{
page.Overlay = new OverlayBand();
ReportPageDesigner.SetDefaults(page.Overlay);
}
else
{
page.Overlay = null;
}
ReportPageDesigner.Change();
}
#endregion
#region Layout Methods
private void btnAlignToGrid_Click(object sender, EventArgs e)
{
Designer.SelectedComponents.AlignToGrid();
}
private void btnAlignLefts_Click(object sender, EventArgs e)
{
Designer.SelectedComponents.AlignLeft();
}
private void btnAlignCenters_Click(object sender, EventArgs e)
{
Designer.SelectedComponents.AlignCenter();
}
private void btnAlignRights_Click(object sender, EventArgs e)
{
Designer.SelectedComponents.AlignRight();
}
private void btnAlignTops_Click(object sender, EventArgs e)
{
Designer.SelectedComponents.AlignTop();
}
private void btnAlignMiddles_Click(object sender, EventArgs e)
{
Designer.SelectedComponents.AlignMiddle();
}
private void btnAlignBottoms_Click(object sender, EventArgs e)
{
Designer.SelectedComponents.AlignBottom();
}
private void btnSameWidth_Click(object sender, EventArgs e)
{
Designer.SelectedComponents.SameWidth();
}
private void btnSameHeight_Click(object sender, EventArgs e)
{
Designer.SelectedComponents.SameHeight();
}
private void btnSameSize_Click(object sender, EventArgs e)
{
Designer.SelectedComponents.SameSize();
}
private void btnCenterHorizontally_Click(object sender, EventArgs e)
{
Designer.SelectedComponents.CenterHorizontally();
}
private void btnCenterVertically_Click(object sender, EventArgs e)
{
Designer.SelectedComponents.CenterVertically();
}
private void btnSizeToGrid_Click(object sender, EventArgs e)
{
Designer.SelectedComponents.SizeToGrid();
}
private void btnSpaceHorizontally_Click(object sender, EventArgs e)
{
Designer.SelectedComponents.SpaceHorizontally();
}
private void btnIncreaseHorizontalSpacing_Click(object sender, EventArgs e)
{
Designer.SelectedComponents.IncreaseHorizontalSpacing();
}
private void btnDecreaseHorizontalSpacing_Click(object sender, EventArgs e)
{
Designer.SelectedComponents.DecreaseHorizontalSpacing();
}
private void btnRemoveHorizontalSpacing_Click(object sender, EventArgs e)
{
Designer.SelectedComponents.RemoveHorizontalSpacing();
}
private void btnSpaceVertically_Click(object sender, EventArgs e)
{
Designer.SelectedComponents.SpaceVertically();
}
private void btnIncreaseVerticalSpacing_Click(object sender, EventArgs e)
{
Designer.SelectedComponents.IncreaseVerticalSpacing();
}
private void btnDecreaseVerticalSpacing_Click(object sender, EventArgs e)
{
Designer.SelectedComponents.DecreaseVerticalSpacing();
}
private void btnRemoveVerticalSpacing_Click(object sender, EventArgs e)
{
Designer.SelectedComponents.RemoveVerticalSpacing();
}
#endregion
#region View Methods
private void MenuViewGrid_Click(object sender, EventArgs e)
{
ReportWorkspace.ShowGrid = btnViewGrid.Checked;
Workspace.Refresh();
}
private void MenuViewGuides_Click(object sender, EventArgs e)
{
ReportWorkspace.ShowGuides = btnViewGuides.Checked;
Workspace.Refresh();
}
private void MenuViewAutoGuides_Click(object sender, EventArgs e)
{
ReportWorkspace.AutoGuides = btnAutoGuides.Checked;
Workspace.Refresh();
UpdateControls();
}
private void MenuViewDeleteHGuides_Click(object sender, EventArgs e)
{
Workspace.DeleteHGuides();
}
private void MenuViewDeleteVGuides_Click(object sender, EventArgs e)
{
Workspace.DeleteVGuides();
}
private void BtnMessages_Click(object sender, EventArgs e)
{
if (designer.MessagesWindow.Visible)
designer.MessagesWindow.Hide();
else
designer.MessagesWindow.Show();
}
private void BtnValidate_Click(object sender, EventArgs e)
{
if (designer.ValidatorWindow.Visible)
{
designer.ValidatorWindow.Hide();
designer.ValidatorWindow.CancelUpdateErrors();
}
else
{
designer.ValidatorWindow.Show();
designer.ValidatorWindow.UpdateErrors(!ReportWorkspace.EnableBacklightIntersectingObjects);
}
}
private void BtnReportTree_Click(object sender, EventArgs e)
{
if (designer.ReportTreeWindow.Visible)
designer.ReportTreeWindow.Hide();
else
designer.ReportTreeWindow.Show();
}
private void BtnData_Click(object sender, EventArgs e)
{
if (designer.DataWindow.Visible)
designer.DataWindow.Hide();
else
designer.DataWindow.Show();
}
private void BtnProperties_Click(object sender, EventArgs e)
{
if (designer.PropertiesWindow.Visible)
designer.PropertiesWindow.Hide();
else
designer.PropertiesWindow.Show();
}
private void miViewUnits_Click(object sender, EventArgs e)
{
if (sender == btnUnitsMillimeters)
ReportWorkspace.Grid.GridUnits = PageUnits.Millimeters;
else if (sender == btnUnitsCentimeters)
ReportWorkspace.Grid.GridUnits = PageUnits.Centimeters;
else if (sender == btnUnitsInches)
ReportWorkspace.Grid.GridUnits = PageUnits.Inches;
else
ReportWorkspace.Grid.GridUnits = PageUnits.HundrethsOfInch;
UpdateContent();
}
private void openfrx_DragEnter(object sender, DragEventArgs e)
{
string[] objects = (string[])e.Data.GetData(DataFormats.FileDrop);
if (objects != null)
if (objects.Length == 1)
{
if (Path.GetExtension(objects[0]).ToLower() == ".frx")
{
e.Effect = DragDropEffects.Move;
}
}
}
private void openfrx_DragDrop(object sender, DragEventArgs e)
{
string[] objects = (string[])e.Data.GetData(DataFormats.FileDrop);
if (objects.Length == 1)
{
if (Path.GetExtension(objects[0]).ToLower() == ".frx")
{
Designer.cmdOpen.LoadFile(objects[0]);
}
}
}
#endregion
#endregion
#region IDesignerPlugin
///
public string PluginName
{
get { return Name; }
}
///
public void SaveState()
{
}
///
public void RestoreState()
{
}
///
public void SelectionChanged()
{
UpdateContent();
}
///
public void UpdateContent()
{
UpdateControls();
}
///
public void Lock()
{
}
///
public void Unlock()
{
UpdateContent();
}
///
public override void Localize()
{
foreach (KeyValuePair kv in ribbonItems)
{
kv.Key.Text = Res.Get(kv.Value.TextResource);
kv.Key.Tooltip = Res.Get(kv.Value.TooltipResource);
}
MyRes res = new MyRes("Designer,Ribbon");
btnFile.Text = res.Get("File");
tabHome.Text = res.Get("Home");
tabReport.Text = res.Get("Report");
tabLayout.Text = res.Get("Layout");
tabView.Text = res.Get("View");
lblRecent.Text = res.Get("Recent");
barReport.Text = res.Get("Report");
barLayout.Text = res.Get("Layout");
barView.Text = res.Get("View");
barClipboard.Text = res.Get("Clipboard");
barText.Text = res.Get("Text");
barBorderAndFill.Text = res.Get("BorderAndFill");
barFormat.Text = res.Get("Format");
barStyles.Text = res.Get("Styles");
barPolygon.Text = Res.Get("Designer,Toolbar,Polygon");
barEditing.Text = res.Get("Editing");
barData.Text = res.Get("Data");
barPages.Text = res.Get("Pages");
barBands.Text = res.Get("Bands");
btnAlignment.Text = res.Get("Alignment");
btnSize.Text = res.Get("Size");
btnSpacing.Text = res.Get("Spacing");
btnPanels.Text = res.Get("Panels");
UpdateContent();
}
///
public DesignerOptionsPage GetOptionsPage()
{
return null;
}
///
public void UpdateUIStyle()
{
if (Config.UseRibbon)
{
designer.ShowMainMenu = false;
ribbonControl.Visible = true;
foreach (Bar bar in designer.DotNetBarManager.Bars)
if (bar is ToolbarBase)
bar.Hide();
}
else
{
designer.ShowMainMenu = true;
ribbonControl.Visible = false;
}
btnTextColor.SetStyle(designer.UIStyle);
btnFillColor.SetStyle(designer.UIStyle);
btnLineColor.SetStyle(designer.UIStyle);
}
#endregion
#region Private classes
private class ItemInfo
{
public int ImageIndex { get; set; }
public string ImageResource { get; set; }
public string TextResource { get; set; }
public string TooltipResource { get; set; }
public ItemInfo(int imageIndex, string imageRes, string textRes, string tooltipRes)
{
ImageIndex = imageIndex;
ImageResource = imageRes;
TextResource = textRes;
TooltipResource = tooltipRes;
}
}
#endregion
}
}