using System.Drawing; using System.Windows.Forms; using FastReport.Utils; namespace FastReport.Dialog { partial class ParentControl { #region Public Methods /// public override void DrawSelection(FRPaintEventArgs e) { base.DrawSelection(e); float m = Report.Designer.DpiMultiplier(); e.Graphics.DrawImage(Report.Designer.GetImage(75), (int)(AbsLeft + 8 * m), (int)(AbsTop - 8 * m)); } /// public override void HandleMouseDown(FRMouseEventArgs e) { HandleMouseHover(e); if (e.handled) e.mode = WorkspaceMode2.Move; else { base.HandleMouseDown(e); if (e.handled) { if (e.modifierKeys != Keys.Shift) { e.mode = WorkspaceMode2.SelectionRect; e.activeObject = this; } } } } /// public override void HandleMouseHover(FRMouseEventArgs e) { if (IsSelected) { float m = 1 / Report.Designer.Zoom; if (new RectangleF(AbsLeft + 8 * m, AbsTop - 8 * m, 16 * m, 16 * m).Contains(new PointF(e.x, e.y))) { e.handled = true; e.cursor = Cursors.SizeAll; } } } /// public override void HandleMouseUp(FRMouseEventArgs e) { base.HandleMouseUp(e); if (e.activeObject == this && e.mode == WorkspaceMode2.SelectionRect) { ObjectCollection selectedList = new ObjectCollection(); // find objects inside the selection rect foreach (DialogComponentBase c in Controls) { e.handled = false; c.HandleMouseUp(e); // object is inside if (e.handled) selectedList.Add(c); } if (selectedList.Count > 0) selectedList.CopyTo(Report.Designer.SelectedObjects); } } #endregion } }