public override void Run(Window window) { _background = new Background(window); var windowSize = window.ScreenSize; _background.Color = Color.White; _background.Resize(windowSize.Width, windowSize.Height); _background.Show(); _box1 = new Rectangle(window) { Color = Color.Yellow }; _box1.Resize(400, 600); _box1.Move(160, 160); _box1.Show(); _log = new Label(window); _log.Resize(700, 1280 - 780); _log.Move(10, 770); _log.Show(); _logEntries = new List <string>(); Log("Double tap to register additional gestures. Tripple tap to unregister them."); _glayer = new GestureLayer(_box1); _glayer.Attach(_box1); _glayer.SetTapCallback(GestureLayer.GestureType.Tap, GestureLayer.GestureState.End, (info) => { Log("Tap {0},{1}", info.X, info.Y); }); _glayer.SetTapCallback(GestureLayer.GestureType.DoubleTap, GestureLayer.GestureState.End, (info) => { Log("DoubleTap {0},{1} {2}", info.X, info.Y, info.FingersCount); _glayer.SetLineCallback(GestureLayer.GestureState.End, (line) => { Log("Line {0},{1}-{2},{3}, M:{4},{5}", line.X1, line.Y1, line.X2, line.Y2, line.HorizontalMomentum, line.VerticalMomentum); }); _glayer.SetFlickCallback(GestureLayer.GestureState.End, (flick) => { Log("Flick {0},{1}-{2},{3}, M:{4},{5}", flick.X1, flick.Y1, flick.X2, flick.Y2, flick.HorizontalMomentum, flick.VerticalMomentum); }); _glayer.RotateStep = 3; _glayer.SetRotateCallback(GestureLayer.GestureState.Move, (rotate) => { Log("Rotation {0},{1} a:{2:F3} ba:{3:F3}", rotate.X, rotate.Y, rotate.Angle, rotate.BaseAngle); }); _glayer.SetZoomCallback(GestureLayer.GestureState.End, (zoom) => { Log("Zoom {0},{1} r:{2} z:{3:F3}", zoom.X, zoom.Y, zoom.Radius, zoom.Zoom); }); Log("Line, Flick, Rotate, and Zoom callbacks enabled."); }); _glayer.SetTapCallback(GestureLayer.GestureType.TripleTap, GestureLayer.GestureState.End, (info) => { Log("TrippleTap {0},{1} {2}", info.X, info.Y, info.FingersCount); _glayer.SetLineCallback(GestureLayer.GestureState.End, null); _glayer.SetFlickCallback(GestureLayer.GestureState.End, null); _glayer.SetRotateCallback(GestureLayer.GestureState.Move, null); _glayer.SetZoomCallback(GestureLayer.GestureState.End, null); Log("Cleared Line, Flick, Rotate, and Zoom callbacks."); }); // Momentum is not used, it seems that it conflicts with Rotate and Zoom }
void Initialize() { Window window = new Window("ElmSharpApp") { AvailableRotations = DisplayRotation.Degree_0 | DisplayRotation.Degree_180 | DisplayRotation.Degree_270 | DisplayRotation.Degree_90 }; window.BackButtonPressed += (s, e) => { Exit(); }; window.Show(); var conformant = new Conformant(window); conformant.Show(); var view = new SKCanvasView(conformant); conformant.SetContent(view); view.Show(); view.PaintSurface += OnRender; loop = new AnimatorLoop(); loop.Processed += (s, e) => { view.Invalidate(); }; root = new World((int)(1 / loop.FrameTime * 3)); loop.Start(); gestureLayer = new GestureLayer(conformant); gestureLayer.Attach(view); gestureLayer.SetTapCallback(GestureType.Tap, GestureState.Start, data => { var args = new TouchEventArgs { X = data.X, Y = data.Y, State = TouchState.Start }; root.DispatchEvent(args); }); gestureLayer.SetTapCallback(GestureType.Tap, GestureState.End, data => { var args = new TouchEventArgs { X = data.X, Y = data.Y, State = TouchState.End }; root.DispatchEvent(args); }); gestureLayer.SetTapCallback(GestureType.Tap, GestureState.Abort, data => { var args = new TouchEventArgs { X = data.X, Y = data.Y, State = TouchState.Abort }; root.DispatchEvent(args); }); //Drawable.DebugSquare = true; }
private void Initialize() { _gestureLayer?.Unrealize(); _gestureLayer = new GestureLayer(NativeView); _gestureLayer.Attach(NativeView); _gestureLayer.SetMomentumCallback(GestureLayer.GestureState.Move, OnMoved); _gestureLayer.SetMomentumCallback(GestureLayer.GestureState.End, OnEnd); _gestureLayer.SetMomentumCallback(GestureLayer.GestureState.Abort, OnEnd); }
void Initialize() { AlignmentX = -1; AlignmentY = -1; WeightX = 1; WeightY = 1; _contentBox = new Box(_mainLayout); _contentBox.Show(); _mainLayout.PackEnd(_contentBox); _drawerBox = new Box(_mainLayout); _drawerBox.Show(); _mainLayout.PackEnd(_drawerBox); _drawerContentBox = new Box(_drawerBox); _drawerBox.PackEnd(_drawerContentBox); _drawerIconBox = new Box(_drawerBox); _drawerBox.PackEnd(_drawerIconBox); _drawerIcon = new EImage(this) { AlignmentY = -1, AlignmentX = -1, WeightX = 1, WeightY = 1 }; _drawerIcon.Show(); using (var stream = GetType().Assembly.GetManifestResourceStream(DefaultIcon)) { _drawerIcon.Load(stream); } _drawerIconBox.PackEnd(_drawerIcon); _contentGesture = new GestureLayer(_contentBox); _contentGesture.Attach(_contentBox); _contentGesture.SetMomentumCallback(GestureLayer.GestureState.Start, OnContentDragStarted); _contentGesture.SetMomentumCallback(GestureLayer.GestureState.End, OnContentDragEnded); _contentGesture.SetMomentumCallback(GestureLayer.GestureState.Abort, OnContentDragEnded); _drawerGesture = new GestureLayer(_drawerIconBox); _drawerGesture.Attach(_drawerIconBox); _drawerGesture.SetMomentumCallback(GestureLayer.GestureState.Move, OnDrawerDragged); _drawerGesture.SetMomentumCallback(GestureLayer.GestureState.End, OnDrawerDragEnded); _drawerGesture.SetMomentumCallback(GestureLayer.GestureState.Abort, OnDrawerDragEnded); _mainLayout.SetLayoutCallback(OnLayout); _drawerBox.SetLayoutCallback(OnDrawerContentLayout); _contentBox.SetLayoutCallback(OnContentLayout); RotaryEventManager.Rotated += OnRotateEventReceived; }
void CreateGestureLayer() { _gestureLayer = new GestureLayer(_renderer.NativeView); _gestureLayer.Attach(_renderer.NativeView); _gestureLayer.Deleted += (s, e) => { _gestureLayer = null; Clear(); }; _gestureLayer.IsEnabled = _renderer.Element.IsEnabled; }
void CreateGestureLayer() { _gestureLayer = new GestureLayer(_renderer.NativeView); _gestureLayer.Attach(_renderer.NativeView); _gestureLayer.Deleted += (s, e) => { _gestureLayer = null; Clear(); }; UpdateGestureLayerEnabled(); }
public TizenUIElementPointersSupport(object owner, UnoCanvas canvas) { _owner = (CoreWindow)owner; _ownerEvents = (ICoreWindowEvents)owner; _canvas = canvas; _displayInformation = DisplayInformation.GetForCurrentView(); _gestureLayer = new GestureLayer(canvas); _gestureLayer.Attach(canvas); _gestureLayer.IsEnabled = true; SetupTapGesture(); SetupMomentumGesture(); }
public DrawerBox(EvasObject parent) : base(parent) { _drawerBox = new EBox(this); _drawerBox.SetAlignment(-1.0, -1.0); _drawerBox.SetWeight(1.0, 1.0); _drawerBox.Show(); _contentBox = new EBox(this); _contentBox.SetAlignment(-1.0, -1.0); _contentBox.SetWeight(1.0, 1.0); _contentBox.Show(); _dimArea = new EBox(this) { BackgroundColor = ThemeConstants.Shell.ColorClass.DefaultDrawerDimBackgroundColor, Opacity = ThemeConstants.Shell.Resources.DefaultDrawerDimOpacity }; _gestureOnDimArea = new GestureLayer(_dimArea); _gestureOnDimArea.SetTapCallback(GestureType.Tap, GestureLayer.GestureState.Start, OnTapped); _gestureOnDimArea.Attach(_dimArea); _splitPane = new Panes(this) { AlignmentX = -1, AlignmentY = -1, WeightX = 1, WeightY = 1, IsFixed = true, IsHorizontal = false, }; _panel = new Panel(this); _panel.SetScrollable(_isGestureEnabled); _panel.SetScrollableArea(1.0); _panel.Direction = PanelDirection.Left; _panel.Toggled += (object?sender, EventArgs e) => { if (_panel.IsOpen) { _dimArea.Show(); } Toggled?.Invoke(this, EventArgs.Empty); }; _mainWidget = _contentBox; ConfigureLayout(); SetLayoutCallback(OnLayout); }
protected override void OnAttached() { Console.WriteLine("Tizen OnAttached()"); _view = Control ?? Container; if (_view == null) { Console.WriteLine("_view is null. leaving"); return; } Console.WriteLine($"_view is {_view}"); if (Element is ITouchAndPressEffectConsumer touchAndPressEffectConsumer) { var gestureRecognizer = new GestureLayer(_view); gestureRecognizer.Attach(_view); Console.WriteLine("Attaching gesture recognizer to _view"); gestureRecognizer.SetTapCallback(GestureLayer.GestureType.Tap, GestureLayer.GestureState.Start, arg => { touchAndPressEffectConsumer.ConsumeEvent(EventType.Pressing); Console.WriteLine("Tizen: Tap Start"); }); gestureRecognizer.SetTapCallback(GestureLayer.GestureType.Tap, GestureLayer.GestureState.End, arg => { touchAndPressEffectConsumer.ConsumeEvent(EventType.Released); Console.WriteLine("Tizen: Tap End"); }); gestureRecognizer.SetTapCallback(GestureLayer.GestureType.Tap, GestureLayer.GestureState.Abort, arg => { touchAndPressEffectConsumer.ConsumeEvent(EventType.Cancelled); Console.WriteLine("Tizen: Tap Abort"); }); } else { Console.WriteLine("Element is NOT ITouchAndPressEffectConsumer"); } }
void CreateGestureLayer() { _gestureLayer = new GestureLayer(_renderer.NativeView); _gestureLayer.Attach(_renderer.NativeView); _gestureLayer.Deleted += (s, e) => { _gestureLayer = null; Clear(); }; UpdateGestureLayerEnabled(); if (Device.Idiom == TargetIdiom.TV) { _renderer.NativeView.KeyDown += OnKeyDown; } }
private void CreateGestureLayer(EvasObject parent) { if (gestureLayer == null) { gestureLayer = new GestureLayer(parent); gestureLayer.Attach(parent); gestureLayer.Deleted += (s, e) => { gestureLayer = null; DestroyGestureLayer(); }; gestureLayer.IsEnabled = true; AddMomentumGesture(); } }
void Initialize() { _gestureLayer?.Unrealize(); _gestureLayer = new GestureLayer(NativeView); _gestureLayer.Attach(NativeView); _gestureLayer.SetMomentumCallback(GestureLayer.GestureState.Move, OnMoved); _gestureLayer.SetMomentumCallback(GestureLayer.GestureState.End, OnEnd); _gestureLayer.SetMomentumCallback(GestureLayer.GestureState.Abort, OnEnd); SwipeDirection = 0; DrawerState = SwipeDrawerState.Closed; Control.AllowFocus(true); Control.Unfocused += (s, e) => { _ = SwipeCloseAsync(); }; }
protected override void OnElementChanged(ElementChangedEventArgs <Xamarin.Forms.Image> args) { base.OnElementChanged(args); if (Control == null) { return; } if (GestureRecognizer == null) { GestureRecognizer = new GestureLayer(Control); GestureRecognizer.Attach(Control); } if (args.NewElement == null) { GestureRecognizer.ClearCallbacks(); return; } else { Control.Clicked += SendClicked; } if (!(args.NewElement is ImageButton button)) { return; } GestureRecognizer.SetTapCallback(GestureLayer.GestureType.Tap, GestureLayer.GestureState.Start, x => { KeyDown(); }); GestureRecognizer.SetTapCallback(GestureLayer.GestureType.Tap, GestureLayer.GestureState.End, x => { KeyUp(); }); GestureRecognizer.SetTapCallback(GestureLayer.GestureType.LongTap, GestureLayer.GestureState.End, x => { KeyUp(); }); GestureRecognizer.SetTapCallback(GestureLayer.GestureType.LongTap, GestureLayer.GestureState.Abort, x => { KeyUp(); }); }
/// <summary> /// Initializes a new instance of the RefreshLayout class. /// </summary> /// <param name="parent"></param> public RefreshLayout(EvasObject parent) : base(parent) { MinimumHeight = _minimumSize; _refreshState = RefreshState.Idle; _refreshIcon = new RefreshIcon(parent); _contentLayout = new Box(parent); _refreshIcon.Show(); _contentLayout.Show(); _gestureLayer = new GestureLayer(parent); _gestureLayer.Attach(_contentLayout); _gestureLayer.SetMomentumCallback(GestureLayer.GestureState.Move, OnMoved); _gestureLayer.SetMomentumCallback(GestureLayer.GestureState.End, OnEnded); _gestureLayer.SetMomentumCallback(GestureLayer.GestureState.Abort, OnEnded); this.PackEnd(_contentLayout); this.PackEnd(_refreshIcon); SetLayoutCallback(OnLayoutUpdate); }
void Initialize() { Layout.KeyDown += (s, e) => { if (e.KeyName == "Return") { if (!_isTexstBlockFocused) { SetFocusOnTextBlock(true); e.Flags |= EvasEventFlag.OnHold; } } }; var gesture = new GestureLayer(Layout); gesture.Attach(Layout); gesture.SetTapCallback(GestureLayer.GestureType.Tap, GestureLayer.GestureState.End, (data) => SetFocusOnTextBlock(true)); Clicked += (s, e) => SetFocusOnTextBlock(true); }
public override void Run(Window window) { _background = new Background(window); var windowSize = window.ScreenSize; _background.Color = Color.White; _background.Resize(windowSize.Width, windowSize.Height); _background.Show(); _box1 = new Rectangle(window) { Color = Color.Yellow }; _box1.Resize(400, 600); _box1.Move(160, 160); _box1.Show(); _log = new Label(window); _log.Resize(700, 1280 - 780); _log.Move(10, 770); _log.Show(); _logEntries = new List <string>(); Log("Momentum & Roate Gesture Test."); _glayer = new GestureLayer(_box1); _glayer.Attach(_box1); _glayer.RotateStep = 3; _glayer.SetRotateCallback(GestureLayer.GestureState.Start, (rotate) => { _prevAngle = (int)rotate.BaseAngle; }); _glayer.SetRotateCallback(GestureLayer.GestureState.Move, (rotate) => { if (_box1.IsMapEnabled) { _angle += (int)rotate.Angle - _prevAngle; _prevAngle = (int)rotate.Angle; Log($"@@ Rotation XY:({rotate.X},{rotate.Y}) a:{rotate.Angle:F2} ba:{rotate.BaseAngle:F2} total:{_angle}"); ApplyTransformation(); } }); int prevX = 0, prevY = 0; _glayer.SetMomentumCallback(GestureLayer.GestureState.Start, (data) => { if (data.FingersCount == 1) { prevX = _glayer.EvasCanvas.Pointer.X; prevY = _glayer.EvasCanvas.Pointer.Y; } }); _glayer.SetMomentumCallback(GestureLayer.GestureState.Move, (data) => { if (data.FingersCount == 1) { data.X2 = _glayer.EvasCanvas.Pointer.X; data.Y2 = _glayer.EvasCanvas.Pointer.Y; _totalX += (data.X2 - prevX); _totalY += (data.Y2 - prevY); prevX = data.X2; prevY = data.Y2; Log($"@@ Momentum X:({prevX},{data.X2}), Y({prevY},{data.Y2}) = Total:({(data.X2 - prevX)}, {(data.Y2 - prevY)})"); ApplyTransformation(); } }); _glayer.SetMomentumCallback(GestureLayer.GestureState.Abort, (data) => { Log($"@@ Momentum Abort"); }); _glayer.SetMomentumCallback(GestureLayer.GestureState.End, (data) => { Log($"@@ Momentum End"); }); }
public override void Run(Window window) { Conformant conformant = new Conformant(window); conformant.Show(); gParent = new Box(window) { BackgroundColor = Color.Yellow, PassEvents = false, PropagateEvents = false, }; conformant.SetContent(gParent); Box parent = new Box(gParent) { AlignmentX = -1, AlignmentY = -1, WeightX = 1, WeightY = 1, BackgroundColor = Color.Green, PassEvents = false, PropagateEvents = false, }; Box child = new Box(parent) { AlignmentX = -1, AlignmentY = -1, WeightX = 1, WeightY = 1, BackgroundColor = Color.Blue, PassEvents = false, PropagateEvents = false, }; Check ch = new Check(child) { AlignmentX = -1, AlignmentY = -1, WeightX = 1, WeightY = 1, BackgroundColor = Color.Silver, PassEvents = false, PropagateEvents = false, }; gParent.PackEnd(parent); parent.PackEnd(child); child.PackEnd(ch); gParent.Show(); parent.Show(); child.Show(); ch.Show(); _gParentLayer = new GestureLayer(gParent); _gParentLayer.Attach(gParent); _gParentLayer.SetTapCallback(GestureLayer.GestureType.Tap, GestureLayer.GestureState.End, (info) => { Debug.WriteLine($"@@@ Grand Parent Tap : {gParent.PassEvents}, {gParent.PropagateEvents}, {gParent.RepeatEvents}"); }); _parentLayer = new GestureLayer(parent); _parentLayer.Attach(parent); _parentLayer.SetTapCallback(GestureLayer.GestureType.Tap, GestureLayer.GestureState.End, (info) => { Debug.WriteLine($"@@@ Parent Tap : {parent.PassEvents}, {parent.PropagateEvents}, {parent.RepeatEvents}"); }); childLayer = new GestureLayer(child); childLayer.Attach(child); childLayer.SetTapCallback(GestureLayer.GestureType.Tap, GestureLayer.GestureState.End, (info) => { Debug.WriteLine($"@@@ Child Tap : {child.PassEvents}, {child.PropagateEvents}, {child.RepeatEvents}"); }); chLayer = new GestureLayer(ch); chLayer.Attach(ch); chLayer.SetTapCallback(GestureLayer.GestureType.Tap, GestureLayer.GestureState.End, (info) => { Debug.WriteLine($"@@@ Check1 Tap : {ch.PassEvents}, {ch.PropagateEvents}, {ch.RepeatEvents}"); }); EvasObjectEvent eventGrand = new EvasObjectEvent(gParent, EvasObjectCallbackType.MouseDown); eventGrand.On += (s, e) => { Debug.WriteLine($"@@@ Grand Parent down : {gParent.PassEvents}, {gParent.PropagateEvents}, {gParent.RepeatEvents}"); }; EvasObjectEvent evnetParent = new EvasObjectEvent(parent, EvasObjectCallbackType.MouseDown); evnetParent.On += (s, e) => { Debug.WriteLine($"@@@ Parent down : {parent.PassEvents}, {parent.PropagateEvents}, {parent.RepeatEvents}"); }; EvasObjectEvent eventChild = new EvasObjectEvent(child, EvasObjectCallbackType.MouseDown); eventChild.On += (s, e) => { Debug.WriteLine($"@@@ Child down : {child.PassEvents}, {child.PropagateEvents}, {child.RepeatEvents}"); }; EvasObjectEvent eventCh = new EvasObjectEvent(ch, ch.RealHandle, EvasObjectCallbackType.MouseDown); eventCh.On += (s, e) => { Debug.WriteLine($"@@@ Check down : {ch.PassEvents}, {ch.PropagateEvents}, {ch.RepeatEvents}"); }; }