X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2FTizen.NUI%2Fsrc%2Finternal%2FApplication.cs;h=43bb36f42d759512ce997d8dfecccb81cd9e1e57;hb=2e2d0feb1e8896e568230e308fed7fa5e4d1f23d;hp=137824553d1f7e80f07dbae9b27a2f93275fd989;hpb=f71e170340660df96ebee7dc6bed84dd7ad1d040;p=platform%2Fcore%2Fcsapi%2Ftizenfx.git diff --git a/src/Tizen.NUI/src/internal/Application.cs b/src/Tizen.NUI/src/internal/Application.cs index 1378245..43bb36f 100755 --- a/src/Tizen.NUI/src/internal/Application.cs +++ b/src/Tizen.NUI/src/internal/Application.cs @@ -1,5 +1,5 @@ /* - * Copyright(c) 2017 Samsung Electronics Co., Ltd. + * Copyright(c) 2018 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,7 +19,14 @@ namespace Tizen.NUI { using System; + using System.Collections.Generic; + using System.Collections.ObjectModel; + using System.ComponentModel; using System.Runtime.InteropServices; + using System.Threading; + using System.Threading.Tasks; + using Tizen.NUI.Binding; + using Tizen.NUI.Binding.Internals; /** * @brief Event arguments that passed via NUIApplicationInit signal @@ -302,13 +309,159 @@ namespace Tizen.NUI } } - internal class Application : BaseHandle + /// + /// A class to get resources in current application. + /// + public class GetResourcesProvider { + /// + /// Get resources in current application. + /// + static public IResourcesProvider Get() + { + return Tizen.NUI.Application.Current; + } + } + + internal class Application : BaseHandle, IResourcesProvider, IElementConfiguration + { + + static Application s_current; + + ReadOnlyCollection _logicalChildren; + + static SemaphoreSlim SaveSemaphore = new SemaphoreSlim(1, 1); + + [EditorBrowsable(EditorBrowsableState.Never)] + public static void SetCurrentApplication(Application value) => Current = value; + + public static Application Current + { + get { return s_current; } + set + { + if (s_current == value) + return; + if (value == null) + s_current = null; //Allow to reset current for unittesting + s_current = value; + } + } + + internal override ReadOnlyCollection LogicalChildrenInternal + { + get { return _logicalChildren ?? (_logicalChildren = new ReadOnlyCollection(InternalChildren)); } + } + + internal IResourceDictionary SystemResources { get; } + + ObservableCollection InternalChildren { get; } = new ObservableCollection(); + + ResourceDictionary _resources; + public bool IsResourcesCreated => _resources != null; + + public delegate void resChangeCb(object sender, ResourcesChangedEventArgs e); + + static private Dictionary> resourceChangeCallbackDict = new Dictionary>(); + static public void AddResourceChangedCallback(object handle, resChangeCb cb) + { + Dictionary cbDict; + resourceChangeCallbackDict.TryGetValue(handle, out cbDict); + + if (null == cbDict) + { + cbDict = new Dictionary(); + resourceChangeCallbackDict.Add(handle, cbDict); + } + + if (false == cbDict.ContainsKey(cb)) + { + cbDict.Add(cb, 0); + } + } + + internal override void OnResourcesChanged(object sender, ResourcesChangedEventArgs e) + { + base.OnResourcesChanged(sender, e); + + foreach (KeyValuePair> resourcePair in resourceChangeCallbackDict) + { + foreach (KeyValuePair cbPair in resourcePair.Value) + { + cbPair.Key(sender, e); + } + } + } + + public ResourceDictionary XamlResources + { + get + { + if (_resources != null) + return _resources; + + _resources = new ResourceDictionary(); + int hashCode = _resources.GetHashCode(); + ((IResourceDictionary)_resources).ValuesChanged += OnResourcesChanged; + return _resources; + } + set + { + if (_resources == value) + return; + OnPropertyChanging(); + + if (_resources != null) + ((IResourceDictionary)_resources).ValuesChanged -= OnResourcesChanged; + _resources = value; + OnResourcesChanged(value); + if (_resources != null) + ((IResourceDictionary)_resources).ValuesChanged += OnResourcesChanged; + + OnPropertyChanged(); + } + } + + protected override void OnParentSet() + { + throw new InvalidOperationException("Setting a Parent on Application is invalid."); + } + + [EditorBrowsable(EditorBrowsableState.Never)] + public static bool IsApplicationOrNull(Element element) + { + return element == null || element is Application; + } + + internal override void OnParentResourcesChanged(IEnumerable> values) + { + if (!((IResourcesProvider)this).IsResourcesCreated || XamlResources.Count == 0) + { + base.OnParentResourcesChanged(values); + return; + } + + var innerKeys = new HashSet(); + var changedResources = new List>(); + foreach (KeyValuePair c in XamlResources) + innerKeys.Add(c.Key); + foreach (KeyValuePair value in values) + { + if (innerKeys.Add(value.Key)) + changedResources.Add(value); + } + OnResourcesChanged(changedResources); + } + private global::System.Runtime.InteropServices.HandleRef swigCPtr; internal Application(global::System.IntPtr cPtr, bool cMemoryOwn) : base(NDalicPINVOKE.Application_SWIGUpcast(cPtr), cMemoryOwn) { + SetCurrentApplication(this); + swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr); + + s_current = this; } internal static global::System.Runtime.InteropServices.HandleRef getCPtr(Application obj) @@ -395,7 +548,7 @@ namespace Tizen.NUI if (swigCMemOwn) { swigCMemOwn = false; - NDalicPINVOKE.delete_Application(swigCPtr); + Interop.Application.delete_Application(swigCPtr); } swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero); } @@ -515,22 +668,16 @@ namespace Tizen.NUI // Callback for Application InitSignal private void OnApplicationInit(IntPtr data) { - if (Version.DaliVersionMatchWithNUI() == false) - { - Tizen.Log.Fatal("NUI", "Dali and NUI are version mismatched!"); - } - // Initialize DisposeQueue Singleton class. This is also required to create DisposeQueue on main thread. DisposeQueue.Instance.Initialize(); - NUIApplicationInitEventArgs e = new NUIApplicationInitEventArgs(); - // Populate all members of "e" (NUIApplicationInitEventArgs) with real data - e.Application = Application.GetApplicationFromPtr(data); if (_applicationInitEventHandler != null) { - //here we send all data to user event handlers - _applicationInitEventHandler(this, e); + NUIApplicationInitEventArgs e = new NUIApplicationInitEventArgs(); + e.Application = this; + _applicationInitEventHandler.Invoke(this, e); } + } /** @@ -571,15 +718,15 @@ namespace Tizen.NUI // Callback for Application TerminateSignal private void OnNUIApplicationTerminate(IntPtr data) { - NUIApplicationTerminatingEventArgs e = new NUIApplicationTerminatingEventArgs(); - - // Populate all members of "e" (NUIApplicationTerminateEventArgs) with real data - e.Application = Application.GetApplicationFromPtr(data); - if (_applicationTerminateEventHandler != null) { - //here we send all data to user event handlers - _applicationTerminateEventHandler(this, e); + NUIApplicationTerminatingEventArgs e = new NUIApplicationTerminatingEventArgs(); + e.Application = this; + _applicationTerminateEventHandler.Invoke(this, e); + } + if (Window.Instance) + { + Window.Instance.DisconnectNativeSignals(); } } @@ -621,15 +768,11 @@ namespace Tizen.NUI // Callback for Application PauseSignal private void OnNUIApplicationPause(IntPtr data) { - NUIApplicationPausedEventArgs e = new NUIApplicationPausedEventArgs(); - - // Populate all members of "e" (NUIApplicationPauseEventArgs) with real data - e.Application = Application.GetApplicationFromPtr(data); - if (_applicationPauseEventHandler != null) { - //here we send all data to user event handlers - _applicationPauseEventHandler(this, e); + NUIApplicationPausedEventArgs e = new NUIApplicationPausedEventArgs(); + e.Application = this; + _applicationPauseEventHandler.Invoke(this, e); } } @@ -671,15 +814,11 @@ namespace Tizen.NUI // Callback for Application ResumeSignal private void OnNUIApplicationResume(IntPtr data) { - NUIApplicationResumedEventArgs e = new NUIApplicationResumedEventArgs(); - - // Populate all members of "e" (NUIApplicationResumeEventArgs) with real data - e.Application = Application.GetApplicationFromPtr(data); - if (_applicationResumeEventHandler != null) { - //here we send all data to user event handlers - _applicationResumeEventHandler(this, e); + NUIApplicationResumedEventArgs e = new NUIApplicationResumedEventArgs(); + e.Application = this; + _applicationResumeEventHandler.Invoke(this, e); } } @@ -721,15 +860,11 @@ namespace Tizen.NUI // Callback for Application ResetSignal private void OnNUIApplicationReset(IntPtr data) { - NUIApplicationResetEventArgs e = new NUIApplicationResetEventArgs(); - - // Populate all members of "e" (NUIApplicationResetEventArgs) with real data - e.Application = Application.GetApplicationFromPtr(data); - if (_applicationResetEventHandler != null) { - //here we send all data to user event handlers - _applicationResetEventHandler(this, e); + NUIApplicationResetEventArgs e = new NUIApplicationResetEventArgs(); + e.Application = this; + _applicationResetEventHandler.Invoke(this, e); } } @@ -771,15 +906,11 @@ namespace Tizen.NUI // Callback for Application ResizeSignal private void OnNUIApplicationResize(IntPtr data) { - NUIApplicationResizedEventArgs e = new NUIApplicationResizedEventArgs(); - - // Populate all members of "e" (NUIApplicationResizeEventArgs) with real data - e.Application = Application.GetApplicationFromPtr(data); - if (_applicationResizeEventHandler != null) { - //here we send all data to user event handlers - _applicationResizeEventHandler(this, e); + NUIApplicationResizedEventArgs e = new NUIApplicationResizedEventArgs(); + e.Application = this; + _applicationResizeEventHandler.Invoke(this, e); } } @@ -821,15 +952,11 @@ namespace Tizen.NUI // Callback for Application LanguageChangedSignal private void OnNUIApplicationLanguageChanged(IntPtr data) { - NUIApplicationLanguageChangedEventArgs e = new NUIApplicationLanguageChangedEventArgs(); - - // Populate all members of "e" (NUIApplicationLanguageChangedEventArgs) with real data - e.Application = Application.GetApplicationFromPtr(data); - if (_applicationLanguageChangedEventHandler != null) { - //here we send all data to user event handlers - _applicationLanguageChangedEventHandler(this, e); + NUIApplicationLanguageChangedEventArgs e = new NUIApplicationLanguageChangedEventArgs(); + e.Application = this; + _applicationLanguageChangedEventHandler.Invoke(this, e); } } @@ -871,15 +998,11 @@ namespace Tizen.NUI // Callback for Application RegionChangedSignal private void OnNUIApplicationRegionChanged(IntPtr data) { - NUIApplicationRegionChangedEventArgs e = new NUIApplicationRegionChangedEventArgs(); - - // Populate all members of "e" (NUIApplicationRegionChangedEventArgs) with real data - e.Application = Application.GetApplicationFromPtr(data); - if (_applicationRegionChangedEventHandler != null) { - //here we send all data to user event handlers - _applicationRegionChangedEventHandler(this, e); + NUIApplicationRegionChangedEventArgs e = new NUIApplicationRegionChangedEventArgs(); + e.Application = this; + _applicationRegionChangedEventHandler.Invoke(this, e); } } @@ -921,15 +1044,13 @@ namespace Tizen.NUI // Callback for Application BatteryLowSignal private void OnNUIApplicationBatteryLow(BatteryStatus status) { - NUIApplicationBatteryLowEventArgs e = new NUIApplicationBatteryLowEventArgs(); - - // Populate all members of "e" (NUIApplicationBatteryLowEventArgs) with real data - e.BatteryStatus = status; - - if (_applicationBatteryLowEventHandler != null) + lock (this) { - //here we send all data to user event handlers - _applicationBatteryLowEventHandler(this, e); + NUIApplicationBatteryLowEventArgs e = new NUIApplicationBatteryLowEventArgs(); + + // Populate all members of "e" (NUIApplicationBatteryLowEventArgs) with real data + e.BatteryStatus = status; + _applicationBatteryLowEventHandler?.Invoke(this, e); } } @@ -971,15 +1092,13 @@ namespace Tizen.NUI // Callback for Application MemoryLowSignal private void OnNUIApplicationMemoryLow(MemoryStatus status) { - NUIApplicationMemoryLowEventArgs e = new NUIApplicationMemoryLowEventArgs(); - - // Populate all members of "e" (NUIApplicationMemoryLowEventArgs) with real data - e.MemoryStatus = status; - - if (_applicationMemoryLowEventHandler != null) + lock (this) { - //here we send all data to user event handlers - _applicationMemoryLowEventHandler(this, e); + NUIApplicationMemoryLowEventArgs e = new NUIApplicationMemoryLowEventArgs(); + + // Populate all members of "e" (NUIApplicationMemoryLowEventArgs) with real data + e.MemoryStatus = status; + _applicationMemoryLowEventHandler?.Invoke(this, e); } } @@ -1021,16 +1140,12 @@ namespace Tizen.NUI // Callback for Application AppControlSignal private void OnNUIApplicationAppControl(IntPtr application, IntPtr voidp) { - NUIApplicationAppControlEventArgs e = new NUIApplicationAppControlEventArgs(); - - // Populate all members of "e" (NUIApplicationAppControlEventArgs) with real data - e.Application = Application.GetApplicationFromPtr(application); - e.VoidP = voidp; - if (_applicationAppControlEventHandler != null) { - //here we send all data to user event handlers - _applicationAppControlEventHandler(this, e); + NUIApplicationAppControlEventArgs e = new NUIApplicationAppControlEventArgs(); + e.VoidP = voidp; + e.Application = this; + _applicationAppControlEventHandler.Invoke(this, e); } } @@ -1046,7 +1161,12 @@ namespace Tizen.NUI public static Application GetApplicationFromPtr(global::System.IntPtr cPtr) { - Application ret = new Application(cPtr, false); + if (cPtr == global::System.IntPtr.Zero) + { + return null; + } + + Application ret = Registry.GetManagedBaseHandleFromNativePtr(cPtr) as Application; if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); return ret; } @@ -1074,11 +1194,18 @@ namespace Tizen.NUI return ret; } + public static Application NewApplication(string stylesheet, Application.WindowMode windowMode, Rectangle positionSize) + { + Application ret = New(1, stylesheet, windowMode, positionSize); + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + + // set the singleton + _instance = ret; + return ret; + } public static Application NewApplication(string[] args, string stylesheet, Application.WindowMode windowMode) { - NUILog.Debug(" NewApplication(string[] args, string stylesheet, Application.WindowMode windowMode) is called! "); - Application ret = New(args, stylesheet, (Application.WindowMode)windowMode); if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); @@ -1087,6 +1214,16 @@ namespace Tizen.NUI return _instance; } + public static Application NewApplication(string[] args, string stylesheet, Application.WindowMode windowMode, Rectangle positionSize) + { + Application ret = New(args, stylesheet, (Application.WindowMode)windowMode, positionSize); + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + + // set the singleton + _instance = ret; + return _instance; + } + /// /// Ensures that the function passed in is called from the main loop when it is idle. /// @@ -1095,9 +1232,9 @@ namespace Tizen.NUI public bool AddIdle(System.Delegate func) { System.IntPtr ip = System.Runtime.InteropServices.Marshal.GetFunctionPointerForDelegate(func); - System.IntPtr ip2 = NDalicManualPINVOKE.MakeCallback(new System.Runtime.InteropServices.HandleRef(this, ip)); + System.IntPtr ip2 = Interop.Application.MakeCallback(new System.Runtime.InteropServices.HandleRef(this, ip)); - bool ret = NDalicPINVOKE.Application_AddIdle(swigCPtr, new System.Runtime.InteropServices.HandleRef(this, ip2)); + bool ret = Interop.Application.Application_AddIdle(swigCPtr, new System.Runtime.InteropServices.HandleRef(this, ip2)); if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); return ret; @@ -1108,73 +1245,75 @@ namespace Tizen.NUI */ public static Application New() { - NUILog.Debug("New() is called!"); - - Application ret = new Application(NDalicPINVOKE.Application_New__SWIG_0(), true); + Application ret = new Application(Interop.Application.Application_New__SWIG_0(), true); if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); return ret; } public static Application New(int argc) { - NUILog.Debug("New(int argc) is called!"); - - Application ret = new Application(NDalicPINVOKE.Application_New__SWIG_1(argc), true); + Application ret = new Application(Interop.Application.Application_New__SWIG_1(argc), true); if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); return ret; } public static Application New(int argc, string stylesheet) { - NUILog.Debug("New(int argc, string stylesheet) is called!"); - - Application ret = new Application(NDalicPINVOKE.Application_New__SWIG_2(argc, stylesheet), true); + Application ret = new Application(Interop.Application.Application_New__SWIG_2(argc, stylesheet), true); if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); return ret; } public static Application New(int argc, string stylesheet, Application.WindowMode windowMode) { - NUILog.Debug("New(int argc, string stylesheet, Application.WindowMode windowMode) is called!"); - - Application ret = new Application(NDalicPINVOKE.Application_New__SWIG_3(argc, stylesheet, (int)windowMode), true); + Application ret = new Application(Interop.Application.Application_New__SWIG_3(argc, stylesheet, (int)windowMode), true); if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + s_current = ret; return ret; } public static Application New(string[] args, string stylesheet, Application.WindowMode windowMode) { - NUILog.Debug("New(string[] args) is called!"); int argc = args.Length; string argvStr = string.Join(" ", args); Application ret = new Application(NDalicPINVOKE.Application_New__MANUAL_4(argc, argvStr, stylesheet, (int)windowMode), true); + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + return ret; } public static Application New(int argc, string stylesheet, Application.WindowMode windowMode, Rectangle positionSize) { - Application ret = new Application(NDalicPINVOKE.Application_New__SWIG_4(argc, stylesheet, (int)windowMode, Rectangle.getCPtr(positionSize)), true); + Application ret = new Application(Interop.Application.Application_New__SWIG_4(argc, stylesheet, (int)windowMode, Rectangle.getCPtr(positionSize)), true); if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); return ret; } - public Application() : this(NDalicPINVOKE.new_Application__SWIG_0(), true) + public static Application New(string[] args, string stylesheet, Application.WindowMode windowMode, Rectangle positionSize) { - NUILog.Debug("Application() is called!"); + int argc = args.Length; + string argvStr = string.Join(" ", args); + Application ret = new Application(NDalicPINVOKE.Application_New_WithWindowSizePosition(argc, argvStr, stylesheet, (int)windowMode, Rectangle.getCPtr(positionSize)), true); if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + return ret; } - public Application(Application application) : this(NDalicPINVOKE.new_Application__SWIG_1(Application.getCPtr(application)), true) + public Application() : this(Interop.Application.new_Application__SWIG_0(), true) + { + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + } + + public Application(Application application) : this(Interop.Application.new_Application__SWIG_1(Application.getCPtr(application)), true) { if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); } public Application Assign(Application application) { - Application ret = new Application(NDalicPINVOKE.Application_Assign(swigCPtr, Application.getCPtr(application)), false); + Application ret = new Application(Interop.Application.Application_Assign(swigCPtr, Application.getCPtr(application)), false); if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); return ret; } @@ -1187,90 +1326,78 @@ namespace Tizen.NUI internal void MainLoop(SWIGTYPE_p_Configuration__ContextLoss configuration) { - NDalicPINVOKE.Application_MainLoop__SWIG_1(swigCPtr, SWIGTYPE_p_Configuration__ContextLoss.getCPtr(configuration)); + Interop.Application.Application_MainLoop__SWIG_1(swigCPtr, SWIGTYPE_p_Configuration__ContextLoss.getCPtr(configuration)); if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); } public void Lower() { - NDalicPINVOKE.Application_Lower(swigCPtr); + Interop.Application.Application_Lower(swigCPtr); if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); } public void Quit() { - NDalicPINVOKE.Application_Quit(swigCPtr); + Interop.Application.Application_Quit(swigCPtr); if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); } internal bool AddIdle(SWIGTYPE_p_Dali__CallbackBase callback) { - bool ret = NDalicPINVOKE.Application_AddIdle(swigCPtr, SWIGTYPE_p_Dali__CallbackBase.getCPtr(callback)); + bool ret = Interop.Application.Application_AddIdle(swigCPtr, SWIGTYPE_p_Dali__CallbackBase.getCPtr(callback)); if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); return ret; } public Window GetWindow() { - Window ret = new Window(NDalicPINVOKE.Application_GetWindow(swigCPtr), true); + Window ret = new Window(Interop.Application.Application_GetWindow(swigCPtr), true); if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); return ret; } public void ReplaceWindow(Rectangle windowPosition, string name) { - NDalicPINVOKE.Application_ReplaceWindow(swigCPtr, Rectangle.getCPtr(windowPosition), name); + Interop.Application.Application_ReplaceWindow(swigCPtr, Rectangle.getCPtr(windowPosition), name); if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); } public static string GetResourcePath() { - string ret = NDalicPINVOKE.Application_GetResourcePath(); + string ret = Interop.Application.Application_GetResourcePath(); if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); return ret; } - internal void SetViewMode(ViewMode viewMode) - { - NDalicPINVOKE.Application_SetViewMode(swigCPtr, (int)viewMode); - if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); - } - - internal ViewMode GetViewMode() + public string GetLanguage() { - ViewMode ret = (ViewMode)NDalicPINVOKE.Application_GetViewMode(swigCPtr); + string ret = Interop.Application.Application_GetLanguage(swigCPtr); if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); return ret; } - public void SetStereoBase(float stereoBase) - { - NDalicPINVOKE.Application_SetStereoBase(swigCPtr, stereoBase); - if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); - } - - public float GetStereoBase() + public string GetRegion() { - float ret = NDalicPINVOKE.Application_GetStereoBase(swigCPtr); + string ret = Interop.Application.Application_GetRegion(swigCPtr); if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); return ret; } - public string GetLanguage() + internal static List GetWindowList() { - string ret = NDalicPINVOKE.Application_GetLanguage(swigCPtr); + uint ListSize = Interop.Application.Application_GetWindowsListSize(); if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - public string GetRegion() - { - string ret = NDalicPINVOKE.Application_GetRegion(swigCPtr); - if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); - return ret; + List WindowList = new List(); + for( uint i = 0; i < ListSize; ++i ) + { + Window currWin = new Window(Interop.Application.Application_GetWindowsFromList(i), true); + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + WindowList.Add(currWin); + } + return WindowList; } - internal ApplicationSignal InitSignal() { ApplicationSignal ret = new ApplicationSignal(NDalicPINVOKE.Application_InitSignal(swigCPtr), false);