Exemple #1
0
        public virtual IMouseEventHandler MouseMove(object sender, MouseArg arg)
        {
            if (pressed)
            {
                var point = new PointF(arg.x, arg.y);
                MouseDrag(sender, point, new PointF(point.X - LastPoint.X, point.Y - LastPoint.Y), DragCallCounter);

                var rect = new RectangleF(StartPoint, new SizeF(point.X - StartPoint.X, point.Y - StartPoint.Y));
                var x    = rect.X;
                var y    = rect.Y;
                var w    = Math.Abs(rect.Width);
                var h    = Math.Abs(rect.Height);

                if (rect.Width < 0)
                {
                    x = x + rect.Width;
                }
                if (rect.Height < 0)
                {
                    y = y + rect.Height;
                }

                MouseSelection(sender, arg, new RectangleF(x, y, w, h));
                LastPoint = point;
                DragCallCounter++;
            }

            return(this);
        }
Exemple #2
0
        public override IMouseEventHandler MouseUp(object sender, MouseArg arg)
        {
            //add collected commands to history
            Instance.History.InsertOnly(FMoveCommands);

            return(base.MouseUp(sender, arg));
        }
Exemple #3
0
 //default event dispatching
 public virtual void Default_MouseMove(object sender, MouseArg e)
 {
     if (CheckMouseHandler(e))
     {
         MouseHandler = MouseHandler.MouseMove(sender, e);
     }
 }
Exemple #4
0
        public override IMouseEventHandler MouseDown(object sender, MouseArg arg)
        {
            if (arg.CtrlKey || arg.AltKey)
            {
                foreach (var track in Instance.Parent.Tracks)
                {
                    foreach (var kf in track.KeyframeViews.Where(x => x.Model.Selected.Value))
                    {
                        FPreviouslySelected.Add(kf);
                    }
                }
            }
            else //deselect keyframes
            {
                var cmds = new CompoundCommand();
                foreach (var track in Instance.Parent.Tracks)
                {
                    foreach (var kf in track.KeyframeViews.Where(x => x.Model.Selected.Value))
                    {
                        cmds.Append(Command.Set(kf.Model.Selected, false));
                    }
                }

                if (cmds.CommandCount > 0)
                {
                    Instance.History.Insert(cmds);
                }
            }

            //start collecting movecommands in drag
            FSelectionCommands = new CompoundCommand();

            return(base.MouseDown(sender, arg));
        }
Exemple #5
0
        //selection rect or new rect
        void background_MouseDown(object sender, MouseArg e)
        {
            if (!FSessionParams.ContainsKey(e.SessionID))
            {
                return;
            }
            var handler = GetHandler(e.SessionID);

            if (handler != null)
            {
                return;
            }

            if (e.Button == 1)            //select
            {
                handler = new SelectionRectangleHandler(FRects, FSessionParams[e.SessionID].SelectedRects, FRectGroup.Transforms[0], FSessionParams[e.SessionID].Label, FSessionParams[e.SessionID].SelectionRect, e.SessionID);
            }
            else if (e.Button == 3)            //create new rect
            {
                var newRect = new SvgRectangle();
                newRect.MouseDown += rect_MouseDown;
                newRect.MouseMove += rect_MouseMove;
                newRect.MouseUp   += rect_MouseUp;
                FRectGroup.Children.Add(newRect);
                FRects.Add(newRect);
                handler = new RectangleSizeHandler(newRect, e.SessionID, FRectGroup.Transforms[0].Matrix);
            }
            else
            {
                handler = new MoveAllRectsHandler(FRectGroup, e.SessionID);
            }

            FSessionParams[e.SessionID].MouseHandler = handler.MouseDown(sender, ConvertMouseArg(e));
        }
Exemple #6
0
        //click rect
        void rect_MouseDown(object sender, MouseArg e)
        {
            if (!FSessionParams.ContainsKey(e.SessionID))
            {
                return;
            }
            var handler = GetHandler(e.SessionID);

            if (handler != null)
            {
                return;
            }

            if (e.Button == 1)             //drag
            {
                handler = new SelectedRectsMoveHandler(FSessionParams[e.SessionID].SelectedRects, sender as SvgRectangle, e.SessionID);

                FSessionParams[e.SessionID].MouseHandler = handler.MouseDown(sender, ConvertMouseArg(e));
            }
            else             //remove
            {
                //removing stuff
                FRectGroup.Children.Remove(sender as SvgRectangle);
                FRects.Remove(sender as SvgRectangle);
            }
        }
Exemple #7
0
 public void Default_MouseUp(object sender, MouseArg e)
 {
     if (CheckMouseHandler(e))
     {
         MouseHandler = MouseHandler.MouseUp(sender, e);
     }
 }
