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);
            }
Beispiel #2
0
        /// <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);
        }