- private WindowFocusChangedEventCallbackType _windowFocusChangedEventCallback;
- private RootLayerTouchDataCallbackType _rootLayerTouchDataCallback;
- private WheelEventCallbackType _wheelEventCallback;
- private EventCallbackDelegateType1 _stageKeyCallbackDelegate;
- private EventCallbackDelegateType0 _stageEventProcessingFinishedEventCallbackDelegate;
- private EventHandler _stageContextLostEventHandler;
- private EventCallbackDelegateType0 _stageContextLostEventCallbackDelegate;
- private EventHandler _stageContextRegainedEventHandler;
- private EventCallbackDelegateType0 _stageContextRegainedEventCallbackDelegate;
- private EventHandler _stageSceneCreatedEventHandler;
- private EventCallbackDelegateType0 _stageSceneCreatedEventCallbackDelegate;
- private WindowResizedEventCallbackType _windowResizedEventCallback;
- private WindowFocusChangedEventCallbackType _windowFocusChangedEventCallback2;
-
- private static readonly Window instance = Application.Instance.GetWindow();
-
- internal Window(global::System.IntPtr cPtr, bool cMemoryOwn) : base(NDalicPINVOKE.Window_SWIGUpcast(cPtr), cMemoryOwn)
- {
- swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
- if (NDalicPINVOKE.Stage_IsInstalled())
- {
- stageCPtr = new global::System.Runtime.InteropServices.HandleRef(this, NDalicPINVOKE.Stage_GetCurrent());
- // Create a root layout (AbsoluteLayout) that is invisible to the user but enables layouts added to the Window
- // Enables layouts added to the Window to have a parent layout. As parent layout is needed to store measure spec properties.
- // Currently without these measure specs the new layout added will always be the size of the window.
- global::System.IntPtr rootLayoutIntPtr = NDalicManualPINVOKE.Window_NewRootLayout();
- // Store HandleRef used by Add()
- rootLayoutCPtr = new global::System.Runtime.InteropServices.HandleRef(this, rootLayoutIntPtr);
- Layer rootLayer = GetRootLayer();
- // Add the root layout created above to the root layer.
- NDalicPINVOKE.Actor_Add( Layer.getCPtr(rootLayer), rootLayoutCPtr );
- if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-
- global::System.IntPtr rootControlLayoutIntPtr = Tizen.NUI.NDalicManualPINVOKE.GetLayout__SWIG_1(rootLayoutCPtr);
- if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-
- rootLayoutItem = new LayoutItem(rootControlLayoutIntPtr, true);
- }
- }
-
- internal Window(Rectangle windowPosition, string name, bool isTransparent) : this(NDalicPINVOKE.Window_New__SWIG_0(Rectangle.getCPtr(windowPosition), name, isTransparent), true)
- {
- if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- }
-
- internal Window(Rectangle windowPosition, string name) : this(NDalicPINVOKE.Window_New__SWIG_1(Rectangle.getCPtr(windowPosition), name), true)
- {
- if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- }
-
- internal Window(Rectangle windowPosition, string name, string className, bool isTransparent) : this(NDalicPINVOKE.Window_New__SWIG_2(Rectangle.getCPtr(windowPosition), name, className, isTransparent), true)
- {
- if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- }
-
- internal Window(Rectangle windowPosition, string name, string className) : this(NDalicPINVOKE.Window_New__SWIG_3(Rectangle.getCPtr(windowPosition), name, className), true)
- {
- if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- }
-
- [UnmanagedFunctionPointer(CallingConvention.StdCall)]
- private delegate void WindowFocusChangedEventCallbackType(bool focusGained);
- [UnmanagedFunctionPointer(CallingConvention.StdCall)]
- private delegate bool RootLayerTouchDataCallbackType(IntPtr view, IntPtr touchData);
- [UnmanagedFunctionPointer(CallingConvention.StdCall)]
- private delegate bool WheelEventCallbackType(IntPtr view, IntPtr wheelEvent);
- [UnmanagedFunctionPointer(CallingConvention.StdCall)]
- private delegate void WindowResizedEventCallbackType(IntPtr windowSize);
- [UnmanagedFunctionPointer(CallingConvention.StdCall)]
- private delegate void WindowFocusChangedEventCallbackType2(bool focusGained);
-
- /// <summary>
- /// FocusChanged event.
- /// </summary>
- /// <since_tizen> 3 </since_tizen>
- public event EventHandler<FocusChangedEventArgs> FocusChanged
- {
- add
- {
- if (_windowFocusChangedEventHandler == null)
- {
- _windowFocusChangedEventCallback = OnWindowFocusedChanged;
- WindowFocusChangedSignal().Connect(_windowFocusChangedEventCallback);
- }
-
- _windowFocusChangedEventHandler += value;
- }
- remove
- {
- _windowFocusChangedEventHandler -= value;
-
- if (_windowFocusChangedEventHandler == null && WindowFocusChangedSignal().Empty() == false && _windowFocusChangedEventCallback != null)
- {
- WindowFocusChangedSignal().Disconnect(_windowFocusChangedEventCallback);
- }
- }
- }