/*
* Copyright(c) 2017 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.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
using System;
using System.Runtime.InteropServices;
using Tizen.NUI.BaseComponents;
using System.ComponentModel;
using System.Collections.Generic;
namespace Tizen.NUI
{
///
/// The window class is used internally for drawing.
/// The window has an orientation and indicator properties.
///
/// 3
public class Window : BaseHandle
{
private global::System.Runtime.InteropServices.HandleRef swigCPtr;
private global::System.Runtime.InteropServices.HandleRef stageCPtr;
private Layer _rootLayer;
private string _windowTitle;
private List _childLayers = new List();
internal List 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())
{
stageCPtr = new global::System.Runtime.InteropServices.HandleRef(this, NDalicPINVOKE.Stage_GetCurrent());
}
}
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;
}
///
/// To make the window instance be disposed.
///
/// Please DO NOT use! This will be deprecated!
/// Dispose() method in Singletone classes (ex: FocusManager, StyleManager, VisualFactory, IMFManager, TtsPlayer, Window) is not required.
/// Because it is Sigletone, so it is alive for one thread until the NUI is terminated, so it never be disposed.
/// 3
[Obsolete("Please do not use! This will be deprecated!")]
[EditorBrowsable(EditorBrowsableState.Never)]
protected override void Dispose(DisposeTypes type)
{
if (disposed)
{
return;
}
if (type == DisposeTypes.Explicit)
{
//Called by User
//Release your own managed resources here.
//You should release all of your own disposable objects here.
}
//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 (_windowFocusChangedEventCallback != null)
{
WindowFocusChangedSignal().Disconnect(_windowFocusChangedEventCallback);
}
if (_stageTouchCallbackDelegate != null)
{
TouchSignal().Disconnect(_stageTouchCallbackDelegate);
}
if (_stageWheelCallbackDelegate != null)
{
WheelEventSignal().Disconnect(_stageWheelCallbackDelegate);
}
if (_stageKeyCallbackDelegate != null)
{
KeyEventSignal().Disconnect(_stageKeyCallbackDelegate);
}
if (_stageEventProcessingFinishedEventCallbackDelegate != null)
{
EventProcessingFinishedSignal().Disconnect(_stageEventProcessingFinishedEventCallbackDelegate);
}
if (_stageContextLostEventCallbackDelegate != null)
{
ContextLostSignal().Disconnect(_stageContextLostEventCallbackDelegate);
}
if (_stageContextRegainedEventCallbackDelegate != null)
{
this.ContextRegainedSignal().Disconnect(_stageContextRegainedEventCallbackDelegate);
}
if (_stageSceneCreatedEventCallbackDelegate != null)
{
SceneCreatedSignal().Disconnect(_stageSceneCreatedEventCallbackDelegate);
}
if (_windowResizedEventCallback != null)
{
ResizedSignal().Disconnect(_windowResizedEventCallback);
}
if (_windowFocusChangedEventCallback2 != null)
{
WindowFocusChangedSignal().Disconnect(_windowFocusChangedEventCallback2);
}
if (swigCPtr.Handle != global::System.IntPtr.Zero)
{
if (swigCMemOwn)
{
swigCMemOwn = false;
NDalicPINVOKE.delete_Window(swigCPtr);
NDalicPINVOKE.delete_Stage(stageCPtr);
}
swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
}
base.Dispose(type);
}
internal static Window GetCurrent()
{
Window ret = new Window(NDalicPINVOKE.Stage_GetCurrent(), true);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
internal static bool IsInstalled()
{
bool ret = NDalicPINVOKE.Stage_IsInstalled();
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
///
/// Sets whether the window accepts a focus or not.
///
/// If a focus is accepted or not. The default is true.
/// 3
public void SetAcceptFocus(bool accept)
{
NDalicPINVOKE.SetAcceptFocus(swigCPtr, accept);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
///
/// Returns whether the window accepts a focus or not.
///
/// True if the window accepts a focus, false otherwise.
/// 3
public bool IsFocusAcceptable()
{
bool ret = NDalicPINVOKE.IsFocusAcceptable(swigCPtr);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
///
/// Shows the window if it is hidden.
///
/// 3
public void Show()
{
NDalicPINVOKE.Show(swigCPtr);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
///
/// Hides the window if it is showing.
///
/// 3
public void Hide()
{
NDalicPINVOKE.Hide(swigCPtr);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
///
/// Retrieves whether the window is visible or not.
///
/// True if the window is visible.
/// 3
public bool IsVisible()
{
bool temp = NDalicPINVOKE.IsVisible(swigCPtr);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return temp;
}
///
/// Gets the count of supported auxiliary hints of the window.
///
/// The number of supported auxiliary hints.
/// 3
public uint GetSupportedAuxiliaryHintCount()
{
uint ret = NDalicPINVOKE.GetSupportedAuxiliaryHintCount(swigCPtr);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
///
/// Gets the supported auxiliary hint string of the window.
///
/// The index of the supported auxiliary hint lists.
/// The auxiliary hint string of the index.
/// 3
public string GetSupportedAuxiliaryHint(uint index)
{
string ret = NDalicPINVOKE.GetSupportedAuxiliaryHint(swigCPtr, index);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
///
/// Creates an auxiliary hint of the window.
///
/// The auxiliary hint string.
/// The value string.
/// The ID of created auxiliary hint, or 0 on failure.
/// 3
public uint AddAuxiliaryHint(string hint, string value)
{
uint ret = NDalicPINVOKE.AddAuxiliaryHint(swigCPtr, hint, value);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
///
/// Removes an auxiliary hint of the window.
///
/// The ID of the auxiliary hint.
/// True if no error occurred, false otherwise.
/// 3
public bool RemoveAuxiliaryHint(uint id)
{
bool ret = NDalicPINVOKE.RemoveAuxiliaryHint(swigCPtr, id);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
///
/// Changes a value of the auxiliary hint.
///
/// The auxiliary hint ID.
/// The value string to be set.
/// True if no error occurred, false otherwise.
/// 3
public bool SetAuxiliaryHintValue(uint id, string value)
{
bool ret = NDalicPINVOKE.SetAuxiliaryHintValue(swigCPtr, id, value);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
///
/// Gets a value of the auxiliary hint.
///
/// The auxiliary hint ID.
/// The string value of the auxiliary hint ID, or an empty string if none exists.
/// 3
public string GetAuxiliaryHintValue(uint id)
{
string ret = NDalicPINVOKE.GetAuxiliaryHintValue(swigCPtr, id);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
///
/// Gets an ID of the auxiliary hint string.
///
/// The auxiliary hint string.
/// The ID of auxiliary hint string, or 0 on failure.
/// 3
public uint GetAuxiliaryHintId(string hint)
{
uint ret = NDalicPINVOKE.GetAuxiliaryHintId(swigCPtr, hint);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
///
/// Sets a region to accept input events.
///
/// The region to accept input events.
/// 3
public void SetInputRegion(Rectangle inputRegion)
{
NDalicPINVOKE.SetInputRegion(swigCPtr, Rectangle.getCPtr(inputRegion));
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
///
/// Gets or sets a window type.
///
/// 3
public WindowType Type
{
get
{
WindowType ret = (WindowType)NDalicPINVOKE.GetType(swigCPtr);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
set
{
NDalicPINVOKE.SetType(swigCPtr, (int)value);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
}
///
/// Sets a priority level for the specified notification window.
///
/// The notification window level.
/// True if no error occurred, false otherwise.
/// 3
public bool SetNotificationLevel(NotificationLevel level)
{
bool ret = NDalicPINVOKE.SetNotificationLevel(swigCPtr, (int)level);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
///
/// Gets a priority level for the specified notification window.
///
/// The notification window level.
/// 3
public NotificationLevel GetNotificationLevel()
{
NotificationLevel ret = (NotificationLevel)NDalicPINVOKE.GetNotificationLevel(swigCPtr);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
///
/// Sets a transparent window's visual state to opaque.
///
/// Whether the window's visual state is opaque.
/// 3
public void SetOpaqueState(bool opaque)
{
NDalicPINVOKE.SetOpaqueState(swigCPtr, opaque);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
///
/// Returns whether a transparent window's visual state is opaque or not.
///
/// True if the window's visual state is opaque, false otherwise.
/// 3
public bool IsOpaqueState()
{
bool ret = NDalicPINVOKE.IsOpaqueState(swigCPtr);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
///
/// Sets a window's screen off mode.
///
/// The screen mode.
/// True if no error occurred, false otherwise.
/// 4
public bool SetScreenOffMode(ScreenOffMode screenOffMode)
{
bool ret = NDalicPINVOKE.SetScreenOffMode(swigCPtr, (int)screenOffMode);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
///
/// Gets the screen mode of the window.
///
/// The screen off mode.
/// 4
public ScreenOffMode GetScreenOffMode()
{
ScreenOffMode ret = (ScreenOffMode)NDalicPINVOKE.GetScreenOffMode(swigCPtr);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
///
/// Sets preferred brightness of the window.
///
/// The preferred brightness (0 to 100).
/// True if no error occurred, false otherwise.
/// 3
public bool SetBrightness(int brightness)
{
bool ret = NDalicPINVOKE.SetBrightness(swigCPtr, brightness);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
///
/// Gets the preferred brightness of the window.
///
/// The preferred brightness.
/// 3
public int GetBrightness()
{
int ret = NDalicPINVOKE.GetBrightness(swigCPtr);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
///
/// The focus changed event argument.
///
/// 3
public class FocusChangedEventArgs : EventArgs
{
///
/// FocusGained flag.
///
/// 3
public bool FocusGained
{
get;
set;
}
}
private WindowFocusChangedEventCallbackType _windowFocusChangedEventCallback;
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
private delegate void WindowFocusChangedEventCallbackType(bool focusGained);
private event EventHandler _windowFocusChangedEventHandler;
///
/// FocusChanged event.
///
/// 3
public event EventHandler FocusChanged
{
add
{
if (_windowFocusChangedEventHandler == null)
{
_windowFocusChangedEventCallback = OnWindowFocusedChanged;
WindowFocusChangedSignal().Connect(_windowFocusChangedEventCallback);
}
_windowFocusChangedEventHandler += value;
}
remove
{
_windowFocusChangedEventHandler -= value;
if (_windowFocusChangedEventHandler == null && WindowFocusChangedSignal().Empty() == false && _windowFocusChangedEventCallback != null)
{
WindowFocusChangedSignal().Disconnect(_windowFocusChangedEventCallback);
}
}
}
private void OnWindowFocusedChanged(bool focusGained)
{
FocusChangedEventArgs e = new FocusChangedEventArgs();
e.FocusGained = focusGained;
if (_windowFocusChangedEventHandler != null)
{
_windowFocusChangedEventHandler(this, e);
}
}
///
/// Gets/Sets a window title.
///
/// 4
public string Title
{
get
{
return _windowTitle;
}
set
{
_windowTitle = value;
SetClass(_windowTitle, "");
}
}
internal WindowFocusSignalType WindowFocusChangedSignal()
{
WindowFocusSignalType ret = new WindowFocusSignalType(NDalicPINVOKE.FocusChangedSignal(swigCPtr), 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)
{
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
internal Window(Rectangle windowPosition, string name) : this(NDalicPINVOKE.Window_New__SWIG_1(Rectangle.getCPtr(windowPosition), name), true)
{
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
internal Window(Rectangle windowPosition, string name, string className, bool isTransparent) : this(NDalicPINVOKE.Window_New__SWIG_2(Rectangle.getCPtr(windowPosition), name, className, isTransparent), true)
{
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
internal Window(Rectangle windowPosition, string name, string className) : this(NDalicPINVOKE.Window_New__SWIG_3(Rectangle.getCPtr(windowPosition), name, className), true)
{
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
internal void ShowIndicator(Window.IndicatorVisibleMode visibleMode)
{
NDalicPINVOKE.Window_ShowIndicator(swigCPtr, (int)visibleMode);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
internal void SetIndicatorBackgroundOpacity(Window.IndicatorBackgroundOpacity opacity)
{
NDalicPINVOKE.Window_SetIndicatorBgOpacity(swigCPtr, (int)opacity);
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();
}
///
/// Sets the window name and the class string.
///
/// The name of the window.
/// The class of the window.
/// 4
public void SetClass(string name, string klass)
{
NDalicPINVOKE.Window_SetClass(swigCPtr, name, klass);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
///
/// Raises the window to the top of the window stack.
///
/// 3
public void Raise()
{
NDalicPINVOKE.Window_Raise(swigCPtr);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
///
/// Lowers the window to the bottom of the window stack.
///
/// 3
public void Lower()
{
NDalicPINVOKE.Window_Lower(swigCPtr);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
///
/// Activates the window to the top of the window stack even it is iconified.
///
/// 3
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)
{
NDalicPINVOKE.Window_RemoveAvailableOrientation(swigCPtr, (int)orientation);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
internal void SetPreferredOrientation(Window.WindowOrientation orientation)
{
NDalicPINVOKE.Window_SetPreferredOrientation(swigCPtr, (int)orientation);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
internal Window.WindowOrientation GetPreferredOrientation()
{
Window.WindowOrientation ret = (Window.WindowOrientation)NDalicPINVOKE.Window_GetPreferredOrientation(swigCPtr);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
internal DragAndDropDetector GetDragAndDropDetector()
{
DragAndDropDetector ret = new DragAndDropDetector(NDalicPINVOKE.Window_GetDragAndDropDetector(swigCPtr), true);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
internal Any GetNativeHandle()
{
Any ret = new Any(NDalicPINVOKE.Window_GetNativeHandle(swigCPtr), true);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
internal WindowFocusSignalType FocusChangedSignal()
{
WindowFocusSignalType ret = new WindowFocusSignalType(NDalicPINVOKE.FocusChangedSignal(swigCPtr), false);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
///
/// Gets the default ( root ) layer.
///
/// The root layer.
/// 3
public Layer GetDefaultLayer()
{
return this.GetRootLayer();
}
internal void Add(Layer layer)
{
NDalicPINVOKE.Stage_Add(stageCPtr, Layer.getCPtr(layer));
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
LayersChildren.Add(layer);
}
internal void Remove(Layer layer)
{
NDalicPINVOKE.Stage_Remove(stageCPtr, Layer.getCPtr(layer));
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
LayersChildren.Remove(layer);
}
///
/// Add a child view to window.
///
/// the child should be added to the window.
/// 3
public void Add(View view)
{
GetRootLayer()?.Add(view);
}
///
/// Remove a child view from window.
///
/// the child to be removed.
/// 3
public void Remove(View view)
{
GetRootLayer()?.Remove(view);
}
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()
{
RenderTaskList ret = new RenderTaskList(NDalicPINVOKE.Stage_GetRenderTaskList(stageCPtr), true);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
///
/// Queries the number of on-window layers.
///
/// The number of layers.
/// Note that a default layer is always provided (count >= 1).
internal uint GetLayerCount()
{
if (LayersChildren == null || LayersChildren.Count < 0)
return 0;
return (uint) LayersChildren.Count;
}
///
/// Retrieves the layer at a specified depth.
///
/// The layer's depth index.
/// The layer found at the given depth.
/// 3
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()
{
Vector4 ret = new Vector4(NDalicPINVOKE.Stage_GetBackgroundColor(stageCPtr), true);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
internal Vector2 GetDpi()
{
Vector2 ret = new Vector2(NDalicPINVOKE.Stage_GetDpi(stageCPtr), true);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
internal ObjectRegistry GetObjectRegistry()
{
ObjectRegistry ret = new ObjectRegistry(NDalicPINVOKE.Stage_GetObjectRegistry(stageCPtr), true);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
///
/// Keep rendering for at least the given amount of time.
///
/// Time to keep rendering, 0 means render at least one more frame.
/// 3
public void KeepRendering(float durationSeconds)
{
NDalicPINVOKE.Stage_KeepRendering(stageCPtr, durationSeconds);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
internal KeyEventSignal KeyEventSignal()
{
KeyEventSignal ret = new KeyEventSignal(NDalicPINVOKE.Stage_KeyEventSignal(stageCPtr), false);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
internal VoidSignal EventProcessingFinishedSignal()
{
VoidSignal ret = new VoidSignal(NDalicPINVOKE.Stage_EventProcessingFinishedSignal(stageCPtr), false);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
internal TouchSignal TouchSignal()
{
TouchSignal ret = new TouchSignal(NDalicPINVOKE.Stage_TouchSignal(stageCPtr), false);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
private StageWheelSignal WheelEventSignal()
{
StageWheelSignal ret = new StageWheelSignal(NDalicPINVOKE.Stage_WheelEventSignal(stageCPtr), false);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
internal VoidSignal ContextLostSignal()
{
VoidSignal ret = new VoidSignal(NDalicPINVOKE.Stage_ContextLostSignal(stageCPtr), false);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
internal VoidSignal ContextRegainedSignal()
{
VoidSignal ret = new VoidSignal(NDalicPINVOKE.Stage_ContextRegainedSignal(stageCPtr), false);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
internal VoidSignal SceneCreatedSignal()
{
VoidSignal ret = new VoidSignal(NDalicPINVOKE.Stage_SceneCreatedSignal(stageCPtr), false);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
internal ResizedSignal ResizedSignal()
{
ResizedSignal ret = new ResizedSignal(NDalicManualPINVOKE.Window_ResizedSignal(swigCPtr), false);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
internal static Vector4 DEFAULT_BACKGROUND_COLOR
{
get
{
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();
return ret;
}
}
internal static Vector4 DEBUG_BACKGROUND_COLOR
{
get
{
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;
}
}
private static readonly Window instance = Application.Instance.GetWindow();
///
/// The stage instance property (read-only).
/// Gets the current window.
///
/// 3
public static Window Instance
{
get
{
return instance;
}
}
///
/// Grabs the key specified by a key for a window only when a window is the topmost window.
/// This function can be used for following example scenarios:
/// - Mobile - Using volume up or down as zoom up or down in camera apps.
///
/// The key code to grab.
/// True if the grab succeeds.
/// 3
public bool GrabKeyTopmost(int DaliKey)
{
bool ret = NDalicManualPINVOKE.GrabKeyTopmost(HandleRef.ToIntPtr(this.swigCPtr), DaliKey);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
///
/// Ungrabs the key specified by a key for the window.
/// Note: If this function is called between key down and up events of a grabbed key, an application doesn't receive the key up event.
///
/// The key code to ungrab.
/// True if the ungrab succeeds.
/// 3
public bool UngrabKeyTopmost(int DaliKey)
{
bool ret = NDalicManualPINVOKE.UngrabKeyTopmost(HandleRef.ToIntPtr(this.swigCPtr), DaliKey);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
///
/// Grabs the key specified by a key for a window in a GrabMode.
/// Details: This function can be used for following example scenarios:
/// - TV - A user might want to change the volume or channel of the background TV contents while focusing on the foregrund app.
/// - Mobile - When a user presses the Home key, the homescreen appears regardless of the current foreground app.
/// - Mobile - Using the volume up or down as zoom up or down in camera apps.
///
/// The key code to grab.
/// The grab mode for the key.
/// True if the grab succeeds.
/// 3
public bool GrabKey(int DaliKey, KeyGrabMode GrabMode)
{
bool ret = NDalicManualPINVOKE.GrabKey(HandleRef.ToIntPtr(this.swigCPtr), DaliKey, (int)GrabMode);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
///
/// Ungrabs the key specified by a key for a window.
/// Note: If this function is called between key down and up events of a grabbed key, an application doesn't receive the key up event.
///
/// The key code to ungrab.
/// True if the ungrab succeeds.
/// 3
public bool UngrabKey(int DaliKey)
{
bool ret = NDalicManualPINVOKE.UngrabKey(HandleRef.ToIntPtr(this.swigCPtr), DaliKey);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
internal System.IntPtr GetNativeWindowHandler()
{
System.IntPtr ret = NDalicManualPINVOKE.GetNativeWindowHandler(HandleRef.ToIntPtr(this.swigCPtr));
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
///
/// Enumeration for orientation of the window is the way in which a rectangular page is oriented for normal viewing.
///
/// 3
public enum WindowOrientation
{
///
/// Portrait orientation. The height of the display area is greater than the width.
///
/// 3
Portrait = 0,
///
/// Landscape orientation. A wide view area is needed.
///
/// 3
Landscape = 90,
///
/// Portrait inverse orientation.
///
/// 3
PortraitInverse = 180,
///
/// Landscape inverse orientation.
///
/// 3
LandscapeInverse = 270
}
///
/// Enumeration for the key grab mode for platform-level APIs.
///
/// 3
public enum KeyGrabMode
{
///
/// Grabs a key only when on the top of the grabbing-window stack mode.
///
Topmost = 0,
///
/// Grabs a key together with the other client window(s) mode.
///
Shared,
///
/// 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.
///
OverrideExclusive,
///
/// Grabs a key exclusively regardless of the grabbing-window's position on the window stack mode.
///
Exclusive
};
///
/// Enumeration for opacity of the indicator.
///
internal enum IndicatorBackgroundOpacity
{
Opaque = 100,
Translucent = 50,
Transparent = 0
}
///
/// Enumeration for visible mode of the indicator.
///
internal enum IndicatorVisibleMode
{
Invisible = 0,
Visible = 1,
Auto = 2
}
///
/// The touch event argument.
///
/// 3
public class TouchEventArgs : EventArgs
{
private Touch _touch;
///
/// Touch.
///
/// 3
public Touch Touch
{
get
{
return _touch;
}
set
{
_touch = value;
}
}
}
private event EventHandler _stageTouchHandler;
private EventCallbackDelegateType1 _stageTouchCallbackDelegate;
///
/// This event is emitted when the screen is touched and when the touch ends.
/// If there are multiple touch points, then this will be emitted when the first touch occurs and
/// then when the last finger is lifted.
/// An interrupted event will also be emitted (if it occurs).
///
/// 3
public event EventHandler TouchEvent
{
add
{
lock (this)
{
_stageTouchHandler += value;
_stageTouchCallbackDelegate = OnStageTouch;
this.TouchSignal().Connect(_stageTouchCallbackDelegate);
}
}
remove
{
lock (this)
{
if (_stageTouchHandler != null)
{
this.TouchSignal().Disconnect(_stageTouchCallbackDelegate);
}
_stageTouchHandler -= value;
}
}
}
private void OnStageTouch(IntPtr data)
{
TouchEventArgs e = new TouchEventArgs();
if (data != null)
{
e.Touch = Tizen.NUI.Touch.GetTouchFromPtr(data);
}
if (_stageTouchHandler != null)
{
_stageTouchHandler(this, e);
}
}
///
/// Wheel event arguments.
///
/// 3
public class WheelEventArgs : EventArgs
{
private Wheel _wheel;
///
/// Wheel.
///
/// 3
public Wheel Wheel
{
get
{
return _wheel;
}
set
{
_wheel = value;
}
}
}
private event EventHandler _stageWheelHandler;
private EventCallbackDelegateType1 _stageWheelCallbackDelegate;
///
/// This event is emitted when the wheel event is received.
///
/// 3
public event EventHandler WheelEvent
{
add
{
if (_stageWheelHandler == null)
{
_stageWheelCallbackDelegate = OnStageWheel;
WheelEventSignal().Connect(_stageWheelCallbackDelegate);
}
_stageWheelHandler += value;
}
remove
{
_stageWheelHandler -= value;
if (_stageWheelHandler == null && WheelEventSignal().Empty() == false)
{
WheelEventSignal().Disconnect(_stageWheelCallbackDelegate);
}
}
}
private void OnStageWheel(IntPtr data)
{
WheelEventArgs e = new WheelEventArgs();
if (data != null)
{
e.Wheel = Tizen.NUI.Wheel.GetWheelFromPtr(data);
}
if (_stageWheelHandler != null)
{
_stageWheelHandler(this, e);
}
}
///
/// Key event arguments.
///
/// 3
public class KeyEventArgs : EventArgs
{
private Key _key;
///
/// Key.
///
/// 3
public Key Key
{
get
{
return _key;
}
set
{
_key = value;
}
}
}
private event EventHandler _stageKeyHandler;
private EventCallbackDelegateType1 _stageKeyCallbackDelegate;
///
/// This event is emitted when the key event is received.
///
/// 3
public event EventHandler KeyEvent
{
add
{
if (_stageKeyHandler == null)
{
_stageKeyCallbackDelegate = OnStageKey;
KeyEventSignal().Connect(_stageKeyCallbackDelegate);
}
_stageKeyHandler += value;
}
remove
{
_stageKeyHandler -= value;
if (_stageKeyHandler == null && KeyEventSignal().Empty() == false)
{
KeyEventSignal().Disconnect(_stageKeyCallbackDelegate);
}
}
}
// Callback for Stage KeyEventsignal
private void OnStageKey(IntPtr data)
{
KeyEventArgs e = new KeyEventArgs();
if (data != null)
{
e.Key = Tizen.NUI.Key.GetKeyFromPtr(data);
}
if (_stageKeyHandler != null)
{
//here we send all data to user event handlers
_stageKeyHandler(this, e);
}
}
private event EventHandler _stageEventProcessingFinishedEventHandler;
private EventCallbackDelegateType0 _stageEventProcessingFinishedEventCallbackDelegate;
internal event EventHandler EventProcessingFinished
{
add
{
if (_stageEventProcessingFinishedEventHandler == null)
{
_stageEventProcessingFinishedEventCallbackDelegate = OnEventProcessingFinished;
EventProcessingFinishedSignal().Connect(_stageEventProcessingFinishedEventCallbackDelegate);
}
_stageEventProcessingFinishedEventHandler += value;
}
remove
{
_stageEventProcessingFinishedEventHandler -= value;
if (_stageEventProcessingFinishedEventHandler == null && EventProcessingFinishedSignal().Empty() == false)
{
EventProcessingFinishedSignal().Disconnect(_stageEventProcessingFinishedEventCallbackDelegate);
}
}
}
// Callback for Stage EventProcessingFinishedSignal
private void OnEventProcessingFinished()
{
if (_stageEventProcessingFinishedEventHandler != null)
{
_stageEventProcessingFinishedEventHandler(this, null);
}
}
private EventHandler _stageContextLostEventHandler;
private EventCallbackDelegateType0 _stageContextLostEventCallbackDelegate;
internal event EventHandler ContextLost
{
add
{
if (_stageContextLostEventHandler == null)
{
_stageContextLostEventCallbackDelegate = OnContextLost;
ContextLostSignal().Connect(_stageContextLostEventCallbackDelegate);
}
_stageContextLostEventHandler += value;
}
remove
{
_stageContextLostEventHandler -= value;
if (_stageContextLostEventHandler == null && ContextLostSignal().Empty() == false)
{
ContextLostSignal().Disconnect(_stageContextLostEventCallbackDelegate);
}
}
}
// Callback for Stage ContextLostSignal
private void OnContextLost()
{
if (_stageContextLostEventHandler != null)
{
_stageContextLostEventHandler(this, null);
}
}
private EventHandler _stageContextRegainedEventHandler;
private EventCallbackDelegateType0 _stageContextRegainedEventCallbackDelegate;
internal event EventHandler ContextRegained
{
add
{
if (_stageContextRegainedEventHandler == null)
{
_stageContextRegainedEventCallbackDelegate = OnContextRegained;
ContextRegainedSignal().Connect(_stageContextRegainedEventCallbackDelegate);
}
_stageContextRegainedEventHandler += value;
}
remove
{
_stageContextRegainedEventHandler -= value;
if (_stageContextRegainedEventHandler == null && ContextRegainedSignal().Empty() == false)
{
this.ContextRegainedSignal().Disconnect(_stageContextRegainedEventCallbackDelegate);
}
}
}
// Callback for Stage ContextRegainedSignal
private void OnContextRegained()
{
if (_stageContextRegainedEventHandler != null)
{
_stageContextRegainedEventHandler(this, null);
}
}
private EventHandler _stageSceneCreatedEventHandler;
private EventCallbackDelegateType0 _stageSceneCreatedEventCallbackDelegate;
internal event EventHandler SceneCreated
{
add
{
if (_stageSceneCreatedEventHandler == null)
{
_stageSceneCreatedEventCallbackDelegate = OnSceneCreated;
SceneCreatedSignal().Connect(_stageSceneCreatedEventCallbackDelegate);
}
_stageSceneCreatedEventHandler += value;
}
remove
{
_stageSceneCreatedEventHandler -= value;
if (_stageSceneCreatedEventHandler == null && SceneCreatedSignal().Empty() == false)
{
SceneCreatedSignal().Disconnect(_stageSceneCreatedEventCallbackDelegate);
}
}
}
// Callback for Stage SceneCreatedSignal
private void OnSceneCreated()
{
if (_stageSceneCreatedEventHandler != null)
{
_stageSceneCreatedEventHandler(this, null);
}
}
///
/// This resized event arguments.
///
/// 3
public class ResizedEventArgs : EventArgs
{
Size2D _windowSize;
///
/// This window size.
///
/// 4
public Size2D WindowSize
{
get
{
return _windowSize;
}
set
{
_windowSize = value;
}
}
}
private WindowResizedEventCallbackType _windowResizedEventCallback;
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
private delegate void WindowResizedEventCallbackType(IntPtr windowSize);
private event EventHandler _windowResizedEventHandler;
///
/// This event is emitted when the window resized.
///
/// 3
public event EventHandler Resized
{
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);
}
}
}
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);
}
}
internal void SetWindowSize(Size2D size)
{
var val = new Uint16Pair((uint)size.Width, (uint)size.Height);
NDalicManualPINVOKE.SetSize(swigCPtr, Uint16Pair.getCPtr(val));
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
internal Size2D GetWindowSize()
{
var val = new Uint16Pair(NDalicManualPINVOKE.GetSize(swigCPtr), false);
Size2D ret = new Size2D(val.GetWidth(), val.GetHeight());
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
internal void SetPosition(Position2D position)
{
var val = new Uint16Pair((uint)position.X, (uint)position.Y);
NDalicManualPINVOKE.SetPosition(swigCPtr, Uint16Pair.getCPtr(val));
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
internal Position2D GetPosition()
{
var val = new Uint16Pair(NDalicManualPINVOKE.GetPosition(swigCPtr), true);
Position2D ret = new Position2D(val.GetX(), val.GetY());
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
///
/// Sets whether the window is transparent or not.
///
/// Whether the window is transparent.
/// 5
/// This will be released at Tizen.NET API Level 5, so currently this would be used as inhouse API.
[EditorBrowsable(EditorBrowsableState.Never)]
public void SetTransparency(bool transparent) {
NDalicManualPINVOKE.SetTransparency(swigCPtr, transparent);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
///
/// The window size property (read-only).
///
/// 3
public Size2D Size
{
get
{
Size2D ret = GetSize();
return ret;
}
}
///
/// The background color property.
///
/// 3
public Color BackgroundColor
{
set
{
SetBackgroundColor(value);
}
get
{
Color ret = GetBackgroundColor();
return ret;
}
}
///
/// The DPI property (read-only).
/// Retrieves the DPI of the display device to which the Window is connected.
///
/// 3
public Vector2 Dpi
{
get
{
return GetDpi();
}
}
///
/// The layer count property (read-only).
/// Queries the number of on-Window layers.
///
/// 3
public uint LayerCount
{
get
{
return GetLayerCount();
}
}
///
/// Adds a layer to the stage.
///
/// Layer to add.
/// 3
public void AddLayer(Layer layer)
{
NDalicPINVOKE.Stage_Add(stageCPtr, Layer.getCPtr(layer));
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
LayersChildren.Add(layer);
}
///
/// Removes a layer from the stage.
///
/// Layer to remove.
/// 3
public void RemoveLayer(Layer layer)
{
NDalicPINVOKE.Stage_Remove(stageCPtr, Layer.getCPtr(layer));
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
LayersChildren.Remove(layer);
}
///
/// Please do not use! this will be deprecated
///
/// 3
[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
{
///
/// Please do not use! this will be deprecated
///
/// 3
public bool FocusGained
{
get;
set;
}
}
private WindowFocusChangedEventCallbackType _windowFocusChangedEventCallback2;
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
private delegate void WindowFocusChangedEventCallbackType2(bool focusGained);
private event EventHandler _windowFocusChangedEventHandler2;
///
/// Please do not use! this will be deprecated. Please use 'FocusChanged' event instead.
///
/// 3
/// 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 WindowFocusChanged
{
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);
}
}
}
private void OnWindowFocusedChanged2(bool focusGained)
{
WindowFocusChangedEventArgs e = new WindowFocusChangedEventArgs();
e.FocusGained = focusGained;
if (_windowFocusChangedEventHandler2 != null)
{
_windowFocusChangedEventHandler2(this, e);
}
}
///
/// Gets or sets a size of the window.
///
/// 4
public Size2D WindowSize
{
get
{
return GetWindowSize();
}
set
{
SetWindowSize(value);
}
}
///
/// Gets or sets a position of the window.
///
/// 4
public Position2D WindowPosition
{
get
{
return GetPosition();
}
set
{
SetPosition(value);
}
}
///
/// Feed a key-event into the window.
///
/// The key event to feed.
/// 5
[EditorBrowsable(EditorBrowsableState.Never)]
public void FeedKey(Key keyEvent)
{
NDalicManualPINVOKE.Window_FeedKeyEvent(Key.getCPtr(keyEvent));
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
///
/// Feed a key-event into the window.
///
/// The key event to feed.
/// 4
[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();
}
///
/// Allows at least one more render, even when paused.
/// The window should be shown, not minimised.
///
/// 4
public void RenderOnce()
{
NDalicManualPINVOKE.Window_RenderOnce(swigCPtr);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
///
/// Contains and encapsulates Native Window handle.
///
/// 4
public class SafeNativeWindowHandle : SafeHandle
{
///
/// Contructor, Native window handle is set to handle.
///
/// 4
public SafeNativeWindowHandle() : base(IntPtr.Zero, false)
{
SetHandle(Tizen.NUI.Window.Instance.GetNativeWindowHandler());
}
///
/// Null check if the handle is valid or not.
///
/// 4
public override bool IsInvalid
{
get
{
return this.handle == IntPtr.Zero;
}
}
///
/// Release handle itself.
///
/// true when released successfully.
/// 4
protected override bool ReleaseHandle()
{
return true;
}
}
}
}