protected override void OnPointerMoved(PointerRoutedEventArgs e) { e.Handled = true; if (_ignorePointerMoved) { _ignorePointerMoved = false; return; } _rootRef.Point2 = _rootDelta.Point2 = GridPoint(e); _drawRef.Point2 = _drawDelta.Point2 = DrawPoint(e); if (_isPointerPressed && _eventAction.TryGetValue(EventId.Drag, out Action drag)) { drag?.Invoke(); if (_enableHitTest) { HitTest(_drawRef.Point2); } EditorCanvas.Invalidate(); } else if (_eventAction.TryGetValue(EventId.Hover, out Action hover)) { HitTest(_drawRef.Point2); if (_selector.IsChanged) { Debug.WriteLine($"- - - - - - - - - Hit { _selector.HitLocation}"); hover?.Invoke(); } } }
private void EditContactComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (EditContact == Edit_Contact.Edit) { AutoFlipGrid.Visibility = Windows.UI.Xaml.Visibility.Collapsed; ContactGrid.Visibility = Windows.UI.Xaml.Visibility.Collapsed; SelectorCanvas.Visibility = Windows.UI.Xaml.Visibility.Visible; PickerCanvas.Visibility = Windows.UI.Xaml.Visibility.Visible; PropertyGrid.Visibility = Windows.UI.Xaml.Visibility.Visible; ColorPickerGrid.Visibility = Windows.UI.Xaml.Visibility.Visible; SetIdleOnVoid(); } else if (EditContact == Edit_Contact.Contacts) { PropertyGrid.Visibility = Windows.UI.Xaml.Visibility.Collapsed; ColorPickerGrid.Visibility = Windows.UI.Xaml.Visibility.Collapsed; SelectorCanvas.Visibility = Windows.UI.Xaml.Visibility.Collapsed; PickerCanvas.Visibility = Windows.UI.Xaml.Visibility.Collapsed; AutoFlipGrid.Visibility = Windows.UI.Xaml.Visibility.Collapsed; ContactGrid.Visibility = Windows.UI.Xaml.Visibility.Visible; SetContactsOnVoid(); } else { PropertyGrid.Visibility = Windows.UI.Xaml.Visibility.Collapsed; ColorPickerGrid.Visibility = Windows.UI.Xaml.Visibility.Collapsed; SelectorCanvas.Visibility = Windows.UI.Xaml.Visibility.Collapsed; PickerCanvas.Visibility = Windows.UI.Xaml.Visibility.Collapsed; ContactGrid.Visibility = Windows.UI.Xaml.Visibility.Collapsed; AutoFlipGrid.Visibility = Windows.UI.Xaml.Visibility.Visible; SetContactsOnVoid(); } EditorCanvas.Invalidate(); }
private void OnEditorComparePointerReleased() { EditorCompareTop.IsChecked = false; EditorCompareBottom.IsChecked = false; if (EditorCanvas.Visibility == Visibility.Visible) { cbm = CanvasBitmap.CreateFromBytes(EditorCanvas, lastDecodeResult.Bytes, lastDecodeResult.Width, lastDecodeResult.Height, DirectXPixelFormat.B8G8R8A8UIntNormalized); brush = new CanvasImageBrush(EditorCanvas, cbm) { Interpolation = CanvasImageInterpolation.NearestNeighbor }; EditorCanvas.Width = lastDecodeResult.Width; EditorCanvas.Height = lastDecodeResult.Height; EditorCanvas.Invalidate(); } else { if (EditorText.Visibility == Visibility.Visible) { EditorText.Text = currentStrAll; } else if (EditorHex.Visibility == Visibility.Visible) { EditorHex.Bytes = new byte[currentBytes.Length]; currentBytes.CopyTo(EditorHex.Bytes, 0); EditorHex.Invalidate(); } } }
private void OnEditorComparePointerPressed() { EditorCompareTop.IsChecked = true; EditorCompareBottom.IsChecked = true; if (EditorCanvas.Visibility == Visibility.Visible) { cbm = CanvasBitmap.CreateFromBytes(EditorCanvas, editFileParams.Bytes, editFileParams.Width, editFileParams.Height, DirectXPixelFormat.B8G8R8A8UIntNormalized); brush = new CanvasImageBrush(EditorCanvas, cbm) { Interpolation = CanvasImageInterpolation.NearestNeighbor }; EditorCanvas.Width = editFileParams.Width; EditorCanvas.Height = editFileParams.Height; EditorCanvas.Invalidate(); } else { if (EditorText.Visibility == Visibility.Visible) { currentStrAll = EditorText.Text; EditorText.Text = initialStrAll; } else if (EditorHex.Visibility == Visibility.Visible) { currentBytes = new Byte[EditorHex.Bytes.Length]; EditorHex.Bytes.CopyTo(currentBytes, 0); EditorHex.Bytes = new Byte[initialBytes.Length]; initialBytes.CopyTo(EditorHex.Bytes, 0); EditorHex.Invalidate(); } } }
private void DragNewShape() { Shape.MoveCenter(DragShapes, ShapeDelta); RawPoint1 = RawPoint2; ShapePoint1 = ShapePoint(RawPoint2); EditorCanvas.Invalidate(); }
private void TryInvokeEventAction(PointerEvent e) { if (_eventAction.TryGetValue(EventKey(e), out Action action)) { action.Invoke(); EditorCanvas.Invalidate(); } }
private void RecenterButton_Click(object sender, Windows.UI.Xaml.RoutedEventArgs e) { if (SelectedShapes.Count > 0) { Shape.SetCenter(SelectedShapes, Vector2.Zero); EditorCanvas.Invalidate(); } }
private void DragCenterPoint() { Shape.MoveCenter(SelectedShapes, ShapeDelta); Shape.LockSliders(SelectedShapes, true); SetSizeSliders(); EditorCanvas.Invalidate(); }
private void DragContact_SEC() { if (Target_Contacts.TryGetValue(Target.SEC, out (Contact con, (sbyte dx, sbyte dy)pnt, byte siz)val)) { var p = ClampPoint(ShapePoint2, TargetIndex.SEC); Target_Contacts[Target.SEC] = (val.con, Shape.ToSByte(p), val.siz); } EditorCanvas.Invalidate(); }
private async void EditorPreview_Checked(object sender, RoutedEventArgs e) { if (EditorText.Visibility == Visibility.Visible) { try { lastDecodeResult = await decoder.decode(ASCIIEncoding.ASCII.GetBytes(EditorText.Text)); } catch { var loader = new ResourceLoader(); var warningTilte = loader.GetString("DecodeFailureTitle"); var warningMesage = loader.GetString("DecodeFailureMessage"); var ok = loader.GetString("Ok"); MessageDialog decodeFailedDialog = new MessageDialog(warningMesage, warningTilte); decodeFailedDialog.Commands.Add(new UICommand(ok)); decodeFailedDialog.DefaultCommandIndex = 0; await decodeFailedDialog.ShowAsync(); return; } } else if (EditorHex.Visibility == Visibility.Visible) { try { lastDecodeResult = await decoder.decode(EditorHex.Bytes); } catch (Exception) { var loader = new ResourceLoader(); var warningTilte = loader.GetString("DecodeFailureTitle"); var warningMesage = loader.GetString("DecodeFailureMessage"); var ok = loader.GetString("Ok"); MessageDialog decodeFailedDialog = new MessageDialog(warningMesage, warningTilte); decodeFailedDialog.Commands.Add(new UICommand(ok)); decodeFailedDialog.DefaultCommandIndex = 0; await decodeFailedDialog.ShowAsync(); return; } } cbm = CanvasBitmap.CreateFromBytes(EditorCanvas, lastDecodeResult.Bytes, lastDecodeResult.Width, lastDecodeResult.Height, DirectXPixelFormat.B8G8R8A8UIntNormalized); brush = new CanvasImageBrush(EditorCanvas, cbm) { Interpolation = CanvasImageInterpolation.NearestNeighbor }; EditorCanvas.Width = lastDecodeResult.Width; EditorCanvas.Height = lastDecodeResult.Height; EditorCanvas.Visibility = Visibility.Visible; EditorEditGrid.RowDefinitions[editorRow].Height = new GridLength(0, GridUnitType.Pixel); EditorEditGrid.RowDefinitions[2].Height = new GridLength(1, GridUnitType.Star); this.Keyboard.Visibility = Visibility.Collapsed; EditorCanvas.Invalidate(); }
private void SetDragNewShape() { if (SetEditorState(EditorState.DragNewShape)) { SetEventAction(PointerEvent.Drag, DragNewShape); SetEventAction(PointerEvent.End, EndDragNewShape); EditorCanvas.Invalidate(); } }
public void Refresh() { if (EditorCanvas == null) { return; } CheckGraphSymbols(); EditorCanvas.Invalidate(); }
private void DimensionSlider_ValueChanged(object sender, Windows.UI.Xaml.Controls.Primitives.RangeBaseValueChangedEventArgs e) { var value = (float)DimensionSlider.Value; if (Changed(value, _polyDimension)) { Shape.SetDimension(SelectedShapes, value); SetSizeSliders(); EditorCanvas.Invalidate(); } }
private void ChangeColorAtPoint(Point point) { // Change the color according to the current color int x = (int)point.X; int y = (int)point.Y; _colors[y, x] = _currentColor; // This forces us to redraw EditorCanvas.Invalidate(); }
private void KeyboardAccelerator_Invoked(KeyboardAccelerator sender, KeyboardAcceleratorInvokedEventArgs args) { var k = args.KeyboardAccelerator.Key; var m = args.KeyboardAccelerator.Modifiers; if (_eventAction.TryGetValue(EventKey(k, m), out Action action)) { action.Invoke(); EditorCanvas.Invalidate(); } }
private void TernarySizeSlider_ValueChanged(object sender, Windows.UI.Xaml.Controls.Primitives.RangeBaseValueChangedEventArgs e) { var value = (float)TernarySizeSlider.Value; if (Changed(value, _ternarySize)) { Shape.ResizeTernaryAxis(SelectedShapes, value); SetSizeSliders(); EditorCanvas.Invalidate(); } }
private void SetNewContactSize(Target targ, double value) { if (_contactSizeChangeEnabled) { var d = (float)(value / 100); if (Target_Contacts.TryGetValue(targ, out (Contact c, (sbyte x, sbyte y)p, byte s)v)) { Target_Contacts[targ] = (v.c, v.p, Shape.ToByte(d)); EditorCanvas.Invalidate(); } } }
private void SetIdleOnVoid() { if (SetEditorState(EditorState.IdleOnVoid)) { PickerShape = null; SelectedShapes.Clear(); SetSizeSliders(); PickerCanvas.Invalidate(); EditorCanvas.Invalidate(); } }
private void HorizontalSizeSlider_ValueChanged(object sender, Windows.UI.Xaml.Controls.Primitives.RangeBaseValueChangedEventArgs e) { var value = (float)HorizontalSizeSlider.Value; if (Changed(value, _horizontalSize)) { Shape.ResizeHorizontal(SelectedShapes, value); LockPolyline(); SetSizeSliders(); EditorCanvas.Invalidate(); } }
private void SetShapesAreSelected() { if (SetEditorState(EditorState.ShapesAreSelected)) //enable hit test { SetEventAction(PointerEvent.Begin, TargetPointerDown); SetEventAction(PointerEvent.Hover, TargetPointerHover); PickerShape = null; PickerCanvas.Invalidate(); EditorCanvas.Invalidate(); } }
private void AddNewShape() { if (PickerShape != null) { var newShape = PickerShape.Clone(ShapePoint1); DragShapes[0] = newShape; SymbolShapes.Add(newShape); SetProperty(newShape, ProertyId.All); EditorCanvas.Invalidate(); } }
private void CopyButton_Click(object sender, Windows.UI.Xaml.RoutedEventArgs e) { if (SelectedShapes.Count > 0) { CutCopyShapes.Clear(); foreach (var shape in SelectedShapes) { CutCopyShapes.Add(shape.Clone()); } SelectedShapes.Clear(); EditorCanvas.Invalidate(); } }
private void PickerCanvas_PointerReleased(object sender, PointerRoutedEventArgs e) { var index = GetPickerShapeIndex(e); if (index < 0 || (index != _pickerIndex)) { return; } SetPicker(PickerShapes[index]); PickerCanvas.Invalidate(); EditorCanvas.Invalidate(); }
private void PasteButton_Click(object sender, Windows.UI.Xaml.RoutedEventArgs e) { if (CutCopyShapes.Count > 0) { SelectedShapes.Clear(); foreach (var template in CutCopyShapes) { var shape = template.Clone(); SymbolShapes.Add(shape); SelectedShapes.Add(shape); } SetShapesAreSelected(); EditorCanvas.Invalidate(); } }
private void EndTargetDrag() { if (IsKillZone()) { RestorePointerCursor(); if (!_polylineTarget.TryDeletePoint(_linePointIndex)) { SymbolShapes.Remove(_polylineTarget); _targetPoints.Clear(); SetIdleOnVoid(); } } ClearEventAction(PointerEvent.Drag); EditorCanvas.Invalidate(); }
private void SelectorCanvas_PointerMoved(object sender, PointerRoutedEventArgs e) { if (_selectPointerPressed && _selectorIndex >= 0 && SelectedShapes.Count == 0) { var index = GetSelectorIndex(e); if (index >= 0 && index != _selectorIndex && SelectedShapes.Count == 0) { var shape = SymbolShapes[_selectorIndex]; SymbolShapes[_selectorIndex] = SymbolShapes[index]; SymbolShapes[index] = shape; _selectorIndex = index; _ignoreSelectPointerReleased = true; EditorCanvas.Invalidate(); } } }
private void DragLinePoint() { _polylineTarget.MovePoint(_linePointIndex, ShapeDelta); Shape.LockSliders(SelectedShapes, true); SetSizeSliders(); if (IsKillZone()) { TrySetNewCursor(CoreCursorType.UniversalNo); } else { RestorePointerCursor(); } EditorCanvas.Invalidate(); }
private void DragContact_NEC() { if (Target_Contacts.TryGetValue(Target.NEC, out (Contact con, (sbyte dx, sbyte dy)pnt, byte siz)val)) { var d = ShapePoint2.Y; if (d < -1f) { d = -1f; } if (d > -0.1f) { d = -0.1f; } var p = new Vector2(-d, d); Target_Contacts[Target.NEC] = (val.con, Shape.ToSByte(p), val.siz); } EditorCanvas.Invalidate(); }
private void ShapeSelectorHit(int index) { var shape = SymbolShapes[index]; if (IsSelectOneOrMoreShapeMode) { if (SelectedShapes.Contains(shape)) { SelectedShapes.Remove(shape); } else { SelectedShapes.Add(shape); } } else { SelectedShapes.Clear(); SelectedShapes.Add(shape); } GrtProperty(shape); PickerShape = null; if (SelectedShapes.Count > 0) { SetShapesAreSelected(); } else { SetIdleOnVoid(); } PickerShape = null; SetSizeSliders(); PickerCanvas.Invalidate(); EditorCanvas.Invalidate(); }
public override bool HandleDragMove(MouseEventArgs e) { if (e.Location == _prevLocation) { return(true); } var loc = _canvas.TranslateToControlPoint(e.Location); var delta = (Size)loc - (Size)_prevLocation; if (_canvas.CanvasBackgroundImage != null) { _canvas.Invalidate(); } _canvas.AutoScrollPosition = new Point( -_canvas.AutoScrollPosition.X - delta.Width, -_canvas.AutoScrollPosition.Y - delta.Height ); _prevLocation = loc; return(true); }