Exemple #8
0
        public virtual IMouseEventHandler MouseUp(object sender, MouseArg arg)
        {
            pressed = false;
            MouseClick(sender, arg);

            return(null);
        }
Exemple #9
0
 public virtual IMouseEventHandler MouseDown(object sender, MouseArg arg)
 {
     pressed    = true;
     Button     = arg.Button;
     StartPoint = new PointF(arg.x, arg.y);
     LastPoint  = StartPoint;
     return(this);
 }
Exemple #10
0
 public override void MouseClick(object sender, MouseArg arg)
 {
     if (arg.Button == 3)
     {
         Instance.Parent.UpdateKeyframeMenu(Instance);
         Instance.Parent.ShowKeyframeMenu(arg);
     }
 }
Exemple #11
0
        public override void Default_MouseMove(object sender, MouseArg e)
        {
            base.Default_MouseMove(sender, e);

            MouseTimeLine.StartX = e.x;
            MouseTimeLine.EndX   = e.x;

            Ruler.MouseTimeLabel.X    = Math.Max(0, e.x - 110);
            Ruler.MouseTimeLabel.Text = Timer.TimeToString(Ruler.XPosToTime(e.x));
        }
Exemple #12
0
        public override IMouseEventHandler MouseUp(object sender, MouseArg arg)
        {
            FPreviouslySelected.Clear();

            Instance.Parent.SetSelectionRect(new RectangleF(0, 0, 0, 0));

            //add collected commands to history
            Instance.History.InsertOnly(FSelectionCommands);

            return(base.MouseUp(sender, arg));
        }
Exemple #13
0
        void Background_MouseClick(object sender, MouseArg e)
        {
            if (e.ClickCount >= 2)
            {
                var x = FRuler.XPosToTime(e.x);
                var y = YPosToValue(e.y);

                var kf  = new TLStringKeyframe(x, "text " + Keyframes.Count);
                var cmd = Command.Add(this.Model.Keyframes, kf);
                History.Insert(cmd);
            }
        }
Exemple #14
0
 public override void MouseClick(object sender, MouseArg arg)
 {
     if (FMoveCommands.CommandCount == 0)
     {
         switch (arg.Button)
         {
         case 3:
             //show rulermenu
             Instance.ShowMenu(arg);
             break;
         }
     }
 }
Exemple #15
0
        public void Default_MouseDown(object sender, MouseArg e)
        {
            //if there is a mouse handler, return
            if (MouseHandler != null)
            {
                return;
            }

            MouseHandler = GetMouseHandler(sender, e);
            if (CheckMouseHandler(e))
            {
                MouseHandler = MouseHandler.MouseDown(sender, e);
            }
        }
Exemple #16
0
 //dispatch events to parent
 void Background_MouseDown(object sender, MouseArg e)
 {
     if (sender == SizeBar)
     {
         Parent.Default_MouseDown(new TrackResizeMouseHandler(this, e.SessionID), e);
     }
     else if (sender == Label)
     {
         Parent.Default_MouseDown(new LabelDragMouseHandler(this, e.SessionID), e);
     }
     else
     {
         Parent.Default_MouseDown(this, e);
     }
 }
Exemple #17
0
        public override IMouseEventHandler MouseDown(object sender, MouseArg arg)
        {
            if (arg.Button == 1)
            {
                var ret = base.MouseDown(sender, arg);

                //start collecting movecommands in drag
                FMoveCommands = new CompoundCommand();

                return(ret);
            }
            else
            {
                return(null);
            }
        }
Exemple #18
0
        //delete on right click
        public override IMouseEventHandler MouseDown(object sender, MouseArg arg)
        {
            var ret = base.MouseDown(sender, arg);

            if ((arg.Button == 1) || (arg.Button == 3))
            {
                FWasSelected = Instance.Model.Selected.Value;
                var cmd = new CompoundCommand();
                if ((!FWasSelected) && (!arg.CtrlKey))
                {
                    //unselect all keyframes
                    foreach (var track in Instance.Parent.Parent.Tracks)
                    {
                        foreach (var kf in track.KeyframeViews.Where(x => x.Model.Selected.Value))
                        {
                            cmd.Append(Command.Set(kf.Model.Selected, false));
                        }
                    }
                }
                //set keyframe selected
                cmd.Append(Command.Set(Instance.Model.Selected, true));
                Instance.History.Insert(cmd);

                //start collecting movecommands in drag
                FMoveCommands = new CompoundCommand();

                //store initial values to operate on for being able to drag beyond min/max
                foreach (var track in Instance.Parent.Parent.Tracks)
                {
                    foreach (var kf in track.KeyframeViews.Where(x => x.Model.Selected.Value))
                    {
                        if (!FAffectedTracks.Contains(track))
                        {
                            FAffectedTracks.Add(track);
                        }

                        FSelectedKeyframes.Add(kf);

                        if (kf is ValueKeyframeView)
                        {
                            FActualValues.Add((kf as ValueKeyframeView).Model.Value.Value);
                        }
                    }
                }
            }
            return(ret);
        }
