public void SetCaptureHandler(PrintTileController tileController, IMouseWheelHandler captureMouseWheelHandler) { if (_captureTileController == tileController && _captureMouseWheelHandler == captureMouseWheelHandler) { return; } if (_captureMouseWheelHandler != null) { if (_delayedStop != null) { _delayedStop.Dispose(); _delayedStop = null; } EventsHelper.Fire(tileController._wheelCaptureChangingEvent, tileController, new ItemEventArgs <IMouseWheelHandler>(null)); _captureMouseWheelHandler.StopWheel(); _captureTileController._tile.ImageViewer.EventBroker.OnMouseWheelCaptureChanged(new MouseWheelCaptureChangedEventArgs(_captureTileController._tile, false)); } _captureTileController = tileController; _captureMouseWheelHandler = captureMouseWheelHandler; if (_captureMouseWheelHandler == null) { if (_delayedStop != null) { _delayedStop.Dispose(); _delayedStop = null; } return; } _delayedStop = new DelayedEventPublisher((s, e) => SetCaptureHandler(tileController, null), WheelStopDelayMilliseconds); EventsHelper.Fire(tileController._wheelCaptureChangingEvent, tileController, new ItemEventArgs <IMouseWheelHandler>(_captureMouseWheelHandler)); _captureMouseWheelHandler.StartWheel(); _captureTileController._tile.ImageViewer.EventBroker.OnMouseWheelCaptureChanged(new MouseWheelCaptureChangedEventArgs(_captureTileController._tile, true)); _delayedStop.Publish(this, EventArgs.Empty); }
/// <summary> /// Constructor /// </summary> public PrintTileControl(PrintViewTile tile, Rectangle parentRectangle, int parentImageBoxInsetWidth) { _tile = tile; _tileController = new PrintTileController(_tile, (_tile.ImageViewer as PrintImageViewerComponent).ShortcutManager); _inputTranslator = new PrintTileInputTranslator(this); SetParentImageBoxRectangle(parentRectangle, parentImageBoxInsetWidth, true); InitializeComponent(); this.BackColor = Color.Black; this.Dock = DockStyle.None; this.Anchor = AnchorStyles.None; this.AllowDrop = true; _tile.Drawing += new EventHandler(OnTileDrawing); _tile.RendererChanged += new EventHandler(OnRendererChanged); _tile.InformationBoxChanged += new EventHandler <InformationBoxChangedEventArgs>(OnInformationBoxChanged); _tile.EditBoxChanged += new EventHandler(OnEditBoxChanged); _tile.SelectionChanged += new EventHandler <ItemEventArgs <ITile> >(OnTileSelectionChanged); _contextMenuStrip.ImageScalingSize = new Size(24, 24); _contextMenuStrip.Opening += new CancelEventHandler(OnContextMenuStripOpening); _tileController.CursorTokenChanged += new EventHandler(OnCursorTokenChanged); _tileController.ContextMenuRequested += new EventHandler <ItemEventArgs <Point> >(OnContextMenuRequested); _tileController.CaptureChanging += new EventHandler <ItemEventArgs <IMouseButtonHandler> >(OnCaptureChanging); _editBoxControl = new EditBoxControl(); this.Controls.Add(_editBoxControl); this.DoubleBuffered = false; this.SetStyle(ControlStyles.DoubleBuffer, false); this.SetStyle(ControlStyles.OptimizedDoubleBuffer, false); this.SetStyle(ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint | ControlStyles.Opaque, true); this.Margin = new Padding(0); this.Padding = new Padding(0); }