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: ProcessorController Initialize");
688 Tizen.Tracer.Begin("[NUI] OnApplicationInit: ProcessorController Initialize");
689 // Initialize ProcessorController Singleton class. This is also required to create ProcessorController on main thread.
690 ProcessorController.Instance.Initialize();
693 #if REMOVE_READONLY_FOR_BINDABLE_PROPERTY
694 if(NUIApplication.IsUsingXaml)
696 Tizen.NUI.BaseComponents.View.CreateBindableProperties();
699 Log.Info("NUI", "[NUI] OnApplicationInit: GetWindow");
700 Tizen.Tracer.Begin("[NUI] OnApplicationInit: GetWindow");
701 Window.Instance = GetWindow();
704 //tv profile never use default focus indicator, so this is not needed!
705 _ = FocusManager.Instance;
709 Log.Info("NUI", "[NUI] OnApplicationInit: Window Show");
710 Tizen.Tracer.Begin("[NUI] OnApplicationInit: Window Show");
711 // Notify that the window is displayed to the app core.
712 if (NUIApplication.IsPreload)
714 Window.Instance.Show();
718 Log.Info("NUI", "[NUI] OnApplicationInit: applicationInitEventHandler Invoke");
719 Tizen.Tracer.Begin("[NUI] OnApplicationInit: applicationInitEventHandler Invoke");
720 if (applicationInitEventHandler != null)
722 NUIApplicationInitEventArgs e = new NUIApplicationInitEventArgs();
723 e.Application = this;
724 applicationInitEventHandler.Invoke(this, e);
729 // Event for Terminated signal which can be used to subscribe/unsubscribe the event handler
730 // provided by the user. Terminated signal is emitted when application is terminating
731 public event DaliEventHandler<object, NUIApplicationTerminatingEventArgs> Terminating
735 // Restricted to only one listener
736 if (applicationTerminateEventHandler == null)
738 applicationTerminateEventHandler += value;
740 applicationTerminateEventCallbackDelegate = new NUIApplicationTerminateEventCallbackDelegate(OnNUIApplicationTerminate);
741 terminateSignal = this.TerminateSignal();
742 terminateSignal?.Connect(applicationTerminateEventCallbackDelegate);
748 if (applicationTerminateEventHandler != null)
750 terminateSignal?.Disconnect(applicationTerminateEventCallbackDelegate);
751 terminateSignal?.Dispose();
752 terminateSignal = null;
755 applicationTerminateEventHandler -= value;
759 // Callback for Application TerminateSignal
760 private void OnNUIApplicationTerminate(IntPtr data)
762 if (applicationTerminateEventHandler != null)
764 NUIApplicationTerminatingEventArgs e = new NUIApplicationTerminatingEventArgs();
765 e.Application = this;
766 applicationTerminateEventHandler.Invoke(this, e);
769 List<Window> windows = GetWindowList();
772 foreach (Window window in windows)
774 window?.DisconnectNativeSignals();
779 // Event for Paused signal which can be used to subscribe/unsubscribe the event handler
780 // provided by the user. Paused signal is emitted when application is paused
781 public event DaliEventHandler<object, NUIApplicationPausedEventArgs> Paused
785 // Restricted to only one listener
786 if (applicationPauseEventHandler == null)
788 applicationPauseEventHandler += value;
790 applicationPauseEventCallbackDelegate = new NUIApplicationPauseEventCallbackDelegate(OnNUIApplicationPause);
791 pauseSignal = this.PauseSignal();
792 pauseSignal?.Connect(applicationPauseEventCallbackDelegate);
798 if (applicationPauseEventHandler != null)
800 pauseSignal?.Disconnect(applicationPauseEventCallbackDelegate);
801 pauseSignal?.Dispose();
805 applicationPauseEventHandler -= value;
809 // Callback for Application PauseSignal
810 private void OnNUIApplicationPause(IntPtr data)
812 if (applicationPauseEventHandler != null)
814 NUIApplicationPausedEventArgs e = new NUIApplicationPausedEventArgs();
815 e.Application = this;
816 applicationPauseEventHandler.Invoke(this, e);
820 // Event for Resumed signal which can be used to subscribe/unsubscribe the event handler
821 // provided by the user. Resumed signal is emitted when application is resumed
822 public event DaliEventHandler<object, NUIApplicationResumedEventArgs> Resumed
826 // Restricted to only one listener
827 if (applicationResumeEventHandler == null)
829 applicationResumeEventHandler += value;
831 applicationResumeEventCallbackDelegate = new NUIApplicationResumeEventCallbackDelegate(OnNUIApplicationResume);
832 resumeSignal = this.ResumeSignal();
833 resumeSignal?.Connect(applicationResumeEventCallbackDelegate);
839 if (applicationResumeEventHandler != null)
841 resumeSignal?.Disconnect(applicationResumeEventCallbackDelegate);
842 resumeSignal?.Dispose();
846 applicationResumeEventHandler -= value;
850 // Callback for Application ResumeSignal
851 private void OnNUIApplicationResume(IntPtr data)
853 if (applicationResumeEventHandler != null)
855 NUIApplicationResumedEventArgs e = new NUIApplicationResumedEventArgs();
856 e.Application = this;
857 applicationResumeEventHandler.Invoke(this, e);
861 // Event for Reset signal which can be used to subscribe/unsubscribe the event handler
862 // provided by the user. Reset signal is emitted when application is reset
863 public new event DaliEventHandler<object, NUIApplicationResetEventArgs> Reset
867 // Restricted to only one listener
868 if (applicationResetEventHandler == null)
870 applicationResetEventHandler += value;
872 applicationResetEventCallbackDelegate = new NUIApplicationResetEventCallbackDelegate(OnNUIApplicationReset);
873 resetSignal = this.ResetSignal();
874 resetSignal?.Connect(applicationResetEventCallbackDelegate);
880 if (applicationResetEventHandler != null)
882 resetSignal?.Disconnect(applicationResetEventCallbackDelegate);
883 resetSignal?.Dispose();
887 applicationResetEventHandler -= value;
891 // Callback for Application ResetSignal
892 private void OnNUIApplicationReset(IntPtr data)
894 if (applicationResetEventHandler != null)
896 NUIApplicationResetEventArgs e = new NUIApplicationResetEventArgs();
897 e.Application = this;
898 applicationResetEventHandler.Invoke(this, e);
902 // Event for LanguageChanged signal which can be used to subscribe/unsubscribe the event handler
903 // provided by the user. LanguageChanged signal is emitted when the region of the device is changed.
904 public event DaliEventHandler<object, NUIApplicationLanguageChangedEventArgs> LanguageChanged
908 // Restricted to only one listener
909 if (applicationLanguageChangedEventHandler == null)
911 applicationLanguageChangedEventHandler += value;
913 applicationLanguageChangedEventCallbackDelegate = new NUIApplicationLanguageChangedEventCallbackDelegate(OnNUIApplicationLanguageChanged);
914 languageChangedSignal = this.LanguageChangedSignal();
915 languageChangedSignal?.Connect(applicationLanguageChangedEventCallbackDelegate);
921 if (applicationLanguageChangedEventHandler != null)
923 languageChangedSignal?.Disconnect(applicationLanguageChangedEventCallbackDelegate);
924 languageChangedSignal?.Dispose();
925 languageChangedSignal = null;
928 applicationLanguageChangedEventHandler -= value;
932 // Callback for Application LanguageChangedSignal
933 private void OnNUIApplicationLanguageChanged(IntPtr data)
935 if (applicationLanguageChangedEventHandler != null)
937 NUIApplicationLanguageChangedEventArgs e = new NUIApplicationLanguageChangedEventArgs();
938 e.Application = this;
939 applicationLanguageChangedEventHandler.Invoke(this, e);
943 // Event for RegionChanged signal which can be used to subscribe/unsubscribe the event handler
944 // provided by the user. RegionChanged signal is emitted when the region of the device is changed.
945 public event DaliEventHandler<object, NUIApplicationRegionChangedEventArgs> RegionChanged
949 // Restricted to only one listener
950 if (applicationRegionChangedEventHandler == null)
952 applicationRegionChangedEventHandler += value;
954 applicationRegionChangedEventCallbackDelegate = new NUIApplicationRegionChangedEventCallbackDelegate(OnNUIApplicationRegionChanged);
955 regionChangedSignal = this.RegionChangedSignal();
956 regionChangedSignal?.Connect(applicationRegionChangedEventCallbackDelegate);
962 if (applicationRegionChangedEventHandler != null)
964 regionChangedSignal?.Disconnect(applicationRegionChangedEventCallbackDelegate);
965 regionChangedSignal?.Dispose();
966 regionChangedSignal = null;
969 applicationRegionChangedEventHandler -= value;
973 // Callback for Application RegionChangedSignal
974 private void OnNUIApplicationRegionChanged(IntPtr data)
976 if (applicationRegionChangedEventHandler != null)
978 NUIApplicationRegionChangedEventArgs e = new NUIApplicationRegionChangedEventArgs();
979 e.Application = this;
980 applicationRegionChangedEventHandler.Invoke(this, e);
984 // Event for BatteryLow signal which can be used to subscribe/unsubscribe the event handler
985 // provided by the user. BatteryLow signal is emitted when the battery level of the device is low.
986 public event DaliEventHandler<object, NUIApplicationBatteryLowEventArgs> BatteryLow
990 // Restricted to only one listener
991 if (applicationBatteryLowEventHandler == null)
993 applicationBatteryLowEventHandler += value;
995 applicationBatteryLowEventCallbackDelegate = new NUIApplicationBatteryLowEventCallbackDelegate(OnNUIApplicationBatteryLow);
996 batteryLowSignal = this.BatteryLowSignal();
997 batteryLowSignal?.Connect(applicationBatteryLowEventCallbackDelegate);
1003 if (applicationBatteryLowEventHandler != null)
1005 batteryLowSignal?.Disconnect(applicationBatteryLowEventCallbackDelegate);
1006 batteryLowSignal?.Dispose();
1007 batteryLowSignal = null;
1010 applicationBatteryLowEventHandler -= value;
1014 // Callback for Application BatteryLowSignal
1015 private void OnNUIApplicationBatteryLow(BatteryStatus status)
1017 NUIApplicationBatteryLowEventArgs e = new NUIApplicationBatteryLowEventArgs();
1019 // Populate all members of "e" (NUIApplicationBatteryLowEventArgs) with real data
1020 e.BatteryStatus = status;
1021 applicationBatteryLowEventHandler?.Invoke(this, e);
1024 // Event for MemoryLow signal which can be used to subscribe/unsubscribe the event handler
1025 // provided by the user. MemoryLow signal is emitted when the memory level of the device is low.
1026 public event DaliEventHandler<object, NUIApplicationMemoryLowEventArgs> MemoryLow
1030 // Restricted to only one listener
1031 if (applicationMemoryLowEventHandler == null)
1033 applicationMemoryLowEventHandler += value;
1035 applicationMemoryLowEventCallbackDelegate = new NUIApplicationMemoryLowEventCallbackDelegate(OnNUIApplicationMemoryLow);
1036 memoryLowSignal = this.MemoryLowSignal();
1037 memoryLowSignal?.Connect(applicationMemoryLowEventCallbackDelegate);
1043 if (applicationMemoryLowEventHandler != null)
1045 memoryLowSignal?.Disconnect(applicationMemoryLowEventCallbackDelegate);
1046 memoryLowSignal?.Dispose();
1047 memoryLowSignal = null;
1050 applicationMemoryLowEventHandler -= value;
1054 // Callback for Application MemoryLowSignal
1055 private void OnNUIApplicationMemoryLow(MemoryStatus status)
1057 NUIApplicationMemoryLowEventArgs e = new NUIApplicationMemoryLowEventArgs();
1059 // Populate all members of "e" (NUIApplicationMemoryLowEventArgs) with real data
1060 e.MemoryStatus = status;
1061 applicationMemoryLowEventHandler?.Invoke(this, e);
1064 // Event for changing Device orientation signal which can be used to subscribe/unsubscribe the event handler
1065 // provided by the user. DeviceOrientationChanged signal is emitted when the device orientation is changed.
1066 public event DaliEventHandler<object, NUIApplicationDeviceOrientationChangedEventArgs> DeviceOrientationChanged
1070 // Restricted to only one listener
1071 if (applicationDeviceOrientationChangedEventHandler == null)
1073 applicationDeviceOrientationChangedEventHandler += value;
1075 applicationDeviceOrientationChangedEventCallback = new NUIApplicationDeviceOrientationChangedEventCallback(OnNUIApplicationDeviceOrientationChanged);
1076 deviceOrientationChangedSignal = this.DeviceOrientationChangedSignal();
1077 deviceOrientationChangedSignal?.Connect(applicationDeviceOrientationChangedEventCallback);
1083 if (applicationDeviceOrientationChangedEventHandler != null)
1085 deviceOrientationChangedSignal?.Disconnect(applicationDeviceOrientationChangedEventCallback);
1086 deviceOrientationChangedSignal?.Dispose();
1087 deviceOrientationChangedSignal = null;
1090 applicationDeviceOrientationChangedEventHandler -= value;
1094 // Callback for Application DeviceOrientationChangedSignal
1095 private void OnNUIApplicationDeviceOrientationChanged(DeviceOrientationStatus status)
1097 NUIApplicationDeviceOrientationChangedEventArgs e = new NUIApplicationDeviceOrientationChangedEventArgs();
1099 e.DeviceOrientationStatus = status;
1100 applicationDeviceOrientationChangedEventHandler?.Invoke(this, e);
1103 // Event for AppControl signal which can be used to subscribe/unsubscribe the event handler
1104 // provided by the user. AppControl signal is emitted when another application sends a launch request to the application.
1105 public event DaliEventHandler<object, NUIApplicationAppControlEventArgs> AppControl
1109 // Restricted to only one listener
1110 if (applicationAppControlEventHandler == null)
1112 applicationAppControlEventHandler += value;
1114 applicationAppControlEventCallbackDelegate = new NUIApplicationAppControlEventCallbackDelegate(OnNUIApplicationAppControl);
1115 appControlSignal = this.AppControlSignal();
1116 appControlSignal?.Connect(applicationAppControlEventCallbackDelegate);
1122 if (applicationAppControlEventHandler != null)
1124 appControlSignal?.Disconnect(applicationAppControlEventCallbackDelegate);
1125 appControlSignal?.Dispose();
1126 appControlSignal = null;
1129 applicationAppControlEventHandler -= value;
1133 // Callback for Application AppControlSignal
1134 private void OnNUIApplicationAppControl(IntPtr application, IntPtr voidp)
1136 if (applicationAppControlEventHandler != null)
1138 NUIApplicationAppControlEventArgs e = new NUIApplicationAppControlEventArgs();
1140 e.Application = this;
1141 applicationAppControlEventHandler.Invoke(this, e);
1146 /// Event for Initialized signal which can be used to subscribe/unsubscribe the event handler
1147 /// provided by the user. Initialized signal is emitted when application is initialized
1149 public event DaliEventHandler<object, NUIApplicationInitEventArgs> TaskInitialized
1153 // Restricted to only one listener
1154 if (applicationTaskInitEventHandler == null)
1156 Tizen.Log.Fatal("NUI", "TaskInitialized Property adding");
1157 applicationTaskInitEventHandler += value;
1158 applicationTaskInitEventCallbackDelegate = new NUIApplicationInitEventCallbackDelegate(OnApplicationTaskInit);
1159 taskInitSignal = this.TaskInitSignal();
1160 taskInitSignal?.Connect(applicationTaskInitEventCallbackDelegate);
1166 if (applicationTaskInitEventHandler != null)
1168 taskInitSignal?.Disconnect(applicationTaskInitEventCallbackDelegate);
1169 taskInitSignal?.Dispose();
1170 taskInitSignal = null;
1173 applicationTaskInitEventHandler -= value;
1177 private void OnApplicationTaskInit(IntPtr data)
1179 if (applicationTaskInitEventHandler != null)
1181 NUIApplicationInitEventArgs e = new NUIApplicationInitEventArgs();
1182 e.Application = this;
1183 applicationTaskInitEventHandler.Invoke(this, e);
1189 /// Event for Terminated signal which can be used to subscribe/unsubscribe the event handler
1190 /// provided by the user. Terminated signal is emitted when application is terminating
1192 public event DaliEventHandler<object, NUIApplicationTerminatingEventArgs> TaskTerminating
1196 // Restricted to only one listener
1197 if (applicationTaskTerminateEventHandler == null)
1199 applicationTaskTerminateEventHandler += value;
1201 applicationTaskTerminateEventCallbackDelegate = new NUIApplicationTerminateEventCallbackDelegate(OnNUIApplicationTaskTerminate);
1202 taskTerminateSignal = this.TaskTerminateSignal();
1203 taskTerminateSignal?.Connect(applicationTaskTerminateEventCallbackDelegate);
1209 if (applicationTaskTerminateEventHandler != null)
1211 taskTerminateSignal?.Disconnect(applicationTaskTerminateEventCallbackDelegate);
1212 taskTerminateSignal?.Dispose();
1213 taskTerminateSignal = null;
1216 applicationTaskTerminateEventHandler -= value;
1220 private void OnNUIApplicationTaskTerminate(IntPtr data)
1222 if (applicationTaskTerminateEventHandler != null)
1224 NUIApplicationTerminatingEventArgs e = new NUIApplicationTerminatingEventArgs();
1225 e.Application = this;
1226 applicationTaskTerminateEventHandler.Invoke(this, e);
1231 /// Event for TaskLanguageChanged signal which can be used to subscribe/unsubscribe the event handler
1232 /// provided by the user. TaskLanguageChanged signal is emitted when the region of the device is changed.
1234 public event DaliEventHandler<object, NUIApplicationLanguageChangedEventArgs> TaskLanguageChanged
1238 // Restricted to only one listener
1239 if (applicationTaskLanguageChangedEventHandler == null)
1241 applicationTaskLanguageChangedEventHandler += value;
1243 applicationTaskLanguageChangedEventCallbackDelegate = new NUIApplicationLanguageChangedEventCallbackDelegate(OnNUIApplicationTaskLanguageChanged);
1244 taskLanguageChangedSignal = this.TaskLanguageChangedSignal();
1245 taskLanguageChangedSignal?.Connect(applicationTaskLanguageChangedEventCallbackDelegate);
1251 if (applicationTaskLanguageChangedEventHandler != null)
1253 taskLanguageChangedSignal?.Disconnect(applicationTaskLanguageChangedEventCallbackDelegate);
1254 taskLanguageChangedSignal?.Dispose();
1255 taskLanguageChangedSignal = null;
1258 applicationTaskLanguageChangedEventHandler -= value;
1262 private void OnNUIApplicationTaskLanguageChanged(IntPtr data)
1264 if (applicationTaskLanguageChangedEventHandler != null)
1266 NUIApplicationLanguageChangedEventArgs e = new NUIApplicationLanguageChangedEventArgs();
1267 e.Application = this;
1268 applicationTaskLanguageChangedEventHandler.Invoke(this, e);
1273 /// Event for TaskRegionChanged signal which can be used to subscribe/unsubscribe the event handler
1274 /// provided by the user. TaskRegionChanged signal is emitted when the region of the device is changed.
1276 public event DaliEventHandler<object, NUIApplicationRegionChangedEventArgs> TaskRegionChanged
1280 // Restricted to only one listener
1281 if (applicationTaskRegionChangedEventHandler == null)
1283 applicationTaskRegionChangedEventHandler += value;
1285 applicationTaskRegionChangedEventCallbackDelegate = new NUIApplicationRegionChangedEventCallbackDelegate(OnNUIApplicationTaskRegionChanged);
1286 taskRegionChangedSignal = this.TaskRegionChangedSignal();
1287 taskRegionChangedSignal?.Connect(applicationTaskRegionChangedEventCallbackDelegate);
1293 if (applicationTaskRegionChangedEventHandler != null)
1295 taskRegionChangedSignal?.Disconnect(applicationTaskRegionChangedEventCallbackDelegate);
1296 taskRegionChangedSignal?.Dispose();
1297 taskRegionChangedSignal = null;
1300 applicationTaskRegionChangedEventHandler -= value;
1304 private void OnNUIApplicationTaskRegionChanged(IntPtr data)
1306 if (applicationTaskRegionChangedEventHandler != null)
1308 NUIApplicationRegionChangedEventArgs e = new NUIApplicationRegionChangedEventArgs();
1309 e.Application = this;
1310 applicationTaskRegionChangedEventHandler.Invoke(this, e);
1315 /// Event for TaskBatteryLow signal which can be used to subscribe/unsubscribe the event handler
1316 /// provided by the user. TaskBatteryLow signal is emitted when the battery level of the device is low.
1318 public event DaliEventHandler<object, NUIApplicationBatteryLowEventArgs> TaskBatteryLow
1322 // Restricted to only one listener
1323 if (applicationTaskBatteryLowEventHandler == null)
1325 applicationTaskBatteryLowEventHandler += value;
1327 applicationTaskBatteryLowEventCallbackDelegate = new NUIApplicationBatteryLowEventCallbackDelegate(OnNUIApplicationTaskBatteryLow);
1328 taskBatteryLowSignal = this.TaskBatteryLowSignal();
1329 taskBatteryLowSignal?.Connect(applicationTaskBatteryLowEventCallbackDelegate);
1335 if (applicationTaskBatteryLowEventHandler != null)
1337 taskBatteryLowSignal?.Disconnect(applicationTaskBatteryLowEventCallbackDelegate);
1338 taskBatteryLowSignal?.Dispose();
1339 taskBatteryLowSignal = null;
1342 applicationTaskBatteryLowEventHandler -= value;
1346 private void OnNUIApplicationTaskBatteryLow(BatteryStatus status)
1348 NUIApplicationBatteryLowEventArgs e = new NUIApplicationBatteryLowEventArgs();
1350 // Populate all members of "e" (NUIApplicationBatteryLowEventArgs) with real data
1351 e.BatteryStatus = status;
1352 applicationTaskBatteryLowEventHandler?.Invoke(this, e);
1356 /// Event for TaskMemoryLow signal which can be used to subscribe/unsubscribe the event handler
1357 /// provided by the user. TaskMemoryLow signal is emitted when the memory level of the device is low.
1359 public event DaliEventHandler<object, NUIApplicationMemoryLowEventArgs> TaskMemoryLow
1363 // Restricted to only one listener
1364 if (applicationTaskMemoryLowEventHandler == null)
1366 applicationTaskMemoryLowEventHandler += value;
1368 applicationTaskMemoryLowEventCallbackDelegate = new NUIApplicationMemoryLowEventCallbackDelegate(OnNUIApplicationTaskMemoryLow);
1369 taskMemoryLowSignal = this.TaskMemoryLowSignal();
1370 taskMemoryLowSignal?.Connect(applicationTaskMemoryLowEventCallbackDelegate);
1376 if (applicationTaskMemoryLowEventHandler != null)
1378 taskMemoryLowSignal?.Disconnect(applicationTaskMemoryLowEventCallbackDelegate);
1379 taskMemoryLowSignal?.Dispose();
1380 taskMemoryLowSignal = null;
1383 applicationTaskMemoryLowEventHandler -= value;
1387 private void OnNUIApplicationTaskMemoryLow(MemoryStatus status)
1389 NUIApplicationMemoryLowEventArgs e = new NUIApplicationMemoryLowEventArgs();
1391 // Populate all members of "e" (NUIApplicationMemoryLowEventArgs) with real data
1392 e.MemoryStatus = status;
1393 applicationTaskMemoryLowEventHandler?.Invoke(this, e);
1397 /// Event for TaskDeviceOrientationChanged signal which can be used to subscribe/unsubscribe the event handler
1398 /// provided by the user. TaskDeviceOrientationChanged signal is emitted when the device orientation is changed.
1400 public event DaliEventHandler<object, NUIApplicationDeviceOrientationChangedEventArgs> TaskDeviceOrientationChanged
1404 if (applicationTaskDeviceOrientationChangedEventHandler == null)
1406 applicationTaskDeviceOrientationChangedEventHandler += value;
1408 applicationTaskDeviceOrientationChangedEventCallback = new NUIApplicationDeviceOrientationChangedEventCallback(OnNUIApplicationTaskDeviceOrientationChanged);
1409 taskDeviceOrientationChangedSignal = this.TaskDeviceOrientationChangedSignal();
1410 taskDeviceOrientationChangedSignal?.Connect(applicationTaskDeviceOrientationChangedEventCallback);
1416 if (applicationTaskDeviceOrientationChangedEventHandler != null)
1418 taskDeviceOrientationChangedSignal?.Disconnect(applicationTaskDeviceOrientationChangedEventCallback);
1419 taskDeviceOrientationChangedSignal?.Dispose();
1420 taskDeviceOrientationChangedSignal = null;
1423 applicationTaskDeviceOrientationChangedEventHandler -= value;
1427 private void OnNUIApplicationTaskDeviceOrientationChanged(DeviceOrientationStatus status)
1429 NUIApplicationDeviceOrientationChangedEventArgs e = new NUIApplicationDeviceOrientationChangedEventArgs();
1431 e.DeviceOrientationStatus = status;
1432 applicationTaskDeviceOrientationChangedEventHandler?.Invoke(this, e);
1436 /// Event for TaskAppControl signal which can be used to subscribe/unsubscribe the event handler
1437 /// provided by the user. TaskAppControl signal is emitted when another application sends a launch request to the application.
1439 public event DaliEventHandler<object, NUIApplicationAppControlEventArgs> TaskAppControl
1443 // Restricted to only one listener
1444 if (applicationTaskAppControlEventHandler == null)
1446 applicationTaskAppControlEventHandler += value;
1448 applicationTaskAppControlEventCallbackDelegate = new NUIApplicationAppControlEventCallbackDelegate(OnNUIApplicationTaskAppControl);
1449 taskAppControlSignal = this.TaskAppControlSignal();
1450 taskAppControlSignal?.Connect(applicationTaskAppControlEventCallbackDelegate);
1456 if (applicationTaskAppControlEventHandler != null)
1458 taskAppControlSignal?.Disconnect(applicationTaskAppControlEventCallbackDelegate);
1459 taskAppControlSignal?.Dispose();
1460 taskAppControlSignal = null;
1463 applicationTaskAppControlEventHandler -= value;
1467 private void OnNUIApplicationTaskAppControl(IntPtr application, IntPtr voidp)
1469 if (applicationTaskAppControlEventHandler != null)
1471 NUIApplicationAppControlEventArgs e = new NUIApplicationAppControlEventArgs();
1473 e.Application = this;
1474 applicationTaskAppControlEventHandler.Invoke(this, e);
1478 protected static Application instance; // singleton
1480 public static Application Instance
1488 public static Application GetApplicationFromPtr(global::System.IntPtr cPtr)
1490 if (cPtr == global::System.IntPtr.Zero)
1495 Application ret = Registry.GetManagedBaseHandleFromNativePtr(cPtr) as Application;
1496 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1500 public static Application NewApplication()
1502 return NewApplication("", NUIApplication.WindowMode.Opaque);
1505 public static Application NewApplication(string stylesheet)
1507 return NewApplication(stylesheet, NUIApplication.WindowMode.Opaque);
1510 public static Application NewApplication(string stylesheet, NUIApplication.WindowMode windowMode)
1512 // register all Views with the type registry, so that can be created / styled via JSON
1513 //ViewRegistryHelper.Initialize(); //moved to Application side.
1514 if (instance != null)
1519 Application ret = New(1, stylesheet, windowMode);
1520 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1522 // set the singleton
1527 public static Application NewApplication(string stylesheet, NUIApplication.WindowMode windowMode, Rectangle positionSize)
1529 if (instance != null)
1533 Application ret = New(1, stylesheet, windowMode, positionSize);
1534 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1536 // set the singleton
1541 public static Application NewApplication(string[] args, string stylesheet, NUIApplication.WindowMode windowMode)
1543 if (instance != null)
1547 Application ret = New(args, stylesheet, windowMode);
1548 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1550 // set the singleton
1555 public static Application NewApplication(string[] args, string stylesheet, NUIApplication.WindowMode windowMode, Rectangle positionSize)
1557 if (instance != null)
1561 Application ret = New(args, stylesheet, windowMode, positionSize);
1562 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1564 // set the singleton
1569 public static Application NewApplication(string[] args, string stylesheet, NUIApplication.WindowMode windowMode, WindowType type)
1571 if (instance != null)
1575 Application ret = New(args, stylesheet, windowMode, type);
1576 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1582 public static Application NewApplication(string[] args, string stylesheet, NUIApplication.WindowMode windowMode, Rectangle positionSize, bool useUIThread)
1584 if (instance != null)
1588 Application ret = New(args, stylesheet, windowMode, positionSize, useUIThread);
1589 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1595 public static Application NewApplication(string[] args, string stylesheet, bool useUIThread, WindowData windowData)
1597 if (instance != null)
1601 Application ret = New(args, stylesheet, useUIThread, windowData);
1602 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1609 /// Ensures that the function passed in is called from the main loop when it is idle.
1611 /// <param name="func">The function to call</param>
1612 /// <returns>true if added successfully, false otherwise</returns>
1614 /// It will return false when one of the following conditions is met.
1615 /// 1) the <see cref="Window"/> is hidden.
1616 /// 2) the <see cref="Window"/> is iconified.
1618 public bool AddIdle(System.Delegate func)
1620 System.IntPtr ip = System.Runtime.InteropServices.Marshal.GetFunctionPointerForDelegate<System.Delegate>(func);
1621 System.IntPtr ip2 = Interop.Application.MakeCallback(new System.Runtime.InteropServices.HandleRef(this, ip));
1623 bool ret = Interop.Application.AddIdle(SwigCPtr, new System.Runtime.InteropServices.HandleRef(this, ip2));
1625 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1630 * Outer::outer_method(int)
1632 public static Application New()
1634 Application ret = new Application(Interop.Application.New(), true);
1635 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1639 public static Application New(int argc)
1641 Application ret = new Application(Interop.Application.New(argc), true);
1642 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1646 public static Application New(int argc, string stylesheet)
1648 Application ret = new Application(Interop.Application.New(argc, stylesheet), true);
1649 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1653 public static Application New(int argc, string stylesheet, NUIApplication.WindowMode windowMode)
1655 Application ret = new Application(Interop.Application.New(argc, stylesheet, (int)windowMode), true);
1656 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1661 public static Application New(string[] args, string stylesheet, NUIApplication.WindowMode windowMode)
1663 Application ret = null;
1665 string argvStr = "";
1669 argvStr = string.Join(" ", args);
1671 catch (Exception exception)
1673 Tizen.Log.Fatal("NUI", "[Error] got exception during Application New(), this should not occur, message : " + exception.Message);
1674 Tizen.Log.Fatal("NUI", "[Error] error line number : " + new StackTrace(exception, true).GetFrame(0).GetFileLineNumber());
1675 Tizen.Log.Fatal("NUI", "[Error] Stack Trace : " + exception.StackTrace);
1679 ret = new Application(NDalicPINVOKE.ApplicationNewManual4(argc, argvStr, stylesheet, (int)windowMode), true);
1680 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1685 public static Application New(int argc, string stylesheet, NUIApplication.WindowMode windowMode, Rectangle positionSize)
1687 Application ret = new Application(Interop.Application.New(argc, stylesheet, (int)windowMode, Rectangle.getCPtr(positionSize)), true);
1688 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1692 public static Application New(string[] args, string stylesheet, NUIApplication.WindowMode windowMode, Rectangle positionSize)
1694 Application ret = null;
1696 string argvStr = "";
1700 argvStr = string.Join(" ", args);
1702 catch (Exception exception)
1704 Tizen.Log.Fatal("NUI", "[Error] got exception during Application New(), this should not occur, message : " + exception.Message);
1705 Tizen.Log.Fatal("NUI", "[Error] error line number : " + new StackTrace(exception, true).GetFrame(0).GetFileLineNumber());
1706 Tizen.Log.Fatal("NUI", "[Error] Stack Trace : " + exception.StackTrace);
1710 ret = new Application(NDalicPINVOKE.ApplicationNewWithWindowSizePosition(argc, argvStr, stylesheet, (int)windowMode, Rectangle.getCPtr(positionSize)), true);
1711 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1716 public static Application New(string[] args, string stylesheet, NUIApplication.WindowMode windowMode, WindowType type)
1719 string argvStr = "";
1723 argvStr = string.Join(" ", args);
1725 catch (Exception exception)
1727 Tizen.Log.Fatal("NUI", "[Error] got exception during Application New(), this should not occur, message : " + exception.Message);
1728 Tizen.Log.Fatal("NUI", "[Error] error line number : " + new StackTrace(exception, true).GetFrame(0).GetFileLineNumber());
1729 Tizen.Log.Fatal("NUI", "[Error] Stack Trace : " + exception.StackTrace);
1733 // It will be removed until dali APIs are prepared.
1734 Rectangle initRectangle = new Rectangle(0, 0, 0, 0);
1736 Application ret = new Application(Interop.Application.New(argc, argvStr, stylesheet, (int)windowMode, Rectangle.getCPtr(initRectangle), (int)type), true);
1737 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1741 public static Application New(string[] args, string stylesheet, NUIApplication.WindowMode windowMode, Rectangle positionSize, bool useUIThread)
1743 Application ret = null;
1745 string argvStr = "";
1749 argvStr = string.Join(" ", args);
1751 ret = new Application(Interop.Application.New(argc, argvStr, stylesheet, (int)windowMode, Rectangle.getCPtr(positionSize), useUIThread), true);
1752 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1754 catch (Exception exception)
1756 Tizen.Log.Fatal("NUI", "[Error] got exception during Application New(), this should not occur, message : " + exception.Message);
1757 Tizen.Log.Fatal("NUI", "[Error] error line number : " + new StackTrace(exception, true).GetFrame(0).GetFileLineNumber());
1758 Tizen.Log.Fatal("NUI", "[Error] Stack Trace : " + exception.StackTrace);
1765 public static Application New(string[] args, string stylesheet, bool useUIThread, WindowData windowData)
1767 Application ret = null;
1769 string argvStr = "";
1773 argvStr = string.Join(" ", args);
1775 ret = new Application(Interop.Application.New(argc, argvStr, stylesheet, useUIThread, WindowData.getCPtr(windowData)), true);
1776 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1778 catch (Exception exception)
1780 Tizen.Log.Fatal("NUI", "[Error] got exception during Application New(), this should not occur, message : " + exception.Message);
1781 Tizen.Log.Fatal("NUI", "[Error] error line number : " + new StackTrace(exception, true).GetFrame(0).GetFileLineNumber());
1782 Tizen.Log.Fatal("NUI", "[Error] Stack Trace : " + exception.StackTrace);
1789 public Application() : this(Interop.Application.NewApplication(), true)
1791 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1794 public Application(Application application) : this(Interop.Application.NewApplication(Application.getCPtr(application)), true)
1796 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1799 public Application Assign(Application application)
1801 Application ret = new Application(Interop.Application.Assign(SwigCPtr, Application.getCPtr(application)), false);
1802 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1806 public void MainLoop()
1808 NDalicPINVOKE.ApplicationMainLoop(SwigCPtr);
1809 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1814 Interop.Application.Lower(SwigCPtr);
1815 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1820 Interop.Application.Quit(SwigCPtr);
1821 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1824 internal bool AddIdle(SWIGTYPE_p_Dali__CallbackBase callback)
1826 bool ret = Interop.Application.AddIdle(SwigCPtr, SWIGTYPE_p_Dali__CallbackBase.getCPtr(callback));
1827 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1831 public Window GetWindow()
1838 var nativeWindow = Interop.Application.GetWindow(SwigCPtr);
1839 window = Registry.GetManagedBaseHandleFromNativePtr(nativeWindow) as Window;
1842 HandleRef CPtr = new HandleRef(this, nativeWindow);
1843 Interop.BaseHandle.DeleteBaseHandle(CPtr);
1844 CPtr = new HandleRef(null, IntPtr.Zero);
1848 window = new Window(nativeWindow, true);
1851 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1855 public static string GetResourcePath()
1857 string ret = Interop.Application.GetResourcePath();
1858 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1862 public string GetLanguage()
1864 string ret = Interop.Application.GetLanguage(SwigCPtr);
1865 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1869 public string GetRegion()
1871 string ret = Interop.Application.GetRegion(SwigCPtr);
1872 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1876 public void FlushUpdateMessages()
1878 Interop.Application.FlushUpdateMessages(SwigCPtr);
1879 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1882 [EditorBrowsable(EditorBrowsableState.Never)]
1883 public static List<Window> GetWindowList()
1885 if (Interop.Stage.IsInstalled() == false)
1887 NUILog.ErrorBacktrace($"[ERROR] dali adaptor and dali window is not ready. just return NULL here");
1891 uint ListSize = Interop.Application.GetWindowsListSize();
1892 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1894 List<Window> WindowList = new List<Window>();
1895 for (uint i = 0; i < ListSize; ++i)
1897 Window currWin = WindowList.GetInstanceSafely<Window>(Interop.Application.GetWindowsFromList(i));
1898 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1899 if (currWin != null)
1901 WindowList.Add(currWin);
1907 internal ApplicationSignal InitSignal()
1909 ApplicationSignal ret = new ApplicationSignal(NDalicPINVOKE.ApplicationInitSignal(SwigCPtr), false);
1910 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1914 internal ApplicationSignal TerminateSignal()
1916 ApplicationSignal ret = new ApplicationSignal(NDalicPINVOKE.ApplicationTerminateSignal(SwigCPtr), false);
1917 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1921 internal ApplicationSignal PauseSignal()
1923 ApplicationSignal ret = new ApplicationSignal(NDalicPINVOKE.ApplicationPauseSignal(SwigCPtr), false);
1924 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1928 internal ApplicationSignal ResumeSignal()
1930 ApplicationSignal ret = new ApplicationSignal(NDalicPINVOKE.ApplicationResumeSignal(SwigCPtr), false);
1931 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1935 internal ApplicationSignal ResetSignal()
1937 ApplicationSignal ret = new ApplicationSignal(NDalicPINVOKE.ApplicationResetSignal(SwigCPtr), false);
1938 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1942 internal ApplicationControlSignal AppControlSignal()
1944 ApplicationControlSignal ret = new ApplicationControlSignal(NDalicPINVOKE.ApplicationAppControlSignal(SwigCPtr), false);
1945 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1949 internal ApplicationSignal LanguageChangedSignal()
1951 ApplicationSignal ret = new ApplicationSignal(NDalicPINVOKE.ApplicationLanguageChangedSignal(SwigCPtr), false);
1952 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1956 internal ApplicationSignal RegionChangedSignal()
1958 ApplicationSignal ret = new ApplicationSignal(NDalicPINVOKE.ApplicationRegionChangedSignal(SwigCPtr), false);
1959 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1963 internal LowBatterySignalType BatteryLowSignal()
1965 LowBatterySignalType ret = new LowBatterySignalType(NDalicPINVOKE.ApplicationLowBatterySignal(SwigCPtr), false);
1966 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1970 internal LowMemorySignalType MemoryLowSignal()
1972 LowMemorySignalType ret = new LowMemorySignalType(NDalicPINVOKE.ApplicationLowMemorySignal(SwigCPtr), false);
1973 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1977 internal DeviceOrientationChangedSignalType DeviceOrientationChangedSignal()
1979 DeviceOrientationChangedSignalType ret = new DeviceOrientationChangedSignalType(NDalicPINVOKE.ApplicationDeviceOrientationChangedSignal(SwigCPtr), false);
1980 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1985 internal ApplicationSignal TaskInitSignal()
1987 ApplicationSignal ret = new ApplicationSignal(NDalicPINVOKE.ApplicationTaskInitSignal(SwigCPtr), false);
1988 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1992 internal ApplicationSignal TaskTerminateSignal()
1994 ApplicationSignal ret = new ApplicationSignal(NDalicPINVOKE.ApplicationTaskTerminateSignal(SwigCPtr), false);
1995 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1999 internal ApplicationControlSignal TaskAppControlSignal()
2001 ApplicationControlSignal ret = new ApplicationControlSignal(NDalicPINVOKE.ApplicationTaskAppControlSignal(SwigCPtr), false);
2002 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2006 internal ApplicationSignal TaskLanguageChangedSignal()
2008 ApplicationSignal ret = new ApplicationSignal(NDalicPINVOKE.ApplicationTaskLanguageChangedSignal(SwigCPtr), false);
2009 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2013 internal ApplicationSignal TaskRegionChangedSignal()
2015 ApplicationSignal ret = new ApplicationSignal(NDalicPINVOKE.ApplicationTaskRegionChangedSignal(SwigCPtr), false);
2016 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2020 internal LowBatterySignalType TaskBatteryLowSignal()
2022 LowBatterySignalType ret = new LowBatterySignalType(NDalicPINVOKE.ApplicationTaskLowBatterySignal(SwigCPtr), false);
2023 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2027 internal LowMemorySignalType TaskMemoryLowSignal()
2029 LowMemorySignalType ret = new LowMemorySignalType(NDalicPINVOKE.ApplicationTaskLowMemorySignal(SwigCPtr), false);
2030 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2034 internal DeviceOrientationChangedSignalType TaskDeviceOrientationChangedSignal()
2036 DeviceOrientationChangedSignalType ret = new DeviceOrientationChangedSignalType(NDalicPINVOKE.ApplicationTaskDeviceOrientationChangedSignal(SwigCPtr), false);
2037 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();