Exemple #19
0
        public override void MouseSelection(object sender, MouseArg arg, RectangleF rect)
        {
            var cmds = new CompoundCommand();

            foreach (var track in Instance.Parent.Tracks)
            {
                var trackRect = track.ToTrackRect(rect);
                foreach (var kf in track.KeyframeViews)
                {
                    var wasSelected = kf.Model.Selected.Value;
                    var isSelected  = kf.IsSelectedBy(trackRect);

                    if (arg.AltKey)
                    {
                        if (FPreviouslySelected.Contains(kf)) //only remove from previously selected
                        {
                            cmds.Append(Command.Set(kf.Model.Selected, !isSelected));
                        }
                    }
                    else if (arg.CtrlKey)
                    {
                        if (!FPreviouslySelected.Contains(kf)) //only add to previously selected
                        {
                            cmds.Append(Command.Set(kf.Model.Selected, isSelected));
                        }
                    }
                    else if (isSelected != wasSelected) //only send selection change
                    {
                        cmds.Append(Command.Set(kf.Model.Selected, isSelected));
                    }
                }
            }

            if (cmds.CommandCount > 0)
            {
                //execute changes immediately
                cmds.Execute();

                //collect changes for history
                FSelectionCommands.Append(cmds);
            }

            rect = new RectangleF(rect.X, rect.Y - Instance.Parent.FTrackGroup.Transforms[0].Matrix.Elements[5], rect.Width, rect.Height);
            Instance.Parent.SetSelectionRect(rect);
            Instance.Parent.UpdateScene();
        }
Exemple #20
0
        //delete on right click
        public override IMouseEventHandler MouseDown(object sender, MouseArg arg)
        {
            if (arg.Button == 1)
            {
                var ret = base.MouseDown(sender, arg);

                Instance.SizeBarDragRect.Width           = new SvgUnit(SvgUnitType.Percentage, 100);
                Instance.SizeBarDragRect.Height          = 20;
                Instance.SizeBarDragRect.X               = 0;
                Instance.SizeBarDragRect.Y               = Instance.Top - Instance.SizeBarDragRect.Height / 2 - (Instance.MainGroup.Parent.Transforms[0] as SvgTranslate).Y - Instance.SizeBar.Height / 2;
                Instance.SizeBarDragRect.Visible         = true;
                Instance.Label.FontWeight                = SvgFontWeight.bold;
                Instance.Label.CustomAttributes["style"] = "font-weight: bold;";
                return(ret);
            }
            else
            {
                return(null);
            }
        }
Exemple #21
0
        public override IMouseEventHandler MouseUp(object sender, MouseArg arg)
        {
            Instance.SizeBarDragRect.Visible         = false;
            Instance.Label.CustomAttributes["style"] = "";

            if (arg.Button == 1)
            {
                var oldOrder = Instance.Model.Order.Value;

                //send a commmand to set the order of each trackview
                var cmds = new CompoundCommand();
                if (FNewOrder > oldOrder)
                {
                    foreach (var track in Instance.Parent.Tracks.Where(x => x != Instance))
                    {
                        if ((track.Model.Order.Value > oldOrder) && (track.Model.Order.Value <= FNewOrder))
                        {
                            cmds.Append(Command.Set(track.Model.Order, track.Model.Order.Value - 1));
                        }
                    }
                }
                else
                {
                    foreach (var track in Instance.Parent.Tracks.Where(x => x != Instance))
                    {
                        if ((track.Model.Order.Value >= FNewOrder) && (track.Model.Order.Value < oldOrder))
                        {
                            cmds.Append(Command.Set(track.Model.Order, track.Model.Order.Value + 1));
                        }
                    }
                }

                cmds.Append(Command.Set(Instance.Model.Order, FNewOrder));

                Instance.History.Insert(cmds);
                //resort tracks after order
                //Instance.Parent.Tracks.Sort((t1, t2) => t1.Model.Order.Value.CompareTo(t2.Model.Order.Value));
            }

            return(base.MouseUp(sender, arg));
        }
Exemple #22
0
        public override void MouseClick(object sender, MouseArg arg)
        {
            if (!FWasMoved)
            {
                if (Instance == FRulerView)
                {
                    var rulerHandler = new RulerMouseHandler(FRulerView, null, null, SessionID);
                    rulerHandler.MouseClick(sender, arg);
                }
                else if (Instance == FTimelineView)
                {
                    FTimelineView.ShowMenu(arg);
                }
                else if (Instance == FTrackView)
                {
                    FTrackView.ShowTrackMenu(arg);
                }
            }

            base.MouseClick(sender, arg);
        }
