private void OnUIGestureEnd(object sender, RoutedEventArgs e) { using (this.onUIGestureRegion.UseEnterScope()) { UIElement source = e.Source as UIElement; if (source != null) { FloodFillToolHandleType handleType = FloodFillToolUIBase <MagicWandTool, MagicWandToolChanges> .GetHandleType(source); switch (handleType) { case FloodFillToolHandleType.Canvas: case FloodFillToolHandleType.Origin: case FloodFillToolHandleType.Move: if ((this.State != TransactedToolState.Drawing) || !this.mouseInputDrawingAgent.IsActive) { break; } this.mouseInputDrawingAgent.TransactionToken.End(); base.VerifyState(TransactedToolState.Dirty); return; default: throw ExceptionUtil.InvalidEnumArgumentException <FloodFillToolHandleType>(handleType, "sender.(MagicWandToolUI.HandleType)"); } if ((this.State == TransactedToolState.Editing) && this.mouseInputEditingAgent.IsActive) { this.mouseInputEditingAgent.TransactionToken.End(); base.VerifyState(TransactedToolState.Dirty); } } } }
private void OnUIDragMove(object sender, MouseEventArgs e) { using (this.onUIGestureRegion.UseEnterScope()) { MagicWandToolChanges changes2; UIElement source = e.Source as UIElement; if (source != null) { PointDouble position = e.GetPosition(this.UI); FloodFillToolHandleType handleType = FloodFillToolUIBase <MagicWandTool, MagicWandToolChanges> .GetHandleType(source); PointDouble?nullable = null; switch (handleType) { case FloodFillToolHandleType.Canvas: if ((this.State == TransactedToolState.Drawing) && this.mouseInputDrawingAgent.IsActive) { nullable = new PointDouble?(this.gestureBeginCanvasPt); } break; case FloodFillToolHandleType.Origin: case FloodFillToolHandleType.Move: if ((this.State == TransactedToolState.Editing) && this.mouseInputEditingAgent.IsActive) { nullable = new PointDouble?(base.ChangesBeforeEditing.OriginPoint); } break; default: throw ExceptionUtil.InvalidEnumArgumentException <FloodFillToolHandleType>(handleType, "sender.(MagicWandToolUI.HandleType)"); } if (nullable.HasValue) { VectorDouble num2 = (VectorDouble)(position - this.gestureBeginCanvasPt); PointDouble originPoint = nullable.Value + num2; MagicWandToolChanges changes = base.Changes; changes2 = new MagicWandToolChanges(changes.DrawingSettingsValues, originPoint, changes.SelectionCombineModeOverride, changes.FloodModeOverride, changes.BaseGeometryPersistenceKey); if (!changes.Equals((ReferenceValue)changes2)) { switch (handleType) { case FloodFillToolHandleType.Canvas: this.mouseInputDrawingAgent.TransactionToken.Changes = changes2; break; case FloodFillToolHandleType.Origin: case FloodFillToolHandleType.Move: goto Label_0139; } } } } return; Label_0139: this.mouseInputEditingAgent.TransactionToken.Changes = changes2; } }
private void OnUIDragEnd(object sender, MouseEventArgs e) { using (this.onUIGestureRegion.UseEnterScope()) { UIElement source = e.Source as UIElement; if (source != null) { FloodFillToolHandleType handleType = FloodFillToolUIBase <MagicWandTool, MagicWandToolChanges> .GetHandleType(source); } } }
private void OnUIGestureBegin(object sender, MouseEventArgs e) { using (this.onUIGestureRegion.UseEnterScope()) { UIElement source = e.Source as UIElement; if (source != null) { PointDouble position = e.GetPosition(this.UI); this.gestureBeginCanvasPt = position; if ((this.State == TransactedToolState.Drawing) && !this.mouseInputDrawingAgent.IsActive) { this.RequestCancelDrawing(); base.VerifyState(TransactedToolState.Idle); } if ((this.State == TransactedToolState.Editing) && !this.mouseInputEditingAgent.IsActive) { this.RequestEndEditing(); base.VerifyState(TransactedToolState.Dirty); } FloodFillToolHandleType handleType = FloodFillToolUIBase <MagicWandTool, MagicWandToolChanges> .GetHandleType(source); switch (handleType) { case FloodFillToolHandleType.Canvas: if (this.State == TransactedToolState.Dirty) { base.CommitChanges(); base.VerifyState(TransactedToolState.Idle); } if (this.State == TransactedToolState.Idle) { SelectionHistoryMemento selectionHistoryMementoAndPrepareForBeginDrawing = base.GetSelectionHistoryMementoAndPrepareForBeginDrawing(); GeometryList cachedGeometryList = base.Selection.GetCachedGeometryList(); SelectionCombineMode? selectionCombineModeOverride = base.GetSelectionCombineModeOverride(); FloodMode? floodModeOverride = ((base.PresentationSource.PrimaryKeyboardDevice.Modifiers & ModifierKeys.Shift) == ModifierKeys.Shift) ? ((FloodMode?)1) : null; MagicWandToolChanges initialChanges = new MagicWandToolChanges(base.DrawingSettingsValues, position, selectionCombineModeOverride, floodModeOverride, cachedGeometryList); base.BeginDrawing(this.mouseInputDrawingAgent, initialChanges, selectionHistoryMementoAndPrepareForBeginDrawing); } return; case FloodFillToolHandleType.Origin: case FloodFillToolHandleType.Move: if (this.State == TransactedToolState.Dirty) { base.BeginEditing(this.mouseInputEditingAgent); } return; } throw ExceptionUtil.InvalidEnumArgumentException <FloodFillToolHandleType>(handleType, "sender.(MagicWandToolUI.HandleType)"); } } }
public static void SetHandleType(UIElement target, FloodFillToolHandleType value) { target.SetValue(FloodFillToolUIBase <TTool, TChanges> .HandleTypeProperty, EnumUtil.GetBoxed <FloodFillToolHandleType>(value)); }