using System; using System.Windows.Forms; using FastReport.Utils; using FastReport.Export; namespace FastReport.Forms { /// /// Base form for all export options dialog forms. /// public partial class BaseExportForm : BaseDialogForm { /// /// Represents the "Open after export" button visibility. /// public bool OpenAfterVisible { get { return cbOpenAfter.Visible; } set { cbOpenAfter.Visible = value; } } private ExportBase export; /// /// Gets a reference to the currently editing export filter. /// protected ExportBase Export { get { return export; } } private void tbNumbers_KeyPress(object sender, KeyPressEventArgs e) { rbNumbers.Checked = true; } private void rbCurrent_CheckedChanged(object sender, EventArgs e) { if ((sender as RadioButton).Checked) tbNumbers.Text = ""; } /// protected override void OnFormClosing(FormClosingEventArgs e) { base.OnFormClosing(e); if (DialogResult == DialogResult.OK) { string s = tbNumbers.Text; foreach (char c in s) { if (!(c == ' ' || c == ',' || c == '-' || (c >= '0' && c <= '9'))) { FRMessageBox.Error(Res.Get("Forms,PrinterSetup,Error") + "\r\n" + Res.Get("Forms,PrinterSetup,Hint")); tbNumbers.Focus(); e.Cancel = true; break; } } } } /// protected override void OnFormClosed(FormClosedEventArgs e) { base.OnFormClosed(e); if (DialogResult == DialogResult.OK) Done(); } /// /// Called when editing is done. /// /// /// Override this method to pass edited values from the dialog controls to the export filter. /// /// See the example of this method implementation that is used in the ImageExport. /// /// protected override void Done() /// { /// base.Done(); /// ImageExport imageExport = Export as ImageExport; /// imageExport.ImageFormat = (ImageExportFormat)cbxImageFormat.SelectedIndex; /// imageExport.Resolution = (int)udResolution.Value; /// imageExport.JpegQuality = (int)udQuality.Value; /// imageExport.SeparateFiles = cbSeparateFiles.Checked; /// } /// /// protected virtual void Done() { if (rbAll.Checked) Export.PageRange = PageRange.All; else if (rbCurrent.Checked) Export.PageRange = PageRange.Current; else Export.PageRange = PageRange.PageNumbers; Export.PageNumbers = tbNumbers.Text; Export.OpenAfterExport = cbOpenAfter.Checked; Export.ExportAllTabs = cbExportAllTabs.Checked; } /// public override void Localize() { base.Localize(); MyRes res = new MyRes("Forms,PrinterSetup"); gbPageRange.Text = res.Get("PageRange"); rbAll.Text = res.Get("All"); rbCurrent.Text = res.Get("Current"); rbNumbers.Text = res.Get("Numbers"); lblHint.Text = res.Get("Hint"); cbOpenAfter.Text = Res.Get("Export,Misc,OpenAfterExport"); cbExportAllTabs.Text = Res.Get("Export,Misc,ExportAllTabs"); } /// /// Initializes controls with initial values. /// /// The export filter to edit. /// /// Override this method to pass values from the export filter to the dialog controls. /// /// See the example of this method implementation that is used in the ImageExport. /// /// public override void Init(ExportBase export) /// { /// base.Init(export); /// ImageExport imageExport = Export as ImageExport; /// cbxImageFormat.SelectedIndex = (int)imageExport.ImageFormat; /// udResolution.Value = imageExport.Resolution; /// udQuality.Value = imageExport.JpegQuality; /// cbSeparateFiles.Checked = imageExport.SeparateFiles; /// } /// /// public virtual void Init(ExportBase export) { this.export = export; Localize(); rbAll.Checked = Export.PageRange == PageRange.All; rbCurrent.Checked = Export.PageRange == PageRange.Current; rbNumbers.Checked = Export.PageRange == PageRange.PageNumbers; tbNumbers.Text = Export.PageNumbers; cbOpenAfter.Checked = Export.OpenAfterExport; cbOpenAfter.Enabled = export.AllowOpenAfter; cbExportAllTabs.Enabled = Export.TabsIsExists; cbExportAllTabs.Checked = Export.ExportAllTabs; } /// public bool ShowDialog(ExportBase export) { Init(export); UIUtils.CheckRTL(this); UpdateDpiDependencies(); return ShowDialog() == DialogResult.OK; } /// /// Initializes a new instance of the class with default settings. /// public BaseExportForm() { InitializeComponent(); } } }