* limitations under the License.
*
*/
-using System;
+
+extern alias TizenSystemInformation;
+using TizenSystemInformation.Tizen.System;
+using global::System;
using System.ComponentModel;
using System.Collections.Generic;
-using System.Runtime.InteropServices;
+using global::System.Runtime.InteropServices;
using Tizen.NUI.BaseComponents;
namespace Tizen.NUI
private List<Layer> _childLayers = new List<Layer>();
private LayoutController localController;
- internal Window(global::System.IntPtr cPtr, bool cMemoryOwn) : base(Interop.Window.Window_SWIGUpcast(cPtr), cMemoryOwn)
+ private bool IsSupportedMultiWindow()
+ {
+ bool isSupported = false;
+ Information.TryGetValue("http://tizen.org/feature/opengles.surfaceless_context", out isSupported);
+ return isSupported;
+ }
+
+ internal Window(global::System.IntPtr cPtr, bool cMemoryOwn) : base(Interop.Window.Upcast(cPtr), cMemoryOwn)
{
- if (Interop.Stage.Stage_IsInstalled())
+ if (Interop.Stage.IsInstalled())
{
- stageCPtr = new global::System.Runtime.InteropServices.HandleRef(this, Interop.Stage.Stage_GetCurrent());
+ stageCPtr = new global::System.Runtime.InteropServices.HandleRef(this, Interop.Stage.GetCurrent());
localController = new LayoutController(this);
- NUILog.Debug("layoutController id:" + localController.GetId() );
+ NUILog.Debug("layoutController id:" + localController.GetId());
}
}
-
+
/// <summary>
/// Creates a new Window.<br />
/// This creates an extra window in addition to the default main window<br />
/// <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)
+ /// <feature> http://tizen.org/feature/opengles.surfaceless_context </feature>
+ /// <exception cref="NotSupportedException">The required feature is not supported.</exception>
+ public Window(Rectangle windowPosition = null, bool isTranslucent = false) : this(Interop.Window.New(Rectangle.getCPtr(windowPosition), "", isTranslucent), true)
{
+ if (IsSupportedMultiWindow() == false)
+ {
+ NUILog.Error("This device does not support surfaceless_context. So Window cannot be created. ");
+ }
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
/// <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)
+ /// <feature> http://tizen.org/feature/opengles.surfaceless_context </feature>
+ /// <exception cref="NotSupportedException">The required feature is not supported.</exception>
+ public Window(string name, Rectangle windowPosition = null, bool isTranslucent = false) : this(Interop.Window.New(Rectangle.getCPtr(windowPosition), name, isTranslucent), true)
{
+ if (IsSupportedMultiWindow() == false)
+ {
+ NUILog.Error("This device does not support surfaceless_context. So Window cannot be created. ");
+ }
this._windowTitle = name;
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
/// Landscape inverse orientation.
/// </summary>
/// <since_tizen> 3 </since_tizen>
- LandscapeInverse = 270
+ LandscapeInverse = 270,
+ /// <summary>
+ /// No orientation. It is for the preferred orientation
+ /// Especially, NoOrientationPreference only has the effect for the preferred orientation.
+ /// It is used to unset the preferred orientation with SetPreferredOrientation.
+ /// </summary>
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ NoOrientationPreference = -1
}
/// <summary>
/// <summary>
/// Enumeration for transition effect's state.
/// </summary>
+ [Obsolete("Please do not use! This will be removed. Please use Window.EffectState instead!")]
[EditorBrowsable(EditorBrowsableState.Never)]
public enum EffectStates
{
/// <summary>
/// None state.
/// </summary>
+ [Obsolete("Please do not use! This will be removed. Please use Window.EffectState.None instead!")]
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ None = 0,
+ /// <summary>
+ /// Transition effect is started.
+ /// </summary>
+ [Obsolete("Please do not use! This will be removed. Please use Window.EffectState.Start instead!")]
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ Start,
+ /// <summary>
+ /// Transition effect is ended.
+ /// </summary>
+ [Obsolete("Please do not use! This will be removed. Please use Window.EffectState.End instead!")]
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ End,
+ }
+
+ /// <summary>
+ /// Enumeration for transition effect's state.
+ /// </summary>
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public enum EffectState
+ {
+ /// <summary>
+ /// None state.
+ /// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
None = 0,
/// <summary>
/// <summary>
/// Enumeration for transition effect's type.
/// </summary>
+ [Obsolete("Please do not use! This will be removed. Please use Window.EffectType instead!")]
[EditorBrowsable(EditorBrowsableState.Never)]
public enum EffectTypes
{
/// <summary>
/// None type.
/// </summary>
+ [Obsolete("Please do not use! This will be removed. Please use Window.EffectType.None instead!")]
[EditorBrowsable(EditorBrowsableState.Never)]
None = 0,
/// <summary>
/// Window show effect.
/// </summary>
+ [Obsolete("Please do not use! This will be removed. Please use Window.EffectType.Show instead!")]
[EditorBrowsable(EditorBrowsableState.Never)]
Show,
/// <summary>
/// Window hide effect.
/// </summary>
+ [Obsolete("Please do not use! This will be removed. Please use Window.EffectType.Hide instead!")]
[EditorBrowsable(EditorBrowsableState.Never)]
Hide,
}
/// <summary>
- /// Enumeration for opacity of the indicator.
- /// </summary>
- internal enum IndicatorBackgroundOpacity
- {
- Opaque = 100,
- Translucent = 50,
- Transparent = 0
- }
-
- /// <summary>
- /// Enumeration for visible mode of the indicator.
+ /// Enumeration for transition effect's type.
/// </summary>
- internal enum IndicatorVisibleMode
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public enum EffectType
{
- Invisible = 0,
- Visible = 1,
- Auto = 2
+ /// <summary>
+ /// None type.
+ /// </summary>
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ None = 0,
+ /// <summary>
+ /// Window show effect.
+ /// </summary>
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ Show,
+ /// <summary>
+ /// Window hide effect.
+ /// </summary>
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ Hide,
}
/// <summary>
}
/// <summary>
- /// Get Resource ID of window
- /// </summary>
- internal int ResourceID
- {
- get
- {
- int ret = Interop.Window.GetResouceID(swigCPtr);
- if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- return ret;
- }
- }
-
- /// <summary>
/// Gets or sets a window type.
/// </summary>
/// <since_tizen> 3 </since_tizen>
{
get
{
- WindowType ret = (WindowType)Interop.Window.GetType(swigCPtr);
- if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ WindowType ret = (WindowType)Interop.Window.GetType(SwigCPtr);
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw new InvalidOperationException("FATAL: get Exception", NDalicPINVOKE.SWIGPendingException.Retrieve());
return ret;
}
set
{
- Interop.Window.SetType(swigCPtr, (int)value);
+ Interop.Window.SetType(SwigCPtr, (int)value);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
}
/// <summary>
/// Gets or sets a size of the window.
/// </summary>
+ /// <exception cref="ArgumentNullException"> Thrown when value is null. </exception>
/// <since_tizen> 4 </since_tizen>
public Size2D WindowSize
{
/// <summary>
/// Gets or sets a position of the window.
/// </summary>
+ /// <exception cref="ArgumentNullException"> Thrown when value is null. </exception>
/// <since_tizen> 4 </since_tizen>
public Position2D WindowPosition
{
Position2D position = GetPosition();
Size2D size = GetSize();
Rectangle ret = new Rectangle(position.X, position.Y, size.Width, size.Height);
+ position.Dispose();
return ret;
}
set
{
get
{
- global::System.IntPtr cPtr = Interop.Stage.Stage_DEFAULT_BACKGROUND_COLOR_get();
+ global::System.IntPtr cPtr = Interop.Stage.DefaultBackgroundColorGet();
Vector4 ret = (cPtr == global::System.IntPtr.Zero) ? null : new Vector4(cPtr, false);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
{
get
{
- global::System.IntPtr cPtr = Interop.Stage.Stage_DEBUG_BACKGROUND_COLOR_get();
+ global::System.IntPtr cPtr = Interop.Stage.DebugBackgroundColorGet();
Vector4 ret = (cPtr == global::System.IntPtr.Zero) ? null : new Vector4(cPtr, false);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
[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));
+ Interop.Window.FeedKeyEvent(Key.getCPtr(keyEvent));
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
/// <since_tizen> 3 </since_tizen>
public void SetAcceptFocus(bool accept)
{
- Interop.Window.SetAcceptFocus(swigCPtr, accept);
+ Interop.Window.SetAcceptFocus(SwigCPtr, accept);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
/// <since_tizen> 3 </since_tizen>
public bool IsFocusAcceptable()
{
- bool ret = Interop.Window.IsFocusAcceptable(swigCPtr);
+ bool ret = Interop.Window.IsFocusAcceptable(SwigCPtr);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
/// <since_tizen> 3 </since_tizen>
public void Show()
{
- Interop.Window.Show(swigCPtr);
+ Interop.Window.Show(SwigCPtr);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
/// <since_tizen> 3 </since_tizen>
public void Hide()
{
- Interop.Window.Hide(swigCPtr);
+ Interop.Window.Hide(SwigCPtr);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
/// <since_tizen> 3 </since_tizen>
public bool IsVisible()
{
- bool temp = Interop.Window.IsVisible(swigCPtr);
+ bool temp = Interop.Window.IsVisible(SwigCPtr);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return temp;
}
/// <since_tizen> 3 </since_tizen>
public uint GetSupportedAuxiliaryHintCount()
{
- uint ret = Interop.Window.GetSupportedAuxiliaryHintCount(swigCPtr);
+ uint ret = Interop.Window.GetSupportedAuxiliaryHintCount(SwigCPtr);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
/// <since_tizen> 3 </since_tizen>
public string GetSupportedAuxiliaryHint(uint index)
{
- string ret = Interop.Window.GetSupportedAuxiliaryHint(swigCPtr, index);
+ string ret = Interop.Window.GetSupportedAuxiliaryHint(SwigCPtr, index);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
/// <since_tizen> 3 </since_tizen>
public uint AddAuxiliaryHint(string hint, string value)
{
- uint ret = Interop.Window.AddAuxiliaryHint(swigCPtr, hint, value);
+ uint ret = Interop.Window.AddAuxiliaryHint(SwigCPtr, hint, value);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
/// <since_tizen> 3 </since_tizen>
public bool RemoveAuxiliaryHint(uint id)
{
- bool ret = Interop.Window.RemoveAuxiliaryHint(swigCPtr, id);
+ bool ret = Interop.Window.RemoveAuxiliaryHint(SwigCPtr, id);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
/// <since_tizen> 3 </since_tizen>
public bool SetAuxiliaryHintValue(uint id, string value)
{
- bool ret = Interop.Window.SetAuxiliaryHintValue(swigCPtr, id, value);
+ bool ret = Interop.Window.SetAuxiliaryHintValue(SwigCPtr, id, value);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
/// <since_tizen> 3 </since_tizen>
public string GetAuxiliaryHintValue(uint id)
{
- string ret = Interop.Window.GetAuxiliaryHintValue(swigCPtr, id);
+ string ret = Interop.Window.GetAuxiliaryHintValue(SwigCPtr, id);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
/// <since_tizen> 3 </since_tizen>
public uint GetAuxiliaryHintId(string hint)
{
- uint ret = Interop.Window.GetAuxiliaryHintId(swigCPtr, hint);
+ uint ret = Interop.Window.GetAuxiliaryHintId(SwigCPtr, hint);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
/// <since_tizen> 3 </since_tizen>
public void SetInputRegion(Rectangle inputRegion)
{
- Interop.Window.SetInputRegion(swigCPtr, Rectangle.getCPtr(inputRegion));
+ Interop.Window.SetInputRegion(SwigCPtr, Rectangle.getCPtr(inputRegion));
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
/// <since_tizen> 3 </since_tizen>
public bool SetNotificationLevel(NotificationLevel level)
{
- bool ret = Interop.Window.SetNotificationLevel(swigCPtr, (int)level);
+ bool ret = Interop.Window.SetNotificationLevel(SwigCPtr, (int)level);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
/// <since_tizen> 3 </since_tizen>
public NotificationLevel GetNotificationLevel()
{
- NotificationLevel ret = (NotificationLevel)Interop.Window.GetNotificationLevel(swigCPtr);
+ NotificationLevel ret = (NotificationLevel)Interop.Window.GetNotificationLevel(SwigCPtr);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
/// <since_tizen> 3 </since_tizen>
public void SetOpaqueState(bool opaque)
{
- Interop.Window.SetOpaqueState(swigCPtr, opaque);
+ Interop.Window.SetOpaqueState(SwigCPtr, opaque);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
/// <since_tizen> 3 </since_tizen>
public bool IsOpaqueState()
{
- bool ret = Interop.Window.IsOpaqueState(swigCPtr);
+ bool ret = Interop.Window.IsOpaqueState(SwigCPtr);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
/// <since_tizen> 4 </since_tizen>
public bool SetScreenOffMode(ScreenOffMode screenOffMode)
{
- bool ret = Interop.Window.SetScreenOffMode(swigCPtr, (int)screenOffMode);
+ bool ret = Interop.Window.SetScreenOffMode(SwigCPtr, (int)screenOffMode);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
/// <since_tizen> 4 </since_tizen>
public ScreenOffMode GetScreenOffMode()
{
- ScreenOffMode ret = (ScreenOffMode)Interop.Window.GetScreenOffMode(swigCPtr);
+ ScreenOffMode ret = (ScreenOffMode)Interop.Window.GetScreenOffMode(SwigCPtr);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
/// <since_tizen> 3 </since_tizen>
public bool SetBrightness(int brightness)
{
- bool ret = Interop.Window.SetBrightness(swigCPtr, brightness);
+ bool ret = Interop.Window.SetBrightness(SwigCPtr, brightness);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
/// <since_tizen> 3 </since_tizen>
public int GetBrightness()
{
- int ret = Interop.Window.GetBrightness(swigCPtr);
+ int ret = Interop.Window.GetBrightness(SwigCPtr);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
/// <since_tizen> 4 </since_tizen>
public void SetClass(string name, string klass)
{
- Interop.Window.Window_SetClass(swigCPtr, name, klass);
+ Interop.Window.SetClass(SwigCPtr, name, klass);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
/// <since_tizen> 3 </since_tizen>
public void Raise()
{
- Interop.Window.Window_Raise(swigCPtr);
+ Interop.Window.Raise(SwigCPtr);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
/// <since_tizen> 3 </since_tizen>
public void Lower()
{
- Interop.Window.Window_Lower(swigCPtr);
+ Interop.Window.Lower(SwigCPtr);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
/// <since_tizen> 3 </since_tizen>
public void Activate()
{
- Interop.Window.Window_Activate(swigCPtr);
+ Interop.Window.Activate(SwigCPtr);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
/// <since_tizen> 3 </since_tizen>
public void Add(View view)
{
- Interop.Actor.Actor_Add(Layer.getCPtr(GetRootLayer()), View.getCPtr(view));
+ Interop.Actor.Add(Layer.getCPtr(GetRootLayer()), View.getCPtr(view));
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
this.GetRootLayer().AddViewToLayerList(view); // Maintain the children list in the Layer
- view.InternalParent = this.GetRootLayer();
+ if (null != view)
+ {
+ view.InternalParent = this.GetRootLayer();
+ }
}
/// <summary>
/// <since_tizen> 3 </since_tizen>
public void Remove(View view)
{
- Interop.Actor.Actor_Remove(Layer.getCPtr(GetRootLayer()), View.getCPtr(view));
+ Interop.Actor.Remove(Layer.getCPtr(GetRootLayer()), View.getCPtr(view));
this.GetRootLayer().RemoveViewFromLayerList(view); // Maintain the children list in the Layer
- view.InternalParent = null;
+ if (null != view)
+ {
+ view.InternalParent = null;
+ }
}
/// <summary>
/// <since_tizen> 3 </since_tizen>
public void KeepRendering(float durationSeconds)
{
- Interop.Stage.Stage_KeepRendering(stageCPtr, durationSeconds);
+ Interop.Stage.KeepRendering(stageCPtr, durationSeconds);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
/// <since_tizen> 3 </since_tizen>
public bool GrabKeyTopmost(int DaliKey)
{
- bool ret = Interop.Window.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 = Interop.Window.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 = Interop.Window.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 = Interop.Window.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;
}
/// Adds a layer to the stage.
/// </summary>
/// <param name="layer">Layer to add.</param>
+ /// <exception cref="ArgumentNullException"> Thrown when layer is null. </exception>
/// <since_tizen> 3 </since_tizen>
public void AddLayer(Layer layer)
{
/// Removes a layer from the stage.
/// </summary>
/// <param name="layer">Layer to remove.</param>
+ /// <exception cref="ArgumentNullException"> Thrown when layer is null. </exception>
/// <since_tizen> 3 </since_tizen>
public void RemoveLayer(Layer layer)
{
/// <since_tizen> 5 </since_tizen>
public void FeedKey(Key keyEvent)
{
- Interop.Window.Window_FeedKeyEvent(Key.getCPtr(keyEvent));
+ Interop.Window.FeedKeyEvent(Key.getCPtr(keyEvent));
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
/// <since_tizen> 4 </since_tizen>
public void RenderOnce()
{
- Interop.Window.Window_RenderOnce(swigCPtr);
+ Interop.Window.RenderOnce(SwigCPtr);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
/// <since_tizen> 5 </since_tizen>
public void SetTransparency(bool transparent)
{
- Interop.Window.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>
/// <param name="parent">The parent window.</param>
/// <since_tizen> 6 </since_tizen>
+ /// <feature> http://tizen.org/feature/opengles.surfaceless_context </feature>
+ /// <exception cref="NotSupportedException">The required feature is not supported.</exception>
public void SetParent(Window parent)
{
- Interop.Window.SetParent(swigCPtr, Window.getCPtr(parent));
+ if (IsSupportedMultiWindow() == false)
+ {
+ NUILog.Error("This device does not support surfaceless_context. So Window cannot be created. ");
+ }
+ Interop.Window.SetParent(SwigCPtr, Window.getCPtr(parent));
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
/// After unsetting, the window is disconnected his parent window.
/// </summary>
/// <since_tizen> 6 </since_tizen>
+ /// <feature> http://tizen.org/feature/opengles.surfaceless_context </feature>
+ /// <exception cref="NotSupportedException">The required feature is not supported.</exception>
public void Unparent()
{
- Interop.Window.Unparent(swigCPtr);
+ if (IsSupportedMultiWindow() == false)
+ {
+ NUILog.Error("Fail to create window. because this device does not support opengles.surfaceless_context.");
+ }
+ Interop.Window.Unparent(SwigCPtr);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
/// </summary>
/// <returns>The parent window of the window.</returns>
/// <since_tizen> 6 </since_tizen>
+ /// <feature> http://tizen.org/feature/opengles.surfaceless_context </feature>
+ /// <exception cref="NotSupportedException">The required feature is not supported.</exception>
public Window GetParent()
{
- Window ret = Registry.GetManagedBaseHandleFromNativePtr(Interop.Window.GetParent(swigCPtr)) as Window;
+ if (IsSupportedMultiWindow() == false)
+ {
+ NUILog.Error("This device does not support surfaceless_context. So Window cannot be created. ");
+ }
+ Window ret = Registry.GetManagedBaseHandleFromNativePtr(Interop.Window.GetParent(SwigCPtr)) as Window;
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
- internal static global::System.Runtime.InteropServices.HandleRef getCPtr(Window obj)
+ /// This will be public opened in tizen_next after ACR done. Before ACR, need to be hidden as inhouse API.
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public void ObjectDump()
{
- return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
+ Layer rootLayer = GetRootLayer();
+ foreach (View view in rootLayer.Children)
+ {
+ view.ObjectDump();
+ }
}
- internal static Window GetCurrent()
+ internal static global::System.Runtime.InteropServices.HandleRef getCPtr(Window obj)
{
- Window ret = new Window(Interop.Stage.Stage_GetCurrent(), true);
- if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- return ret;
+ return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.SwigCPtr;
}
internal static bool IsInstalled()
{
- bool ret = Interop.Stage.Stage_IsInstalled();
+ bool ret = Interop.Stage.IsInstalled();
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
- internal void ShowIndicator(Window.IndicatorVisibleMode visibleMode)
- {
- Interop.WindowInternal.Window_ShowIndicator(swigCPtr, (int)visibleMode);
- if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- }
-
- internal void SetIndicatorBackgroundOpacity(Window.IndicatorBackgroundOpacity opacity)
- {
- Interop.WindowInternal.Window_SetIndicatorBgOpacity(swigCPtr, (int)opacity);
- if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- }
-
- internal void RotateIndicator(Window.WindowOrientation orientation)
- {
- Interop.WindowInternal.Window_RotateIndicator(swigCPtr, (int)orientation);
- if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- }
-
/// <summary>
/// Adds an orientation to the list of available orientations.
/// </summary>
/// <since_tizen> 6 </since_tizen>
public void AddAvailableOrientation(Window.WindowOrientation orientation)
{
- Interop.Window.Window_AddAvailableOrientation(swigCPtr, (int)orientation);
+ Interop.Window.AddAvailableOrientation(SwigCPtr, (int)orientation);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
/// <since_tizen> 6 </since_tizen>
public void RemoveAvailableOrientation(Window.WindowOrientation orientation)
{
- Interop.Window.Window_RemoveAvailableOrientation(swigCPtr, (int)orientation);
+ Interop.Window.RemoveAvailableOrientation(SwigCPtr, (int)orientation);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
/// <since_tizen> 6 </since_tizen>
public void SetPreferredOrientation(Window.WindowOrientation orientation)
{
- Interop.Window.Window_SetPreferredOrientation(swigCPtr, (int)orientation);
+ Interop.Window.SetPreferredOrientation(SwigCPtr, (int)orientation);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
/// <returns>The preferred orientation if previously set, or none.</returns>
public Window.WindowOrientation GetPreferredOrientation()
{
- Window.WindowOrientation ret = (Window.WindowOrientation)Interop.Window.Window_GetPreferredOrientation(swigCPtr);
+ Window.WindowOrientation ret = (Window.WindowOrientation)Interop.Window.GetPreferredOrientation(SwigCPtr);
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ return ret;
+ }
+
+ /// <summary>
+ /// Gets current orientation of the window.
+ /// </summary>
+ /// <since_tizen> 6 </since_tizen>
+ /// <returns>The current window orientation if previously set, or none.</returns>
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public Window.WindowOrientation GetCurrentOrientation()
+ {
+ Window.WindowOrientation ret = (Window.WindowOrientation)Interop.Window.GetCurrentOrientation(SwigCPtr);
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ return ret;
+ }
+
+ /// <summary>
+ /// Sets available orientations of the window.
+ /// This API is for setting several orientations one time.
+ /// </summary>
+ /// <param name="orientations">The list of orientations.</param>
+ /// <since_tizen> 6 </since_tizen>
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public void SetAvailableOrientations(List<Window.WindowOrientation> orientations)
+ {
+ PropertyArray orientationArray = new PropertyArray();
+ if (null != orientations)
+ {
+ for (int i = 0; i < orientations.Count; i++)
+ {
+ PropertyValue value = new PropertyValue((int)orientations[i]);
+ orientationArray.PushBack(value);
+ }
+ }
+
+ Interop.Window.SetAvailableOrientations(SwigCPtr, PropertyArray.getCPtr(orientationArray));
+ for (uint i = 0; i < orientationArray.Count(); i++)
+ {
+ orientationArray[i].Dispose();
+ }
+ orientationArray.Dispose();
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ }
+
+ /// <summary>
+ /// Get native window ID
+ /// </summary>
+ /// <returns>native window ID</returns>
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public int GetNativeId()
+ {
+ int ret = Interop.Window.GetNativeId(SwigCPtr);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
internal Any GetNativeHandle()
{
- Any ret = new Any(Interop.WindowInternal.Window_GetNativeHandle(swigCPtr), true);
+ Any ret = new Any(Interop.WindowInternal.WindowGetNativeHandle(SwigCPtr), true);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
internal void Add(Layer layer)
{
- Interop.Window.Add(swigCPtr, Layer.getCPtr(layer));
+ if (null == layer)
+ {
+ throw new ArgumentNullException(nameof(layer));
+ }
+ Interop.Window.Add(SwigCPtr, Layer.getCPtr(layer));
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
LayersChildren?.Add(layer);
internal void Remove(Layer layer)
{
- Interop.Window.Remove(swigCPtr, Layer.getCPtr(layer));
+ if (null == layer)
+ {
+ throw new ArgumentNullException(nameof(layer));
+ }
+ Interop.Window.Remove(SwigCPtr, Layer.getCPtr(layer));
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
LayersChildren?.Remove(layer);
internal Vector2 GetSize()
{
- var val = new Uint16Pair(Interop.Window.GetSize(swigCPtr), false);
+ var val = new Uint16Pair(Interop.Window.GetSize(SwigCPtr), false);
Vector2 ret = new Vector2(val.GetWidth(), val.GetHeight());
+ val.Dispose();
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
internal RenderTaskList GetRenderTaskList()
{
- RenderTaskList ret = new RenderTaskList(Interop.Stage.Stage_GetRenderTaskList(stageCPtr), true);
+ RenderTaskList ret = new RenderTaskList(Interop.Stage.GetRenderTaskList(stageCPtr), true);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
if (LayersChildren == null || LayersChildren.Count < 0)
return 0;
- return (uint) LayersChildren.Count;
+ return (uint)LayersChildren.Count;
}
internal Layer GetRootLayer()
// Core has been initialized, not when Stage is ready.
if (_rootLayer == null && Window.IsInstalled())
{
- _rootLayer = new Layer(Interop.Window.GetRootLayer(swigCPtr), true);
+ _rootLayer = new Layer(Interop.Window.GetRootLayer(SwigCPtr), true);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
LayersChildren?.Add(_rootLayer);
_rootLayer.SetWindow(this);
internal void SetBackgroundColor(Vector4 color)
{
- Interop.Window.SetBackgroundColor(swigCPtr, Vector4.getCPtr(color));
+ Interop.Window.SetBackgroundColor(SwigCPtr, Vector4.getCPtr(color));
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
internal Vector4 GetBackgroundColor()
{
- Vector4 ret = new Vector4(Interop.Window.GetBackgroundColor(swigCPtr), true);
+ Vector4 ret = new Vector4(Interop.Window.GetBackgroundColor(SwigCPtr), true);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
internal Vector2 GetDpi()
{
- Vector2 ret = new Vector2(Interop.Stage.Stage_GetDpi(stageCPtr), true);
+ Vector2 ret = new Vector2(Interop.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);
+ ObjectRegistry ret = new ObjectRegistry(Interop.Stage.GetObjectRegistry(stageCPtr), true);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
internal void SetRenderingBehavior(RenderingBehaviorType renderingBehavior)
{
- Interop.Stage.Stage_SetRenderingBehavior(stageCPtr, (int)renderingBehavior);
+ Interop.Stage.SetRenderingBehavior(stageCPtr, (int)renderingBehavior);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
internal RenderingBehaviorType GetRenderingBehavior()
{
- RenderingBehaviorType ret = (RenderingBehaviorType)Interop.Stage.Stage_GetRenderingBehavior(stageCPtr);
+ RenderingBehaviorType ret = (RenderingBehaviorType)Interop.Stage.GetRenderingBehavior(stageCPtr);
if (NDalicPINVOKE.SWIGPendingException.Pending)
throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
internal void SetWindowSize(Size2D size)
{
+ if (null == size)
+ {
+ throw new ArgumentNullException(nameof(size));
+ }
var val = new Uint16Pair((uint)size.Width, (uint)size.Height);
- Interop.Window.SetSize(swigCPtr, Uint16Pair.getCPtr(val));
-
+ Interop.Window.SetSize(SwigCPtr, Uint16Pair.getCPtr(val));
+ val.Dispose();
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-
// Resetting Window size should request a relayout of the tree.
}
internal Size2D GetWindowSize()
{
- var val = new Uint16Pair(Interop.Window.GetSize(swigCPtr), false);
+ var val = new Uint16Pair(Interop.Window.GetSize(SwigCPtr), false);
Size2D ret = new Size2D(val.GetWidth(), val.GetHeight());
-
+ val.Dispose();
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
internal void SetPosition(Position2D position)
{
+ if (null == position)
+ {
+ throw new ArgumentNullException(nameof(position));
+ }
var val = new Uint16Pair((uint)position.X, (uint)position.Y);
- Interop.Window.SetPosition(swigCPtr, Uint16Pair.getCPtr(val));
-
+ Interop.Window.SetPosition(SwigCPtr, Uint16Pair.getCPtr(val));
+ val.Dispose();
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
// Setting Position of the window should request a relayout of the tree.
}
internal Position2D GetPosition()
{
- var val = new Uint16Pair(Interop.Window.GetPosition(swigCPtr), true);
+ var val = new Uint16Pair(Interop.Window.GetPosition(SwigCPtr), true);
Position2D ret = new Position2D(val.GetX(), val.GetY());
-
+ val.Dispose();
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
internal void SetPositionSize(Rectangle positionSize)
{
- Interop.Window.Window_SetPositionSize(swigCPtr, Rectangle.getCPtr(positionSize));
+ Interop.Window.SetPositionSize(SwigCPtr, Rectangle.getCPtr(positionSize));
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
/// <summary>
+ /// Add FrameUpdateCallback
+ /// </summary>
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public void AddFrameUpdateCallback(FrameUpdateCallbackInterface frameUpdateCallback)
+ {
+ frameUpdateCallback?.AddFrameUpdateCallback(stageCPtr, Layer.getCPtr(GetRootLayer()));
+ }
+
+ /// <summary>
+ /// Remove FrameUpdateCallback
+ /// </summary>
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public void RemoveFrameUpdateCallback(FrameUpdateCallbackInterface frameUpdateCallback)
+ {
+ frameUpdateCallback?.RemoveFrameUpdateCallback(stageCPtr);
+ }
+
+ /// <summary>
/// Dispose for Window
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
//Release your own managed resources here.
//You should release all of your own disposable objects here.
- _rootLayer.Dispose();
- localController.Dispose();
+ if (_rootLayer != null)
+ {
+ _rootLayer.Dispose();
+ }
- foreach(var layer in _childLayers)
+ localController?.Dispose();
+
+ foreach (var layer in _childLayers)
{
- layer.Dispose();
+ if (layer != null)
+ {
+ layer.Dispose();
+ }
}
+
_childLayers.Clear();
}
[EditorBrowsable(EditorBrowsableState.Never)]
protected override void ReleaseSwigCPtr(System.Runtime.InteropServices.HandleRef swigCPtr)
{
- Interop.Window.delete_Window(swigCPtr);
+ Interop.Window.DeleteWindow(swigCPtr);
+ }
+
+ private static Dictionary<int, internalHookCallbackType> frameCallbackList = new Dictionary<int, internalHookCallbackType>();
+
+ private static readonly object locker = new object();
+
+ private static int key = 0;
+
+ private static FrameCallbackType internalHookFrameCallback = OnInternalHookFrameCallback;
+
+ private struct internalHookCallbackType
+ {
+ public FrameCallbackType userCallback;
+ public int frameId;
+ }
+
+ private static void OnInternalHookFrameCallback(int id)
+ {
+ lock (locker)
+ {
+ if (frameCallbackList.ContainsKey(id))
+ {
+ if (frameCallbackList[id].userCallback != null)
+ {
+ frameCallbackList[id].userCallback.Invoke(frameCallbackList[id].frameId);
+ frameCallbackList.Remove(id);
+ }
+ else
+ {
+ NUILog.Error($"found userCallback is NULL");
+ frameCallbackList.Remove(id);
+ }
+ }
+ }
+ }
+
+ private int AddInterHookCallback(FrameCallbackType callback, int frameId)
+ {
+ if (null == callback)
+ {
+ throw new ArgumentNullException(nameof(callback), "FrameCallbackType should not be null");
+ }
+ var assignedKey = 0;
+ lock (locker)
+ {
+ key++;
+ assignedKey = key;
+ frameCallbackList.Add(assignedKey, new internalHookCallbackType()
+ {
+ userCallback = callback,
+ frameId = frameId,
+ });
+ }
+ return assignedKey;
+ }
+
+ /// <summary>
+ /// Type of callback which is called when the frame rendering is done by graphics driver or when the frame is displayed on display.
+ /// </summary>
+ /// <param name="frameId">The Id to specify the frame. It will be passed when the callback is called.</param>
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public delegate void FrameCallbackType(int frameId);
+
+ /// <summary>
+ /// Adds a callback that is called when the frame rendering is done by the graphics driver.
+ /// A callback of the following type may be used:
+ /// <code>
+ /// void MyFunction( int frameId )
+ /// </code>
+ /// This callback will be deleted once it is called.
+ /// <remarks>
+ /// Ownership of the callback is passed onto this class
+ /// </remarks>
+ /// </summary>
+ /// <param name="callback">The function to call</param>
+ /// <param name="frameId">The Id to specify the frame. It will be passed when the callback is called.</param>
+ /// <exception cref="ArgumentNullException">This exception can occur by the callback is null.</exception>
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public void AddFrameRenderedCallback(FrameCallbackType callback, int frameId)
+ {
+ var assignedKey = AddInterHookCallback(callback, frameId);
+ Interop.WindowInternal.AddFrameRenderedCallback(SwigCPtr, new HandleRef(this, Marshal.GetFunctionPointerForDelegate<Delegate>(internalHookFrameCallback)), assignedKey);
+
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ }
+
+ /// <summary>
+ /// Adds a callback that is called when the frame is displayed on the display.
+ /// A callback of the following type may be used:
+ /// <code>
+ /// void MyFunction( int frameId )
+ /// </code>
+ /// This callback will be deleted once it is called.
+ /// <remarks>
+ /// Ownership of the callback is passed onto this class
+ /// </remarks>
+ /// </summary>
+ /// <param name="callback">The function to call</param>
+ /// <param name="frameId">The Id to specify the frame. It will be passed when the callback is called.</param>
+ /// <exception cref="ArgumentNullException">This exception can occur by the callback is null.</exception>
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public void AddFramePresentedCallback(FrameCallbackType callback, int frameId)
+ {
+ var assignedKey = AddInterHookCallback(callback, frameId);
+ Interop.WindowInternal.AddFramePresentedCallback(SwigCPtr, new HandleRef(this, Marshal.GetFunctionPointerForDelegate<Delegate>(internalHookFrameCallback)), assignedKey);
+
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
}
}