1 /** Copyright (c) 2017 Samsung Electronics Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
7 * http://www.apache.org/licenses/LICENSE-2.0
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
21 using System.Runtime.InteropServices;
22 using Tizen.NUI.BaseComponents;
25 /// The window class is used internally for drawing.<br>
26 /// A Window has an orientation and indicator properties.<br>
28 public class Window : BaseHandle
30 private global::System.Runtime.InteropServices.HandleRef swigCPtr;
31 private global::System.Runtime.InteropServices.HandleRef stageCPtr;
32 private Layer _rootLayer;
34 internal Window(global::System.IntPtr cPtr, bool cMemoryOwn) : base(NDalicPINVOKE.Window_SWIGUpcast(cPtr), cMemoryOwn)
36 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
37 if (NDalicPINVOKE.Stage_IsInstalled())
39 stageCPtr = new global::System.Runtime.InteropServices.HandleRef(this, NDalicPINVOKE.Stage_GetCurrent());
43 internal static global::System.Runtime.InteropServices.HandleRef getCPtr(Window obj)
45 return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
49 /// To make Window instance be disposed.
51 protected override void Dispose(DisposeTypes type)
58 if(type == DisposeTypes.Explicit)
61 //Release your own managed resources here.
62 //You should release all of your own disposable objects here.
65 //Release your own unmanaged resources here.
66 //You should not access any managed member here except static instance.
67 //because the execution order of Finalizes is non-deterministic.
69 if (swigCPtr.Handle != global::System.IntPtr.Zero)
74 NDalicPINVOKE.delete_Window(swigCPtr);
75 NDalicPINVOKE.delete_Stage(stageCPtr);
77 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
83 internal static Window GetCurrent()
85 Window ret = new Window(NDalicPINVOKE.Stage_GetCurrent(), true);
86 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
90 internal static bool IsInstalled()
92 bool ret = NDalicPINVOKE.Stage_IsInstalled();
93 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
97 [Obsolete("Please do not use! this will be internal method")]
98 public void SetAcceptFocus(bool accept)
100 NDalicPINVOKE.SetAcceptFocus(swigCPtr, accept);
101 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
104 [Obsolete("Please do not use! this will be internal method")]
105 public bool IsFocusAcceptable()
107 return NDalicPINVOKE.IsFocusAcceptable(swigCPtr);
108 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
112 /// Shows the window if it is hidden.
116 NDalicPINVOKE.Show(swigCPtr);
117 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
121 /// Hides the window if it is showing.
125 NDalicPINVOKE.Hide(swigCPtr);
126 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
130 /// Retrieves whether the window is visible or not.
132 /// <returns>true, if the windoe is visible</returns>
133 public bool IsVisible()
135 bool temp = NDalicPINVOKE.IsVisible(swigCPtr);
136 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
141 /// Gets the count of supported auxiliary hints of the window.
143 /// <returns>The number of supported auxiliary hints.</returns>
144 public uint GetSupportedAuxiliaryHintCount() {
145 uint ret = NDalicPINVOKE.GetSupportedAuxiliaryHintCount(swigCPtr);
146 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
151 /// Gets the supported auxiliary hint string of the window.
153 /// <param name="index">The index of the supported auxiliary hint lists.</param>
154 /// <returns>The auxiliary hint string of the index.</returns>
155 public string GetSupportedAuxiliaryHint(uint index) {
156 string ret = NDalicPINVOKE.GetSupportedAuxiliaryHint(swigCPtr, index);
157 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
162 /// Creates an auxiliary hint of the window.
164 /// <param name="hint">The auxiliary hint string.</param>
165 /// <param name="value">The value string.</param>
166 /// <returns>The ID of created auxiliary hint, or 0 on failure.</returns>
167 public uint AddAuxiliaryHint(string hint, string value) {
168 uint ret = NDalicPINVOKE.AddAuxiliaryHint(swigCPtr, hint, value);
169 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
174 /// Removes an auxiliary hint of the window.
176 /// <param name="id">The ID of the auxiliary hint.</param>
177 /// <returns>True if no error occurred, false otherwise.</returns>
178 public bool RemoveAuxiliaryHint(uint id) {
179 bool ret = NDalicPINVOKE.RemoveAuxiliaryHint(swigCPtr, id);
180 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
185 /// Changes a value of the auxiliary hint.
187 /// <param name="id">The auxiliary hint ID.</param>
188 /// <param name="value">The value string to be set.</param>
189 /// <returns>True if no error occurred, false otherwise.</returns>
190 public bool SetAuxiliaryHintValue(uint id, string value) {
191 bool ret = NDalicPINVOKE.SetAuxiliaryHintValue(swigCPtr, id, value);
192 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
197 /// Gets a value of the auxiliary hint.
199 /// <param name="id">The auxiliary hint ID.</param>
200 /// <returns>The string value of the auxiliary hint ID, or an empty string if none exists.</returns>
201 public string GetAuxiliaryHintValue(uint id) {
202 string ret = NDalicPINVOKE.GetAuxiliaryHintValue(swigCPtr, id);
203 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
208 /// Gets an ID of the auxiliary hint string.
210 /// <param name="hint">The auxiliary hint string.</param>
211 /// <returns>The ID of auxiliary hint string, or 0 on failure.</returns>
212 public uint GetAuxiliaryHintId(string hint) {
213 uint ret = NDalicPINVOKE.GetAuxiliaryHintId(swigCPtr, hint);
214 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
219 /// Sets a region to accept input events.
221 /// <param name="inputRegion">The region to accept input events.</param>
222 public void SetInputRegion(Rectangle inputRegion) {
223 NDalicPINVOKE.SetInputRegion(swigCPtr, Rectangle.getCPtr(inputRegion));
224 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
228 /// Gets/Sets a window type.
230 public WindowType Type
234 WindowType ret = (WindowType)NDalicPINVOKE.GetType(swigCPtr);
235 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
240 NDalicPINVOKE.SetType(swigCPtr, (int)value);
241 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
246 /// Sets a priority level for the specified notification window.
248 /// <param name="level">The notification window level.</param>
249 /// <returns>True if no error occurred, false otherwise.</returns>
250 public bool SetNotificationLevel(NotificationLevel level) {
251 bool ret = NDalicPINVOKE.SetNotificationLevel(swigCPtr, (int)level);
252 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
257 /// Gets a priority level for the specified notification window.
259 /// <returns>The notification window level.</returns>
260 public NotificationLevel GetNotificationLevel() {
261 NotificationLevel ret = (NotificationLevel)NDalicPINVOKE.GetNotificationLevel(swigCPtr);
262 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
267 /// Sets a transparent window's visual state to opaque.
269 /// <param name="opaque">Whether the window's visual state is opaque.</param>
270 public void SetOpaqueState(bool opaque) {
271 NDalicPINVOKE.SetOpaqueState(swigCPtr, opaque);
272 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
276 /// Returns whether a transparent window's visual state is opaque or not.
278 /// <returns>True if the window's visual state is opaque, false otherwise.</returns>
279 public bool IsOpaqueState() {
280 bool ret = NDalicPINVOKE.IsOpaqueState(swigCPtr);
281 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
286 /// Sets a window's screen mode.
288 /// <param name="screenMode">The screen mode.</param>
289 /// <returns>True if no error occurred, false otherwise.</returns>
290 public bool SetScreenMode(ScreenMode screenMode) {
291 bool ret = NDalicPINVOKE.SetScreenMode(swigCPtr, (int)screenMode);
292 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
297 /// Gets a screen mode of the window.
299 /// <returns>The screen mode.</returns>
300 public ScreenMode GetScreenMode() {
301 ScreenMode ret = (ScreenMode)NDalicPINVOKE.GetScreenMode(swigCPtr);
302 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
307 /// Sets preferred brightness of the window.
309 /// <param name="brightness">The preferred brightness (0 to 100).</param>
310 /// <returns>True if no error occurred, false otherwise.</returns>
311 public bool SetBrightness(int brightness) {
312 bool ret = NDalicPINVOKE.SetBrightness(swigCPtr, brightness);
313 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
318 /// Gets preffered brightness of the window.
320 /// <returns>The preffered brightness.</returns>
321 public int GetBrightness() {
322 int ret = NDalicPINVOKE.GetBrightness(swigCPtr);
323 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
327 public class FocusChangedEventArgs : EventArgs
329 public bool FocusGained
336 private WindowFocusChangedEventCallbackType _windowFocusChangedEventCallback;
337 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
338 private delegate void WindowFocusChangedEventCallbackType(bool focusGained);
339 private event EventHandler<FocusChangedEventArgs> _windowFocusChangedEventHandler;
341 public event EventHandler<FocusChangedEventArgs> FocusChanged
345 if (_windowFocusChangedEventHandler == null)
347 _windowFocusChangedEventCallback = OnWindowFocusedChanged;
348 WindowFocusChangedSignal().Connect(_windowFocusChangedEventCallback);
351 _windowFocusChangedEventHandler += value;
355 _windowFocusChangedEventHandler -= value;
357 if (_windowFocusChangedEventHandler == null && WindowFocusChangedSignal().Empty() == false && _windowFocusChangedEventCallback != null)
359 WindowFocusChangedSignal().Disconnect(_windowFocusChangedEventCallback);
364 private void OnWindowFocusedChanged(bool focusGained)
366 FocusChangedEventArgs e = new FocusChangedEventArgs();
368 e.FocusGained = focusGained;
370 if (_windowFocusChangedEventHandler != null)
372 _windowFocusChangedEventHandler(this, e);
376 internal WindowFocusSignalType WindowFocusChangedSignal()
378 WindowFocusSignalType ret = new WindowFocusSignalType(NDalicPINVOKE.FocusChangedSignal(swigCPtr), false);
379 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
383 internal Window(Rectangle windowPosition, string name, bool isTransparent) : this(NDalicPINVOKE.Window_New__SWIG_0(Rectangle.getCPtr(windowPosition), name, isTransparent), true)
385 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
388 internal Window(Rectangle windowPosition, string name) : this(NDalicPINVOKE.Window_New__SWIG_1(Rectangle.getCPtr(windowPosition), name), true)
390 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
393 internal Window(Rectangle windowPosition, string name, string className, bool isTransparent) : this(NDalicPINVOKE.Window_New__SWIG_2(Rectangle.getCPtr(windowPosition), name, className, isTransparent), true)
395 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
398 internal Window(Rectangle windowPosition, string name, string className) : this(NDalicPINVOKE.Window_New__SWIG_3(Rectangle.getCPtr(windowPosition), name, className), true)
400 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
403 internal void ShowIndicator(Window.IndicatorVisibleMode visibleMode)
405 NDalicPINVOKE.Window_ShowIndicator(swigCPtr, (int)visibleMode);
406 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
409 internal void SetIndicatorBackgroundOpacity(Window.IndicatorBackgroundOpacity opacity)
411 NDalicPINVOKE.Window_SetIndicatorBgOpacity(swigCPtr, (int)opacity);
412 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
415 internal void RotateIndicator(Window.WindowOrientation orientation)
417 NDalicPINVOKE.Window_RotateIndicator(swigCPtr, (int)orientation);
418 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
421 internal void SetClass(string name, string klass)
423 NDalicPINVOKE.Window_SetClass(swigCPtr, name, klass);
424 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
428 /// Raises window to the top of Window stack.
432 NDalicPINVOKE.Window_Raise(swigCPtr);
433 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
437 /// Lowers window to the bottom of Window stack.
441 NDalicPINVOKE.Window_Lower(swigCPtr);
442 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
446 /// Activates window to the top of Window stack even it is iconified.
448 public void Activate()
450 NDalicPINVOKE.Window_Activate(swigCPtr);
451 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
454 internal void AddAvailableOrientation(Window.WindowOrientation orientation)
456 NDalicPINVOKE.Window_AddAvailableOrientation(swigCPtr, (int)orientation);
457 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
460 internal void RemoveAvailableOrientation(Window.WindowOrientation orientation)
462 NDalicPINVOKE.Window_RemoveAvailableOrientation(swigCPtr, (int)orientation);
463 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
466 internal void SetPreferredOrientation(Window.WindowOrientation orientation)
468 NDalicPINVOKE.Window_SetPreferredOrientation(swigCPtr, (int)orientation);
469 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
472 internal Window.WindowOrientation GetPreferredOrientation()
474 Window.WindowOrientation ret = (Window.WindowOrientation)NDalicPINVOKE.Window_GetPreferredOrientation(swigCPtr);
475 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
479 internal DragAndDropDetector GetDragAndDropDetector()
481 DragAndDropDetector ret = new DragAndDropDetector(NDalicPINVOKE.Window_GetDragAndDropDetector(swigCPtr), true);
482 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
486 internal Any GetNativeHandle()
488 Any ret = new Any(NDalicPINVOKE.Window_GetNativeHandle(swigCPtr), true);
489 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
493 internal WindowFocusSignalType FocusChangedSignal()
495 WindowFocusSignalType ret = new WindowFocusSignalType(NDalicPINVOKE.FocusChangedSignal(swigCPtr), false);
496 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
501 /// Get default ( root ) layer.
503 /// <returns>The root layer</returns>
504 public Layer GetDefaultLayer()
506 return this.GetRootLayer();
509 internal void Add(Layer layer)
511 NDalicPINVOKE.Stage_Add(stageCPtr, Layer.getCPtr(layer));
512 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
515 internal void Remove(Layer layer)
517 NDalicPINVOKE.Stage_Remove(stageCPtr, Layer.getCPtr(layer));
518 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
521 public void Add(View view)
523 NDalicPINVOKE.Stage_Add(stageCPtr, View.getCPtr(view));
524 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
527 public void Remove(View view)
529 NDalicPINVOKE.Stage_Remove(stageCPtr, View.getCPtr(view));
530 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
533 internal Vector2 GetSize()
535 Vector2 ret = new Vector2(NDalicPINVOKE.Stage_GetSize(stageCPtr), true);
536 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
540 internal RenderTaskList GetRenderTaskList()
542 RenderTaskList ret = new RenderTaskList(NDalicPINVOKE.Stage_GetRenderTaskList(stageCPtr), true);
543 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
548 /// Queries the number of on-window layers.
550 /// <returns>The number of layers.</returns>
551 /// <remarks>Note that a default layer is always provided (count >= 1).</remarks>
552 internal uint GetLayerCount()
554 uint ret = NDalicPINVOKE.Stage_GetLayerCount(stageCPtr);
555 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
559 public Layer GetLayer(uint depth)
561 IntPtr cPtr = NDalicPINVOKE.Stage_GetLayer(stageCPtr, depth);
562 Layer ret = Registry.GetManagedBaseHandleFromNativePtr(cPtr) as Layer;
564 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
568 internal Layer GetRootLayer()
570 if (_rootLayer == null)
571 _rootLayer = new Layer(NDalicPINVOKE.Stage_GetRootLayer(stageCPtr), true);
574 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
578 internal void SetBackgroundColor(Vector4 color)
580 NDalicPINVOKE.Stage_SetBackgroundColor(stageCPtr, Vector4.getCPtr(color));
581 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
584 internal Vector4 GetBackgroundColor()
586 Vector4 ret = new Vector4(NDalicPINVOKE.Stage_GetBackgroundColor(stageCPtr), true);
587 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
591 internal Vector2 GetDpi()
593 Vector2 ret = new Vector2(NDalicPINVOKE.Stage_GetDpi(stageCPtr), true);
594 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
598 internal ObjectRegistry GetObjectRegistry()
600 ObjectRegistry ret = new ObjectRegistry(NDalicPINVOKE.Stage_GetObjectRegistry(stageCPtr), true);
601 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
606 /// Keep rendering for at least the given amount of time.
608 /// <param name="durationSeconds">Time to keep rendering, 0 means render at least one more frame</param>
609 public void KeepRendering(float durationSeconds)
611 NDalicPINVOKE.Stage_KeepRendering(stageCPtr, durationSeconds);
612 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
615 internal KeyEventSignal KeyEventSignal()
617 KeyEventSignal ret = new KeyEventSignal(NDalicPINVOKE.Stage_KeyEventSignal(stageCPtr), false);
618 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
622 internal VoidSignal EventProcessingFinishedSignal()
624 VoidSignal ret = new VoidSignal(NDalicPINVOKE.Stage_EventProcessingFinishedSignal(stageCPtr), false);
625 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
629 internal TouchSignal TouchSignal()
631 TouchSignal ret = new TouchSignal(NDalicPINVOKE.Stage_TouchSignal(stageCPtr), false);
632 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
636 private StageWheelSignal WheelEventSignal()
638 StageWheelSignal ret = new StageWheelSignal(NDalicPINVOKE.Stage_WheelEventSignal(stageCPtr), false);
639 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
643 internal VoidSignal ContextLostSignal()
645 VoidSignal ret = new VoidSignal(NDalicPINVOKE.Stage_ContextLostSignal(stageCPtr), false);
646 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
650 internal VoidSignal ContextRegainedSignal()
652 VoidSignal ret = new VoidSignal(NDalicPINVOKE.Stage_ContextRegainedSignal(stageCPtr), false);
653 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
657 internal VoidSignal SceneCreatedSignal()
659 VoidSignal ret = new VoidSignal(NDalicPINVOKE.Stage_SceneCreatedSignal(stageCPtr), false);
660 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
664 internal ResizedSignal ResizedSignal()
666 ResizedSignal ret = new ResizedSignal(NDalicManualPINVOKE.Window_ResizedSignal(swigCPtr), false);
667 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
671 internal static Vector4 DEFAULT_BACKGROUND_COLOR
675 global::System.IntPtr cPtr = NDalicPINVOKE.Stage_DEFAULT_BACKGROUND_COLOR_get();
676 Vector4 ret = (cPtr == global::System.IntPtr.Zero) ? null : new Vector4(cPtr, false);
677 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
682 internal static Vector4 DEBUG_BACKGROUND_COLOR
686 global::System.IntPtr cPtr = NDalicPINVOKE.Stage_DEBUG_BACKGROUND_COLOR_get();
687 Vector4 ret = (cPtr == global::System.IntPtr.Zero) ? null : new Vector4(cPtr, false);
688 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
693 private static readonly Window instance = Application.Instance.GetWindow();
696 /// Stage instance property (read-only).<br>
697 /// Gets the current Window.<br>
699 public static Window Instance
708 /// Grabs the key specified by a key for a window only when a window is the topmost window. <br>
709 /// This function can be used for following example scenarios: <br>
710 /// - Mobile - Using volume up/down as zoom up/down in camera apps. <br>
712 /// <param name="DaliKey">The key code to grab</param>
713 /// <returns>true if the grab succeeds</returns>
714 public bool GrabKeyTopmost(int DaliKey)
716 bool ret = NDalicManualPINVOKE.GrabKeyTopmost(HandleRef.ToIntPtr(this.swigCPtr), DaliKey);
717 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
722 /// Ungrabs the key specified by a key for a window. <br>
723 /// 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.<br>
725 /// <param name="DaliKey">The key code to ungrab</param>
726 /// <returns>true if the ungrab succeeds</returns>
727 public bool UngrabKeyTopmost(int DaliKey)
729 bool ret = NDalicManualPINVOKE.UngrabKeyTopmost(HandleRef.ToIntPtr(this.swigCPtr), DaliKey);
730 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
735 /// Grabs the key specified by a key for a window in a GrabMode. <br>
736 /// Details: This function can be used for following example scenarios: <br>
737 /// - TV - A user might want to change the volume or channel of the background TV contents while focusing on the foregrund app. <br>
738 /// - Mobile - When a user presses Home key, the homescreen appears regardless of current foreground app. <br>
739 /// - Mobile - Using volume up/down as zoom up/down in camera apps. <br>
741 /// <param name="DaliKey">The key code to grab</param>
742 /// <param name="GrabMode">The grab mode for the key</param>
743 /// <returns>true if the grab succeeds</returns>
744 public bool GrabKey(int DaliKey, KeyGrabMode GrabMode)
746 bool ret = NDalicManualPINVOKE.GrabKey(HandleRef.ToIntPtr(this.swigCPtr), DaliKey, (int)GrabMode);
747 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
752 /// Ungrabs the key specified by a key for a window. <br>
753 /// 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. <br>
755 /// <param name="DaliKey">The key code to ungrab</param>
756 /// <returns>true if the ungrab succeeds</returns>
757 public bool UngrabKey(int DaliKey)
759 bool ret = NDalicManualPINVOKE.UngrabKey(HandleRef.ToIntPtr(this.swigCPtr), DaliKey);
760 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
764 internal System.IntPtr GetNativeWindowHandler()
766 System.IntPtr ret = NDalicManualPINVOKE.GetNativeWindowHandler(HandleRef.ToIntPtr(this.swigCPtr));
767 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
772 /// Enumeration for orientation of the window is the way in which a rectangular page is oriented for normal viewing.
774 public enum WindowOrientation
778 PortraitInverse = 180,
779 LandscapeInverse = 270
783 /// Enumeration for key grab mode for platform-level APIs.
785 public enum KeyGrabMode
788 /// Grab a key only when on the top of the grabbing-window stack mode.
792 /// Grab a key together with the other client window(s) mode.
796 /// Grab 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.
800 /// Grab a key exclusively regardless of the grabbing-window's position on the window stack mode.
806 /// Enumeration for opacity of the indicator.
808 internal enum IndicatorBackgroundOpacity
816 /// Enumeration for visible mode of the indicator.
818 internal enum IndicatorVisibleMode
826 /// Touch event argument.
828 public class TouchEventArgs : EventArgs
830 private Touch _touch;
848 private event EventHandler<TouchEventArgs> _stageTouchHandler;
849 private EventCallbackDelegateType1 _stageTouchCallbackDelegate;
852 /// This is emitted when the screen is touched and when the touch ends.<br>
853 /// If there are multiple touch points, then this will be emitted when the first touch occurs and
854 /// then when the last finger is lifted.<br>
855 /// An interrupted event will also be emitted (if it occurs).<br>
857 public event EventHandler<TouchEventArgs> TouchEvent
863 _stageTouchHandler += value;
864 _stageTouchCallbackDelegate = OnStageTouch;
865 this.TouchSignal().Connect(_stageTouchCallbackDelegate);
872 if (_stageTouchHandler != null)
874 this.TouchSignal().Disconnect(_stageTouchCallbackDelegate);
876 _stageTouchHandler -= value;
881 private void OnStageTouch(IntPtr data)
883 TouchEventArgs e = new TouchEventArgs();
887 e.Touch = Tizen.NUI.Touch.GetTouchFromPtr(data);
890 if (_stageTouchHandler != null)
892 _stageTouchHandler(this, e);
897 /// Wheel event arguments.
899 public class WheelEventArgs : EventArgs
901 private Wheel _wheel;
919 private event EventHandler<WheelEventArgs> _stageWheelHandler;
920 private EventCallbackDelegateType1 _stageWheelCallbackDelegate;
923 /// Event emitted when wheel event is received.
925 public event EventHandler<WheelEventArgs> WheelEvent
929 if (_stageWheelHandler == null)
931 _stageWheelCallbackDelegate = OnStageWheel;
932 WheelEventSignal().Connect(_stageWheelCallbackDelegate);
934 _stageWheelHandler += value;
938 _stageWheelHandler -= value;
939 if (_stageWheelHandler == null && WheelEventSignal().Empty() == false)
941 WheelEventSignal().Disconnect(_stageWheelCallbackDelegate);
946 private void OnStageWheel(IntPtr data)
948 WheelEventArgs e = new WheelEventArgs();
952 e.Wheel = Tizen.NUI.Wheel.GetWheelFromPtr(data);
955 if (_stageWheelHandler != null)
957 _stageWheelHandler(this, e);
962 /// Key event arguments.
964 public class KeyEventArgs : EventArgs
984 private event EventHandler<KeyEventArgs> _stageKeyHandler;
985 private EventCallbackDelegateType1 _stageKeyCallbackDelegate;
988 /// Event emitted when key event is received.
990 public event EventHandler<KeyEventArgs> KeyEvent
994 if (_stageKeyHandler == null)
996 _stageKeyCallbackDelegate = OnStageKey;
997 KeyEventSignal().Connect(_stageKeyCallbackDelegate);
999 _stageKeyHandler += value;
1003 _stageKeyHandler -= value;
1004 if (_stageKeyHandler == null && KeyEventSignal().Empty() == false)
1006 KeyEventSignal().Disconnect(_stageKeyCallbackDelegate);
1011 // Callback for Stage KeyEventsignal
1012 private void OnStageKey(IntPtr data)
1014 KeyEventArgs e = new KeyEventArgs();
1018 e.Key = Tizen.NUI.Key.GetKeyFromPtr(data);
1021 if (_stageKeyHandler != null)
1023 //here we send all data to user event handlers
1024 _stageKeyHandler(this, e);
1029 private event EventHandler _stageEventProcessingFinishedEventHandler;
1030 private EventCallbackDelegateType0 _stageEventProcessingFinishedEventCallbackDelegate;
1032 internal event EventHandler EventProcessingFinished
1036 if (_stageEventProcessingFinishedEventHandler == null)
1038 _stageEventProcessingFinishedEventCallbackDelegate = OnEventProcessingFinished;
1039 EventProcessingFinishedSignal().Connect(_stageEventProcessingFinishedEventCallbackDelegate);
1041 _stageEventProcessingFinishedEventHandler += value;
1046 _stageEventProcessingFinishedEventHandler -= value;
1047 if (_stageEventProcessingFinishedEventHandler == null && EventProcessingFinishedSignal().Empty() == false)
1049 EventProcessingFinishedSignal().Disconnect(_stageEventProcessingFinishedEventCallbackDelegate);
1054 // Callback for Stage EventProcessingFinishedSignal
1055 private void OnEventProcessingFinished()
1057 if (_stageEventProcessingFinishedEventHandler != null)
1059 _stageEventProcessingFinishedEventHandler(this, null);
1064 private EventHandler _stageContextLostEventHandler;
1065 private EventCallbackDelegateType0 _stageContextLostEventCallbackDelegate;
1067 internal event EventHandler ContextLost
1071 if (_stageContextLostEventHandler == null)
1073 _stageContextLostEventCallbackDelegate = OnContextLost;
1074 ContextLostSignal().Connect(_stageContextLostEventCallbackDelegate);
1076 _stageContextLostEventHandler += value;
1080 _stageContextLostEventHandler -= value;
1081 if (_stageContextLostEventHandler == null && ContextLostSignal().Empty() == false)
1083 ContextLostSignal().Disconnect(_stageContextLostEventCallbackDelegate);
1088 // Callback for Stage ContextLostSignal
1089 private void OnContextLost()
1091 if (_stageContextLostEventHandler != null)
1093 _stageContextLostEventHandler(this, null);
1098 private EventHandler _stageContextRegainedEventHandler;
1099 private EventCallbackDelegateType0 _stageContextRegainedEventCallbackDelegate;
1101 internal event EventHandler ContextRegained
1105 if (_stageContextRegainedEventHandler == null)
1107 _stageContextRegainedEventCallbackDelegate = OnContextRegained;
1108 ContextRegainedSignal().Connect(_stageContextRegainedEventCallbackDelegate);
1110 _stageContextRegainedEventHandler += value;
1114 _stageContextRegainedEventHandler -= value;
1115 if (_stageContextRegainedEventHandler == null && ContextRegainedSignal().Empty() == false)
1117 this.ContextRegainedSignal().Disconnect(_stageContextRegainedEventCallbackDelegate);
1122 // Callback for Stage ContextRegainedSignal
1123 private void OnContextRegained()
1125 if (_stageContextRegainedEventHandler != null)
1127 _stageContextRegainedEventHandler(this, null);
1132 private EventHandler _stageSceneCreatedEventHandler;
1133 private EventCallbackDelegateType0 _stageSceneCreatedEventCallbackDelegate;
1135 internal event EventHandler SceneCreated
1139 if (_stageSceneCreatedEventHandler == null)
1141 _stageSceneCreatedEventCallbackDelegate = OnSceneCreated;
1142 SceneCreatedSignal().Connect(_stageSceneCreatedEventCallbackDelegate);
1144 _stageSceneCreatedEventHandler += value;
1148 _stageSceneCreatedEventHandler -= value;
1149 if (_stageSceneCreatedEventHandler == null && SceneCreatedSignal().Empty() == false)
1151 SceneCreatedSignal().Disconnect(_stageSceneCreatedEventCallbackDelegate);
1156 // Callback for Stage SceneCreatedSignal
1157 private void OnSceneCreated()
1159 if (_stageSceneCreatedEventHandler != null)
1161 _stageSceneCreatedEventHandler(this, null);
1165 public class ResizedEventArgs : EventArgs
1169 public Size2D WindowSize
1177 _windowSize = value;
1182 private WindowResizedEventCallbackType _windowResizedEventCallback;
1183 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
1184 private delegate void WindowResizedEventCallbackType(IntPtr windowSize);
1185 private event EventHandler<ResizedEventArgs> _windowResizedEventHandler;
1187 public event EventHandler<ResizedEventArgs> Resized
1191 if (_windowResizedEventHandler == null)
1193 _windowResizedEventCallback = OnResized;
1194 ResizedSignal().Connect(_windowResizedEventCallback);
1197 _windowResizedEventHandler += value;
1201 _windowResizedEventHandler -= value;
1203 if (_windowResizedEventHandler == null && ResizedSignal().Empty() == false && _windowResizedEventCallback != null)
1205 ResizedSignal().Disconnect(_windowResizedEventCallback);
1210 private void OnResized(IntPtr windowSize)
1212 ResizedEventArgs e = new ResizedEventArgs();
1213 var val = new Uint16Pair(windowSize, false);
1214 e.WindowSize = new Size2D(val.GetWidth(), val.GetHeight());
1217 if (_windowResizedEventHandler != null)
1219 _windowResizedEventHandler(this, e);
1223 internal void SetWindowSize(Size2D size)
1225 NDalicManualPINVOKE.SetSize(swigCPtr, Size2D.getCPtr(size));
1226 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1229 internal Size2D GetWindowSize()
1231 var val = new Uint16Pair(NDalicManualPINVOKE.GetSize(swigCPtr), false);
1232 Size2D ret = new Size2D(val.GetWidth(), val.GetHeight());
1235 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1239 internal void SetPosition(Position2D position)
1241 NDalicManualPINVOKE.SetPosition(swigCPtr, Position2D.getCPtr(position));
1242 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1245 internal Position2D GetPosition()
1247 Position2D ret = new Position2D(NDalicManualPINVOKE.GetPosition(swigCPtr), true);
1248 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1253 /// Window size property (read-only).
1259 Size2D ret = GetSize();
1265 /// Background color property.
1267 public Color BackgroundColor
1271 SetBackgroundColor(value);
1275 Color ret = GetBackgroundColor();
1281 /// Dpi property (read-only).<br>
1282 /// Retrieves the DPI of the display device to which the Window is connected.<br>
1293 /// Layer count property (read-only).<br>
1294 /// Queries the number of on-Window layers.<br>
1296 public uint LayerCount
1300 return GetLayerCount();
1306 /// Add layer to the Stage.
1308 /// <param name="layer">Layer to add</param>
1309 public void AddLayer(Layer layer)
1311 NDalicPINVOKE.Stage_Add(stageCPtr, Layer.getCPtr(layer));
1312 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1316 /// Remove layer from the Stage.
1318 /// <param name="layer">Layer to remove</param>
1319 public void RemoveLayer(Layer layer)
1321 NDalicPINVOKE.Stage_Remove(stageCPtr, Layer.getCPtr(layer));
1322 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1325 [Obsolete("Please do not use! this will be deprecated")]
1326 public class WindowFocusChangedEventArgs : EventArgs
1328 public bool FocusGained
1335 private WindowFocusChangedEventCallbackType _windowFocusChangedEventCallback2;
1336 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
1337 private delegate void WindowFocusChangedEventCallbackType2(bool focusGained);
1338 private event EventHandler<WindowFocusChangedEventArgs> _windowFocusChangedEventHandler2;
1340 [Obsolete("Please do not use! this will be deprecated")]
1341 public event EventHandler<WindowFocusChangedEventArgs> WindowFocusChanged
1345 if (_windowFocusChangedEventHandler2 == null)
1347 _windowFocusChangedEventCallback2 = OnWindowFocusedChanged2;
1348 WindowFocusChangedSignal().Connect(_windowFocusChangedEventCallback2);
1351 _windowFocusChangedEventHandler2 += value;
1355 _windowFocusChangedEventHandler2 -= value;
1357 if (_windowFocusChangedEventHandler2 == null && WindowFocusChangedSignal().Empty() == false && _windowFocusChangedEventCallback2 != null)
1359 WindowFocusChangedSignal().Disconnect(_windowFocusChangedEventCallback2);
1364 private void OnWindowFocusedChanged2(bool focusGained)
1366 WindowFocusChangedEventArgs e = new WindowFocusChangedEventArgs();
1368 e.FocusGained = focusGained;
1370 if (_windowFocusChangedEventHandler2 != null)
1372 _windowFocusChangedEventHandler2(this, e);
1377 /// Gets/Sets a size of the window.
1379 public Size2D WindowSize
1383 return GetWindowSize();
1387 SetWindowSize(value);
1392 /// Gets/Sets a position of the window.
1394 public Position2D WindowPosition
1398 return GetPosition();