예제 #1
0
 /// <summary>
 /// Construct new AutoScroll object that will scroll the given target object within it's container
 /// by attaching to the mouse events of the container.
 /// </summary>
 /// <param name="target">The target object to scroll</param>
 /// <param name="zoom">The master MapZoom object that manages the actual render transform</param>
 public AutoScroll(FrameworkElement target, MapZoom zoom)
 {
     _container = target.Parent as Panel;
     _target = target;
     _container.MouseDown += new MouseButtonEventHandler(OnMouseDown);
     _container.MouseMove += new MouseEventHandler(OnMouseMove);
     _container.MouseWheel += new MouseWheelEventHandler(OnMouseWheel);
     Keyboard.AddKeyDownHandler(_container, new KeyEventHandler(OnKeyDown));
     _zoom = zoom;
 }
예제 #2
0
파일: Pan.cs 프로젝트: WonderPanda/Besieged
 /// <summary>
 /// Construct new Pan gesture object.
 /// </summary>
 /// <param name="target">The target to be panned, must live inside a container Panel</param>
 /// <param name="zoom"></param>
 public Pan(FrameworkElement target, MapZoom zoom)
 {
     this._target = target;
     this._container = target.Parent as Panel;
     if (this._container == null) {
         // todo: localization
         throw new ArgumentException("Target object must live in a Panel");
     }
     this._zoom = zoom;
     _container.MouseLeftButtonDown += new MouseButtonEventHandler(OnMouseLeftButtonDown);
     _container.MouseLeftButtonUp += new MouseButtonEventHandler(OnMouseLeftButtonUp);
     _container.MouseMove += new MouseEventHandler(OnMouseMove);
 }
 /// <summary>
 /// Construct new RectangleSelectionGesture object for selecting things in the given target object.
 /// </summary>
 /// <param name="target">A FrameworkElement</param>
 /// <param name="zoom">The MapZoom object that wraps this same target object</param>
 public RectangleSelectionGesture(FrameworkElement target, MapZoom zoom, ModifierKeys mods)
 {
     _mods = mods;
     _target = target;
     _container = target.Parent as Panel;
     if (_container == null)
     {
         throw new ArgumentException("Target object must live in a Panel");
     }
     _zoom = zoom;
     _container.MouseLeftButtonDown += new MouseButtonEventHandler(OnMouseLeftButtonDown);
     _container.MouseLeftButtonUp += new MouseButtonEventHandler(OnMouseLeftButtonUp);
     _container.MouseMove += new MouseEventHandler(OnMouseMove);
 }
예제 #4
0
        private InGameEngine()
        {
            #region "DrawCanvas"

            VirtualGameCanvas = new VirtualCanvas();
            GameCanvas = VirtualGameCanvas.ContentCanvas;
            VirtualGameCanvas.Width = 800;
            VirtualGameCanvas.Height = 600;

            VirtualGameCanvas.SmallScrollIncrement = new Size(50 / 2, 50 / 2); //smallest scroll increment //change this later

            zoom = new MapZoom(GameCanvas); //set the zoom to the canvas we are drawing on.
            pan = new Pan(GameCanvas, zoom); //panning
            rectZoom = new RectangleSelectionGesture(GameCanvas, zoom, ModifierKeys.Control);
            rectZoom.ZoomSelection = true;
            autoScroll = new AutoScroll(GameCanvas, zoom);

            #endregion "DrawCanvas"
            _pathFinder = new PathFinder();
            MoveList = new List<UnitMove>();
            //kickstart
            DrawUnitMovementRangeState.Get();
        }