2 * Copyright(c) 2022 Samsung Electronics Co., Ltd.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
18 using System.Collections.Generic;
19 using System.Collections.ObjectModel;
20 using System.ComponentModel;
21 using System.Diagnostics;
22 using System.Runtime.InteropServices;
23 using Tizen.NUI.Binding;
27 // Event arguments that passed via NUIApplicationInit signal
28 internal class NUIApplicationInitEventArgs : EventArgs
30 private Application application;
32 // Application - is the application that is being initialized
33 public Application Application
46 // Event arguments that passed via NUIApplicationTerminate signal
47 internal class NUIApplicationTerminatingEventArgs : EventArgs
49 private Application application;
51 // Application - is the application that is being Terminated
52 public Application Application
65 // Event arguments that passed via NUIApplicationPause signal
66 internal class NUIApplicationPausedEventArgs : EventArgs
68 private Application application;
70 // Application - is the application that is being Paused
71 public Application Application
84 // Event arguments that passed via NUIApplicationResume signal
85 internal class NUIApplicationResumedEventArgs : EventArgs
87 private Application application;
88 // Application - is the application that is being Resumed
89 public Application Application
102 // Event arguments that passed via NUIApplicationReset signal
103 internal class NUIApplicationResetEventArgs : EventArgs
105 private Application application;
107 // Application - is the application that is being Reset
108 public Application Application
121 // Event arguments that passed via NUIApplicationLanguageChanged signal
122 internal class NUIApplicationLanguageChangedEventArgs : EventArgs
124 private Application application;
126 // Application - is the application that is being affected with Device's language change
127 public Application Application
140 // Event arguments that passed via NUIApplicationRegionChanged signal
141 internal class NUIApplicationRegionChangedEventArgs : EventArgs
143 private Application application;
145 // Application - is the application that is being affected with Device's region change
146 public Application Application
159 // Event arguments that passed via NUIApplicationBatteryLow signal
160 internal class NUIApplicationBatteryLowEventArgs : EventArgs
162 private Application.BatteryStatus status;
164 // Application - is the application that is being affected when the battery level of the device is low
165 public Application.BatteryStatus BatteryStatus
178 // Event arguments that passed via NUIApplicationMemoryLow signal
179 internal class NUIApplicationMemoryLowEventArgs : EventArgs
181 private Application.MemoryStatus status;
183 // Application - is the application that is being affected when the memory level of the device is low
184 public Application.MemoryStatus MemoryStatus
197 // Event arguments that passed via NUIApplicationDeviceOrientationChanged signal
198 internal class NUIApplicationDeviceOrientationChangedEventArgs : EventArgs
200 private Application.DeviceOrientationStatus status;
202 // Application - is the application that is being affected when the device orientation is changed.
203 public Application.DeviceOrientationStatus DeviceOrientationStatus
216 // Event arguments that passed via NUIApplicationAppControl signal
217 internal class NUIApplicationAppControlEventArgs : EventArgs
219 private Application application;
220 private IntPtr voidp;
222 // Application - is the application that is receiving the launch request from another application
223 public Application Application
235 // VoidP - contains the information about why the application is launched
250 /// A class to get resources in current application.
252 public sealed class GetResourcesProvider
255 /// Get resources in current application.
257 static public IResourcesProvider Get()
259 return Tizen.NUI.Application.Current;
263 internal class Application : BaseHandle, IResourcesProvider, IElementConfiguration<Application>
265 static Application s_current;
267 ReadOnlyCollection<Element> logicalChildren;
269 [EditorBrowsable(EditorBrowsableState.Never)]
270 public static void SetCurrentApplication(Application value) => Current = value;
272 public static Application Current
274 get { return s_current; }
277 if (s_current == value)
283 internal override ReadOnlyCollection<Element> LogicalChildrenInternal
285 get { return logicalChildren ?? (logicalChildren = new ReadOnlyCollection<Element>(InternalChildren)); }
288 internal IResourceDictionary SystemResources { get; }
290 ObservableCollection<Element> InternalChildren { get; } = new ObservableCollection<Element>();
292 ResourceDictionary resources;
293 public bool IsResourcesCreated => resources != null;
295 public delegate void resChangeCb(object sender, ResourcesChangedEventArgs e);
297 internal override void OnResourcesChanged(object sender, ResourcesChangedEventArgs e)
299 base.OnResourcesChanged(sender, e);
302 public ResourceDictionary XamlResources
306 if (resources == null)
308 resources = new ResourceDictionary();
309 int hashCode = resources.GetHashCode();
310 ((IResourceDictionary)resources).ValuesChanged += OnResourcesChanged;
316 if (resources == value)
318 OnPropertyChanging();
320 if (resources != null)
321 ((IResourceDictionary)resources).ValuesChanged -= OnResourcesChanged;
323 OnResourcesChanged(value);
324 if (resources != null)
325 ((IResourceDictionary)resources).ValuesChanged += OnResourcesChanged;
331 protected override void OnParentSet()
333 throw new InvalidOperationException("Setting a Parent on Application is invalid.");
336 [EditorBrowsable(EditorBrowsableState.Never)]
337 public static bool IsApplicationOrNull(Element element)
339 return element == null || element is Application;
342 internal override void OnParentResourcesChanged(IEnumerable<KeyValuePair<string, object>> values)
347 if (!((IResourcesProvider)this).IsResourcesCreated || XamlResources.Count == 0)
349 base.OnParentResourcesChanged(values);
353 var innerKeys = new HashSet<string>();
354 var changedResources = new List<KeyValuePair<string, object>>();
355 foreach (KeyValuePair<string, object> c in XamlResources)
356 innerKeys.Add(c.Key);
357 foreach (KeyValuePair<string, object> value in values)
359 if (innerKeys.Add(value.Key))
360 changedResources.Add(value);
362 if (changedResources.Count != 0)
363 OnResourcesChanged(changedResources);
366 internal Application(global::System.IntPtr cPtr, bool cMemoryOwn) : base(cPtr, cMemoryOwn)
368 SetCurrentApplication(this);
372 protected override void Dispose(DisposeTypes type)
379 //Release your own unmanaged resources here.
380 //You should not access any managed member here except static instance.
381 //because the execution order of Finalizes is non-deterministic.
382 if (applicationInitEventCallbackDelegate != null)
384 initSignal?.Disconnect(applicationInitEventCallbackDelegate);
385 initSignal?.Dispose();
389 if (applicationTerminateEventCallbackDelegate != null)
391 terminateSignal?.Disconnect(applicationTerminateEventCallbackDelegate);
392 terminateSignal?.Dispose();
393 terminateSignal = null;
396 if (applicationPauseEventCallbackDelegate != null)
398 pauseSignal?.Disconnect(applicationPauseEventCallbackDelegate);
399 pauseSignal?.Dispose();
403 if (applicationResumeEventCallbackDelegate != null)
405 resumeSignal?.Disconnect(applicationResumeEventCallbackDelegate);
406 resumeSignal?.Dispose();
410 if (applicationResetEventCallbackDelegate != null)
412 resetSignal?.Disconnect(applicationResetEventCallbackDelegate);
413 resetSignal?.Dispose();
417 if (applicationLanguageChangedEventCallbackDelegate != null)
419 languageChangedSignal?.Disconnect(applicationLanguageChangedEventCallbackDelegate);
420 languageChangedSignal?.Dispose();
421 languageChangedSignal = null;
424 if (applicationRegionChangedEventCallbackDelegate != null)
426 regionChangedSignal?.Disconnect(applicationRegionChangedEventCallbackDelegate);
427 regionChangedSignal?.Dispose();
428 regionChangedSignal = null;
431 if (applicationBatteryLowEventCallbackDelegate != null)
433 batteryLowSignal?.Disconnect(applicationBatteryLowEventCallbackDelegate);
434 batteryLowSignal?.Dispose();
435 batteryLowSignal = null;
438 if (applicationMemoryLowEventCallbackDelegate != null)
440 memoryLowSignal?.Disconnect(applicationMemoryLowEventCallbackDelegate);
441 memoryLowSignal?.Dispose();
442 memoryLowSignal = null;
445 if (applicationDeviceOrientationChangedEventCallback != null)
447 deviceOrientationChangedSignal?.Disconnect(applicationDeviceOrientationChangedEventCallback);
448 deviceOrientationChangedSignal?.Dispose();
449 deviceOrientationChangedSignal = null;
452 if (applicationAppControlEventCallbackDelegate != null)
454 appControlSignal?.Disconnect(applicationAppControlEventCallbackDelegate);
455 appControlSignal?.Dispose();
456 appControlSignal = null;
460 if (applicationTaskInitEventCallbackDelegate != null)
462 taskInitSignal?.Disconnect(applicationTaskInitEventCallbackDelegate);
463 taskInitSignal?.Dispose();
464 taskInitSignal = null;
467 if (applicationTaskTerminateEventCallbackDelegate != null)
469 taskTerminateSignal?.Disconnect(applicationTaskTerminateEventCallbackDelegate);
470 taskTerminateSignal?.Dispose();
471 taskTerminateSignal = null;
474 if (applicationTaskLanguageChangedEventCallbackDelegate != null)
476 taskLanguageChangedSignal?.Disconnect(applicationTaskLanguageChangedEventCallbackDelegate);
477 taskLanguageChangedSignal?.Dispose();
478 taskLanguageChangedSignal = null;
481 if (applicationTaskRegionChangedEventCallbackDelegate != null)
483 taskRegionChangedSignal?.Disconnect(applicationTaskRegionChangedEventCallbackDelegate);
484 taskRegionChangedSignal?.Dispose();
485 taskRegionChangedSignal = null;
488 if (applicationTaskBatteryLowEventCallbackDelegate != null)
490 taskBatteryLowSignal?.Disconnect(applicationTaskBatteryLowEventCallbackDelegate);
491 taskBatteryLowSignal?.Dispose();
492 taskBatteryLowSignal = null;
495 if (applicationTaskMemoryLowEventCallbackDelegate != null)
497 taskMemoryLowSignal?.Disconnect(applicationTaskMemoryLowEventCallbackDelegate);
498 taskMemoryLowSignal?.Dispose();
499 taskMemoryLowSignal = null;
502 if (applicationTaskDeviceOrientationChangedEventCallback != null)
504 taskDeviceOrientationChangedSignal?.Disconnect(applicationTaskDeviceOrientationChangedEventCallback);
505 taskDeviceOrientationChangedSignal?.Dispose();
506 taskDeviceOrientationChangedSignal = null;
509 if (applicationTaskAppControlEventCallbackDelegate != null)
511 taskAppControlSignal?.Disconnect(applicationTaskAppControlEventCallbackDelegate);
512 taskAppControlSignal?.Dispose();
513 taskAppControlSignal = null;
521 protected override void ReleaseSwigCPtr(System.Runtime.InteropServices.HandleRef swigCPtr)
523 Interop.Application.DeleteApplication(swigCPtr);
526 public enum BatteryStatus
533 public enum MemoryStatus
540 public enum DeviceOrientationStatus
544 Orientation_180 = 180,
545 Orientation_270 = 270
548 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
549 private delegate void NUIApplicationInitEventCallbackDelegate(IntPtr application);
550 private DaliEventHandler<object, NUIApplicationInitEventArgs> applicationInitEventHandler;
551 private NUIApplicationInitEventCallbackDelegate applicationInitEventCallbackDelegate;
552 private ApplicationSignal initSignal;
554 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
555 private delegate void NUIApplicationTerminateEventCallbackDelegate(IntPtr application);
556 private DaliEventHandler<object, NUIApplicationTerminatingEventArgs> applicationTerminateEventHandler;
557 private NUIApplicationTerminateEventCallbackDelegate applicationTerminateEventCallbackDelegate;
558 private ApplicationSignal terminateSignal;
560 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
561 private delegate void NUIApplicationPauseEventCallbackDelegate(IntPtr application);
562 private DaliEventHandler<object, NUIApplicationPausedEventArgs> applicationPauseEventHandler;
563 private NUIApplicationPauseEventCallbackDelegate applicationPauseEventCallbackDelegate;
564 private ApplicationSignal pauseSignal;
566 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
567 private delegate void NUIApplicationResumeEventCallbackDelegate(IntPtr application);
568 private DaliEventHandler<object, NUIApplicationResumedEventArgs> applicationResumeEventHandler;
569 private NUIApplicationResumeEventCallbackDelegate applicationResumeEventCallbackDelegate;
570 private ApplicationSignal resumeSignal;
572 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
573 private delegate void NUIApplicationResetEventCallbackDelegate(IntPtr application);
574 private DaliEventHandler<object, NUIApplicationResetEventArgs> applicationResetEventHandler;
575 private NUIApplicationResetEventCallbackDelegate applicationResetEventCallbackDelegate;
576 private ApplicationSignal resetSignal;
578 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
579 private delegate void NUIApplicationLanguageChangedEventCallbackDelegate(IntPtr application);
580 private DaliEventHandler<object, NUIApplicationLanguageChangedEventArgs> applicationLanguageChangedEventHandler;
581 private NUIApplicationLanguageChangedEventCallbackDelegate applicationLanguageChangedEventCallbackDelegate;
582 private ApplicationSignal languageChangedSignal;
585 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
586 private delegate void NUIApplicationRegionChangedEventCallbackDelegate(IntPtr application);
587 private DaliEventHandler<object, NUIApplicationRegionChangedEventArgs> applicationRegionChangedEventHandler;
588 private NUIApplicationRegionChangedEventCallbackDelegate applicationRegionChangedEventCallbackDelegate;
589 private ApplicationSignal regionChangedSignal;
591 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
592 private delegate void NUIApplicationBatteryLowEventCallbackDelegate(BatteryStatus status);
593 private DaliEventHandler<object, NUIApplicationBatteryLowEventArgs> applicationBatteryLowEventHandler;
594 private NUIApplicationBatteryLowEventCallbackDelegate applicationBatteryLowEventCallbackDelegate;
595 private LowBatterySignalType batteryLowSignal;
597 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
598 private delegate void NUIApplicationMemoryLowEventCallbackDelegate(MemoryStatus status);
599 private DaliEventHandler<object, NUIApplicationMemoryLowEventArgs> applicationMemoryLowEventHandler;
600 private NUIApplicationMemoryLowEventCallbackDelegate applicationMemoryLowEventCallbackDelegate;
601 private LowMemorySignalType memoryLowSignal;
603 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
604 private delegate void NUIApplicationDeviceOrientationChangedEventCallback(DeviceOrientationStatus status);
605 private DaliEventHandler<object, NUIApplicationDeviceOrientationChangedEventArgs> applicationDeviceOrientationChangedEventHandler;
606 private NUIApplicationDeviceOrientationChangedEventCallback applicationDeviceOrientationChangedEventCallback;
607 private DeviceOrientationChangedSignalType deviceOrientationChangedSignal;
609 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
610 private delegate void NUIApplicationAppControlEventCallbackDelegate(IntPtr application, IntPtr voidp);
611 private DaliEventHandler<object, NUIApplicationAppControlEventArgs> applicationAppControlEventHandler;
612 private NUIApplicationAppControlEventCallbackDelegate applicationAppControlEventCallbackDelegate;
613 private ApplicationControlSignal appControlSignal;
615 private DaliEventHandler<object, NUIApplicationInitEventArgs> applicationTaskInitEventHandler;
616 private NUIApplicationInitEventCallbackDelegate applicationTaskInitEventCallbackDelegate;
617 private ApplicationSignal taskInitSignal;
619 private DaliEventHandler<object, NUIApplicationTerminatingEventArgs> applicationTaskTerminateEventHandler;
620 private NUIApplicationTerminateEventCallbackDelegate applicationTaskTerminateEventCallbackDelegate;
621 private ApplicationSignal taskTerminateSignal;
623 private DaliEventHandler<object, NUIApplicationLanguageChangedEventArgs> applicationTaskLanguageChangedEventHandler;
624 private NUIApplicationLanguageChangedEventCallbackDelegate applicationTaskLanguageChangedEventCallbackDelegate;
625 private ApplicationSignal taskLanguageChangedSignal;
627 private DaliEventHandler<object, NUIApplicationRegionChangedEventArgs> applicationTaskRegionChangedEventHandler;
628 private NUIApplicationRegionChangedEventCallbackDelegate applicationTaskRegionChangedEventCallbackDelegate;
629 private ApplicationSignal taskRegionChangedSignal;
631 private DaliEventHandler<object, NUIApplicationBatteryLowEventArgs> applicationTaskBatteryLowEventHandler;
632 private NUIApplicationBatteryLowEventCallbackDelegate applicationTaskBatteryLowEventCallbackDelegate;
633 private LowBatterySignalType taskBatteryLowSignal;
635 private DaliEventHandler<object, NUIApplicationMemoryLowEventArgs> applicationTaskMemoryLowEventHandler;
636 private NUIApplicationMemoryLowEventCallbackDelegate applicationTaskMemoryLowEventCallbackDelegate;
637 private LowMemorySignalType taskMemoryLowSignal;
639 private DaliEventHandler<object, NUIApplicationDeviceOrientationChangedEventArgs> applicationTaskDeviceOrientationChangedEventHandler;
640 private NUIApplicationDeviceOrientationChangedEventCallback applicationTaskDeviceOrientationChangedEventCallback;
641 private DeviceOrientationChangedSignalType taskDeviceOrientationChangedSignal;
643 private DaliEventHandler<object, NUIApplicationAppControlEventArgs> applicationTaskAppControlEventHandler;
644 private NUIApplicationAppControlEventCallbackDelegate applicationTaskAppControlEventCallbackDelegate;
645 private ApplicationControlSignal taskAppControlSignal;
647 private Window window;
649 // Event for Initialized signal which can be used to subscribe/unsubscribe the event handler
650 // provided by the user. Initialized signal is emitted when application is initialized
651 public event DaliEventHandler<object, NUIApplicationInitEventArgs> Initialized
655 // Restricted to only one listener
656 if (applicationInitEventHandler == null)
658 applicationInitEventHandler += value;
659 applicationInitEventCallbackDelegate = new NUIApplicationInitEventCallbackDelegate(OnApplicationInit);
660 initSignal = this.InitSignal();
661 initSignal?.Connect(applicationInitEventCallbackDelegate);
667 if (applicationInitEventHandler != null)
669 initSignal?.Disconnect(applicationInitEventCallbackDelegate);
670 initSignal?.Dispose();
674 applicationInitEventHandler -= value;
678 // Callback for Application InitSignal
679 private void OnApplicationInit(IntPtr data)
681 Log.Info("NUI", "[NUI] OnApplicationInit: DisposeQueue Initialize");
682 Tizen.Tracer.Begin("[NUI] OnApplicationInit: DisposeQueue Initialize");
683 // Initialize DisposeQueue Singleton class. This is also required to create DisposeQueue on main thread.
684 DisposeQueue.Instance.Initialize();
687 Log.Info("NUI", "[NUI] OnApplicationInit: GetWindow");
688 Tizen.Tracer.Begin("[NUI] OnApplicationInit: GetWindow");
689 Window.Instance = GetWindow();
691 //tv profile never use default focus indicator, so this is not needed!
692 _ = FocusManager.Instance;
696 Log.Info("NUI", "[NUI] OnApplicationInit: Window Show");
697 Tizen.Tracer.Begin("[NUI] OnApplicationInit: Window Show");
698 // Notify that the window is displayed to the app core.
699 if (NUIApplication.IsPreload)
701 Window.Instance.Show();
705 Log.Info("NUI", "[NUI] OnApplicationInit: applicationInitEventHandler Invoke");
706 Tizen.Tracer.Begin("[NUI] OnApplicationInit: applicationInitEventHandler Invoke");
707 if (applicationInitEventHandler != null)
709 NUIApplicationInitEventArgs e = new NUIApplicationInitEventArgs();
710 e.Application = this;
711 applicationInitEventHandler.Invoke(this, e);
716 // Event for Terminated signal which can be used to subscribe/unsubscribe the event handler
717 // provided by the user. Terminated signal is emitted when application is terminating
718 public event DaliEventHandler<object, NUIApplicationTerminatingEventArgs> Terminating
722 // Restricted to only one listener
723 if (applicationTerminateEventHandler == null)
725 applicationTerminateEventHandler += value;
727 applicationTerminateEventCallbackDelegate = new NUIApplicationTerminateEventCallbackDelegate(OnNUIApplicationTerminate);
728 terminateSignal = this.TerminateSignal();
729 terminateSignal?.Connect(applicationTerminateEventCallbackDelegate);
735 if (applicationTerminateEventHandler != null)
737 terminateSignal?.Disconnect(applicationTerminateEventCallbackDelegate);
738 terminateSignal?.Dispose();
739 terminateSignal = null;
742 applicationTerminateEventHandler -= value;
746 // Callback for Application TerminateSignal
747 private void OnNUIApplicationTerminate(IntPtr data)
749 if (applicationTerminateEventHandler != null)
751 NUIApplicationTerminatingEventArgs e = new NUIApplicationTerminatingEventArgs();
752 e.Application = this;
753 applicationTerminateEventHandler.Invoke(this, e);
756 List<Window> windows = GetWindowList();
759 foreach (Window window in windows)
761 window?.DisconnectNativeSignals();
766 // Event for Paused signal which can be used to subscribe/unsubscribe the event handler
767 // provided by the user. Paused signal is emitted when application is paused
768 public event DaliEventHandler<object, NUIApplicationPausedEventArgs> Paused
772 // Restricted to only one listener
773 if (applicationPauseEventHandler == null)
775 applicationPauseEventHandler += value;
777 applicationPauseEventCallbackDelegate = new NUIApplicationPauseEventCallbackDelegate(OnNUIApplicationPause);
778 pauseSignal = this.PauseSignal();
779 pauseSignal?.Connect(applicationPauseEventCallbackDelegate);
785 if (applicationPauseEventHandler != null)
787 pauseSignal?.Disconnect(applicationPauseEventCallbackDelegate);
788 pauseSignal?.Dispose();
792 applicationPauseEventHandler -= value;
796 // Callback for Application PauseSignal
797 private void OnNUIApplicationPause(IntPtr data)
799 if (applicationPauseEventHandler != null)
801 NUIApplicationPausedEventArgs e = new NUIApplicationPausedEventArgs();
802 e.Application = this;
803 applicationPauseEventHandler.Invoke(this, e);
807 // Event for Resumed signal which can be used to subscribe/unsubscribe the event handler
808 // provided by the user. Resumed signal is emitted when application is resumed
809 public event DaliEventHandler<object, NUIApplicationResumedEventArgs> Resumed
813 // Restricted to only one listener
814 if (applicationResumeEventHandler == null)
816 applicationResumeEventHandler += value;
818 applicationResumeEventCallbackDelegate = new NUIApplicationResumeEventCallbackDelegate(OnNUIApplicationResume);
819 resumeSignal = this.ResumeSignal();
820 resumeSignal?.Connect(applicationResumeEventCallbackDelegate);
826 if (applicationResumeEventHandler != null)
828 resumeSignal?.Disconnect(applicationResumeEventCallbackDelegate);
829 resumeSignal?.Dispose();
833 applicationResumeEventHandler -= value;
837 // Callback for Application ResumeSignal
838 private void OnNUIApplicationResume(IntPtr data)
840 if (applicationResumeEventHandler != null)
842 NUIApplicationResumedEventArgs e = new NUIApplicationResumedEventArgs();
843 e.Application = this;
844 applicationResumeEventHandler.Invoke(this, e);
848 // Event for Reset signal which can be used to subscribe/unsubscribe the event handler
849 // provided by the user. Reset signal is emitted when application is reset
850 public new event DaliEventHandler<object, NUIApplicationResetEventArgs> Reset
854 // Restricted to only one listener
855 if (applicationResetEventHandler == null)
857 applicationResetEventHandler += value;
859 applicationResetEventCallbackDelegate = new NUIApplicationResetEventCallbackDelegate(OnNUIApplicationReset);
860 resetSignal = this.ResetSignal();
861 resetSignal?.Connect(applicationResetEventCallbackDelegate);
867 if (applicationResetEventHandler != null)
869 resetSignal?.Disconnect(applicationResetEventCallbackDelegate);
870 resetSignal?.Dispose();
874 applicationResetEventHandler -= value;
878 // Callback for Application ResetSignal
879 private void OnNUIApplicationReset(IntPtr data)
881 if (applicationResetEventHandler != null)
883 NUIApplicationResetEventArgs e = new NUIApplicationResetEventArgs();
884 e.Application = this;
885 applicationResetEventHandler.Invoke(this, e);
889 // Event for LanguageChanged signal which can be used to subscribe/unsubscribe the event handler
890 // provided by the user. LanguageChanged signal is emitted when the region of the device is changed.
891 public event DaliEventHandler<object, NUIApplicationLanguageChangedEventArgs> LanguageChanged
895 // Restricted to only one listener
896 if (applicationLanguageChangedEventHandler == null)
898 applicationLanguageChangedEventHandler += value;
900 applicationLanguageChangedEventCallbackDelegate = new NUIApplicationLanguageChangedEventCallbackDelegate(OnNUIApplicationLanguageChanged);
901 languageChangedSignal = this.LanguageChangedSignal();
902 languageChangedSignal?.Connect(applicationLanguageChangedEventCallbackDelegate);
908 if (applicationLanguageChangedEventHandler != null)
910 languageChangedSignal?.Disconnect(applicationLanguageChangedEventCallbackDelegate);
911 languageChangedSignal?.Dispose();
912 languageChangedSignal = null;
915 applicationLanguageChangedEventHandler -= value;
919 // Callback for Application LanguageChangedSignal
920 private void OnNUIApplicationLanguageChanged(IntPtr data)
922 if (applicationLanguageChangedEventHandler != null)
924 NUIApplicationLanguageChangedEventArgs e = new NUIApplicationLanguageChangedEventArgs();
925 e.Application = this;
926 applicationLanguageChangedEventHandler.Invoke(this, e);
930 // Event for RegionChanged signal which can be used to subscribe/unsubscribe the event handler
931 // provided by the user. RegionChanged signal is emitted when the region of the device is changed.
932 public event DaliEventHandler<object, NUIApplicationRegionChangedEventArgs> RegionChanged
936 // Restricted to only one listener
937 if (applicationRegionChangedEventHandler == null)
939 applicationRegionChangedEventHandler += value;
941 applicationRegionChangedEventCallbackDelegate = new NUIApplicationRegionChangedEventCallbackDelegate(OnNUIApplicationRegionChanged);
942 regionChangedSignal = this.RegionChangedSignal();
943 regionChangedSignal?.Connect(applicationRegionChangedEventCallbackDelegate);
949 if (applicationRegionChangedEventHandler != null)
951 regionChangedSignal?.Disconnect(applicationRegionChangedEventCallbackDelegate);
952 regionChangedSignal?.Dispose();
953 regionChangedSignal = null;
956 applicationRegionChangedEventHandler -= value;
960 // Callback for Application RegionChangedSignal
961 private void OnNUIApplicationRegionChanged(IntPtr data)
963 if (applicationRegionChangedEventHandler != null)
965 NUIApplicationRegionChangedEventArgs e = new NUIApplicationRegionChangedEventArgs();
966 e.Application = this;
967 applicationRegionChangedEventHandler.Invoke(this, e);
971 // Event for BatteryLow signal which can be used to subscribe/unsubscribe the event handler
972 // provided by the user. BatteryLow signal is emitted when the battery level of the device is low.
973 public event DaliEventHandler<object, NUIApplicationBatteryLowEventArgs> BatteryLow
977 // Restricted to only one listener
978 if (applicationBatteryLowEventHandler == null)
980 applicationBatteryLowEventHandler += value;
982 applicationBatteryLowEventCallbackDelegate = new NUIApplicationBatteryLowEventCallbackDelegate(OnNUIApplicationBatteryLow);
983 batteryLowSignal = this.BatteryLowSignal();
984 batteryLowSignal?.Connect(applicationBatteryLowEventCallbackDelegate);
990 if (applicationBatteryLowEventHandler != null)
992 batteryLowSignal?.Disconnect(applicationBatteryLowEventCallbackDelegate);
993 batteryLowSignal?.Dispose();
994 batteryLowSignal = null;
997 applicationBatteryLowEventHandler -= value;
1001 // Callback for Application BatteryLowSignal
1002 private void OnNUIApplicationBatteryLow(BatteryStatus status)
1004 NUIApplicationBatteryLowEventArgs e = new NUIApplicationBatteryLowEventArgs();
1006 // Populate all members of "e" (NUIApplicationBatteryLowEventArgs) with real data
1007 e.BatteryStatus = status;
1008 applicationBatteryLowEventHandler?.Invoke(this, e);
1011 // Event for MemoryLow signal which can be used to subscribe/unsubscribe the event handler
1012 // provided by the user. MemoryLow signal is emitted when the memory level of the device is low.
1013 public event DaliEventHandler<object, NUIApplicationMemoryLowEventArgs> MemoryLow
1017 // Restricted to only one listener
1018 if (applicationMemoryLowEventHandler == null)
1020 applicationMemoryLowEventHandler += value;
1022 applicationMemoryLowEventCallbackDelegate = new NUIApplicationMemoryLowEventCallbackDelegate(OnNUIApplicationMemoryLow);
1023 memoryLowSignal = this.MemoryLowSignal();
1024 memoryLowSignal?.Connect(applicationMemoryLowEventCallbackDelegate);
1030 if (applicationMemoryLowEventHandler != null)
1032 memoryLowSignal?.Disconnect(applicationMemoryLowEventCallbackDelegate);
1033 memoryLowSignal?.Dispose();
1034 memoryLowSignal = null;
1037 applicationMemoryLowEventHandler -= value;
1041 // Callback for Application MemoryLowSignal
1042 private void OnNUIApplicationMemoryLow(MemoryStatus status)
1044 NUIApplicationMemoryLowEventArgs e = new NUIApplicationMemoryLowEventArgs();
1046 // Populate all members of "e" (NUIApplicationMemoryLowEventArgs) with real data
1047 e.MemoryStatus = status;
1048 applicationMemoryLowEventHandler?.Invoke(this, e);
1051 // Event for changing Device orientation signal which can be used to subscribe/unsubscribe the event handler
1052 // provided by the user. DeviceOrientationChanged signal is emitted when the device orientation is changed.
1053 public event DaliEventHandler<object, NUIApplicationDeviceOrientationChangedEventArgs> DeviceOrientationChanged
1057 // Restricted to only one listener
1058 if (applicationDeviceOrientationChangedEventHandler == null)
1060 applicationDeviceOrientationChangedEventHandler += value;
1062 applicationDeviceOrientationChangedEventCallback = new NUIApplicationDeviceOrientationChangedEventCallback(OnNUIApplicationDeviceOrientationChanged);
1063 deviceOrientationChangedSignal = this.DeviceOrientationChangedSignal();
1064 deviceOrientationChangedSignal?.Connect(applicationDeviceOrientationChangedEventCallback);
1070 if (applicationDeviceOrientationChangedEventHandler != null)
1072 deviceOrientationChangedSignal?.Disconnect(applicationDeviceOrientationChangedEventCallback);
1073 deviceOrientationChangedSignal?.Dispose();
1074 deviceOrientationChangedSignal = null;
1077 applicationDeviceOrientationChangedEventHandler -= value;
1081 // Callback for Application DeviceOrientationChangedSignal
1082 private void OnNUIApplicationDeviceOrientationChanged(DeviceOrientationStatus status)
1084 NUIApplicationDeviceOrientationChangedEventArgs e = new NUIApplicationDeviceOrientationChangedEventArgs();
1086 e.DeviceOrientationStatus = status;
1087 applicationDeviceOrientationChangedEventHandler?.Invoke(this, e);
1090 // Event for AppControl signal which can be used to subscribe/unsubscribe the event handler
1091 // provided by the user. AppControl signal is emitted when another application sends a launch request to the application.
1092 public event DaliEventHandler<object, NUIApplicationAppControlEventArgs> AppControl
1096 // Restricted to only one listener
1097 if (applicationAppControlEventHandler == null)
1099 applicationAppControlEventHandler += value;
1101 applicationAppControlEventCallbackDelegate = new NUIApplicationAppControlEventCallbackDelegate(OnNUIApplicationAppControl);
1102 appControlSignal = this.AppControlSignal();
1103 appControlSignal?.Connect(applicationAppControlEventCallbackDelegate);
1109 if (applicationAppControlEventHandler != null)
1111 appControlSignal?.Disconnect(applicationAppControlEventCallbackDelegate);
1112 appControlSignal?.Dispose();
1113 appControlSignal = null;
1116 applicationAppControlEventHandler -= value;
1120 // Callback for Application AppControlSignal
1121 private void OnNUIApplicationAppControl(IntPtr application, IntPtr voidp)
1123 if (applicationAppControlEventHandler != null)
1125 NUIApplicationAppControlEventArgs e = new NUIApplicationAppControlEventArgs();
1127 e.Application = this;
1128 applicationAppControlEventHandler.Invoke(this, e);
1133 /// Event for Initialized signal which can be used to subscribe/unsubscribe the event handler
1134 /// provided by the user. Initialized signal is emitted when application is initialized
1136 public event DaliEventHandler<object, NUIApplicationInitEventArgs> TaskInitialized
1140 // Restricted to only one listener
1141 if (applicationTaskInitEventHandler == null)
1143 Tizen.Log.Fatal("NUI", "TaskInitialized Property adding");
1144 applicationTaskInitEventHandler += value;
1145 applicationTaskInitEventCallbackDelegate = new NUIApplicationInitEventCallbackDelegate(OnApplicationTaskInit);
1146 taskInitSignal = this.TaskInitSignal();
1147 taskInitSignal?.Connect(applicationTaskInitEventCallbackDelegate);
1153 if (applicationTaskInitEventHandler != null)
1155 taskInitSignal?.Disconnect(applicationTaskInitEventCallbackDelegate);
1156 taskInitSignal?.Dispose();
1157 taskInitSignal = null;
1160 applicationTaskInitEventHandler -= value;
1164 private void OnApplicationTaskInit(IntPtr data)
1166 if (applicationTaskInitEventHandler != null)
1168 NUIApplicationInitEventArgs e = new NUIApplicationInitEventArgs();
1169 e.Application = this;
1170 applicationTaskInitEventHandler.Invoke(this, e);
1176 /// Event for Terminated signal which can be used to subscribe/unsubscribe the event handler
1177 /// provided by the user. Terminated signal is emitted when application is terminating
1179 public event DaliEventHandler<object, NUIApplicationTerminatingEventArgs> TaskTerminating
1183 // Restricted to only one listener
1184 if (applicationTaskTerminateEventHandler == null)
1186 applicationTaskTerminateEventHandler += value;
1188 applicationTaskTerminateEventCallbackDelegate = new NUIApplicationTerminateEventCallbackDelegate(OnNUIApplicationTaskTerminate);
1189 taskTerminateSignal = this.TaskTerminateSignal();
1190 taskTerminateSignal?.Connect(applicationTaskTerminateEventCallbackDelegate);
1196 if (applicationTaskTerminateEventHandler != null)
1198 taskTerminateSignal?.Disconnect(applicationTaskTerminateEventCallbackDelegate);
1199 taskTerminateSignal?.Dispose();
1200 taskTerminateSignal = null;
1203 applicationTaskTerminateEventHandler -= value;
1207 private void OnNUIApplicationTaskTerminate(IntPtr data)
1209 if (applicationTaskTerminateEventHandler != null)
1211 NUIApplicationTerminatingEventArgs e = new NUIApplicationTerminatingEventArgs();
1212 e.Application = this;
1213 applicationTaskTerminateEventHandler.Invoke(this, e);
1218 /// Event for TaskLanguageChanged signal which can be used to subscribe/unsubscribe the event handler
1219 /// provided by the user. TaskLanguageChanged signal is emitted when the region of the device is changed.
1221 public event DaliEventHandler<object, NUIApplicationLanguageChangedEventArgs> TaskLanguageChanged
1225 // Restricted to only one listener
1226 if (applicationTaskLanguageChangedEventHandler == null)
1228 applicationTaskLanguageChangedEventHandler += value;
1230 applicationTaskLanguageChangedEventCallbackDelegate = new NUIApplicationLanguageChangedEventCallbackDelegate(OnNUIApplicationTaskLanguageChanged);
1231 taskLanguageChangedSignal = this.TaskLanguageChangedSignal();
1232 taskLanguageChangedSignal?.Connect(applicationTaskLanguageChangedEventCallbackDelegate);
1238 if (applicationTaskLanguageChangedEventHandler != null)
1240 taskLanguageChangedSignal?.Disconnect(applicationTaskLanguageChangedEventCallbackDelegate);
1241 taskLanguageChangedSignal?.Dispose();
1242 taskLanguageChangedSignal = null;
1245 applicationTaskLanguageChangedEventHandler -= value;
1249 private void OnNUIApplicationTaskLanguageChanged(IntPtr data)
1251 if (applicationTaskLanguageChangedEventHandler != null)
1253 NUIApplicationLanguageChangedEventArgs e = new NUIApplicationLanguageChangedEventArgs();
1254 e.Application = this;
1255 applicationTaskLanguageChangedEventHandler.Invoke(this, e);
1260 /// Event for TaskRegionChanged signal which can be used to subscribe/unsubscribe the event handler
1261 /// provided by the user. TaskRegionChanged signal is emitted when the region of the device is changed.
1263 public event DaliEventHandler<object, NUIApplicationRegionChangedEventArgs> TaskRegionChanged
1267 // Restricted to only one listener
1268 if (applicationTaskRegionChangedEventHandler == null)
1270 applicationTaskRegionChangedEventHandler += value;
1272 applicationTaskRegionChangedEventCallbackDelegate = new NUIApplicationRegionChangedEventCallbackDelegate(OnNUIApplicationTaskRegionChanged);
1273 taskRegionChangedSignal = this.TaskRegionChangedSignal();
1274 taskRegionChangedSignal?.Connect(applicationTaskRegionChangedEventCallbackDelegate);
1280 if (applicationTaskRegionChangedEventHandler != null)
1282 taskRegionChangedSignal?.Disconnect(applicationTaskRegionChangedEventCallbackDelegate);
1283 taskRegionChangedSignal?.Dispose();
1284 taskRegionChangedSignal = null;
1287 applicationTaskRegionChangedEventHandler -= value;
1291 private void OnNUIApplicationTaskRegionChanged(IntPtr data)
1293 if (applicationTaskRegionChangedEventHandler != null)
1295 NUIApplicationRegionChangedEventArgs e = new NUIApplicationRegionChangedEventArgs();
1296 e.Application = this;
1297 applicationTaskRegionChangedEventHandler.Invoke(this, e);
1302 /// Event for TaskBatteryLow signal which can be used to subscribe/unsubscribe the event handler
1303 /// provided by the user. TaskBatteryLow signal is emitted when the battery level of the device is low.
1305 public event DaliEventHandler<object, NUIApplicationBatteryLowEventArgs> TaskBatteryLow
1309 // Restricted to only one listener
1310 if (applicationTaskBatteryLowEventHandler == null)
1312 applicationTaskBatteryLowEventHandler += value;
1314 applicationTaskBatteryLowEventCallbackDelegate = new NUIApplicationBatteryLowEventCallbackDelegate(OnNUIApplicationTaskBatteryLow);
1315 taskBatteryLowSignal = this.TaskBatteryLowSignal();
1316 taskBatteryLowSignal?.Connect(applicationTaskBatteryLowEventCallbackDelegate);
1322 if (applicationTaskBatteryLowEventHandler != null)
1324 taskBatteryLowSignal?.Disconnect(applicationTaskBatteryLowEventCallbackDelegate);
1325 taskBatteryLowSignal?.Dispose();
1326 taskBatteryLowSignal = null;
1329 applicationTaskBatteryLowEventHandler -= value;
1333 private void OnNUIApplicationTaskBatteryLow(BatteryStatus status)
1335 NUIApplicationBatteryLowEventArgs e = new NUIApplicationBatteryLowEventArgs();
1337 // Populate all members of "e" (NUIApplicationBatteryLowEventArgs) with real data
1338 e.BatteryStatus = status;
1339 applicationTaskBatteryLowEventHandler?.Invoke(this, e);
1343 /// Event for TaskMemoryLow signal which can be used to subscribe/unsubscribe the event handler
1344 /// provided by the user. TaskMemoryLow signal is emitted when the memory level of the device is low.
1346 public event DaliEventHandler<object, NUIApplicationMemoryLowEventArgs> TaskMemoryLow
1350 // Restricted to only one listener
1351 if (applicationTaskMemoryLowEventHandler == null)
1353 applicationTaskMemoryLowEventHandler += value;
1355 applicationTaskMemoryLowEventCallbackDelegate = new NUIApplicationMemoryLowEventCallbackDelegate(OnNUIApplicationTaskMemoryLow);
1356 taskMemoryLowSignal = this.TaskMemoryLowSignal();
1357 taskMemoryLowSignal?.Connect(applicationTaskMemoryLowEventCallbackDelegate);
1363 if (applicationTaskMemoryLowEventHandler != null)
1365 taskMemoryLowSignal?.Disconnect(applicationTaskMemoryLowEventCallbackDelegate);
1366 taskMemoryLowSignal?.Dispose();
1367 taskMemoryLowSignal = null;
1370 applicationTaskMemoryLowEventHandler -= value;
1374 private void OnNUIApplicationTaskMemoryLow(MemoryStatus status)
1376 NUIApplicationMemoryLowEventArgs e = new NUIApplicationMemoryLowEventArgs();
1378 // Populate all members of "e" (NUIApplicationMemoryLowEventArgs) with real data
1379 e.MemoryStatus = status;
1380 applicationTaskMemoryLowEventHandler?.Invoke(this, e);
1384 /// Event for TaskDeviceOrientationChanged signal which can be used to subscribe/unsubscribe the event handler
1385 /// provided by the user. TaskDeviceOrientationChanged signal is emitted when the device orientation is changed.
1387 public event DaliEventHandler<object, NUIApplicationDeviceOrientationChangedEventArgs> TaskDeviceOrientationChanged
1391 if (applicationTaskDeviceOrientationChangedEventHandler == null)
1393 applicationTaskDeviceOrientationChangedEventHandler += value;
1395 applicationTaskDeviceOrientationChangedEventCallback = new NUIApplicationDeviceOrientationChangedEventCallback(OnNUIApplicationTaskDeviceOrientationChanged);
1396 taskDeviceOrientationChangedSignal = this.TaskDeviceOrientationChangedSignal();
1397 taskDeviceOrientationChangedSignal?.Connect(applicationTaskDeviceOrientationChangedEventCallback);
1403 if (applicationTaskDeviceOrientationChangedEventHandler != null)
1405 taskDeviceOrientationChangedSignal?.Disconnect(applicationTaskDeviceOrientationChangedEventCallback);
1406 taskDeviceOrientationChangedSignal?.Dispose();
1407 taskDeviceOrientationChangedSignal = null;
1410 applicationTaskDeviceOrientationChangedEventHandler -= value;
1414 private void OnNUIApplicationTaskDeviceOrientationChanged(DeviceOrientationStatus status)
1416 NUIApplicationDeviceOrientationChangedEventArgs e = new NUIApplicationDeviceOrientationChangedEventArgs();
1418 e.DeviceOrientationStatus = status;
1419 applicationTaskDeviceOrientationChangedEventHandler?.Invoke(this, e);
1423 /// Event for TaskAppControl signal which can be used to subscribe/unsubscribe the event handler
1424 /// provided by the user. TaskAppControl signal is emitted when another application sends a launch request to the application.
1426 public event DaliEventHandler<object, NUIApplicationAppControlEventArgs> TaskAppControl
1430 // Restricted to only one listener
1431 if (applicationTaskAppControlEventHandler == null)
1433 applicationTaskAppControlEventHandler += value;
1435 applicationTaskAppControlEventCallbackDelegate = new NUIApplicationAppControlEventCallbackDelegate(OnNUIApplicationTaskAppControl);
1436 taskAppControlSignal = this.TaskAppControlSignal();
1437 taskAppControlSignal?.Connect(applicationTaskAppControlEventCallbackDelegate);
1443 if (applicationTaskAppControlEventHandler != null)
1445 taskAppControlSignal?.Disconnect(applicationTaskAppControlEventCallbackDelegate);
1446 taskAppControlSignal?.Dispose();
1447 taskAppControlSignal = null;
1450 applicationTaskAppControlEventHandler -= value;
1454 private void OnNUIApplicationTaskAppControl(IntPtr application, IntPtr voidp)
1456 if (applicationTaskAppControlEventHandler != null)
1458 NUIApplicationAppControlEventArgs e = new NUIApplicationAppControlEventArgs();
1460 e.Application = this;
1461 applicationTaskAppControlEventHandler.Invoke(this, e);
1465 protected static Application instance; // singleton
1467 public static Application Instance
1475 public static Application GetApplicationFromPtr(global::System.IntPtr cPtr)
1477 if (cPtr == global::System.IntPtr.Zero)
1482 Application ret = Registry.GetManagedBaseHandleFromNativePtr(cPtr) as Application;
1483 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1487 public static Application NewApplication()
1489 return NewApplication("", NUIApplication.WindowMode.Opaque);
1492 public static Application NewApplication(string stylesheet)
1494 return NewApplication(stylesheet, NUIApplication.WindowMode.Opaque);
1497 public static Application NewApplication(string stylesheet, NUIApplication.WindowMode windowMode)
1499 // register all Views with the type registry, so that can be created / styled via JSON
1500 //ViewRegistryHelper.Initialize(); //moved to Application side.
1501 if (instance != null)
1506 Application ret = New(1, stylesheet, windowMode);
1507 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1509 // set the singleton
1514 public static Application NewApplication(string stylesheet, NUIApplication.WindowMode windowMode, Rectangle positionSize)
1516 if (instance != null)
1520 Application ret = New(1, stylesheet, windowMode, positionSize);
1521 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1523 // set the singleton
1528 public static Application NewApplication(string[] args, string stylesheet, NUIApplication.WindowMode windowMode)
1530 if (instance != null)
1534 Application ret = New(args, stylesheet, windowMode);
1535 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1537 // set the singleton
1542 public static Application NewApplication(string[] args, string stylesheet, NUIApplication.WindowMode windowMode, Rectangle positionSize)
1544 if (instance != null)
1548 Application ret = New(args, stylesheet, windowMode, positionSize);
1549 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1551 // set the singleton
1556 public static Application NewApplication(string[] args, string stylesheet, NUIApplication.WindowMode windowMode, WindowType type)
1558 if (instance != null)
1562 Application ret = New(args, stylesheet, windowMode, type);
1563 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1569 public static Application NewApplication(string[] args, string stylesheet, NUIApplication.WindowMode windowMode, Rectangle positionSize, bool useUIThread)
1571 if (instance != null)
1575 Application ret = New(args, stylesheet, windowMode, positionSize, useUIThread);
1576 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1582 public static Application NewApplication(string[] args, string stylesheet, bool useUIThread, WindowData windowData)
1584 if (instance != null)
1588 Application ret = New(args, stylesheet, useUIThread, windowData);
1589 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1596 /// Ensures that the function passed in is called from the main loop when it is idle.
1598 /// <param name="func">The function to call</param>
1599 /// <returns>true if added successfully, false otherwise</returns>
1601 /// It will return false when one of the following conditions is met.
1602 /// 1) the <see cref="Window"/> is hidden.
1603 /// 2) the <see cref="Window"/> is iconified.
1605 public bool AddIdle(System.Delegate func)
1607 System.IntPtr ip = System.Runtime.InteropServices.Marshal.GetFunctionPointerForDelegate<System.Delegate>(func);
1608 System.IntPtr ip2 = Interop.Application.MakeCallback(new System.Runtime.InteropServices.HandleRef(this, ip));
1610 bool ret = Interop.Application.AddIdle(SwigCPtr, new System.Runtime.InteropServices.HandleRef(this, ip2));
1612 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1617 * Outer::outer_method(int)
1619 public static Application New()
1621 Application ret = new Application(Interop.Application.New(), true);
1622 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1626 public static Application New(int argc)
1628 Application ret = new Application(Interop.Application.New(argc), true);
1629 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1633 public static Application New(int argc, string stylesheet)
1635 Application ret = new Application(Interop.Application.New(argc, stylesheet), true);
1636 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1640 public static Application New(int argc, string stylesheet, NUIApplication.WindowMode windowMode)
1642 Application ret = new Application(Interop.Application.New(argc, stylesheet, (int)windowMode), true);
1643 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1648 public static Application New(string[] args, string stylesheet, NUIApplication.WindowMode windowMode)
1650 Application ret = null;
1652 string argvStr = "";
1656 argvStr = string.Join(" ", args);
1658 catch (Exception exception)
1660 Tizen.Log.Fatal("NUI", "[Error] got exception during Application New(), this should not occur, message : " + exception.Message);
1661 Tizen.Log.Fatal("NUI", "[Error] error line number : " + new StackTrace(exception, true).GetFrame(0).GetFileLineNumber());
1662 Tizen.Log.Fatal("NUI", "[Error] Stack Trace : " + exception.StackTrace);
1666 ret = new Application(NDalicPINVOKE.ApplicationNewManual4(argc, argvStr, stylesheet, (int)windowMode), true);
1667 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1672 public static Application New(int argc, string stylesheet, NUIApplication.WindowMode windowMode, Rectangle positionSize)
1674 Application ret = new Application(Interop.Application.New(argc, stylesheet, (int)windowMode, Rectangle.getCPtr(positionSize)), true);
1675 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1679 public static Application New(string[] args, string stylesheet, NUIApplication.WindowMode windowMode, Rectangle positionSize)
1681 Application ret = null;
1683 string argvStr = "";
1687 argvStr = string.Join(" ", args);
1689 catch (Exception exception)
1691 Tizen.Log.Fatal("NUI", "[Error] got exception during Application New(), this should not occur, message : " + exception.Message);
1692 Tizen.Log.Fatal("NUI", "[Error] error line number : " + new StackTrace(exception, true).GetFrame(0).GetFileLineNumber());
1693 Tizen.Log.Fatal("NUI", "[Error] Stack Trace : " + exception.StackTrace);
1697 ret = new Application(NDalicPINVOKE.ApplicationNewWithWindowSizePosition(argc, argvStr, stylesheet, (int)windowMode, Rectangle.getCPtr(positionSize)), true);
1698 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1703 public static Application New(string[] args, string stylesheet, NUIApplication.WindowMode windowMode, WindowType type)
1706 string argvStr = "";
1710 argvStr = string.Join(" ", args);
1712 catch (Exception exception)
1714 Tizen.Log.Fatal("NUI", "[Error] got exception during Application New(), this should not occur, message : " + exception.Message);
1715 Tizen.Log.Fatal("NUI", "[Error] error line number : " + new StackTrace(exception, true).GetFrame(0).GetFileLineNumber());
1716 Tizen.Log.Fatal("NUI", "[Error] Stack Trace : " + exception.StackTrace);
1720 // It will be removed until dali APIs are prepared.
1721 Rectangle initRectangle = new Rectangle(0, 0, 0, 0);
1723 Application ret = new Application(Interop.Application.New(argc, argvStr, stylesheet, (int)windowMode, Rectangle.getCPtr(initRectangle), (int)type), true);
1724 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1728 public static Application New(string[] args, string stylesheet, NUIApplication.WindowMode windowMode, Rectangle positionSize, bool useUIThread)
1730 Application ret = null;
1732 string argvStr = "";
1736 argvStr = string.Join(" ", args);
1738 ret = new Application(Interop.Application.New(argc, argvStr, stylesheet, (int)windowMode, Rectangle.getCPtr(positionSize), useUIThread), true);
1739 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1741 catch (Exception exception)
1743 Tizen.Log.Fatal("NUI", "[Error] got exception during Application New(), this should not occur, message : " + exception.Message);
1744 Tizen.Log.Fatal("NUI", "[Error] error line number : " + new StackTrace(exception, true).GetFrame(0).GetFileLineNumber());
1745 Tizen.Log.Fatal("NUI", "[Error] Stack Trace : " + exception.StackTrace);
1752 public static Application New(string[] args, string stylesheet, bool useUIThread, WindowData windowData)
1754 Application ret = null;
1756 string argvStr = "";
1760 argvStr = string.Join(" ", args);
1762 ret = new Application(Interop.Application.New(argc, argvStr, stylesheet, useUIThread, WindowData.getCPtr(windowData)), true);
1763 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1765 catch (Exception exception)
1767 Tizen.Log.Fatal("NUI", "[Error] got exception during Application New(), this should not occur, message : " + exception.Message);
1768 Tizen.Log.Fatal("NUI", "[Error] error line number : " + new StackTrace(exception, true).GetFrame(0).GetFileLineNumber());
1769 Tizen.Log.Fatal("NUI", "[Error] Stack Trace : " + exception.StackTrace);
1776 public Application() : this(Interop.Application.NewApplication(), true)
1778 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1781 public Application(Application application) : this(Interop.Application.NewApplication(Application.getCPtr(application)), true)
1783 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1786 public Application Assign(Application application)
1788 Application ret = new Application(Interop.Application.Assign(SwigCPtr, Application.getCPtr(application)), false);
1789 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1793 public void MainLoop()
1795 NDalicPINVOKE.ApplicationMainLoop(SwigCPtr);
1796 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1801 Interop.Application.Lower(SwigCPtr);
1802 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1807 Interop.Application.Quit(SwigCPtr);
1808 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1811 internal bool AddIdle(SWIGTYPE_p_Dali__CallbackBase callback)
1813 bool ret = Interop.Application.AddIdle(SwigCPtr, SWIGTYPE_p_Dali__CallbackBase.getCPtr(callback));
1814 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1818 public Window GetWindow()
1825 var nativeWindow = Interop.Application.GetWindow(SwigCPtr);
1826 window = Registry.GetManagedBaseHandleFromNativePtr(nativeWindow) as Window;
1829 HandleRef CPtr = new HandleRef(this, nativeWindow);
1830 Interop.BaseHandle.DeleteBaseHandle(CPtr);
1831 CPtr = new HandleRef(null, IntPtr.Zero);
1835 window = new Window(nativeWindow, true);
1838 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1842 public static string GetResourcePath()
1844 string ret = Interop.Application.GetResourcePath();
1845 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1849 public string GetLanguage()
1851 string ret = Interop.Application.GetLanguage(SwigCPtr);
1852 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1856 public string GetRegion()
1858 string ret = Interop.Application.GetRegion(SwigCPtr);
1859 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1863 public void FlushUpdateMessages()
1865 Interop.Application.FlushUpdateMessages(SwigCPtr);
1866 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1869 [EditorBrowsable(EditorBrowsableState.Never)]
1870 public static List<Window> GetWindowList()
1872 if (Interop.Stage.IsInstalled() == false)
1874 NUILog.ErrorBacktrace($"[ERROR] dali adaptor and dali window is not ready. just return NULL here");
1878 uint ListSize = Interop.Application.GetWindowsListSize();
1879 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1881 List<Window> WindowList = new List<Window>();
1882 for (uint i = 0; i < ListSize; ++i)
1884 Window currWin = WindowList.GetInstanceSafely<Window>(Interop.Application.GetWindowsFromList(i));
1885 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1886 if (currWin != null)
1888 WindowList.Add(currWin);
1894 internal ApplicationSignal InitSignal()
1896 ApplicationSignal ret = new ApplicationSignal(NDalicPINVOKE.ApplicationInitSignal(SwigCPtr), false);
1897 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1901 internal ApplicationSignal TerminateSignal()
1903 ApplicationSignal ret = new ApplicationSignal(NDalicPINVOKE.ApplicationTerminateSignal(SwigCPtr), false);
1904 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1908 internal ApplicationSignal PauseSignal()
1910 ApplicationSignal ret = new ApplicationSignal(NDalicPINVOKE.ApplicationPauseSignal(SwigCPtr), false);
1911 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1915 internal ApplicationSignal ResumeSignal()
1917 ApplicationSignal ret = new ApplicationSignal(NDalicPINVOKE.ApplicationResumeSignal(SwigCPtr), false);
1918 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1922 internal ApplicationSignal ResetSignal()
1924 ApplicationSignal ret = new ApplicationSignal(NDalicPINVOKE.ApplicationResetSignal(SwigCPtr), false);
1925 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1929 internal ApplicationControlSignal AppControlSignal()
1931 ApplicationControlSignal ret = new ApplicationControlSignal(NDalicPINVOKE.ApplicationAppControlSignal(SwigCPtr), false);
1932 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1936 internal ApplicationSignal LanguageChangedSignal()
1938 ApplicationSignal ret = new ApplicationSignal(NDalicPINVOKE.ApplicationLanguageChangedSignal(SwigCPtr), false);
1939 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1943 internal ApplicationSignal RegionChangedSignal()
1945 ApplicationSignal ret = new ApplicationSignal(NDalicPINVOKE.ApplicationRegionChangedSignal(SwigCPtr), false);
1946 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1950 internal LowBatterySignalType BatteryLowSignal()
1952 LowBatterySignalType ret = new LowBatterySignalType(NDalicPINVOKE.ApplicationLowBatterySignal(SwigCPtr), false);
1953 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1957 internal LowMemorySignalType MemoryLowSignal()
1959 LowMemorySignalType ret = new LowMemorySignalType(NDalicPINVOKE.ApplicationLowMemorySignal(SwigCPtr), false);
1960 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1964 internal DeviceOrientationChangedSignalType DeviceOrientationChangedSignal()
1966 DeviceOrientationChangedSignalType ret = new DeviceOrientationChangedSignalType(NDalicPINVOKE.ApplicationDeviceOrientationChangedSignal(SwigCPtr), false);
1967 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1972 internal ApplicationSignal TaskInitSignal()
1974 ApplicationSignal ret = new ApplicationSignal(NDalicPINVOKE.ApplicationTaskInitSignal(SwigCPtr), false);
1975 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1979 internal ApplicationSignal TaskTerminateSignal()
1981 ApplicationSignal ret = new ApplicationSignal(NDalicPINVOKE.ApplicationTaskTerminateSignal(SwigCPtr), false);
1982 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1986 internal ApplicationControlSignal TaskAppControlSignal()
1988 ApplicationControlSignal ret = new ApplicationControlSignal(NDalicPINVOKE.ApplicationTaskAppControlSignal(SwigCPtr), false);
1989 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1993 internal ApplicationSignal TaskLanguageChangedSignal()
1995 ApplicationSignal ret = new ApplicationSignal(NDalicPINVOKE.ApplicationTaskLanguageChangedSignal(SwigCPtr), false);
1996 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2000 internal ApplicationSignal TaskRegionChangedSignal()
2002 ApplicationSignal ret = new ApplicationSignal(NDalicPINVOKE.ApplicationTaskRegionChangedSignal(SwigCPtr), false);
2003 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2007 internal LowBatterySignalType TaskBatteryLowSignal()
2009 LowBatterySignalType ret = new LowBatterySignalType(NDalicPINVOKE.ApplicationTaskLowBatterySignal(SwigCPtr), false);
2010 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2014 internal LowMemorySignalType TaskMemoryLowSignal()
2016 LowMemorySignalType ret = new LowMemorySignalType(NDalicPINVOKE.ApplicationTaskLowMemorySignal(SwigCPtr), false);
2017 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2021 internal DeviceOrientationChangedSignalType TaskDeviceOrientationChangedSignal()
2023 DeviceOrientationChangedSignalType ret = new DeviceOrientationChangedSignalType(NDalicPINVOKE.ApplicationTaskDeviceOrientationChangedSignal(SwigCPtr), false);
2024 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();