Exemple #23
0
        public override IMouseEventHandler MouseUp(object sender, MouseArg arg)
        {
            if (arg.Button == 1)
            {
                //unselect?
                if (FWasSelected && !(FMoveCommands.CommandCount > 0))
                {
                    Instance.History.Insert(Command.Set(Instance.Model.Selected, false));
                }
                else
                {
                    //add collected commands to history
                    if (FMoveCommands.CommandCount > 0)
                    {
                        Instance.History.InsertOnly(FMoveCommands);
                    }
                }
            }

            return(base.MouseUp(sender, arg));
        }
Exemple #24
0
        private VMouseEventArgs ConvertMouseArg(MouseArg arg)
        {
            var button = MouseButtons.None;

            switch (arg.Button)
            {
            case 1:
                button = MouseButtons.Left;
                break;

            case 2:
                button = MouseButtons.Middle;
                break;

            case 3:
                button = MouseButtons.Right;
                break;

            default:
                break;
            }
            return(new VMouseEventArgs(button, arg.ClickCount, arg.x, arg.y, arg.AltKey, arg.ShiftKey, arg.CtrlKey, arg.SessionID));
        }
 void Background_MouseUp(object sender, MouseArg e)
 {
     FMouseDown = false;
 }
 void Background_MouseOver(object sender, MouseArg e)
 {
     FHovered = true;
     UpdateScene();
 }
 void Background_MouseOut(object sender, MouseArg e)
 {
     FHovered = false;
     UpdateScene();
 }
 protected void UpdateUIInfo(object sender, MouseArg m)
 {
     Console.WriteLine("Update");
 }
Exemple #29
0
 public void ShowKeyframeMenu(MouseArg e)
 {
     KeyframeMenu.Show(new PointF(e.x, e.y - Parent.FTrackGroup.Transforms[0].Matrix.Elements[5]));
 }
Exemple #30
0
 public void MouseDown(object sender, MouseArg e)
 {
     Parent.Default_MouseDown(sender, e);
 }
Exemple #31
0
 void StopButton_Click(object sender, MouseArg e)
 {
     Parent.Timer.Stop();
     UpdateScene();
 }
Exemple #32
0
 public void ShowTrackMenu(MouseArg e)
 {
     TrackMenu.Show(new PointF(e.x, e.y - Parent.FTrackGroup.Transforms[0].Matrix.Elements[5]));
 }
Exemple #33
0
 //rect mouse up
 void rect_MouseUp(object sender, MouseArg e)
 {
     HandlerDispatch(e.SessionID, handler => handler.MouseUp(sender, ConvertMouseArg(e)));
 }
Exemple #34
0
 //move on background
 void background_MouseMove(object sender, MouseArg e)
 {
     HandlerDispatch(e.SessionID, handler => handler.MouseMove(sender, ConvertMouseArg(e)));
 }
Exemple #35
0
 public void ShowMenu(MouseArg arg)
 {
     UpdateMenu();
     Menu.Show(new PointF(arg.x, 0));
 }
 void child_Click(object sender, MouseArg e)
 {
     RaiseMouseClick(this, e);
 }
Exemple #37
0
        void Background_MouseClick(object sender, MouseArg e)
        {
            if(e.ClickCount >= 2)
            {
                var x = FRuler.XPosToTime(e.x);
                var y = YPosToValue(e.y);

                var kf = new TLStringKeyframe(x, "text " + Keyframes.Count);
                var cmd = Command.Add(this.Model.Keyframes, kf);
                History.Insert(cmd);
            }
        }
Exemple #38
0
 //dispatch events to parent
 void Background_MouseDown(object sender, MouseArg e)
 {
     Parent.Default_MouseDown(sender, e);
 }
Exemple #39
0
 //dispatch events to parent
 void Background_MouseDown(object sender, MouseArg e)
 {
     if(sender == SizeBar)
         Parent.Default_MouseDown(new TrackResizeMouseHandler(this, e.SessionID), e);
     else if (sender == Label)
         Parent.Default_MouseDown(new LabelDragMouseHandler(this, e.SessionID), e);
     else
         Parent.Default_MouseDown(this, e);
 }
Exemple #40
0
 void Background_MouseUp(object sender, MouseArg e)
 {
     Parent.Default_MouseUp(this, e);
 }
Exemple #41
0
 void PlayButton_Click(object sender, MouseArg e)
 {
     Parent.Timer.Play(!Parent.Timer.IsRunning);
     UpdateScene();
 }
Exemple #42
0
 void Background_MouseUp(object sender, MouseArg e)
 {
     FMouseDown = false;
 }
Exemple #43
0
 public void MouseUp(object sender, MouseArg e)
 {
     Parent.Default_MouseUp(sender, e);
 }