2 * Copyright(c) 2019 Samsung Electronics Co., Ltd.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
19 using System.ComponentModel;
20 using System.Runtime.InteropServices;
21 using Tizen.NUI.Components;
23 namespace Tizen.NUI.BaseComponents
26 /// View is the base class for all views.
28 /// <since_tizen> 3 </since_tizen>
29 public partial class View
31 private EventHandler _offWindowEventHandler;
32 private OffWindowEventCallbackType _offWindowEventCallback;
33 private EventHandlerWithReturnType<object, WheelEventArgs, bool> _wheelEventHandler;
34 private WheelEventCallbackType _wheelEventCallback;
35 private EventHandlerWithReturnType<object, KeyEventArgs, bool> _keyEventHandler;
36 private KeyCallbackType _keyCallback;
37 private EventHandlerWithReturnType<object, TouchEventArgs, bool> _touchDataEventHandler;
38 private TouchDataCallbackType _touchDataCallback;
39 private EventHandlerWithReturnType<object, HoverEventArgs, bool> _hoverEventHandler;
40 private HoverEventCallbackType _hoverEventCallback;
41 private EventHandler<VisibilityChangedEventArgs> _visibilityChangedEventHandler;
42 private VisibilityChangedEventCallbackType _visibilityChangedEventCallback;
43 private EventHandler _keyInputFocusGainedEventHandler;
44 private KeyInputFocusGainedCallbackType _keyInputFocusGainedCallback;
45 private EventHandler _keyInputFocusLostEventHandler;
46 private KeyInputFocusLostCallbackType _keyInputFocusLostCallback;
47 private EventHandler _onRelayoutEventHandler;
48 private OnRelayoutEventCallbackType _onRelayoutEventCallback;
49 private EventHandler _onWindowEventHandler;
50 private OnWindowEventCallbackType _onWindowEventCallback;
51 private EventHandler<LayoutDirectionChangedEventArgs> _layoutDirectionChangedEventHandler;
52 private LayoutDirectionChangedEventCallbackType _layoutDirectionChangedEventCallback;
53 // Resource Ready Signal
54 private EventHandler _resourcesLoadedEventHandler;
55 private ResourcesLoadedCallbackType _ResourcesLoadedCallback;
56 private EventHandler<BackgroundResourceLoadedEventArgs> _backgroundResourceLoadedEventHandler;
57 private _backgroundResourceLoadedCallbackType _backgroundResourceLoadedCallback;
59 private OnWindowEventCallbackType _onWindowSendEventCallback;
61 private void SendViewAddedEventToWindow(IntPtr data)
63 NUIApplication.GetDefaultWindow()?.SendViewAdded(this);
66 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
67 private delegate void OffWindowEventCallbackType(IntPtr control);
68 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
69 private delegate bool WheelEventCallbackType(IntPtr view, IntPtr wheelEvent);
70 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
71 private delegate bool KeyCallbackType(IntPtr control, IntPtr keyEvent);
72 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
73 private delegate bool TouchDataCallbackType(IntPtr view, IntPtr touchData);
74 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
75 private delegate bool HoverEventCallbackType(IntPtr view, IntPtr hoverEvent);
76 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
77 private delegate void VisibilityChangedEventCallbackType(IntPtr data, bool visibility, VisibilityChangeType type);
78 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
79 private delegate void ResourcesLoadedCallbackType(IntPtr control);
80 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
81 private delegate void _backgroundResourceLoadedCallbackType(IntPtr view);
82 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
83 private delegate void KeyInputFocusGainedCallbackType(IntPtr control);
84 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
85 private delegate void KeyInputFocusLostCallbackType(IntPtr control);
86 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
87 private delegate void OnRelayoutEventCallbackType(IntPtr control);
88 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
89 private delegate void OnWindowEventCallbackType(IntPtr control);
90 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
91 private delegate void LayoutDirectionChangedEventCallbackType(IntPtr data, ViewLayoutDirectionType type);
94 /// Event when a child is removed.
96 /// <since_tizen> 5 </since_tizen>
97 public new event EventHandler<ChildRemovedEventArgs> ChildRemoved;
99 /// Event when a child is added.
101 /// <since_tizen> 5 </since_tizen>
102 public new event EventHandler<ChildAddedEventArgs> ChildAdded;
105 /// An event for the KeyInputFocusGained signal which can be used to subscribe or unsubscribe the event handler provided by the user.<br />
106 /// The KeyInputFocusGained signal is emitted when the control gets the key input focus.<br />
108 /// <since_tizen> 3 </since_tizen>
109 public event EventHandler FocusGained
113 if (_keyInputFocusGainedEventHandler == null)
115 _keyInputFocusGainedCallback = OnKeyInputFocusGained;
116 this.KeyInputFocusGainedSignal().Connect(_keyInputFocusGainedCallback);
119 _keyInputFocusGainedEventHandler += value;
124 _keyInputFocusGainedEventHandler -= value;
126 if (_keyInputFocusGainedEventHandler == null && KeyInputFocusGainedSignal().Empty() == false)
128 this.KeyInputFocusGainedSignal().Disconnect(_keyInputFocusGainedCallback);
134 /// An event for the KeyInputFocusLost signal which can be used to subscribe or unsubscribe the event handler provided by the user.<br />
135 /// The KeyInputFocusLost signal is emitted when the control loses the key input focus.<br />
137 /// <since_tizen> 3 </since_tizen>
138 public event EventHandler FocusLost
142 if (_keyInputFocusLostEventHandler == null)
144 _keyInputFocusLostCallback = OnKeyInputFocusLost;
145 this.KeyInputFocusLostSignal().Connect(_keyInputFocusLostCallback);
148 _keyInputFocusLostEventHandler += value;
153 _keyInputFocusLostEventHandler -= value;
155 if (_keyInputFocusLostEventHandler == null && KeyInputFocusLostSignal().Empty() == false)
157 this.KeyInputFocusLostSignal().Disconnect(_keyInputFocusLostCallback);
163 /// An event for the KeyPressed signal which can be used to subscribe or unsubscribe the event handler provided by the user.<br />
164 /// The KeyPressed signal is emitted when the key event is received.<br />
166 /// <since_tizen> 3 </since_tizen>
167 public event EventHandlerWithReturnType<object, KeyEventArgs, bool> KeyEvent
171 if (_keyEventHandler == null)
173 _keyCallback = OnKeyEvent;
174 this.KeyEventSignal().Connect(_keyCallback);
177 _keyEventHandler += value;
182 _keyEventHandler -= value;
184 if (_keyEventHandler == null && KeyEventSignal().Empty() == false)
186 this.KeyEventSignal().Disconnect(_keyCallback);
192 /// An event for the OnRelayout signal which can be used to subscribe or unsubscribe the event handler.<br />
193 /// The OnRelayout signal is emitted after the size has been set on the view during relayout.<br />
195 /// <since_tizen> 3 </since_tizen>
196 public event EventHandler Relayout
200 if (_onRelayoutEventHandler == null)
202 _onRelayoutEventCallback = OnRelayout;
203 this.OnRelayoutSignal().Connect(_onRelayoutEventCallback);
206 _onRelayoutEventHandler += value;
211 _onRelayoutEventHandler -= value;
213 if (_onRelayoutEventHandler == null && OnRelayoutSignal().Empty() == false)
215 this.OnRelayoutSignal().Disconnect(_onRelayoutEventCallback);
222 /// An event for the touched signal which can be used to subscribe or unsubscribe the event handler provided by the user.<br />
223 /// The touched signal is emitted when the touch input is received.<br />
225 /// <since_tizen> 3 </since_tizen>
226 public event EventHandlerWithReturnType<object, TouchEventArgs, bool> TouchEvent
230 if (_touchDataEventHandler == null)
232 _touchDataCallback = OnTouch;
233 this.TouchSignal().Connect(_touchDataCallback);
236 _touchDataEventHandler += value;
241 _touchDataEventHandler -= value;
243 if (_touchDataEventHandler == null && TouchSignal().Empty() == false)
245 this.TouchSignal().Disconnect(_touchDataCallback);
252 /// An event for the hovered signal which can be used to subscribe or unsubscribe the event handler provided by the user.<br />
253 /// The hovered signal is emitted when the hover input is received.<br />
255 /// <since_tizen> 3 </since_tizen>
256 public event EventHandlerWithReturnType<object, HoverEventArgs, bool> HoverEvent
260 if (_hoverEventHandler == null)
262 _hoverEventCallback = OnHoverEvent;
263 this.HoveredSignal().Connect(_hoverEventCallback);
266 _hoverEventHandler += value;
271 _hoverEventHandler -= value;
273 if (_hoverEventHandler == null && HoveredSignal().Empty() == false)
275 this.HoveredSignal().Disconnect(_hoverEventCallback);
282 /// An event for the WheelMoved signal which can be used to subscribe or unsubscribe the event handler provided by the user.<br />
283 /// The WheelMoved signal is emitted when the wheel event is received.<br />
285 /// <since_tizen> 3 </since_tizen>
286 public event EventHandlerWithReturnType<object, WheelEventArgs, bool> WheelEvent
290 if (_wheelEventHandler == null)
292 _wheelEventCallback = OnWheelEvent;
293 this.WheelEventSignal().Connect(_wheelEventCallback);
295 _wheelEventHandler += value;
297 if (WindowWheelEventHandler == null)
299 NUIApplication.GetDefaultWindow().WheelEvent += OnWindowWheelEvent;
301 WindowWheelEventHandler += value;
306 _wheelEventHandler -= value;
307 if (_wheelEventHandler == null && WheelEventSignal().Empty() == false)
309 this.WheelEventSignal().Disconnect(_wheelEventCallback);
312 WindowWheelEventHandler -= value;
313 if (WindowWheelEventHandler == null)
315 NUIApplication.GetDefaultWindow().WheelEvent -= OnWindowWheelEvent;
321 /// An event for the OnWindow signal which can be used to subscribe or unsubscribe the event handler.<br />
322 /// The OnWindow signal is emitted after the view has been connected to the window.<br />
324 /// <since_tizen> 3 </since_tizen>
325 public event EventHandler AddedToWindow
329 if (_onWindowEventHandler == null)
331 _onWindowEventCallback = OnWindow;
332 this.OnWindowSignal().Connect(_onWindowEventCallback);
335 _onWindowEventHandler += value;
340 _onWindowEventHandler -= value;
342 if (_onWindowEventHandler == null && OnWindowSignal().Empty() == false)
344 this.OnWindowSignal().Disconnect(_onWindowEventCallback);
350 /// An event for the OffWindow signal, which can be used to subscribe or unsubscribe the event handler.<br />
351 /// OffWindow signal is emitted after the view has been disconnected from the window.<br />
353 /// <since_tizen> 3 </since_tizen>
354 public event EventHandler RemovedFromWindow
358 if (_offWindowEventHandler == null)
360 _offWindowEventCallback = OffWindow;
361 this.OffWindowSignal().Connect(_offWindowEventCallback);
364 _offWindowEventHandler += value;
369 _offWindowEventHandler -= value;
371 if (_offWindowEventHandler == null && OffWindowSignal().Empty() == false)
373 this.OffWindowSignal().Disconnect(_offWindowEventCallback);
379 /// An event for visibility change which can be used to subscribe or unsubscribe the event handler.<br />
380 /// This signal is emitted when the visible property of this or a parent view is changed.<br />
382 /// <since_tizen> 3 </since_tizen>
383 public event EventHandler<VisibilityChangedEventArgs> VisibilityChanged
387 if (_visibilityChangedEventHandler == null)
389 _visibilityChangedEventCallback = OnVisibilityChanged;
390 VisibilityChangedSignal(this).Connect(_visibilityChangedEventCallback);
393 _visibilityChangedEventHandler += value;
398 _visibilityChangedEventHandler -= value;
400 if (_visibilityChangedEventHandler == null && VisibilityChangedSignal(this).Empty() == false)
402 VisibilityChangedSignal(this).Disconnect(_visibilityChangedEventCallback);
408 /// Event for layout direction change which can be used to subscribe/unsubscribe the event handler.<br />
409 /// This signal is emitted when the layout direction property of this or a parent view is changed.<br />
411 /// <since_tizen> 4 </since_tizen>
412 public event EventHandler<LayoutDirectionChangedEventArgs> LayoutDirectionChanged
416 if (_layoutDirectionChangedEventHandler == null)
418 _layoutDirectionChangedEventCallback = OnLayoutDirectionChanged;
419 LayoutDirectionChangedSignal(this).Connect(_layoutDirectionChangedEventCallback);
422 _layoutDirectionChangedEventHandler += value;
427 _layoutDirectionChangedEventHandler -= value;
429 if (_layoutDirectionChangedEventHandler == null && LayoutDirectionChangedSignal(this).Empty() == false)
431 LayoutDirectionChangedSignal(this).Disconnect(_layoutDirectionChangedEventCallback);
437 /// An event for the ResourcesLoadedSignal signal which can be used to subscribe or unsubscribe the event handler provided by the user.<br />
438 /// This signal is emitted after all resources required by a view are loaded and ready.<br />
440 /// <since_tizen> 3 </since_tizen>
441 public event EventHandler ResourcesLoaded
445 if (_resourcesLoadedEventHandler == null)
447 _ResourcesLoadedCallback = OnResourcesLoaded;
448 this.ResourcesLoadedSignal().Connect(_ResourcesLoadedCallback);
451 _resourcesLoadedEventHandler += value;
456 _resourcesLoadedEventHandler -= value;
458 if (_resourcesLoadedEventHandler == null && ResourcesLoadedSignal().Empty() == false)
460 this.ResourcesLoadedSignal().Disconnect(_ResourcesLoadedCallback);
465 internal event EventHandler<BackgroundResourceLoadedEventArgs> BackgroundResourceLoaded
469 if (_backgroundResourceLoadedEventHandler == null)
471 _backgroundResourceLoadedCallback = OnBackgroundResourceLoaded;
472 this.ResourcesLoadedSignal().Connect(_backgroundResourceLoadedCallback);
475 _backgroundResourceLoadedEventHandler += value;
479 _backgroundResourceLoadedEventHandler -= value;
481 if (_backgroundResourceLoadedEventHandler == null && ResourcesLoadedSignal().Empty() == false)
483 this.ResourcesLoadedSignal().Disconnect(_backgroundResourceLoadedCallback);
488 internal TouchDataSignal TouchSignal()
490 TouchDataSignal ret = new TouchDataSignal(Interop.ActorSignal.Actor_TouchSignal(swigCPtr), false);
491 if (NDalicPINVOKE.SWIGPendingException.Pending)
492 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
496 internal HoverSignal HoveredSignal()
498 HoverSignal ret = new HoverSignal(Interop.ActorSignal.Actor_HoveredSignal(swigCPtr), false);
499 if (NDalicPINVOKE.SWIGPendingException.Pending)
500 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
504 internal WheelSignal WheelEventSignal()
506 WheelSignal ret = new WheelSignal(Interop.ActorSignal.Actor_WheelEventSignal(swigCPtr), false);
507 if (NDalicPINVOKE.SWIGPendingException.Pending)
508 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
512 internal ViewSignal OnWindowSignal()
514 ViewSignal ret = new ViewSignal(Interop.ActorSignal.Actor_OnStageSignal(swigCPtr), false);
515 if (NDalicPINVOKE.SWIGPendingException.Pending)
516 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
520 internal ViewSignal OffWindowSignal()
522 ViewSignal ret = new ViewSignal(Interop.ActorSignal.Actor_OffStageSignal(swigCPtr), false);
523 if (NDalicPINVOKE.SWIGPendingException.Pending)
524 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
528 internal ViewSignal OnRelayoutSignal()
530 ViewSignal ret = new ViewSignal(Interop.ActorSignal.Actor_OnRelayoutSignal(swigCPtr), false);
531 if (NDalicPINVOKE.SWIGPendingException.Pending)
532 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
536 internal ViewVisibilityChangedSignal VisibilityChangedSignal(View view)
538 ViewVisibilityChangedSignal ret = new ViewVisibilityChangedSignal(Interop.NDalic.VisibilityChangedSignal(View.getCPtr(view)), false);
539 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
543 internal ViewLayoutDirectionChangedSignal LayoutDirectionChangedSignal(View view)
545 ViewLayoutDirectionChangedSignal ret = new ViewLayoutDirectionChangedSignal(Interop.Layout.LayoutDirectionChangedSignal(View.getCPtr(view)), false);
546 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
550 internal ViewSignal ResourcesLoadedSignal()
552 ViewSignal ret = new ViewSignal(Interop.View.ResourceReadySignal(swigCPtr), false);
553 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
557 internal ControlKeySignal KeyEventSignal()
559 ControlKeySignal ret = new ControlKeySignal(Interop.ViewSignal.View_KeyEventSignal(swigCPtr), false);
560 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
564 internal KeyInputFocusSignal KeyInputFocusGainedSignal()
566 KeyInputFocusSignal ret = new KeyInputFocusSignal(Interop.ViewSignal.View_KeyInputFocusGainedSignal(swigCPtr), false);
567 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
571 internal KeyInputFocusSignal KeyInputFocusLostSignal()
573 KeyInputFocusSignal ret = new KeyInputFocusSignal(Interop.ViewSignal.View_KeyInputFocusLostSignal(swigCPtr), false);
574 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
578 private void OnSize2DChanged(int width, int height)
580 Size2D = new Size2D(width, height);
583 private void OnMinimumSizeChanged(int width, int height)
585 MinimumSize = new Size2D(width, height);
588 private void OnMaximumSizeChanged(int width, int height)
590 MaximumSize = new Size2D(width, height);
593 private void OnPosition2DChanged(int x, int y)
595 Position2D = new Position2D(x, y);
598 private void OnSizeChanged(float width, float height, float depth)
600 Size = new Size(width, height, depth);
603 private void OnPositionChanged(float x, float y, float z)
605 Position = new Position(x, y, z);
608 private void OnParentOriginChanged(float x, float y, float z)
610 ParentOrigin = new Position(x, y, z);
613 private void OnPivotPointChanged(float x, float y, float z)
615 PivotPoint = new Position(x, y, z);
618 private void OnImageShadowChanged(ShadowBase instance)
620 ImageShadow = (ImageShadow)instance;
623 private void OnBoxShadowChanged(ShadowBase instance)
625 BoxShadow = (Shadow)instance;
628 private void OnBackgroundImageBorderChanged(int left, int right, int bottom, int top)
630 BackgroundImageBorder = new Rectangle(left, right, bottom, top);
633 private void OnKeyInputFocusGained(IntPtr view)
635 if (_keyInputFocusGainedEventHandler != null)
637 _keyInputFocusGainedEventHandler(this, null);
641 private void OnKeyInputFocusLost(IntPtr view)
643 if (_keyInputFocusLostEventHandler != null)
645 _keyInputFocusLostEventHandler(this, null);
649 private bool OnKeyEvent(IntPtr view, IntPtr keyEvent)
651 if (keyEvent == global::System.IntPtr.Zero)
653 NUILog.Error("keyEvent should not be null!");
657 KeyEventArgs e = new KeyEventArgs();
661 e.Key = Tizen.NUI.Key.GetKeyFromPtr(keyEvent);
663 if (_keyEventHandler != null)
665 Delegate[] delegateList = _keyEventHandler.GetInvocationList();
667 // Oring the result of each callback.
668 foreach (EventHandlerWithReturnType<object, KeyEventArgs, bool> del in delegateList)
670 result |= del(this, e);
677 // Callback for View OnRelayout signal
678 private void OnRelayout(IntPtr data)
680 if (_onRelayoutEventHandler != null)
682 _onRelayoutEventHandler(this, null);
686 // Callback for View TouchSignal
687 private bool OnTouch(IntPtr view, IntPtr touchData)
689 if (touchData == global::System.IntPtr.Zero)
691 NUILog.Error("touchData should not be null!");
695 TouchEventArgs e = new TouchEventArgs();
697 e.Touch = Tizen.NUI.Touch.GetTouchFromPtr(touchData);
699 if (_touchDataEventHandler != null)
701 return _touchDataEventHandler(this, e);
706 // Callback for View Hover signal
707 private bool OnHoverEvent(IntPtr view, IntPtr hoverEvent)
709 if (hoverEvent == global::System.IntPtr.Zero)
711 NUILog.Error("hoverEvent should not be null!");
715 HoverEventArgs e = new HoverEventArgs();
717 e.Hover = Tizen.NUI.Hover.GetHoverFromPtr(hoverEvent);
719 if (_hoverEventHandler != null)
721 return _hoverEventHandler(this, e);
726 // Callback for View Wheel signal
727 private bool OnWheelEvent(IntPtr view, IntPtr wheelEvent)
729 if (wheelEvent == global::System.IntPtr.Zero)
731 NUILog.Error("wheelEvent should not be null!");
735 WheelEventArgs e = new WheelEventArgs();
737 e.Wheel = Tizen.NUI.Wheel.GetWheelFromPtr(wheelEvent);
739 if (_wheelEventHandler != null)
741 return _wheelEventHandler(this, e);
746 // Callback for View OnWindow signal
747 private void OnWindow(IntPtr data)
749 if (_onWindowEventHandler != null)
751 _onWindowEventHandler(this, null);
755 // Callback for View OffWindow signal
756 private void OffWindow(IntPtr data)
758 if (_offWindowEventHandler != null)
760 _offWindowEventHandler(this, null);
764 // Callback for View visibility change signal
765 private void OnVisibilityChanged(IntPtr data, bool visibility, VisibilityChangeType type)
767 VisibilityChangedEventArgs e = new VisibilityChangedEventArgs();
770 e.View = Registry.GetManagedBaseHandleFromNativePtr(data) as View;
772 e.Visibility = visibility;
775 if (_visibilityChangedEventHandler != null)
777 _visibilityChangedEventHandler(this, e);
781 // Callback for View layout direction change signal
782 private void OnLayoutDirectionChanged(IntPtr data, ViewLayoutDirectionType type)
784 LayoutDirectionChangedEventArgs e = new LayoutDirectionChangedEventArgs();
787 e.View = Registry.GetManagedBaseHandleFromNativePtr(data) as View;
791 if (_layoutDirectionChangedEventHandler != null)
793 _layoutDirectionChangedEventHandler(this, e);
797 private void OnResourcesLoaded(IntPtr view)
799 if (_resourcesLoadedEventHandler != null)
801 _resourcesLoadedEventHandler(this, null);
805 private void OnBackgroundResourceLoaded(IntPtr view)
807 BackgroundResourceLoadedEventArgs e = new BackgroundResourceLoadedEventArgs();
808 e.Status = (ResourceLoadingStatusType)Interop.View.View_GetVisualResourceStatus(this.swigCPtr, Property.BACKGROUND);
810 if (_backgroundResourceLoadedEventHandler != null)
812 _backgroundResourceLoadedEventHandler(this, e);
817 /// Event argument passed through the ChildAdded event.
819 /// <since_tizen> 5 </since_tizen>
820 public class ChildAddedEventArgs : EventArgs
823 /// Added child view at moment.
825 /// <since_tizen> 5 </since_tizen>
826 public View Added { get; set; }
830 /// Event argument passed through the ChildRemoved event.
832 /// <since_tizen> 5 </since_tizen>
833 public class ChildRemovedEventArgs : EventArgs
836 /// Removed child view at moment.
838 /// <since_tizen> 5 </since_tizen>
839 public View Removed { get; set; }
843 /// Event arguments that passed via the KeyEvent signal.
845 /// <since_tizen> 3 </since_tizen>
846 public class KeyEventArgs : EventArgs
851 /// Key - is the key sent to the view.
853 /// <since_tizen> 3 </since_tizen>
868 /// Event arguments that passed via the touch signal.
870 /// <since_tizen> 3 </since_tizen>
871 public class TouchEventArgs : EventArgs
873 private Touch _touch;
876 /// Touch - contains the information of touch points.
878 /// <since_tizen> 3 </since_tizen>
893 /// Event arguments that passed via the hover signal.
895 /// <since_tizen> 3 </since_tizen>
896 public class HoverEventArgs : EventArgs
898 private Hover _hover;
901 /// Hover - contains touch points that represent the points that are currently being hovered or the points where a hover has stopped.
903 /// <since_tizen> 3 </since_tizen>
918 /// Event arguments that passed via the wheel signal.
920 /// <since_tizen> 3 </since_tizen>
921 public class WheelEventArgs : EventArgs
923 private Wheel _wheel;
926 /// WheelEvent - store a wheel rolling type: MOUSE_WHEEL or CUSTOM_WHEEL.
928 /// <since_tizen> 3 </since_tizen>
943 /// Event arguments of visibility changed.
945 /// <since_tizen> 3 </since_tizen>
946 public class VisibilityChangedEventArgs : EventArgs
949 private bool _visibility;
950 private VisibilityChangeType _type;
953 /// The view, or child of view, whose visibility has changed.
955 /// <since_tizen> 3 </since_tizen>
969 /// Whether the view is now visible or not.
971 /// <since_tizen> 3 </since_tizen>
972 public bool Visibility
985 /// Whether the view's visible property has changed or a parent's.
987 /// <since_tizen> 3 </since_tizen>
988 public VisibilityChangeType Type
1002 /// Event arguments of layout direction changed.
1004 /// <since_tizen> 4 </since_tizen>
1005 public class LayoutDirectionChangedEventArgs : EventArgs
1008 private ViewLayoutDirectionType _type;
1011 /// The view, or child of view, whose layout direction has changed.
1013 /// <since_tizen> 4 </since_tizen>
1027 /// Whether the view's layout direction property has changed or a parent's.
1029 /// <since_tizen> 4 </since_tizen>
1030 public ViewLayoutDirectionType Type
1043 internal class BackgroundResourceLoadedEventArgs : EventArgs
1045 private ResourceLoadingStatusType status = ResourceLoadingStatusType.Invalid;
1046 public ResourceLoadingStatusType Status
1061 [EditorBrowsable(EditorBrowsableState.Never)]
1062 public class ControlStateChangedInfo
1065 /// The previous control state.
1067 [EditorBrowsable(EditorBrowsableState.Never)]
1068 public ControlStateChangedInfo(ControlStates previousState, ControlStates currentState, InputMethodType inputMethod, object inputData)
1070 PreviousState = previousState;
1071 CurrentState = currentState;
1072 InputMethod = inputMethod;
1073 InputData = inputData;
1077 /// The previous control state.
1079 [EditorBrowsable(EditorBrowsableState.Never)]
1080 public ControlStates PreviousState { get; }
1083 /// The current control state.
1085 [EditorBrowsable(EditorBrowsableState.Never)]
1086 public ControlStates CurrentState { get; }
1089 /// Indicates the input method that triggered this change.
1091 [EditorBrowsable(EditorBrowsableState.Never)]
1092 public InputMethodType InputMethod { get; }
1095 /// The input method data in detail.
1097 /// The type of data depends on the InputMethod,
1098 /// ---------------------------------------
1099 /// InputMethod | Typep of InputData
1100 /// ---------------------------------------
1102 /// Touch | Tizen.NUI.Touch
1103 /// Key | Tizen.NUI.Key
1104 /// ---------------------------------------
1106 [EditorBrowsable(EditorBrowsableState.Never)]
1107 public object InputData { get; }
1110 /// List of input method that can trigger ControlStates change.
1112 [EditorBrowsable(EditorBrowsableState.Never)]
1113 public enum InputMethodType
1116 /// ControlState has changed without user input.
1118 [EditorBrowsable(EditorBrowsableState.Never)]
1122 /// ControlState has changed by a touch.
1124 [EditorBrowsable(EditorBrowsableState.Never)]
1128 /// ControlState has changed by key input.
1130 [EditorBrowsable(EditorBrowsableState.Never)]
1135 private EventHandlerWithReturnType<object, WheelEventArgs, bool> WindowWheelEventHandler;
1136 private void OnWindowWheelEvent(object sender, Window.WheelEventArgs e)
1140 if(e.Wheel.Type == Wheel.WheelType.CustomWheel)
1142 var arg = new WheelEventArgs()
1146 WindowWheelEventHandler?.Invoke(this, arg);