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); }
public override IMouseEventHandler MouseUp(object sender, MouseArg arg) { //add collected commands to history Instance.History.InsertOnly(FMoveCommands); return(base.MouseUp(sender, arg)); }
//default event dispatching public virtual void Default_MouseMove(object sender, MouseArg e) { if (CheckMouseHandler(e)) { MouseHandler = MouseHandler.MouseMove(sender, e); } }
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)); }
//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)); }
//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); } }
public void Default_MouseUp(object sender, MouseArg e) { if (CheckMouseHandler(e)) { MouseHandler = MouseHandler.MouseUp(sender, e); } }
public virtual IMouseEventHandler MouseUp(object sender, MouseArg arg) { pressed = false; MouseClick(sender, arg); return(null); }
public virtual IMouseEventHandler MouseDown(object sender, MouseArg arg) { pressed = true; Button = arg.Button; StartPoint = new PointF(arg.x, arg.y); LastPoint = StartPoint; return(this); }
public override void MouseClick(object sender, MouseArg arg) { if (arg.Button == 3) { Instance.Parent.UpdateKeyframeMenu(Instance); Instance.Parent.ShowKeyframeMenu(arg); } }
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)); }
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)); }
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); } }
public override void MouseClick(object sender, MouseArg arg) { if (FMoveCommands.CommandCount == 0) { switch (arg.Button) { case 3: //show rulermenu Instance.ShowMenu(arg); break; } } }
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); } }
//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); } }
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); } }
//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); }
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(); }
//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); } }
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)); }
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); }
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)); }
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"); }
public void ShowKeyframeMenu(MouseArg e) { KeyframeMenu.Show(new PointF(e.x, e.y - Parent.FTrackGroup.Transforms[0].Matrix.Elements[5])); }
public void MouseDown(object sender, MouseArg e) { Parent.Default_MouseDown(sender, e); }
void StopButton_Click(object sender, MouseArg e) { Parent.Timer.Stop(); UpdateScene(); }
public void ShowTrackMenu(MouseArg e) { TrackMenu.Show(new PointF(e.x, e.y - Parent.FTrackGroup.Transforms[0].Matrix.Elements[5])); }
//rect mouse up void rect_MouseUp(object sender, MouseArg e) { HandlerDispatch(e.SessionID, handler => handler.MouseUp(sender, ConvertMouseArg(e))); }
//move on background void background_MouseMove(object sender, MouseArg e) { HandlerDispatch(e.SessionID, handler => handler.MouseMove(sender, ConvertMouseArg(e))); }
public void ShowMenu(MouseArg arg) { UpdateMenu(); Menu.Show(new PointF(arg.x, 0)); }
void child_Click(object sender, MouseArg e) { RaiseMouseClick(this, e); }
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); } }
//dispatch events to parent void Background_MouseDown(object sender, MouseArg e) { Parent.Default_MouseDown(sender, e); }
//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); }
void Background_MouseUp(object sender, MouseArg e) { Parent.Default_MouseUp(this, e); }
void PlayButton_Click(object sender, MouseArg e) { Parent.Timer.Play(!Parent.Timer.IsRunning); UpdateScene(); }
public void MouseUp(object sender, MouseArg e) { Parent.Default_MouseUp(sender, e); }