+
+
/*
- * Copyright(c) 2018 Samsung Electronics Co., Ltd.
+ * Copyright(c) 2019 Samsung Electronics Co., Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
{
private global::System.Runtime.InteropServices.HandleRef swigCPtr;
private global::System.Runtime.InteropServices.HandleRef stageCPtr;
- private readonly global::System.Runtime.InteropServices.HandleRef rootLayoutCPtr;
private Layer _rootLayer;
private string _windowTitle;
- private readonly LayoutItem rootLayoutItem;
-
private List<Layer> _childLayers = new List<Layer>();
- internal List<Layer> LayersChildren
- {
- get
- {
- return _childLayers;
- }
- }
-
- 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())
- {
- global::System.IntPtr rootLayoutIntPtr;
- 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.
- 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();
+ 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;
- rootLayoutItem = new LayoutItem(rootControlLayoutIntPtr, true);
- }
- }
+ private static readonly Window instance = Application.Instance?.GetWindow();
- internal static global::System.Runtime.InteropServices.HandleRef getCPtr(Window obj)
- {
- return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
- }
+ private LayoutController localController;
- internal static Window GetCurrent()
+ internal Window(global::System.IntPtr cPtr, bool cMemoryOwn) : base(Interop.Window.Window_SWIGUpcast(cPtr), cMemoryOwn)
{
- Window ret = new Window(NDalicPINVOKE.Stage_GetCurrent(), true);
- if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- return ret;
- }
+ swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
+ if (Interop.Stage.Stage_IsInstalled())
+ {
+ stageCPtr = new global::System.Runtime.InteropServices.HandleRef(this, Interop.Stage.Stage_GetCurrent());
- internal static bool IsInstalled()
- {
- bool ret = NDalicPINVOKE.Stage_IsInstalled();
- if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- return ret;
+ localController = new LayoutController(this);
+ NUILog.Debug("layoutController id:" + localController.GetId() );
+ }
}
/// <summary>
- /// Sets whether the window accepts a focus or not.
+ /// Creates a new Window.<br />
+ /// This creates an extra window in addition to the default main window<br />
/// </summary>
- /// <param name="accept">If a focus is accepted or not. The default is true.</param>
- /// <since_tizen> 3 </since_tizen>
- public void SetAcceptFocus(bool accept)
+ /// <param name="windowPosition">The position and size of the Window.</param>
+ /// <param name="isTranslucent">Whether Window is translucent.</param>
+ /// <returns>A new Window.</returns>
+ /// <since_tizen> 6 </since_tizen>
+ public Window(Rectangle windowPosition = null , bool isTranslucent = false) : this(Interop.Window.Window_New__SWIG_0(Rectangle.getCPtr(windowPosition), "", isTranslucent), true)
{
- NDalicPINVOKE.SetAcceptFocus(swigCPtr, accept);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
/// <summary>
- /// Returns whether the window accepts a focus or not.
+ /// Creates a new Window.<br />
+ /// This creates an extra window in addition to the default main window<br />
/// </summary>
- /// <returns>True if the window accepts a focus, false otherwise.</returns>
- /// <since_tizen> 3 </since_tizen>
- public bool IsFocusAcceptable()
+ /// <param name="name">The name for extra window. </param>
+ /// <param name="windowPosition">The position and size of the Window.</param>
+ /// <param name="isTranslucent">Whether Window is translucent.</param>
+ /// <returns>A new Window.</returns>
+ /// <since_tizen> 6 </since_tizen>
+ public Window(string name, Rectangle windowPosition = null, bool isTranslucent = false) : this(Interop.Window.Window_New__SWIG_0(Rectangle.getCPtr(windowPosition), name, isTranslucent), true)
{
- bool ret = NDalicPINVOKE.IsFocusAcceptable(swigCPtr);
+ this._windowTitle = name;
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-
- return ret;
}
- /// <summary>
- /// Shows the window if it is hidden.
- /// </summary>
- /// <since_tizen> 3 </since_tizen>
- public void Show()
- {
- NDalicPINVOKE.Show(swigCPtr);
- 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>
- /// Hides the window if it is showing.
+ /// FocusChanged event.
/// </summary>
/// <since_tizen> 3 </since_tizen>
- public void Hide()
+ public event EventHandler<FocusChangedEventArgs> FocusChanged
{
- NDalicPINVOKE.Hide(swigCPtr);
- if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- }
+ add
+ {
+ if (_windowFocusChangedEventHandler == null)
+ {
+ _windowFocusChangedEventCallback = OnWindowFocusedChanged;
+ WindowFocusChangedSignal().Connect(_windowFocusChangedEventCallback);
+ }
- /// <summary>
- /// Retrieves whether the window is visible or not.
- /// </summary>
- /// <returns>True if the window is visible.</returns>
- /// <since_tizen> 3 </since_tizen>
- public bool IsVisible()
- {
- bool temp = NDalicPINVOKE.IsVisible(swigCPtr);
- if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- return temp;
+ _windowFocusChangedEventHandler += value;
+ }
+ remove
+ {
+ _windowFocusChangedEventHandler -= value;
+
+ if (_windowFocusChangedEventHandler == null && WindowFocusChangedSignal().Empty() == false && _windowFocusChangedEventCallback != null)
+ {
+ WindowFocusChangedSignal().Disconnect(_windowFocusChangedEventCallback);
+ }
+ }
}
/// <summary>
- /// Gets the count of supported auxiliary hints of the window.
+ /// This event is emitted when the screen is touched and when the touch ends.<br />
+ /// If there are multiple touch points, then this will be emitted when the first touch occurs and
+ /// then when the last finger is lifted.<br />
+ /// An interrupted event will also be emitted (if it occurs).<br />
/// </summary>
- /// <returns>The number of supported auxiliary hints.</returns>
/// <since_tizen> 3 </since_tizen>
- public uint GetSupportedAuxiliaryHintCount()
+ public event EventHandler<TouchEventArgs> TouchEvent
{
- uint ret = NDalicPINVOKE.GetSupportedAuxiliaryHintCount(swigCPtr);
- if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- return ret;
+ add
+ {
+ if (_rootLayerTouchDataEventHandler == null)
+ {
+ _rootLayerTouchDataCallback = OnWindowTouch;
+ this.TouchDataSignal().Connect(_rootLayerTouchDataCallback);
+ }
+ _rootLayerTouchDataEventHandler += value;
+ }
+ remove
+ {
+ _rootLayerTouchDataEventHandler -= value;
+ if (_rootLayerTouchDataEventHandler == null && TouchSignal().Empty() == false)
+ {
+ this.TouchDataSignal().Disconnect(_rootLayerTouchDataCallback);
+ }
+ }
}
/// <summary>
- /// Gets the supported auxiliary hint string of the window.
+ /// This event is emitted when the wheel event is received.
/// </summary>
- /// <param name="index">The index of the supported auxiliary hint lists.</param>
- /// <returns>The auxiliary hint string of the index.</returns>
/// <since_tizen> 3 </since_tizen>
- public string GetSupportedAuxiliaryHint(uint index)
+ public event EventHandler<WheelEventArgs> WheelEvent
{
- string ret = NDalicPINVOKE.GetSupportedAuxiliaryHint(swigCPtr, index);
- if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- return ret;
+ add
+ {
+ if (_stageWheelHandler == null)
+ {
+ _wheelEventCallback = OnStageWheel;
+ this.StageWheelEventSignal().Connect(_wheelEventCallback);
+ }
+ _stageWheelHandler += value;
+ }
+ remove
+ {
+ _stageWheelHandler -= value;
+ if (_stageWheelHandler == null && StageWheelEventSignal().Empty() == false)
+ {
+ this.StageWheelEventSignal().Disconnect(_wheelEventCallback);
+ }
+ }
}
/// <summary>
- /// Creates an auxiliary hint of the window.
+ /// This event is emitted when the key event is received.
/// </summary>
- /// <param name="hint">The auxiliary hint string.</param>
- /// <param name="value">The value string.</param>
- /// <returns>The ID of created auxiliary hint, or 0 on failure.</returns>
/// <since_tizen> 3 </since_tizen>
- public uint AddAuxiliaryHint(string hint, string value)
+ public event EventHandler<KeyEventArgs> KeyEvent
{
- uint ret = NDalicPINVOKE.AddAuxiliaryHint(swigCPtr, hint, value);
- if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- return ret;
+ add
+ {
+ if (_stageKeyHandler == null)
+ {
+ _stageKeyCallbackDelegate = OnStageKey;
+ KeyEventSignal().Connect(_stageKeyCallbackDelegate);
+ }
+ _stageKeyHandler += value;
+ }
+ remove
+ {
+ _stageKeyHandler -= value;
+ if (_stageKeyHandler == null && KeyEventSignal().Empty() == false)
+ {
+ KeyEventSignal().Disconnect(_stageKeyCallbackDelegate);
+ }
+ }
}
/// <summary>
- /// Removes an auxiliary hint of the window.
+ /// This event is emitted when the window resized.
/// </summary>
- /// <param name="id">The ID of the auxiliary hint.</param>
- /// <returns>True if no error occurred, false otherwise.</returns>
/// <since_tizen> 3 </since_tizen>
- public bool RemoveAuxiliaryHint(uint id)
+ public event EventHandler<ResizedEventArgs> Resized
{
- bool ret = NDalicPINVOKE.RemoveAuxiliaryHint(swigCPtr, id);
- if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- return ret;
+ add
+ {
+ if (_windowResizedEventHandler == null)
+ {
+ _windowResizedEventCallback = OnResized;
+ ResizedSignal().Connect(_windowResizedEventCallback);
+ }
+
+ _windowResizedEventHandler += value;
+ }
+ remove
+ {
+ _windowResizedEventHandler -= value;
+
+ if (_windowResizedEventHandler == null && ResizedSignal().Empty() == false && _windowResizedEventCallback != null)
+ {
+ ResizedSignal().Disconnect(_windowResizedEventCallback);
+ }
+ }
}
/// <summary>
- /// Changes a value of the auxiliary hint.
+ /// Please do not use! this will be deprecated. Please use 'FocusChanged' event instead.
/// </summary>
- /// <param name="id">The auxiliary hint ID.</param>
- /// <param name="value">The value string to be set.</param>
- /// <returns>True if no error occurred, false otherwise.</returns>
/// <since_tizen> 3 </since_tizen>
- public bool SetAuxiliaryHintValue(uint id, string value)
+ /// Please do not use! this will be deprecated!
+ /// Instead please use FocusChanged.
+ [Obsolete("Please do not use! This will be deprecated! Please use FocusChanged instead! " +
+ "Like: " +
+ "Window.Instance.FocusChanged = OnFocusChanged; " +
+ "private void OnFocusChanged(object source, Window.FocusChangedEventArgs args) {...}")]
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public event EventHandler<FocusChangedEventArgs> WindowFocusChanged
{
- bool ret = NDalicPINVOKE.SetAuxiliaryHintValue(swigCPtr, id, value);
- if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- return ret;
+ add
+ {
+ if (_windowFocusChangedEventHandler2 == null)
+ {
+ _windowFocusChangedEventCallback2 = OnWindowFocusedChanged2;
+ WindowFocusChangedSignal().Connect(_windowFocusChangedEventCallback2);
+ }
+
+ _windowFocusChangedEventHandler2 += value;
+ }
+ remove
+ {
+ _windowFocusChangedEventHandler2 -= value;
+
+ if (_windowFocusChangedEventHandler2 == null && WindowFocusChangedSignal().Empty() == false && _windowFocusChangedEventCallback2 != null)
+ {
+ WindowFocusChangedSignal().Disconnect(_windowFocusChangedEventCallback2);
+ }
+ }
}
/// <summary>
- /// Gets a value of the auxiliary hint.
+ /// ViewAdded will be triggered when the view added on Window
/// </summary>
- /// <param name="id">The auxiliary hint ID.</param>
- /// <returns>The string value of the auxiliary hint ID, or an empty string if none exists.</returns>
- /// <since_tizen> 3 </since_tizen>
- public string GetAuxiliaryHintValue(uint id)
+ /// <since_tizen> 6 </since_tizen>
+ /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public event EventHandler ViewAdded;
+
+ internal void SendViewAdded(View view)
{
- string ret = NDalicPINVOKE.GetAuxiliaryHintValue(swigCPtr, id);
- if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- return ret;
+ ViewAdded?.Invoke(view, EventArgs.Empty);
}
- /// <summary>
- /// Gets an ID of the auxiliary hint string.
- /// </summary>
- /// <param name="hint">The auxiliary hint string.</param>
- /// <returns>The ID of auxiliary hint string, or 0 on failure.</returns>
- /// <since_tizen> 3 </since_tizen>
- public uint GetAuxiliaryHintId(string hint)
+ internal event EventHandler EventProcessingFinished
{
- uint ret = NDalicPINVOKE.GetAuxiliaryHintId(swigCPtr, hint);
- if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- return ret;
- }
+ add
+ {
+ if (_stageEventProcessingFinishedEventHandler == null)
+ {
+ _stageEventProcessingFinishedEventCallbackDelegate = OnEventProcessingFinished;
+ EventProcessingFinishedSignal().Connect(_stageEventProcessingFinishedEventCallbackDelegate);
+ }
+ _stageEventProcessingFinishedEventHandler += value;
- /// <summary>
- /// Sets a region to accept input events.
- /// </summary>
- /// <param name="inputRegion">The region to accept input events.</param>
- /// <since_tizen> 3 </since_tizen>
- public void SetInputRegion(Rectangle inputRegion)
- {
- NDalicPINVOKE.SetInputRegion(swigCPtr, Rectangle.getCPtr(inputRegion));
- if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ }
+ remove
+ {
+ _stageEventProcessingFinishedEventHandler -= value;
+ if (_stageEventProcessingFinishedEventHandler == null && EventProcessingFinishedSignal().Empty() == false)
+ {
+ EventProcessingFinishedSignal().Disconnect(_stageEventProcessingFinishedEventCallbackDelegate);
+ }
+ }
}
- /// <summary>
- /// Gets or sets a window type.
- /// </summary>
- /// <since_tizen> 3 </since_tizen>
- public WindowType Type
+ internal event EventHandler ContextLost
{
- get
+ add
{
- WindowType ret = (WindowType)NDalicPINVOKE.GetType(swigCPtr);
- if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- return ret;
+ if (_stageContextLostEventHandler == null)
+ {
+ _stageContextLostEventCallbackDelegate = OnContextLost;
+ ContextLostSignal().Connect(_stageContextLostEventCallbackDelegate);
+ }
+ _stageContextLostEventHandler += value;
}
- set
+ remove
{
- NDalicPINVOKE.SetType(swigCPtr, (int)value);
- if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ _stageContextLostEventHandler -= value;
+ if (_stageContextLostEventHandler == null && ContextLostSignal().Empty() == false)
+ {
+ ContextLostSignal().Disconnect(_stageContextLostEventCallbackDelegate);
+ }
}
}
- /// <summary>
- /// Sets a priority level for the specified notification window.
- /// </summary>
- /// <param name="level">The notification window level.</param>
- /// <returns>True if no error occurred, false otherwise.</returns>
- /// <since_tizen> 3 </since_tizen>
- public bool SetNotificationLevel(NotificationLevel level)
+ internal event EventHandler ContextRegained
{
- bool ret = NDalicPINVOKE.SetNotificationLevel(swigCPtr, (int)level);
- if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- return ret;
+ add
+ {
+ if (_stageContextRegainedEventHandler == null)
+ {
+ _stageContextRegainedEventCallbackDelegate = OnContextRegained;
+ ContextRegainedSignal().Connect(_stageContextRegainedEventCallbackDelegate);
+ }
+ _stageContextRegainedEventHandler += value;
+ }
+ remove
+ {
+ _stageContextRegainedEventHandler -= value;
+ if (_stageContextRegainedEventHandler == null && ContextRegainedSignal().Empty() == false)
+ {
+ this.ContextRegainedSignal().Disconnect(_stageContextRegainedEventCallbackDelegate);
+ }
+ }
}
- /// <summary>
- /// Gets a priority level for the specified notification window.
- /// </summary>
- /// <returns>The notification window level.</returns>
- /// <since_tizen> 3 </since_tizen>
- public NotificationLevel GetNotificationLevel()
+ internal event EventHandler SceneCreated
{
- NotificationLevel ret = (NotificationLevel)NDalicPINVOKE.GetNotificationLevel(swigCPtr);
- if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- return ret;
+ add
+ {
+ if (_stageSceneCreatedEventHandler == null)
+ {
+ _stageSceneCreatedEventCallbackDelegate = OnSceneCreated;
+ SceneCreatedSignal().Connect(_stageSceneCreatedEventCallbackDelegate);
+ }
+ _stageSceneCreatedEventHandler += value;
+ }
+ remove
+ {
+ _stageSceneCreatedEventHandler -= value;
+ if (_stageSceneCreatedEventHandler == null && SceneCreatedSignal().Empty() == false)
+ {
+ SceneCreatedSignal().Disconnect(_stageSceneCreatedEventCallbackDelegate);
+ }
+ }
}
+ private event EventHandler<FocusChangedEventArgs> _windowFocusChangedEventHandler;
+ private event EventHandler<TouchEventArgs> _rootLayerTouchDataEventHandler;
+ private event EventHandler<WheelEventArgs> _stageWheelHandler;
+ private event EventHandler<KeyEventArgs> _stageKeyHandler;
+ private event EventHandler _stageEventProcessingFinishedEventHandler;
+ private event EventHandler<ResizedEventArgs> _windowResizedEventHandler;
+ private event EventHandler<FocusChangedEventArgs> _windowFocusChangedEventHandler2;
+
/// <summary>
- /// Sets a transparent window's visual state to opaque. <br />
- /// If a visual state of a transparent window is opaque, <br />
- /// then the window manager could handle it as an opaque window when calculating visibility.
+ /// Enumeration for orientation of the window is the way in which a rectangular page is oriented for normal viewing.
/// </summary>
- /// <param name="opaque">Whether the window's visual state is opaque.</param>
- /// <remarks>This will have no effect on an opaque window. <br />
- /// It doesn't change transparent window to opaque window but lets the window manager know the visual state of the window.
- /// </remarks>
/// <since_tizen> 3 </since_tizen>
- public void SetOpaqueState(bool opaque)
+ public enum WindowOrientation
{
- NDalicPINVOKE.SetOpaqueState(swigCPtr, opaque);
- if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ /// <summary>
+ /// Portrait orientation. The height of the display area is greater than the width.
+ /// </summary>
+ /// <since_tizen> 3 </since_tizen>
+ Portrait = 0,
+ /// <summary>
+ /// Landscape orientation. A wide view area is needed.
+ /// </summary>
+ /// <since_tizen> 3 </since_tizen>
+ Landscape = 90,
+ /// <summary>
+ /// Portrait inverse orientation.
+ /// </summary>
+ /// <since_tizen> 3 </since_tizen>
+ PortraitInverse = 180,
+ /// <summary>
+ /// Landscape inverse orientation.
+ /// </summary>
+ /// <since_tizen> 3 </since_tizen>
+ LandscapeInverse = 270
}
/// <summary>
- /// Returns whether a transparent window's visual state is opaque or not.
+ /// Enumeration for the key grab mode for platform-level APIs.
/// </summary>
- /// <returns>True if the window's visual state is opaque, false otherwise.</returns>
- /// <remarks> The return value has no meaning on an opaque window. </remarks>
/// <since_tizen> 3 </since_tizen>
- public bool IsOpaqueState()
+ public enum KeyGrabMode
{
- bool ret = NDalicPINVOKE.IsOpaqueState(swigCPtr);
- if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- return ret;
- }
+ /// <summary>
+ /// Grabs a key only when on the top of the grabbing-window stack mode.
+ /// </summary>
+ Topmost = 0,
+ /// <summary>
+ /// Grabs a key together with the other client window(s) mode.
+ /// </summary>
+ Shared,
+ /// <summary>
+ /// Grabs a key exclusively regardless of the grabbing-window's position on the window stack with the possibility of overriding the grab by the other client window mode.
+ /// </summary>
+ OverrideExclusive,
+ /// <summary>
+ /// Grabs a key exclusively regardless of the grabbing-window's position on the window stack mode.
+ /// </summary>
+ Exclusive
+ };
/// <summary>
- /// Sets a window's screen off mode.
+ /// Enumeration for opacity of the indicator.
/// </summary>
- /// <param name="screenOffMode">The screen mode.</param>
- /// <returns>True if no error occurred, false otherwise.</returns>
- /// <since_tizen> 4 </since_tizen>
- public bool SetScreenOffMode(ScreenOffMode screenOffMode)
+ internal enum IndicatorBackgroundOpacity
{
- bool ret = NDalicPINVOKE.SetScreenOffMode(swigCPtr, (int)screenOffMode);
- if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- return ret;
+ Opaque = 100,
+ Translucent = 50,
+ Transparent = 0
}
/// <summary>
- /// Gets the screen mode of the window.
+ /// Enumeration for visible mode of the indicator.
/// </summary>
- /// <returns>The screen off mode.</returns>
- /// <since_tizen> 4 </since_tizen>
- public ScreenOffMode GetScreenOffMode()
+ internal enum IndicatorVisibleMode
{
- ScreenOffMode ret = (ScreenOffMode)NDalicPINVOKE.GetScreenOffMode(swigCPtr);
- if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- return ret;
+ Invisible = 0,
+ Visible = 1,
+ Auto = 2
}
/// <summary>
- /// Sets preferred brightness of the window.
+ /// The stage instance property (read-only).<br />
+ /// Gets the current window.<br />
/// </summary>
- /// <param name="brightness">The preferred brightness (0 to 100).</param>
- /// <returns>True if no error occurred, false otherwise.</returns>
/// <since_tizen> 3 </since_tizen>
- public bool SetBrightness(int brightness)
+ public static Window Instance
{
- bool ret = NDalicPINVOKE.SetBrightness(swigCPtr, brightness);
- if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- return ret;
+ get
+ {
+ return instance;
+ }
}
/// <summary>
- /// Gets the preferred brightness of the window.
+ /// Gets or sets a window type.
/// </summary>
- /// <returns>The preferred brightness.</returns>
/// <since_tizen> 3 </since_tizen>
- public int GetBrightness()
+ public WindowType Type
{
- int ret = NDalicPINVOKE.GetBrightness(swigCPtr);
- if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- return ret;
+ get
+ {
+ WindowType ret = (WindowType)Interop.Window.GetType(swigCPtr);
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ return ret;
+ }
+ set
+ {
+ Interop.Window.SetType(swigCPtr, (int)value);
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ }
}
/// <summary>
- /// The focus changed event argument.
+ /// Gets/Sets a window title.
/// </summary>
- /// <since_tizen> 3 </since_tizen>
- public class FocusChangedEventArgs : EventArgs
+ /// <since_tizen> 4 </since_tizen>
+ public string Title
{
- /// <summary>
- /// FocusGained flag.
- /// </summary>
- /// <since_tizen> 3 </since_tizen>
- public bool FocusGained
+ get
{
- get;
- set;
+ return _windowTitle;
+ }
+ set
+ {
+ _windowTitle = value;
+ SetClass(_windowTitle, "");
}
}
- private WindowFocusChangedEventCallbackType _windowFocusChangedEventCallback;
- [UnmanagedFunctionPointer(CallingConvention.StdCall)]
- private delegate void WindowFocusChangedEventCallbackType(bool focusGained);
- private event EventHandler<FocusChangedEventArgs> _windowFocusChangedEventHandler;
-
/// <summary>
- /// FocusChanged event.
+ /// The rendering behavior of a Window.
/// </summary>
- /// <since_tizen> 3 </since_tizen>
- public event EventHandler<FocusChangedEventArgs> FocusChanged
+ /// <since_tizen> 5 </since_tizen>
+ public RenderingBehaviorType RenderingBehavior
{
- add
+ get
{
- if (_windowFocusChangedEventHandler == null)
- {
- _windowFocusChangedEventCallback = OnWindowFocusedChanged;
- WindowFocusChangedSignal().Connect(_windowFocusChangedEventCallback);
- }
-
- _windowFocusChangedEventHandler += value;
+ return GetRenderingBehavior();
}
- remove
+ set
{
- _windowFocusChangedEventHandler -= value;
+ SetRenderingBehavior(value);
+ }
+ }
- if (_windowFocusChangedEventHandler == null && WindowFocusChangedSignal().Empty() == false && _windowFocusChangedEventCallback != null)
- {
- WindowFocusChangedSignal().Disconnect(_windowFocusChangedEventCallback);
- }
+ /// <summary>
+ /// The window size property (read-only).
+ /// </summary>
+ /// <since_tizen> 3 </since_tizen>
+ public Size2D Size
+ {
+ get
+ {
+ Size2D ret = GetSize();
+ return ret;
}
}
- private void OnWindowFocusedChanged(bool focusGained)
+ /// <summary>
+ /// The background color property.
+ /// </summary>
+ /// <since_tizen> 3 </since_tizen>
+ public Color BackgroundColor
{
- FocusChangedEventArgs e = new FocusChangedEventArgs();
+ set
+ {
+ SetBackgroundColor(value);
+ }
+ get
+ {
+ Color ret = GetBackgroundColor();
+ return ret;
+ }
+ }
- e.FocusGained = focusGained;
+ /// <summary>
+ /// The DPI property (read-only).<br />
+ /// Retrieves the DPI of the display device to which the Window is connected.<br />
+ /// </summary>
+ /// <since_tizen> 3 </since_tizen>
+ public Vector2 Dpi
+ {
+ get
+ {
+ return GetDpi();
+ }
+ }
- if (_windowFocusChangedEventHandler != null)
+ /// <summary>
+ /// The layer count property (read-only).<br />
+ /// Queries the number of on-Window layers.<br />
+ /// </summary>
+ /// <since_tizen> 3 </since_tizen>
+ public uint LayerCount
+ {
+ get
{
- _windowFocusChangedEventHandler(this, e);
+ return GetLayerCount();
}
}
/// <summary>
- /// Gets/Sets a window title.
+ /// Gets or sets a size of the window.
/// </summary>
/// <since_tizen> 4 </since_tizen>
- public string Title
+ public Size2D WindowSize
{
get
{
- return _windowTitle;
+ return GetWindowSize();
}
set
{
- _windowTitle = value;
- SetClass(_windowTitle, "");
+ SetWindowSize(value);
}
}
/// <summary>
- /// The rendering behavior of a Window.
+ /// Gets or sets a position of the window.
/// </summary>
- /// <since_tizen> 5 </since_tizen>
- public RenderingBehaviorType RenderingBehavior
+ /// <since_tizen> 4 </since_tizen>
+ public Position2D WindowPosition
{
get
{
- return GetRenderingBehavior();
+ return GetPosition();
}
set
{
- SetRenderingBehavior(value);
+ SetPosition(value);
}
}
-
- internal WindowFocusSignalType WindowFocusChangedSignal()
+ internal static Vector4 DEFAULT_BACKGROUND_COLOR
{
- WindowFocusSignalType ret = new WindowFocusSignalType(NDalicPINVOKE.FocusChangedSignal(swigCPtr), false);
- if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- return ret;
+ get
+ {
+ global::System.IntPtr cPtr = Interop.Stage.Stage_DEFAULT_BACKGROUND_COLOR_get();
+ Vector4 ret = (cPtr == global::System.IntPtr.Zero) ? null : new Vector4(cPtr, false);
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ return ret;
+ }
}
- internal Window(Rectangle windowPosition, string name, bool isTransparent) : this(NDalicPINVOKE.Window_New__SWIG_0(Rectangle.getCPtr(windowPosition), name, isTransparent), true)
+ internal static Vector4 DEBUG_BACKGROUND_COLOR
{
- if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ get
+ {
+ global::System.IntPtr cPtr = Interop.Stage.Stage_DEBUG_BACKGROUND_COLOR_get();
+ Vector4 ret = (cPtr == global::System.IntPtr.Zero) ? null : new Vector4(cPtr, false);
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ return ret;
+ }
}
- internal Window(Rectangle windowPosition, string name) : this(NDalicPINVOKE.Window_New__SWIG_1(Rectangle.getCPtr(windowPosition), name), true)
+ internal List<Layer> LayersChildren
{
- if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ get
+ {
+ return _childLayers;
+ }
}
- internal Window(Rectangle windowPosition, string name, string className, bool isTransparent) : this(NDalicPINVOKE.Window_New__SWIG_2(Rectangle.getCPtr(windowPosition), name, className, isTransparent), true)
+ /// <summary>
+ /// Get the LayoutController for this Window.
+ /// </summary>
+ internal LayoutController LayoutController
{
- if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ get
+ {
+ return localController;
+ }
}
- internal Window(Rectangle windowPosition, string name, string className) : this(NDalicPINVOKE.Window_New__SWIG_3(Rectangle.getCPtr(windowPosition), name, className), true)
+ /// <summary>
+ /// Feed a key-event into the window.
+ /// </summary>
+ /// <param name="keyEvent">The key event to feed.</param>
+ /// <since_tizen> 4 </since_tizen>
+ [Obsolete("Please do not use! This will be deprecated! Please use FeedKey(Key keyEvent) instead!")]
+ public static void FeedKeyEvent(Key keyEvent)
{
+ Interop.Window.Window_FeedKeyEvent(Key.getCPtr(keyEvent));
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
- internal void ShowIndicator(Window.IndicatorVisibleMode visibleMode)
+ /// <summary>
+ /// Sets whether the window accepts a focus or not.
+ /// </summary>
+ /// <param name="accept">If a focus is accepted or not. The default is true.</param>
+ /// <since_tizen> 3 </since_tizen>
+ public void SetAcceptFocus(bool accept)
{
- NDalicPINVOKE.Window_ShowIndicator(swigCPtr, (int)visibleMode);
+ Interop.Window.SetAcceptFocus(swigCPtr, accept);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
- internal void SetIndicatorBackgroundOpacity(Window.IndicatorBackgroundOpacity opacity)
+ /// <summary>
+ /// Returns whether the window accepts a focus or not.
+ /// </summary>
+ /// <returns>True if the window accepts a focus, false otherwise.</returns>
+ /// <since_tizen> 3 </since_tizen>
+ public bool IsFocusAcceptable()
{
- NDalicPINVOKE.Window_SetIndicatorBgOpacity(swigCPtr, (int)opacity);
+ bool ret = Interop.Window.IsFocusAcceptable(swigCPtr);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- }
- internal void RotateIndicator(Window.WindowOrientation orientation)
- {
- NDalicPINVOKE.Window_RotateIndicator(swigCPtr, (int)orientation);
- if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ return ret;
}
/// <summary>
- /// Sets the window name and the class string.
+ /// Shows the window if it is hidden.
/// </summary>
- /// <param name="name">The name of the window.</param>
- /// <param name="klass">The class of the window.</param>
- /// <since_tizen> 4 </since_tizen>
- public void SetClass(string name, string klass)
+ /// <since_tizen> 3 </since_tizen>
+ public void Show()
{
- NDalicPINVOKE.Window_SetClass(swigCPtr, name, klass);
+ Interop.Window.Show(swigCPtr);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
/// <summary>
- /// Raises the window to the top of the window stack.
+ /// Hides the window if it is showing.
/// </summary>
/// <since_tizen> 3 </since_tizen>
- public void Raise()
+ public void Hide()
{
- NDalicPINVOKE.Window_Raise(swigCPtr);
+ Interop.Window.Hide(swigCPtr);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
/// <summary>
- /// Lowers the window to the bottom of the window stack.
+ /// Retrieves whether the window is visible or not.
/// </summary>
+ /// <returns>True if the window is visible.</returns>
/// <since_tizen> 3 </since_tizen>
- public void Lower()
+ public bool IsVisible()
{
- NDalicPINVOKE.Window_Lower(swigCPtr);
+ bool temp = Interop.Window.IsVisible(swigCPtr);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ return temp;
}
/// <summary>
- /// Activates the window to the top of the window stack even it is iconified.
+ /// Gets the count of supported auxiliary hints of the window.
/// </summary>
+ /// <returns>The number of supported auxiliary hints.</returns>
/// <since_tizen> 3 </since_tizen>
- public void Activate()
- {
- NDalicPINVOKE.Window_Activate(swigCPtr);
- if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- }
-
- internal void AddAvailableOrientation(Window.WindowOrientation orientation)
- {
- NDalicPINVOKE.Window_AddAvailableOrientation(swigCPtr, (int)orientation);
- if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- }
-
- internal void RemoveAvailableOrientation(Window.WindowOrientation orientation)
+ public uint GetSupportedAuxiliaryHintCount()
{
- NDalicPINVOKE.Window_RemoveAvailableOrientation(swigCPtr, (int)orientation);
+ uint ret = Interop.Window.GetSupportedAuxiliaryHintCount(swigCPtr);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ return ret;
}
- internal void SetPreferredOrientation(Window.WindowOrientation orientation)
+ /// <summary>
+ /// Gets the supported auxiliary hint string of the window.
+ /// </summary>
+ /// <param name="index">The index of the supported auxiliary hint lists.</param>
+ /// <returns>The auxiliary hint string of the index.</returns>
+ /// <since_tizen> 3 </since_tizen>
+ public string GetSupportedAuxiliaryHint(uint index)
{
- NDalicPINVOKE.Window_SetPreferredOrientation(swigCPtr, (int)orientation);
+ string ret = Interop.Window.GetSupportedAuxiliaryHint(swigCPtr, index);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ return ret;
}
- internal Window.WindowOrientation GetPreferredOrientation()
+ /// <summary>
+ /// Creates an auxiliary hint of the window.
+ /// </summary>
+ /// <param name="hint">The auxiliary hint string.</param>
+ /// <param name="value">The value string.</param>
+ /// <returns>The ID of created auxiliary hint, or 0 on failure.</returns>
+ /// <since_tizen> 3 </since_tizen>
+ public uint AddAuxiliaryHint(string hint, string value)
{
- Window.WindowOrientation ret = (Window.WindowOrientation)NDalicPINVOKE.Window_GetPreferredOrientation(swigCPtr);
+ uint ret = Interop.Window.AddAuxiliaryHint(swigCPtr, hint, value);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
- internal DragAndDropDetector GetDragAndDropDetector()
+ /// <summary>
+ /// Removes an auxiliary hint of the window.
+ /// </summary>
+ /// <param name="id">The ID of the auxiliary hint.</param>
+ /// <returns>True if no error occurred, false otherwise.</returns>
+ /// <since_tizen> 3 </since_tizen>
+ public bool RemoveAuxiliaryHint(uint id)
{
- DragAndDropDetector ret = new DragAndDropDetector(NDalicPINVOKE.Window_GetDragAndDropDetector(swigCPtr), true);
+ bool ret = Interop.Window.RemoveAuxiliaryHint(swigCPtr, id);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
- internal Any GetNativeHandle()
+ /// <summary>
+ /// Changes a value of the auxiliary hint.
+ /// </summary>
+ /// <param name="id">The auxiliary hint ID.</param>
+ /// <param name="value">The value string to be set.</param>
+ /// <returns>True if no error occurred, false otherwise.</returns>
+ /// <since_tizen> 3 </since_tizen>
+ public bool SetAuxiliaryHintValue(uint id, string value)
{
- Any ret = new Any(NDalicPINVOKE.Window_GetNativeHandle(swigCPtr), true);
+ bool ret = Interop.Window.SetAuxiliaryHintValue(swigCPtr, id, value);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
- internal WindowFocusSignalType FocusChangedSignal()
+ /// <summary>
+ /// Gets a value of the auxiliary hint.
+ /// </summary>
+ /// <param name="id">The auxiliary hint ID.</param>
+ /// <returns>The string value of the auxiliary hint ID, or an empty string if none exists.</returns>
+ /// <since_tizen> 3 </since_tizen>
+ public string GetAuxiliaryHintValue(uint id)
{
- WindowFocusSignalType ret = new WindowFocusSignalType(NDalicPINVOKE.FocusChangedSignal(swigCPtr), false);
+ string ret = Interop.Window.GetAuxiliaryHintValue(swigCPtr, id);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
/// <summary>
- /// Gets the default ( root ) layer.
+ /// Gets an ID of the auxiliary hint string.
/// </summary>
- /// <returns>The root layer.</returns>
+ /// <param name="hint">The auxiliary hint string.</param>
+ /// <returns>The ID of auxiliary hint string, or 0 on failure.</returns>
/// <since_tizen> 3 </since_tizen>
- public Layer GetDefaultLayer()
- {
- return this.GetRootLayer();
- }
-
- internal void Add(Layer layer)
+ public uint GetAuxiliaryHintId(string hint)
{
- NDalicPINVOKE.Stage_Add(stageCPtr, Layer.getCPtr(layer));
+ uint ret = Interop.Window.GetAuxiliaryHintId(swigCPtr, hint);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-
- LayersChildren.Add(layer);
+ return ret;
}
- internal void Remove(Layer layer)
+ /// <summary>
+ /// Sets a region to accept input events.
+ /// </summary>
+ /// <param name="inputRegion">The region to accept input events.</param>
+ /// <since_tizen> 3 </since_tizen>
+ public void SetInputRegion(Rectangle inputRegion)
{
- NDalicPINVOKE.Stage_Remove(stageCPtr, Layer.getCPtr(layer));
+ Interop.Window.SetInputRegion(swigCPtr, Rectangle.getCPtr(inputRegion));
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-
- LayersChildren.Remove(layer);
}
/// <summary>
- /// Add a child view to window.
+ /// Sets a priority level for the specified notification window.
/// </summary>
- /// <param name="view">the child should be added to the window.</param>
+ /// <param name="level">The notification window level.</param>
+ /// <returns>True if no error occurred, false otherwise.</returns>
/// <since_tizen> 3 </since_tizen>
- public void Add(View view)
+ public bool SetNotificationLevel(NotificationLevel level)
{
- NDalicPINVOKE.Actor_Add( rootLayoutCPtr, View.getCPtr(view) );
+ bool ret = Interop.Window.SetNotificationLevel(swigCPtr, (int)level);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- this.GetRootLayer().AddViewToLayerList(view); // Maintain the children list in the Layer
- view.InternalParent = this.GetRootLayer();
+ return ret;
}
/// <summary>
- /// Remove a child view from window.
+ /// Gets a priority level for the specified notification window.
/// </summary>
- /// <param name="view">the child to be removed.</param>
+ /// <returns>The notification window level.</returns>
/// <since_tizen> 3 </since_tizen>
- public void Remove(View view)
- {
- NDalicPINVOKE.Actor_Remove( rootLayoutCPtr, View.getCPtr(view) );
- this.GetRootLayer().RemoveViewFromLayerList(view); // Maintain the children list in the Layer
- view.InternalParent = null;
- }
-
- internal Vector2 GetSize()
- {
- Vector2 ret = new Vector2(NDalicPINVOKE.Stage_GetSize(stageCPtr), true);
- if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- return ret;
- }
-
- internal RenderTaskList GetRenderTaskList()
+ public NotificationLevel GetNotificationLevel()
{
- RenderTaskList ret = new RenderTaskList(NDalicPINVOKE.Stage_GetRenderTaskList(stageCPtr), true);
+ NotificationLevel ret = (NotificationLevel)Interop.Window.GetNotificationLevel(swigCPtr);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
/// <summary>
- /// Queries the number of on-window layers.
+ /// Sets a transparent window's visual state to opaque. <br />
+ /// If a visual state of a transparent window is opaque, <br />
+ /// then the window manager could handle it as an opaque window when calculating visibility.
/// </summary>
- /// <returns>The number of layers.</returns>
- /// <remarks>Note that a default layer is always provided (count >= 1).</remarks>
- internal uint GetLayerCount()
+ /// <param name="opaque">Whether the window's visual state is opaque.</param>
+ /// <remarks>This will have no effect on an opaque window. <br />
+ /// It doesn't change transparent window to opaque window but lets the window manager know the visual state of the window.
+ /// </remarks>
+ /// <since_tizen> 3 </since_tizen>
+ public void SetOpaqueState(bool opaque)
{
- if (LayersChildren == null || LayersChildren.Count < 0)
- return 0;
-
- return (uint) LayersChildren.Count;
+ Interop.Window.SetOpaqueState(swigCPtr, opaque);
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
/// <summary>
- /// Retrieves the layer at a specified depth.
+ /// Returns whether a transparent window's visual state is opaque or not.
/// </summary>
- /// <param name="depth">The layer's depth index.</param>
- /// <returns>The layer found at the given depth.</returns>
+ /// <returns>True if the window's visual state is opaque, false otherwise.</returns>
+ /// <remarks> The return value has no meaning on an opaque window. </remarks>
/// <since_tizen> 3 </since_tizen>
- public Layer GetLayer(uint depth)
- {
- if (depth < LayersChildren.Count)
- {
- Layer ret = LayersChildren[Convert.ToInt32(depth)];
- return ret;
- }
- else
- {
- return null;
- }
- }
-
- internal Layer GetRootLayer()
- {
- // Window.IsInstalled() is actually true only when called from event thread and
- // Core has been initialized, not when Stage is ready.
- if (_rootLayer == null && Window.IsInstalled())
- {
- _rootLayer = new Layer(NDalicPINVOKE.Stage_GetRootLayer(stageCPtr), true);
- if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- LayersChildren.Add(_rootLayer);
- }
- return _rootLayer;
- }
-
- internal void SetBackgroundColor(Vector4 color)
- {
- NDalicPINVOKE.Stage_SetBackgroundColor(stageCPtr, Vector4.getCPtr(color));
- if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- }
-
- internal Vector4 GetBackgroundColor()
+ public bool IsOpaqueState()
{
- Vector4 ret = new Vector4(NDalicPINVOKE.Stage_GetBackgroundColor(stageCPtr), true);
+ bool ret = Interop.Window.IsOpaqueState(swigCPtr);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
- internal Vector2 GetDpi()
+ /// <summary>
+ /// Sets a window's screen off mode.
+ /// </summary>
+ /// <param name="screenOffMode">The screen mode.</param>
+ /// <returns>True if no error occurred, false otherwise.</returns>
+ /// <since_tizen> 4 </since_tizen>
+ public bool SetScreenOffMode(ScreenOffMode screenOffMode)
{
- Vector2 ret = new Vector2(NDalicPINVOKE.Stage_GetDpi(stageCPtr), true);
+ bool ret = Interop.Window.SetScreenOffMode(swigCPtr, (int)screenOffMode);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
- internal ObjectRegistry GetObjectRegistry()
+ /// <summary>
+ /// Gets the screen mode of the window.
+ /// </summary>
+ /// <returns>The screen off mode.</returns>
+ /// <since_tizen> 4 </since_tizen>
+ public ScreenOffMode GetScreenOffMode()
{
- ObjectRegistry ret = new ObjectRegistry(NDalicPINVOKE.Stage_GetObjectRegistry(stageCPtr), true);
+ ScreenOffMode ret = (ScreenOffMode)Interop.Window.GetScreenOffMode(swigCPtr);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
/// <summary>
- /// Keep rendering for at least the given amount of time.
+ /// Sets preferred brightness of the window.
/// </summary>
- /// <param name="durationSeconds">Time to keep rendering, 0 means render at least one more frame.</param>
+ /// <param name="brightness">The preferred brightness (0 to 100).</param>
+ /// <returns>True if no error occurred, false otherwise.</returns>
/// <since_tizen> 3 </since_tizen>
- public void KeepRendering(float durationSeconds)
- {
- NDalicPINVOKE.Stage_KeepRendering(stageCPtr, durationSeconds);
- if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- }
-
- internal void SetRenderingBehavior(RenderingBehaviorType renderingBehavior)
+ public bool SetBrightness(int brightness)
{
- NDalicPINVOKE.Stage_SetRenderingBehavior(stageCPtr, (int)renderingBehavior);
+ bool ret = Interop.Window.SetBrightness(swigCPtr, brightness);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- }
-
- internal RenderingBehaviorType GetRenderingBehavior()
- {
- RenderingBehaviorType ret = (RenderingBehaviorType)NDalicPINVOKE.Stage_GetRenderingBehavior(stageCPtr);
- if (NDalicPINVOKE.SWIGPendingException.Pending)
- throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
- internal KeyEventSignal KeyEventSignal()
+ /// <summary>
+ /// Gets the preferred brightness of the window.
+ /// </summary>
+ /// <returns>The preferred brightness.</returns>
+ /// <since_tizen> 3 </since_tizen>
+ public int GetBrightness()
{
- KeyEventSignal ret = new KeyEventSignal(NDalicPINVOKE.Stage_KeyEventSignal(stageCPtr), false);
+ int ret = Interop.Window.GetBrightness(swigCPtr);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
- internal VoidSignal EventProcessingFinishedSignal()
+ /// <summary>
+ /// Sets the window name and the class string.
+ /// </summary>
+ /// <param name="name">The name of the window.</param>
+ /// <param name="klass">The class of the window.</param>
+ /// <since_tizen> 4 </since_tizen>
+ public void SetClass(string name, string klass)
{
- VoidSignal ret = new VoidSignal(NDalicPINVOKE.Stage_EventProcessingFinishedSignal(stageCPtr), false);
+ Interop.Window.Window_SetClass(swigCPtr, name, klass);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- return ret;
}
- internal TouchSignal TouchSignal()
+ /// <summary>
+ /// Raises the window to the top of the window stack.
+ /// </summary>
+ /// <since_tizen> 3 </since_tizen>
+ public void Raise()
{
- TouchSignal ret = new TouchSignal(NDalicPINVOKE.Stage_TouchSignal(stageCPtr), false);
+ Interop.Window.Window_Raise(swigCPtr);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- return ret;
- }
-
- internal TouchDataSignal TouchDataSignal()
- {
- TouchDataSignal ret = new TouchDataSignal(NDalicPINVOKE.Actor_TouchSignal(Layer.getCPtr(GetRootLayer())), false);
- if (NDalicPINVOKE.SWIGPendingException.Pending)
- throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- return ret;
}
- private StageWheelSignal WheelEventSignal()
+ /// <summary>
+ /// Lowers the window to the bottom of the window stack.
+ /// </summary>
+ /// <since_tizen> 3 </since_tizen>
+ public void Lower()
{
- StageWheelSignal ret = new StageWheelSignal(NDalicPINVOKE.Stage_WheelEventSignal(stageCPtr), false);
+ Interop.Window.Window_Lower(swigCPtr);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- return ret;
- }
-
-
- private WheelSignal StageWheelEventSignal()
- {
- WheelSignal ret = new WheelSignal(NDalicPINVOKE.Actor_WheelEventSignal(Layer.getCPtr(this.GetRootLayer())), false);
- if (NDalicPINVOKE.SWIGPendingException.Pending)
- throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- return ret;
}
-
- internal VoidSignal ContextLostSignal()
+ /// <summary>
+ /// Activates the window to the top of the window stack even it is iconified.
+ /// </summary>
+ /// <since_tizen> 3 </since_tizen>
+ public void Activate()
{
- VoidSignal ret = new VoidSignal(NDalicPINVOKE.Stage_ContextLostSignal(stageCPtr), false);
+ Interop.Window.Window_Activate(swigCPtr);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- return ret;
}
- internal VoidSignal ContextRegainedSignal()
+ /// <summary>
+ /// Gets the default ( root ) layer.
+ /// </summary>
+ /// <returns>The root layer.</returns>
+ /// <since_tizen> 3 </since_tizen>
+ public Layer GetDefaultLayer()
{
- VoidSignal ret = new VoidSignal(NDalicPINVOKE.Stage_ContextRegainedSignal(stageCPtr), false);
- if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- return ret;
+ return this.GetRootLayer();
}
- internal VoidSignal SceneCreatedSignal()
+ /// <summary>
+ /// Add a child view to window.
+ /// </summary>
+ /// <param name="view">the child should be added to the window.</param>
+ /// <since_tizen> 3 </since_tizen>
+ public void Add(View view)
{
- VoidSignal ret = new VoidSignal(NDalicPINVOKE.Stage_SceneCreatedSignal(stageCPtr), false);
+ Interop.Actor.Actor_Add(Layer.getCPtr(GetRootLayer()), View.getCPtr(view));
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- return ret;
+ this.GetRootLayer().AddViewToLayerList(view); // Maintain the children list in the Layer
+ view.InternalParent = this.GetRootLayer();
}
- internal ResizedSignal ResizedSignal()
+ /// <summary>
+ /// Remove a child view from window.
+ /// </summary>
+ /// <param name="view">the child to be removed.</param>
+ /// <since_tizen> 3 </since_tizen>
+ public void Remove(View view)
{
- ResizedSignal ret = new ResizedSignal(NDalicManualPINVOKE.Window_ResizedSignal(swigCPtr), false);
- if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- return ret;
+ Interop.Actor.Actor_Remove(Layer.getCPtr(GetRootLayer()), View.getCPtr(view));
+ this.GetRootLayer().RemoveViewFromLayerList(view); // Maintain the children list in the Layer
+ view.InternalParent = null;
}
- internal static Vector4 DEFAULT_BACKGROUND_COLOR
+ /// <summary>
+ /// Retrieves the layer at a specified depth.
+ /// </summary>
+ /// <param name="depth">The layer's depth index.</param>
+ /// <returns>The layer found at the given depth.</returns>
+ /// <since_tizen> 3 </since_tizen>
+ public Layer GetLayer(uint depth)
{
- get
+ if (depth < LayersChildren?.Count)
{
- global::System.IntPtr cPtr = NDalicPINVOKE.Stage_DEFAULT_BACKGROUND_COLOR_get();
- Vector4 ret = (cPtr == global::System.IntPtr.Zero) ? null : new Vector4(cPtr, false);
- if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ Layer ret = LayersChildren?[Convert.ToInt32(depth)];
return ret;
}
- }
-
- internal static Vector4 DEBUG_BACKGROUND_COLOR
- {
- get
+ else
{
- global::System.IntPtr cPtr = NDalicPINVOKE.Stage_DEBUG_BACKGROUND_COLOR_get();
- Vector4 ret = (cPtr == global::System.IntPtr.Zero) ? null : new Vector4(cPtr, false);
- if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- return ret;
+ return null;
}
}
- private static readonly Window instance = Application.Instance.GetWindow();
+ /// <summary>
+ /// Destroy the window immediately.
+ /// </summary>
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public void Destroy()
+ {
+ this.Dispose();
+ }
/// <summary>
- /// The stage instance property (read-only).<br />
- /// Gets the current window.<br />
+ /// Keep rendering for at least the given amount of time.
/// </summary>
+ /// <param name="durationSeconds">Time to keep rendering, 0 means render at least one more frame.</param>
/// <since_tizen> 3 </since_tizen>
- public static Window Instance
+ public void KeepRendering(float durationSeconds)
{
- get
- {
- return instance;
- }
+ Interop.Stage.Stage_KeepRendering(stageCPtr, durationSeconds);
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
/// <summary>
/// <since_tizen> 3 </since_tizen>
public bool GrabKeyTopmost(int DaliKey)
{
- bool ret = NDalicManualPINVOKE.GrabKeyTopmost(HandleRef.ToIntPtr(this.swigCPtr), DaliKey);
+ bool ret = Interop.Window.GrabKeyTopmost(HandleRef.ToIntPtr(this.swigCPtr), DaliKey);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
/// <since_tizen> 3 </since_tizen>
public bool UngrabKeyTopmost(int DaliKey)
{
- bool ret = NDalicManualPINVOKE.UngrabKeyTopmost(HandleRef.ToIntPtr(this.swigCPtr), DaliKey);
+ bool ret = Interop.Window.UngrabKeyTopmost(HandleRef.ToIntPtr(this.swigCPtr), DaliKey);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
/// <since_tizen> 3 </since_tizen>
public bool GrabKey(int DaliKey, KeyGrabMode GrabMode)
{
- bool ret = NDalicManualPINVOKE.GrabKey(HandleRef.ToIntPtr(this.swigCPtr), DaliKey, (int)GrabMode);
+ bool ret = Interop.Window.GrabKey(HandleRef.ToIntPtr(this.swigCPtr), DaliKey, (int)GrabMode);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
/// <since_tizen> 3 </since_tizen>
public bool UngrabKey(int DaliKey)
{
- bool ret = NDalicManualPINVOKE.UngrabKey(HandleRef.ToIntPtr(this.swigCPtr), DaliKey);
+ bool ret = Interop.Window.UngrabKey(HandleRef.ToIntPtr(this.swigCPtr), DaliKey);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
/// <since_tizen> 5 </since_tizen>
public bool SetKeyboardRepeatInfo(float rate, float delay)
{
- bool ret = NDalicManualPINVOKE.SetKeyboardRepeatInfo(rate, delay);
+ bool ret = Interop.Window.SetKeyboardRepeatInfo(rate, delay);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
/// <since_tizen> 5 </since_tizen>
public bool GetKeyboardRepeatInfo(out float rate, out float delay)
{
- bool ret = NDalicManualPINVOKE.GetKeyboardRepeatInfo(out rate, out delay);
+ bool ret = Interop.Window.GetKeyboardRepeatInfo(out rate, out delay);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
- internal System.IntPtr GetNativeWindowHandler()
+ /// <summary>
+ /// Adds a layer to the stage.
+ /// </summary>
+ /// <param name="layer">Layer to add.</param>
+ /// <since_tizen> 3 </since_tizen>
+ public void AddLayer(Layer layer)
{
- System.IntPtr ret = NDalicManualPINVOKE.GetNativeWindowHandler(HandleRef.ToIntPtr(this.swigCPtr));
+ Interop.Window.Add(swigCPtr, Layer.getCPtr(layer));
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- return ret;
+
+ LayersChildren?.Add(layer);
+ layer.SetWindow(this);
}
/// <summary>
- /// Enumeration for orientation of the window is the way in which a rectangular page is oriented for normal viewing.
+ /// Removes a layer from the stage.
/// </summary>
+ /// <param name="layer">Layer to remove.</param>
/// <since_tizen> 3 </since_tizen>
- public enum WindowOrientation
+ public void RemoveLayer(Layer layer)
{
- /// <summary>
- /// Portrait orientation. The height of the display area is greater than the width.
- /// </summary>
- /// <since_tizen> 3 </since_tizen>
- Portrait = 0,
- /// <summary>
- /// Landscape orientation. A wide view area is needed.
- /// </summary>
- /// <since_tizen> 3 </since_tizen>
- Landscape = 90,
- /// <summary>
- /// Portrait inverse orientation.
- /// </summary>
- /// <since_tizen> 3 </since_tizen>
- PortraitInverse = 180,
- /// <summary>
- /// Landscape inverse orientation.
- /// </summary>
- /// <since_tizen> 3 </since_tizen>
- LandscapeInverse = 270
+ Interop.Window.Remove(swigCPtr, Layer.getCPtr(layer));
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+
+ LayersChildren?.Remove(layer);
+ layer.SetWindow(null);
}
/// <summary>
- /// Enumeration for the key grab mode for platform-level APIs.
+ /// Feeds a key event into the window.
/// </summary>
- /// <since_tizen> 3 </since_tizen>
- public enum KeyGrabMode
+ /// <param name="keyEvent">The key event to feed.</param>
+ /// <since_tizen> 5 </since_tizen>
+ public void FeedKey(Key keyEvent)
{
- /// <summary>
- /// Grabs a key only when on the top of the grabbing-window stack mode.
- /// </summary>
- Topmost = 0,
- /// <summary>
- /// Grabs a key together with the other client window(s) mode.
- /// </summary>
- Shared,
- /// <summary>
- /// Grabs a key exclusively regardless of the grabbing-window's position on the window stack with the possibility of overriding the grab by the other client window mode.
- /// </summary>
- OverrideExclusive,
- /// <summary>
- /// Grabs a key exclusively regardless of the grabbing-window's position on the window stack mode.
- /// </summary>
- Exclusive
- };
+ Interop.Window.Window_FeedKeyEvent(Key.getCPtr(keyEvent));
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ }
/// <summary>
- /// Enumeration for opacity of the indicator.
+ /// Allows at least one more render, even when paused.
+ /// The window should be shown, not minimised.
/// </summary>
- internal enum IndicatorBackgroundOpacity
+ /// <since_tizen> 4 </since_tizen>
+ public void RenderOnce()
{
- Opaque = 100,
- Translucent = 50,
- Transparent = 0
+ Interop.Window.Window_RenderOnce(swigCPtr);
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
- /// <summary>
- /// Enumeration for visible mode of the indicator.
- /// </summary>
- internal enum IndicatorVisibleMode
+ internal static global::System.Runtime.InteropServices.HandleRef getCPtr(Window obj)
{
- Invisible = 0,
- Visible = 1,
- Auto = 2
+ return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
}
- /// <summary>
- /// The touch event argument.
- /// </summary>
- /// <since_tizen> 3 </since_tizen>
- public class TouchEventArgs : EventArgs
+ internal static Window GetCurrent()
{
- private Touch _touch;
-
- /// <summary>
- /// Touch.
- /// </summary>
- /// <since_tizen> 3 </since_tizen>
- public Touch Touch
- {
- get
- {
- return _touch;
- }
- set
- {
- _touch = value;
- }
- }
+ Window ret = new Window(Interop.Stage.Stage_GetCurrent(), true);
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ return ret;
}
-
- private event EventHandler<TouchEventArgs> _rootLayerTouchDataEventHandler;
- [UnmanagedFunctionPointer(CallingConvention.StdCall)]
- private delegate bool RootLayerTouchDataCallbackType(IntPtr view, IntPtr touchData);
- private RootLayerTouchDataCallbackType _rootLayerTouchDataCallback;
- /// <summary>
- /// This event is emitted when the screen is touched and when the touch ends.<br />
- /// If there are multiple touch points, then this will be emitted when the first touch occurs and
- /// then when the last finger is lifted.<br />
- /// An interrupted event will also be emitted (if it occurs).<br />
- /// </summary>
- /// <since_tizen> 3 </since_tizen>
- public event EventHandler<TouchEventArgs> TouchEvent
+ internal static bool IsInstalled()
{
- add
- {
- if (_rootLayerTouchDataEventHandler == null)
- {
- _rootLayerTouchDataCallback = OnWindowTouch;
- this.TouchDataSignal().Connect(_rootLayerTouchDataCallback);
- }
- _rootLayerTouchDataEventHandler += value;
- }
- remove
- {
- _rootLayerTouchDataEventHandler -= value;
- if (_rootLayerTouchDataEventHandler == null && TouchSignal().Empty() == false)
- {
- this.TouchDataSignal().Disconnect(_rootLayerTouchDataCallback);
- }
- }
+ bool ret = Interop.Stage.Stage_IsInstalled();
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ return ret;
}
- private bool OnWindowTouch(IntPtr view, IntPtr touchData)
+ internal WindowFocusSignalType WindowFocusChangedSignal()
{
- if (touchData == global::System.IntPtr.Zero)
- {
- NUILog.Error("touchData should not be null!");
- return false;
- }
+ WindowFocusSignalType ret = new WindowFocusSignalType(Interop.Window.FocusChangedSignal(swigCPtr), false);
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ return ret;
+ }
- TouchEventArgs e = new TouchEventArgs();
+ internal void ShowIndicator(Window.IndicatorVisibleMode visibleMode)
+ {
+ Interop.WindowInternal.Window_ShowIndicator(swigCPtr, (int)visibleMode);
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ }
- e.Touch = Tizen.NUI.Touch.GetTouchFromPtr(touchData);
+ internal void SetIndicatorBackgroundOpacity(Window.IndicatorBackgroundOpacity opacity)
+ {
+ Interop.WindowInternal.Window_SetIndicatorBgOpacity(swigCPtr, (int)opacity);
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ }
- if (_rootLayerTouchDataEventHandler != null)
- {
- _rootLayerTouchDataEventHandler(this, e);
- }
- return false;
+ internal void RotateIndicator(Window.WindowOrientation orientation)
+ {
+ Interop.WindowInternal.Window_RotateIndicator(swigCPtr, (int)orientation);
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
/// <summary>
- /// Wheel event arguments.
+ /// Adds an orientation to the list of available orientations.
/// </summary>
- /// <since_tizen> 3 </since_tizen>
- public class WheelEventArgs : EventArgs
+ /// <param name="orientation">The available orientation to add</param>
+ /// <since_tizen> 6 </since_tizen>
+ public void AddAvailableOrientation(Window.WindowOrientation orientation)
{
- private Wheel _wheel;
-
- /// <summary>
- /// Wheel.
- /// </summary>
- /// <since_tizen> 3 </since_tizen>
- public Wheel Wheel
- {
- get
- {
- return _wheel;
- }
- set
- {
- _wheel = value;
- }
- }
+ Interop.Window.Window_AddAvailableOrientation(swigCPtr, (int)orientation);
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
- private event EventHandler<WheelEventArgs> _stageWheelHandler;
-
- [UnmanagedFunctionPointer(CallingConvention.StdCall)]
- private delegate bool WheelEventCallbackType(IntPtr view, IntPtr wheelEvent);
- private WheelEventCallbackType _wheelEventCallback;
-
/// <summary>
- /// This event is emitted when the wheel event is received.
+ /// Removes an orientation from the list of available orientations.
/// </summary>
- /// <since_tizen> 3 </since_tizen>
- public event EventHandler<WheelEventArgs> WheelEvent
+ /// <param name="orientation">The available orientation to remove.</param>
+ /// <since_tizen> 6 </since_tizen>
+ public void RemoveAvailableOrientation(Window.WindowOrientation orientation)
{
- add
- {
- if (_stageWheelHandler == null)
- {
- _wheelEventCallback = OnStageWheel;
- this.StageWheelEventSignal().Connect(_wheelEventCallback);
- }
- _stageWheelHandler += value;
- }
- remove
- {
- _stageWheelHandler -= value;
- if (_stageWheelHandler == null && StageWheelEventSignal().Empty() == false)
- {
- this.StageWheelEventSignal().Disconnect(_wheelEventCallback);
- }
- }
+ Interop.Window.Window_RemoveAvailableOrientation(swigCPtr, (int)orientation);
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
- private bool OnStageWheel(IntPtr rootLayer, IntPtr wheelEvent)
- {
- if (wheelEvent == global::System.IntPtr.Zero)
+ /// <summary>
+ /// Sets a preferred orientation.
+ /// </summary>
+ /// <param name="orientation">The preferred orientation.</param>
+ /// <since_tizen> 6 </since_tizen>
+ public void SetPreferredOrientation(Window.WindowOrientation orientation)
{
- NUILog.Error("wheelEvent should not be null!");
- return true;
- }
-
- WheelEventArgs e = new WheelEventArgs();
-
- e.Wheel = Tizen.NUI.Wheel.GetWheelFromPtr(wheelEvent);
-
- if (_stageWheelHandler != null)
- {
- _stageWheelHandler(this, e);
- }
- return true;
+ Interop.Window.Window_SetPreferredOrientation(swigCPtr, (int)orientation);
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
/// <summary>
- /// Key event arguments.
+ /// Gets the preferred orientation.
/// </summary>
- /// <since_tizen> 3 </since_tizen>
- public class KeyEventArgs : EventArgs
+ /// <since_tizen> 6 </since_tizen>
+ /// <returns>The preferred orientation if previously set, or none.</returns>
+ public Window.WindowOrientation GetPreferredOrientation()
{
- private Key _key;
-
- /// <summary>
- /// Key.
- /// </summary>
- /// <since_tizen> 3 </since_tizen>
- public Key Key
- {
- get
- {
- return _key;
- }
- set
- {
- _key = value;
- }
- }
+ Window.WindowOrientation ret = (Window.WindowOrientation)Interop.Window.Window_GetPreferredOrientation(swigCPtr);
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ return ret;
}
- private event EventHandler<KeyEventArgs> _stageKeyHandler;
- private EventCallbackDelegateType1 _stageKeyCallbackDelegate;
-
- /// <summary>
- /// This event is emitted when the key event is received.
- /// </summary>
- /// <since_tizen> 3 </since_tizen>
- public event EventHandler<KeyEventArgs> KeyEvent
+ internal Any GetNativeHandle()
{
- add
- {
- if (_stageKeyHandler == null)
- {
- _stageKeyCallbackDelegate = OnStageKey;
- KeyEventSignal().Connect(_stageKeyCallbackDelegate);
- }
- _stageKeyHandler += value;
- }
- remove
- {
- _stageKeyHandler -= value;
- if (_stageKeyHandler == null && KeyEventSignal().Empty() == false)
- {
- KeyEventSignal().Disconnect(_stageKeyCallbackDelegate);
- }
- }
+ Any ret = new Any(Interop.WindowInternal.Window_GetNativeHandle(swigCPtr), true);
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ return ret;
}
- // Callback for Stage KeyEventsignal
- private void OnStageKey(IntPtr data)
+ internal WindowFocusSignalType FocusChangedSignal()
{
- KeyEventArgs e = new KeyEventArgs();
+ WindowFocusSignalType ret = new WindowFocusSignalType(Interop.Window.FocusChangedSignal(swigCPtr), false);
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ return ret;
+ }
- if (data != null)
- {
- e.Key = Tizen.NUI.Key.GetKeyFromPtr(data);
- }
+ internal void Add(Layer layer)
+ {
+ Interop.Window.Add(swigCPtr, Layer.getCPtr(layer));
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- if (_stageKeyHandler != null)
- {
- //here we send all data to user event handlers
- _stageKeyHandler(this, e);
- }
+ LayersChildren?.Add(layer);
+ layer.SetWindow(this);
}
+ internal void Remove(Layer layer)
+ {
+ Interop.Window.Remove(swigCPtr, Layer.getCPtr(layer));
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- private event EventHandler _stageEventProcessingFinishedEventHandler;
- private EventCallbackDelegateType0 _stageEventProcessingFinishedEventCallbackDelegate;
+ LayersChildren?.Remove(layer);
+ layer.SetWindow(null);
+ }
- internal event EventHandler EventProcessingFinished
+ internal Vector2 GetSize()
{
- add
- {
- if (_stageEventProcessingFinishedEventHandler == null)
- {
- _stageEventProcessingFinishedEventCallbackDelegate = OnEventProcessingFinished;
- EventProcessingFinishedSignal().Connect(_stageEventProcessingFinishedEventCallbackDelegate);
- }
- _stageEventProcessingFinishedEventHandler += value;
-
- }
- remove
- {
- _stageEventProcessingFinishedEventHandler -= value;
- if (_stageEventProcessingFinishedEventHandler == null && EventProcessingFinishedSignal().Empty() == false)
- {
- EventProcessingFinishedSignal().Disconnect(_stageEventProcessingFinishedEventCallbackDelegate);
- }
- }
+ var val = new Uint16Pair(Interop.Window.GetSize(swigCPtr), false);
+ Vector2 ret = new Vector2(val.GetWidth(), val.GetHeight());
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ return ret;
}
- // Callback for Stage EventProcessingFinishedSignal
- private void OnEventProcessingFinished()
+ internal RenderTaskList GetRenderTaskList()
{
- if (_stageEventProcessingFinishedEventHandler != null)
- {
- _stageEventProcessingFinishedEventHandler(this, null);
- }
+ RenderTaskList ret = new RenderTaskList(Interop.Stage.Stage_GetRenderTaskList(stageCPtr), true);
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ return ret;
}
+ /// <summary>
+ /// Queries the number of on-window layers.
+ /// </summary>
+ /// <returns>The number of layers.</returns>
+ /// <remarks>Note that a default layer is always provided (count >= 1).</remarks>
+ internal uint GetLayerCount()
+ {
+ if (LayersChildren == null || LayersChildren.Count < 0)
+ return 0;
- private EventHandler _stageContextLostEventHandler;
- private EventCallbackDelegateType0 _stageContextLostEventCallbackDelegate;
+ return (uint) LayersChildren.Count;
+ }
- internal event EventHandler ContextLost
+ internal Layer GetRootLayer()
{
- add
- {
- if (_stageContextLostEventHandler == null)
- {
- _stageContextLostEventCallbackDelegate = OnContextLost;
- ContextLostSignal().Connect(_stageContextLostEventCallbackDelegate);
- }
- _stageContextLostEventHandler += value;
- }
- remove
+ // Window.IsInstalled() is actually true only when called from event thread and
+ // Core has been initialized, not when Stage is ready.
+ if (_rootLayer == null && Window.IsInstalled())
{
- _stageContextLostEventHandler -= value;
- if (_stageContextLostEventHandler == null && ContextLostSignal().Empty() == false)
- {
- ContextLostSignal().Disconnect(_stageContextLostEventCallbackDelegate);
- }
+ _rootLayer = new Layer(Interop.Window.GetRootLayer(swigCPtr), true);
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ LayersChildren?.Add(_rootLayer);
+ _rootLayer.SetWindow(this);
}
+ return _rootLayer;
}
- // Callback for Stage ContextLostSignal
- private void OnContextLost()
+ internal void SetBackgroundColor(Vector4 color)
{
- if (_stageContextLostEventHandler != null)
- {
- _stageContextLostEventHandler(this, null);
- }
+ Interop.Window.SetBackgroundColor(swigCPtr, Vector4.getCPtr(color));
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
-
- private EventHandler _stageContextRegainedEventHandler;
- private EventCallbackDelegateType0 _stageContextRegainedEventCallbackDelegate;
-
- internal event EventHandler ContextRegained
+ internal Vector4 GetBackgroundColor()
{
- add
- {
- if (_stageContextRegainedEventHandler == null)
- {
- _stageContextRegainedEventCallbackDelegate = OnContextRegained;
- ContextRegainedSignal().Connect(_stageContextRegainedEventCallbackDelegate);
- }
- _stageContextRegainedEventHandler += value;
- }
- remove
- {
- _stageContextRegainedEventHandler -= value;
- if (_stageContextRegainedEventHandler == null && ContextRegainedSignal().Empty() == false)
- {
- this.ContextRegainedSignal().Disconnect(_stageContextRegainedEventCallbackDelegate);
- }
- }
+ Vector4 ret = new Vector4(Interop.Window.GetBackgroundColor(swigCPtr), true);
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ return ret;
}
- // Callback for Stage ContextRegainedSignal
- private void OnContextRegained()
+ internal Vector2 GetDpi()
{
- if (_stageContextRegainedEventHandler != null)
- {
- _stageContextRegainedEventHandler(this, null);
- }
+ Vector2 ret = new Vector2(Interop.Stage.Stage_GetDpi(stageCPtr), true);
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ return ret;
}
+ internal ObjectRegistry GetObjectRegistry()
+ {
+ ObjectRegistry ret = new ObjectRegistry(Interop.Stage.Stage_GetObjectRegistry(stageCPtr), true);
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ return ret;
+ }
- private EventHandler _stageSceneCreatedEventHandler;
- private EventCallbackDelegateType0 _stageSceneCreatedEventCallbackDelegate;
-
- internal event EventHandler SceneCreated
+ internal void SetRenderingBehavior(RenderingBehaviorType renderingBehavior)
{
- add
- {
- if (_stageSceneCreatedEventHandler == null)
- {
- _stageSceneCreatedEventCallbackDelegate = OnSceneCreated;
- SceneCreatedSignal().Connect(_stageSceneCreatedEventCallbackDelegate);
- }
- _stageSceneCreatedEventHandler += value;
- }
- remove
- {
- _stageSceneCreatedEventHandler -= value;
- if (_stageSceneCreatedEventHandler == null && SceneCreatedSignal().Empty() == false)
- {
- SceneCreatedSignal().Disconnect(_stageSceneCreatedEventCallbackDelegate);
- }
- }
+ Interop.Stage.Stage_SetRenderingBehavior(stageCPtr, (int)renderingBehavior);
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
- // Callback for Stage SceneCreatedSignal
- private void OnSceneCreated()
+ internal RenderingBehaviorType GetRenderingBehavior()
{
- if (_stageSceneCreatedEventHandler != null)
- {
- _stageSceneCreatedEventHandler(this, null);
- }
+ RenderingBehaviorType ret = (RenderingBehaviorType)Interop.Stage.Stage_GetRenderingBehavior(stageCPtr);
+ if (NDalicPINVOKE.SWIGPendingException.Pending)
+ throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ return ret;
}
- /// <summary>
- /// This resized event arguments.
- /// </summary>
- /// <since_tizen> 3 </since_tizen>
- public class ResizedEventArgs : EventArgs
+ internal KeyEventSignal KeyEventSignal()
{
- Size2D _windowSize;
+ KeyEventSignal ret = new KeyEventSignal(Interop.Window.KeyEventSignal(swigCPtr), false);
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ return ret;
+ }
- /// <summary>
- /// This window size.
- /// </summary>
- /// <since_tizen> 4 </since_tizen>
- public Size2D WindowSize
- {
- get
- {
- return _windowSize;
- }
- set
- {
- _windowSize = value;
- }
- }
+ internal VoidSignal EventProcessingFinishedSignal()
+ {
+ VoidSignal ret = new VoidSignal(Interop.StageSignal.Stage_EventProcessingFinishedSignal(stageCPtr), false);
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ return ret;
}
- private WindowResizedEventCallbackType _windowResizedEventCallback;
- [UnmanagedFunctionPointer(CallingConvention.StdCall)]
- private delegate void WindowResizedEventCallbackType(IntPtr windowSize);
- private event EventHandler<ResizedEventArgs> _windowResizedEventHandler;
+ internal TouchSignal TouchSignal()
+ {
+ TouchSignal ret = new TouchSignal(Interop.Window.TouchSignal(swigCPtr), false);
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ return ret;
+ }
- /// <summary>
- /// This event is emitted when the window resized.
- /// </summary>
- /// <since_tizen> 3 </since_tizen>
- public event EventHandler<ResizedEventArgs> Resized
+ internal TouchDataSignal TouchDataSignal()
{
- add
- {
- if (_windowResizedEventHandler == null)
- {
- _windowResizedEventCallback = OnResized;
- ResizedSignal().Connect(_windowResizedEventCallback);
- }
+ TouchDataSignal ret = new TouchDataSignal(Interop.ActorSignal.Actor_TouchSignal(Layer.getCPtr(GetRootLayer())), false);
+ if (NDalicPINVOKE.SWIGPendingException.Pending)
+ throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ return ret;
+ }
- _windowResizedEventHandler += value;
- }
- remove
- {
- _windowResizedEventHandler -= value;
+ internal VoidSignal ContextLostSignal()
+ {
+ VoidSignal ret = new VoidSignal(Interop.StageSignal.Stage_ContextLostSignal(stageCPtr), false);
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ return ret;
+ }
- if (_windowResizedEventHandler == null && ResizedSignal().Empty() == false && _windowResizedEventCallback != null)
- {
- ResizedSignal().Disconnect(_windowResizedEventCallback);
- }
- }
+ internal VoidSignal ContextRegainedSignal()
+ {
+ VoidSignal ret = new VoidSignal(Interop.StageSignal.Stage_ContextRegainedSignal(stageCPtr), false);
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ return ret;
}
- private void OnResized(IntPtr windowSize)
+ internal VoidSignal SceneCreatedSignal()
{
- ResizedEventArgs e = new ResizedEventArgs();
- var val = new Uint16Pair(windowSize, false);
- e.WindowSize = new Size2D(val.GetWidth(), val.GetHeight());
- val.Dispose();
+ VoidSignal ret = new VoidSignal(Interop.StageSignal.Stage_SceneCreatedSignal(stageCPtr), false);
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ return ret;
+ }
- if (_windowResizedEventHandler != null)
- {
- _windowResizedEventHandler(this, e);
- }
+ internal ResizedSignal ResizedSignal()
+ {
+ ResizedSignal ret = new ResizedSignal(Interop.Window.Window_ResizedSignal(swigCPtr), false);
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ return ret;
}
internal void SetWindowSize(Size2D size)
{
var val = new Uint16Pair((uint)size.Width, (uint)size.Height);
- NDalicManualPINVOKE.SetSize(swigCPtr, Uint16Pair.getCPtr(val));
+ Interop.Window.SetSize(swigCPtr, Uint16Pair.getCPtr(val));
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- if(rootLayoutItem != null)
- {
- rootLayoutItem.RequestLayout();
- }
+ // Resetting Window size should request a relayout of the tree.
}
internal Size2D GetWindowSize()
{
- var val = new Uint16Pair(NDalicManualPINVOKE.GetSize(swigCPtr), false);
+ var val = new Uint16Pair(Interop.Window.GetSize(swigCPtr), false);
Size2D ret = new Size2D(val.GetWidth(), val.GetHeight());
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
internal void SetPosition(Position2D position)
{
var val = new Uint16Pair((uint)position.X, (uint)position.Y);
- NDalicManualPINVOKE.SetPosition(swigCPtr, Uint16Pair.getCPtr(val));
+ Interop.Window.SetPosition(swigCPtr, Uint16Pair.getCPtr(val));
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- if(rootLayoutItem != null)
- {
- rootLayoutItem.RequestLayout();
- }
+ // Setting Position of the window should request a relayout of the tree.
+
}
internal Position2D GetPosition()
{
- var val = new Uint16Pair(NDalicManualPINVOKE.GetPosition(swigCPtr), true);
+ var val = new Uint16Pair(Interop.Window.GetPosition(swigCPtr), true);
Position2D ret = new Position2D(val.GetX(), val.GetY());
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
internal void SetPositionSize(Rectangle positionSize)
{
- NDalicPINVOKE.Window_SetPositionSize(swigCPtr, Rectangle.getCPtr(positionSize));
+ Interop.Window.Window_SetPositionSize(swigCPtr, Rectangle.getCPtr(positionSize));
+
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- if(rootLayoutItem != null)
- {
- rootLayoutItem.RequestLayout();
- }
+ // Setting Position of the window should request a relayout of the tree.
+
}
/// <summary>
/// <param name="transparent">Whether the window is transparent or not.</param>
/// <since_tizen> 5 </since_tizen>
public void SetTransparency(bool transparent) {
- NDalicManualPINVOKE.SetTransparency(swigCPtr, transparent);
+ Interop.Window.SetTransparency(swigCPtr, transparent);
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+
+ // Setting transparency of the window should request a relayout of the tree in the case the window changes from fully transparent.
+
+ }
+
+ /// <summary>
+ /// Sets parent window of the window.
+ /// After setting that, these windows do together when raise-up, lower and iconified/deiconified.
+ /// Initially, the window is located on top of the parent. The window can go below parent by calling Lower().
+ /// If parent's window stack is changed by calling Raise() or Lower(), child windows are located on top of the parent again.
+ /// </summary>
+ /// <param name="parent">The parent window.</param>
+ /// <since_tizen> 6 </since_tizen>
+ public void SetParent(Window parent) {
+ Interop.Window.SetParent(swigCPtr, Window.getCPtr(parent));
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
/// <summary>
- /// The window size property (read-only).
+ /// Unsets parent window of the window.
+ /// After unsetting, the window is disconnected his parent window.
/// </summary>
- /// <since_tizen> 3 </since_tizen>
- public Size2D Size
+ /// <since_tizen> 6 </since_tizen>
+ public void Unparent() {
+ Interop.Window.Unparent(swigCPtr);
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ }
+
+ /// <summary>
+ /// Gets parent window of the window.
+ /// </summary>
+ /// <returns>The parent window of the window.</returns>
+ /// <since_tizen> 6 </since_tizen>
+ public Window GetParent() {
+ Window ret = Registry.GetManagedBaseHandleFromNativePtr(Interop.Window.GetParent(swigCPtr)) as Window;
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ return ret;
+ }
+
+ /// <summary>
+ /// Dispose for Window
+ /// </summary>
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ protected override void Dispose(DisposeTypes type)
{
- get
+ if (disposed)
{
- Size2D ret = GetSize();
- return ret;
+ return;
+ }
+
+ if (type == DisposeTypes.Explicit)
+ {
+ //Called by User
+ //Release your own managed resources here.
+ //You should release all of your own disposable objects here.
+
+ _rootLayer.Dispose();
+ localController.Dispose();
+
+ foreach(var layer in _childLayers)
+ {
+ layer.Dispose();
+ }
+ _childLayers.Clear();
+ }
+
+ this.DisconnectNativeSignals();
+
+ //Release your own unmanaged resources here.
+ //You should not access any managed member here except static instance.
+ //because the execution order of Finalizes is non-deterministic.
+
+ if (swigCPtr.Handle != global::System.IntPtr.Zero)
+ {
+ if (swigCMemOwn)
+ {
+ swigCMemOwn = false;
+ Interop.Window.delete_Window(swigCPtr);
+ }
+ swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
}
+
+ base.Dispose(type);
}
- /// <summary>
- /// The background color property.
- /// </summary>
- /// <since_tizen> 3 </since_tizen>
- public Color BackgroundColor
+ internal System.IntPtr GetNativeWindowHandler()
{
- set
+ System.IntPtr ret = Interop.Window.GetNativeWindowHandler(HandleRef.ToIntPtr(this.swigCPtr));
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ return ret;
+ }
+
+ private void OnWindowFocusedChanged(bool focusGained)
+ {
+ FocusChangedEventArgs e = new FocusChangedEventArgs();
+
+ e.FocusGained = focusGained;
+
+ if (_windowFocusChangedEventHandler != null)
{
- SetBackgroundColor(value);
+ _windowFocusChangedEventHandler(this, e);
}
- get
+ }
+
+ private StageWheelSignal WheelEventSignal()
+ {
+ StageWheelSignal ret = new StageWheelSignal(Interop.StageSignal.Stage_WheelEventSignal(stageCPtr), false);
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ return ret;
+ }
+
+ private WheelSignal StageWheelEventSignal()
+ {
+ WheelSignal ret = new WheelSignal(Interop.ActorSignal.Actor_WheelEventSignal(Layer.getCPtr(this.GetRootLayer())), false);
+ if (NDalicPINVOKE.SWIGPendingException.Pending)
+ throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ return ret;
+ }
+
+ private bool OnWindowTouch(IntPtr view, IntPtr touchData)
+ {
+ if (touchData == global::System.IntPtr.Zero)
{
- Color ret = GetBackgroundColor();
- return ret;
+ NUILog.Error("touchData should not be null!");
+ return false;
+ }
+
+ TouchEventArgs e = new TouchEventArgs();
+
+ e.Touch = Tizen.NUI.Touch.GetTouchFromPtr(touchData);
+
+ if (_rootLayerTouchDataEventHandler != null)
+ {
+ _rootLayerTouchDataEventHandler(this, e);
}
+ return false;
}
- /// <summary>
- /// The DPI property (read-only).<br />
- /// Retrieves the DPI of the display device to which the Window is connected.<br />
- /// </summary>
- /// <since_tizen> 3 </since_tizen>
- public Vector2 Dpi
+ private bool OnStageWheel(IntPtr rootLayer, IntPtr wheelEvent)
{
- get
+ if (wheelEvent == global::System.IntPtr.Zero)
{
- return GetDpi();
+ NUILog.Error("wheelEvent should not be null!");
+ return true;
+ }
+
+ WheelEventArgs e = new WheelEventArgs();
+
+ e.Wheel = Tizen.NUI.Wheel.GetWheelFromPtr(wheelEvent);
+
+ if (_stageWheelHandler != null)
+ {
+ _stageWheelHandler(this, e);
}
+ return true;
}
- /// <summary>
- /// The layer count property (read-only).<br />
- /// Queries the number of on-Window layers.<br />
- /// </summary>
- /// <since_tizen> 3 </since_tizen>
- public uint LayerCount
+ // Callback for Stage KeyEventsignal
+ private void OnStageKey(IntPtr data)
{
- get
+ KeyEventArgs e = new KeyEventArgs();
+ e.Key = Tizen.NUI.Key.GetKeyFromPtr(data);
+
+
+ if (_stageKeyHandler != null)
{
- return GetLayerCount();
+ //here we send all data to user event handlers
+ _stageKeyHandler(this, e);
}
}
+ // Callback for Stage EventProcessingFinishedSignal
+ private void OnEventProcessingFinished()
+ {
+ if (_stageEventProcessingFinishedEventHandler != null)
+ {
+ _stageEventProcessingFinishedEventHandler(this, null);
+ }
+ }
- /// <summary>
- /// Adds a layer to the stage.
- /// </summary>
- /// <param name="layer">Layer to add.</param>
- /// <since_tizen> 3 </since_tizen>
- public void AddLayer(Layer layer)
+ // Callback for Stage ContextLostSignal
+ private void OnContextLost()
{
- NDalicPINVOKE.Stage_Add(stageCPtr, Layer.getCPtr(layer));
- if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ if (_stageContextLostEventHandler != null)
+ {
+ _stageContextLostEventHandler(this, null);
+ }
+ }
- LayersChildren.Add(layer);
+ // Callback for Stage ContextRegainedSignal
+ private void OnContextRegained()
+ {
+ if (_stageContextRegainedEventHandler != null)
+ {
+ _stageContextRegainedEventHandler(this, null);
+ }
}
- /// <summary>
- /// Removes a layer from the stage.
- /// </summary>
- /// <param name="layer">Layer to remove.</param>
- /// <since_tizen> 3 </since_tizen>
- public void RemoveLayer(Layer layer)
+ // Callback for Stage SceneCreatedSignal
+ private void OnSceneCreated()
{
- NDalicPINVOKE.Stage_Remove(stageCPtr, Layer.getCPtr(layer));
- if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ if (_stageSceneCreatedEventHandler != null)
+ {
+ _stageSceneCreatedEventHandler(this, null);
+ }
+ }
+
+ private void OnResized(IntPtr windowSize)
+ {
+ ResizedEventArgs e = new ResizedEventArgs();
+ var val = new Uint16Pair(windowSize, false);
+ e.WindowSize = new Size2D(val.GetWidth(), val.GetHeight());
+ val.Dispose();
+
+ if (_windowResizedEventHandler != null)
+ {
+ _windowResizedEventHandler(this, e);
+ }
+ }
+
+ private void OnWindowFocusedChanged2(bool focusGained)
+ {
+ FocusChangedEventArgs e = new FocusChangedEventArgs();
+
+ e.FocusGained = focusGained;
- LayersChildren.Remove(layer);
+ if (_windowFocusChangedEventHandler2 != null)
+ {
+ _windowFocusChangedEventHandler2(this, e);
+ }
}
/// <summary>
- /// Please do not use! this will be deprecated
+ /// The focus changed event argument.
/// </summary>
/// <since_tizen> 3 </since_tizen>
- [Obsolete("Please do not use! This will be deprecated! Please use FocusChangedEventArgs instead! " +
- "Like: " +
- "Window.Instance.FocusChanged = OnFocusChanged; " +
- "private void OnFocusChanged(object source, Window.FocusChangedEventArgs args) {...}")]
- [EditorBrowsable(EditorBrowsableState.Never)]
- public class WindowFocusChangedEventArgs : EventArgs
+ public class FocusChangedEventArgs : EventArgs
{
/// <summary>
- /// Please do not use! this will be deprecated
+ /// FocusGained flag.
/// </summary>
/// <since_tizen> 3 </since_tizen>
public bool FocusGained
}
}
- private WindowFocusChangedEventCallbackType _windowFocusChangedEventCallback2;
- [UnmanagedFunctionPointer(CallingConvention.StdCall)]
- private delegate void WindowFocusChangedEventCallbackType2(bool focusGained);
- private event EventHandler<WindowFocusChangedEventArgs> _windowFocusChangedEventHandler2;
-
/// <summary>
- /// Please do not use! this will be deprecated. Please use 'FocusChanged' event instead.
+ /// The touch event argument.
/// </summary>
/// <since_tizen> 3 </since_tizen>
- /// Please do not use! this will be deprecated!
- /// Instead please use FocusChanged.
- [Obsolete("Please do not use! This will be deprecated! Please use FocusChanged instead! " +
- "Like: " +
- "Window.Instance.FocusChanged = OnFocusChanged; " +
- "private void OnFocusChanged(object source, Window.FocusChangedEventArgs args) {...}")]
- [EditorBrowsable(EditorBrowsableState.Never)]
- public event EventHandler<WindowFocusChangedEventArgs> WindowFocusChanged
+ public class TouchEventArgs : EventArgs
{
- add
+ private Touch _touch;
+
+ /// <summary>
+ /// Touch.
+ /// </summary>
+ /// <since_tizen> 3 </since_tizen>
+ public Touch Touch
{
- if (_windowFocusChangedEventHandler2 == null)
+ get
{
- _windowFocusChangedEventCallback2 = OnWindowFocusedChanged2;
- WindowFocusChangedSignal().Connect(_windowFocusChangedEventCallback2);
+ return _touch;
}
-
- _windowFocusChangedEventHandler2 += value;
- }
- remove
- {
- _windowFocusChangedEventHandler2 -= value;
-
- if (_windowFocusChangedEventHandler2 == null && WindowFocusChangedSignal().Empty() == false && _windowFocusChangedEventCallback2 != null)
+ set
{
- WindowFocusChangedSignal().Disconnect(_windowFocusChangedEventCallback2);
+ _touch = value;
}
}
}
- private void OnWindowFocusedChanged2(bool focusGained)
- {
- WindowFocusChangedEventArgs e = new WindowFocusChangedEventArgs();
-
- e.FocusGained = focusGained;
-
- if (_windowFocusChangedEventHandler2 != null)
- {
- _windowFocusChangedEventHandler2(this, e);
- }
- }
-
/// <summary>
- /// Gets or sets a size of the window.
+ /// Wheel event arguments.
/// </summary>
- /// <since_tizen> 4 </since_tizen>
- public Size2D WindowSize
+ /// <since_tizen> 3 </since_tizen>
+ public class WheelEventArgs : EventArgs
{
- get
- {
- return GetWindowSize();
- }
- set
+ private Wheel _wheel;
+
+ /// <summary>
+ /// Wheel.
+ /// </summary>
+ /// <since_tizen> 3 </since_tizen>
+ public Wheel Wheel
{
- SetWindowSize(value);
+ get
+ {
+ return _wheel;
+ }
+ set
+ {
+ _wheel = value;
+ }
}
}
/// <summary>
- /// Gets or sets a position of the window.
+ /// Key event arguments.
/// </summary>
- /// <since_tizen> 4 </since_tizen>
- public Position2D WindowPosition
+ /// <since_tizen> 3 </since_tizen>
+ public class KeyEventArgs : EventArgs
{
- get
- {
- return GetPosition();
- }
- set
+ private Key _key;
+
+ /// <summary>
+ /// Key.
+ /// </summary>
+ /// <since_tizen> 3 </since_tizen>
+ public Key Key
{
- SetPosition(value);
+ get
+ {
+ return _key;
+ }
+ set
+ {
+ _key = value;
+ }
}
}
/// <summary>
/// Feeds a key event into the window.
+ /// This resized event arguments.
/// </summary>
- /// <param name="keyEvent">The key event to feed.</param>
- /// <since_tizen> 5 </since_tizen>
- public void FeedKey(Key keyEvent)
+ /// <since_tizen> 3 </since_tizen>
+ public class ResizedEventArgs : EventArgs
{
- NDalicManualPINVOKE.Window_FeedKeyEvent(Key.getCPtr(keyEvent));
- if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- }
+ Size2D _windowSize;
- /// <summary>
- /// Feed a key-event into the window.
- /// </summary>
- /// <param name="keyEvent">The key event to feed.</param>
- /// <since_tizen> 4 </since_tizen>
- [Obsolete("Please do not use! This will be deprecated! Please use FeedKey(Key keyEvent) instead!")]
- public static void FeedKeyEvent(Key keyEvent)
- {
- NDalicManualPINVOKE.Window_FeedKeyEvent(Key.getCPtr(keyEvent));
- if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ /// <summary>
+ /// This window size.
+ /// </summary>
+ /// <since_tizen> 4 </since_tizen>
+ public Size2D WindowSize
+ {
+ get
+ {
+ return _windowSize;
+ }
+ set
+ {
+ _windowSize = value;
+ }
+ }
}
/// <summary>
- /// Allows at least one more render, even when paused.
- /// The window should be shown, not minimised.
+ /// Please do not use! this will be deprecated
/// </summary>
- /// <since_tizen> 4 </since_tizen>
- public void RenderOnce()
+ /// <since_tizen> 3 </since_tizen>
+ [Obsolete("Please do not use! This will be deprecated! Please use FocusChangedEventArgs instead! " +
+ "Like: " +
+ "Window.Instance.FocusChanged = OnFocusChanged; " +
+ "private void OnFocusChanged(object source, Window.FocusChangedEventArgs args) {...}")]
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public class WindowFocusChangedEventArgs : EventArgs
{
- NDalicManualPINVOKE.Window_RenderOnce(swigCPtr);
- if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ /// <summary>
+ /// Please do not use! this will be deprecated
+ /// </summary>
+ /// <since_tizen> 3 </since_tizen>
+ public bool FocusGained
+ {
+ get;
+ set;
+ }
}
/// <summary>
/// Disconnect all native signals
/// </summary>
/// <since_tizen> 5 </since_tizen>
- internal void DisconnectNativeSignals()
+ internal void DisconnectNativeSignals()
{
if( _windowFocusChangedEventCallback != null )
{
WindowFocusChangedSignal().Disconnect(_windowFocusChangedEventCallback2);
}
+ if(transitionEffectSignal != null)
+ {
+ TransitionEffectEventSignal().Disconnect(transitionEffectEventCallback);
+ }
+
+ }
+
+ private void OnTransitionEffect(IntPtr window, int state, int type)
+ {
+ //Tizen.Log.Fatal("NUITEST", $"OnTransitionEffect() called");
+ if (window == global::System.IntPtr.Zero)
+ {
+ //Tizen.Log.Error("NUI", $"OnTransitionEffect() IntPtr window is null!");
+ return;
+ }
+
+ TransitionEffectArgs e = new TransitionEffectArgs();
+
+ e.State = (EffectStates)state;
+ //Tizen.Log.Error("NUITEST", $"e.State={e.State}");
+
+ e.Type = (EffectTypes)type;
+ //Tizen.Log.Error("NUITEST", $"e.Type={e.Type}");
+
+ if (transitionEffectHandler != null)
+ {
+ //Tizen.Log.Fatal("NUITEST", $"Execute transitionEffectHandler(this, e)!!!");
+ transitionEffectHandler(this, e);
+ }
+ return;
+ }
+
+ [UnmanagedFunctionPointer(CallingConvention.StdCall)]
+ private delegate void TransitionEffectEventCallbackType(IntPtr window, int state, int type);
+
+ private TransitionEffectEventCallbackType transitionEffectEventCallback;
+
+ private event EventHandler<TransitionEffectArgs> transitionEffectHandler;
+
+ /// <summary>
+ /// EffectStates
+ /// </summary>
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public enum EffectStates
+ {
+ /// <summary>
+ /// None
+ /// </summary>
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ None = 0,
+ /// <summary>
+ /// Start
+ /// </summary>
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ Start = 1,
+ /// <summary>
+ /// End
+ /// </summary>
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ End = 2,
+ }
+
+ /// <summary>
+ /// EffectTypes
+ /// </summary>
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public enum EffectTypes
+ {
+ /// <summary>
+ /// None
+ /// </summary>
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ None = 0,
+ /// <summary>
+ /// Shown
+ /// </summary>
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ Shown = 1,
+ /// <summary>
+ /// Hidden
+ /// </summary>
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ Hidden = 2,
+ /// <summary>
+ /// Restacked
+ /// </summary>
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ Restacked = 3,
+
+ }
+
+ /// <summary>
+ /// TransitionEffectArgs
+ /// </summary>
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public class TransitionEffectArgs : EventArgs
+ {
+ private EffectStates state;
+ /// <summary>
+ /// State
+ /// </summary>
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public EffectStates State
+ {
+ get
+ {
+ return state;
+ }
+ set
+ {
+ state = value;
+ }
+ }
+ private EffectTypes type;
+ /// <summary>
+ /// Type
+ /// </summary>
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public EffectTypes Type
+ {
+ get
+ {
+ return type;
+ }
+ set
+ {
+ type = value;
+ }
+ }
+ }
+
+ /// <summary>
+ /// EffectStart
+ /// </summary>
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public event EventHandler<TransitionEffectArgs> TransitionEffect
+ {
+ add
+ {
+ if (transitionEffectHandler== null)
+ {
+ transitionEffectEventCallback = OnTransitionEffect;
+ TransitionEffectEventSignal().Connect(transitionEffectEventCallback);
+ }
+ transitionEffectHandler += value;
+ }
+ remove
+ {
+ transitionEffectHandler -= value;
+ if (transitionEffectHandler == null && TransitionEffectEventSignal().Empty() == false)
+ {
+ TransitionEffectEventSignal().Disconnect(transitionEffectEventCallback);
+ }
+ }
+ }
+
+ private WindowTransitionEffectSignal transitionEffectSignal;
+ private WindowTransitionEffectSignal TransitionEffectEventSignal()
+ {
+ //Tizen.Log.Fatal("NUITEST", "TransitionEffectEventSignal()!");
+ if (transitionEffectSignal == null)
+ {
+ transitionEffectSignal = new WindowTransitionEffectSignal(this);
+ if (NDalicPINVOKE.SWIGPendingException.Pending)
+ throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ //Tizen.Log.Fatal("NUITEST", $"transitionEffectSignal is null, new here!");
+ }
+ return transitionEffectSignal;
}
}