using System; using System.Windows.Forms; using FastReport.Controls; using FastReport.Utils; namespace FastReport.Design.Toolbars { internal class StandardToolbar : DesignerToolbarBase { #region Fields public ToolbarButton btnNew; public ToolbarOpenButton btnOpen; public ToolbarButton btnSave; public ToolbarButton btnSaveAll; public ToolbarButton btnPreview; public ToolbarButton btnPreviewCloud; public ToolbarButton btnNewPage; public ToolbarButton btnNewDialog; public ToolbarButton btnDeletePage; public ToolbarButton btnPageSetup; public ToolbarButton btnCut; public ToolbarButton btnCopy; public ToolbarButton btnPaste; public ToolbarButton btnFormatPainter; public ToolbarUndoButton btnUndo; public ToolbarRedoButton btnRedo; public ToolbarButton btnGroup; public ToolbarButton btnUngroup; private Timer clipboardTimer; private Timer previewTimer; #endregion #region Private Methods private void UpdateControls() { btnNew.Enabled = Designer.cmdNew.Enabled; btnOpen.Enabled = Designer.cmdOpen.Enabled; btnSave.Enabled = Designer.cmdSave.Enabled; btnSaveAll.Enabled = Designer.cmdSaveAll.Enabled; btnPreview.Enabled = Designer.cmdPreview.Enabled; btnPreviewCloud.Enabled = Designer.cmdPreviewCloud.Enabled; btnNewPage.Enabled = Designer.cmdNewPage.Enabled; #if COMMUNITY btnNewDialog.Enabled = false; #else btnNewDialog.Enabled = Designer.cmdNewDialog.Enabled; #endif btnDeletePage.Enabled = Designer.cmdDeletePage.Enabled; btnPageSetup.Enabled = Designer.cmdPageSetup.Enabled; btnCut.Enabled = Designer.cmdCut.Enabled; btnCopy.Enabled = Designer.cmdCopy.Enabled; btnFormatPainter.Enabled = Designer.cmdFormatPainter.Enabled; btnFormatPainter.Checked = Designer.FormatPainter; btnUndo.Enabled = Designer.cmdUndo.Enabled; btnRedo.Enabled = Designer.cmdRedo.Enabled; btnGroup.Enabled = Designer.cmdGroup.Enabled; btnUngroup.Enabled = Designer.cmdUngroup.Enabled; } private void FClipboardTimer_Tick(object sender, EventArgs e) { btnPaste.Enabled = Designer.cmdPaste.Enabled; } private void FPreviewTimer_Tick(object sender, EventArgs e) { previewTimer.Stop(); Designer.cmdPreview.Invoke(sender, e); } private void btnPreview_Click(object sender, EventArgs e) { previewTimer.Start(); } #endregion #region Protected Methods protected override void Dispose(bool disposing) { if (disposing) { clipboardTimer.Dispose(); previewTimer.Dispose(); } base.Dispose(disposing); } #endregion #region Public Methods public override void SelectionChanged() { base.SelectionChanged(); Throttle.Execute(UpdateControls); } public override void UpdateContent() { base.UpdateContent(); Throttle.Execute(UpdateControls); } public override void Localize() { base.Localize(); MyRes res = new MyRes("Designer,Toolbar,Standard"); Text = res.Get(""); SetItemText(btnNew, res.Get("New")); SetItemText(btnOpen, res.Get("Open")); SetItemText(btnSave, res.Get("Save")); SetItemText(btnSaveAll, res.Get("SaveAll")); SetItemText(btnPreview, res.Get("Preview")); SetItemText(btnPreviewCloud, res.Get("PreviewCloud")); SetItemText(btnNewPage, res.Get("NewPage")); SetItemText(btnNewDialog, res.Get("NewDialog")); SetItemText(btnDeletePage, res.Get("DeletePage")); SetItemText(btnPageSetup, res.Get("PageSetup")); SetItemText(btnCut, res.Get("Cut")); SetItemText(btnCopy, res.Get("Copy")); SetItemText(btnPaste, res.Get("Paste")); SetItemText(btnFormatPainter, res.Get("FormatPainter")); SetItemText(btnUndo, res.Get("Undo")); SetItemText(btnRedo, res.Get("Redo")); SetItemText(btnGroup, res.Get("Group")); SetItemText(btnUngroup, res.Get("Ungroup")); } #endregion public StandardToolbar(Designer designer) : base(designer) { Name = "StandardToolbar"; btnNew = new ToolbarButton("btnStdNew", 4, Designer.cmdNew.Invoke); btnOpen = new ToolbarOpenButton(designer, "btnStdOpen", 1); btnSave = new ToolbarButton("btnStdSave", 2, Designer.cmdSave.Invoke); btnSaveAll = new ToolbarButton("btnStdSaveAll", 178, Designer.cmdSaveAll.Invoke); btnPreview = new ToolbarButton("btnStdPreview", 3, btnPreview_Click); btnPreviewCloud = new ToolbarButton("btnStdPreviewCloud", 263, Designer.cmdPreviewCloud.Invoke); btnNewPage = new ToolbarButton("btnStdNewPage", 10, Designer.cmdNewPage.Invoke); btnNewPage.BeginGroup = true; btnNewDialog = new ToolbarButton("btnStdNewDialog", 11, Designer.cmdNewDialog.Invoke); btnDeletePage = new ToolbarButton("btnStdDeletePage", 12, Designer.cmdDeletePage.Invoke); btnPageSetup = new ToolbarButton("btnStdPageSetup", 13, Designer.cmdPageSetup.Invoke); btnCut = new ToolbarButton("btnStdCut", 5, Designer.cmdCut.Invoke); btnCut.BeginGroup = true; btnCopy = new ToolbarButton("btnStdCopy", 6, Designer.cmdCopy.Invoke); btnPaste = new ToolbarButton("btnStdPaste", 7, Designer.cmdPaste.Invoke); btnFormatPainter = new ToolbarButton("btnStdFormatPainter", 18, Designer.cmdFormatPainter.Invoke); btnFormatPainter.CheckOnClick = true; btnUndo = new ToolbarUndoButton(designer, "btnStdUndo", 8); btnUndo.BeginGroup = true; btnRedo = new ToolbarRedoButton(designer, "btnStdRedo", 9); btnGroup = new ToolbarButton("btnStdGroup", 17, Designer.cmdGroup.Invoke); btnGroup.BeginGroup = true; btnUngroup = new ToolbarButton("btnStdUngroup", 16, Designer.cmdUngroup.Invoke); AddItems( btnNew, btnOpen, btnSave, btnSaveAll, btnPreview, btnPreviewCloud, btnNewPage, btnNewDialog, btnDeletePage, btnPageSetup, btnCut, btnCopy, btnPaste, btnFormatPainter, btnUndo, btnRedo, btnGroup, btnUngroup); Localize(); UpdateDpiDependencies(); clipboardTimer = new Timer(); clipboardTimer.Interval = 500; clipboardTimer.Tick += FClipboardTimer_Tick; clipboardTimer.Start(); previewTimer = new Timer(); previewTimer.Interval = 20; previewTimer.Tick += FPreviewTimer_Tick; } } }