From: Xianbing Teng Date: Tue, 7 Dec 2021 09:07:45 +0000 (+0800) Subject: Add XamlLoaded event for NUIApplication X-Git-Tag: submit/tizen_6.5/20220318.151238~1^2~6 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b8a971946e7779d9aca5a4ebf36e3dcd6ab1f3eb;p=platform%2Fcore%2Fcsapi%2Ftizenfx.git Add XamlLoaded event for NUIApplication --- diff --git a/src/Tizen.NUI/src/internal/Xaml/XamlLoader.cs b/src/Tizen.NUI/src/internal/Xaml/XamlLoader.cs index b999ccb..6bc2983 100755 --- a/src/Tizen.NUI/src/internal/Xaml/XamlLoader.cs +++ b/src/Tizen.NUI/src/internal/Xaml/XamlLoader.cs @@ -93,6 +93,7 @@ namespace Tizen.NUI.Xaml if (string.IsNullOrEmpty(xaml)) throw new XamlParseException(string.Format("Can't get xaml from type {0}", callingType), new XmlLineInfo()); Load(view, xaml); + NUIApplication.CurrentLoadedXaml = callingType.FullName; } catch (XamlParseException e) { diff --git a/src/Tizen.NUI/src/public/Application/NUIApplication.cs b/src/Tizen.NUI/src/public/Application/NUIApplication.cs index 16014aa..edc6c89 100755 --- a/src/Tizen.NUI/src/public/Application/NUIApplication.cs +++ b/src/Tizen.NUI/src/public/Application/NUIApplication.cs @@ -37,6 +37,13 @@ namespace Tizen.NUI /// The instance of ResourceManager. /// private static System.Resources.ResourceManager resourceManager = null; + private static string currentLoadedXaml = null; + + /// + /// Xaml loaded delegate. + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public delegate void XamlLoadedHandler(XamlLoadedEventArgs args); static NUIApplication() { @@ -183,6 +190,12 @@ namespace Tizen.NUI public event EventHandler Paused; /// + /// Xaml loaded event. + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public static event XamlLoadedHandler XamlLoaded; + + /// /// Enumeration for deciding whether a NUI application window is opaque or transparent. /// /// 3 @@ -229,6 +242,25 @@ namespace Tizen.NUI }; /// + /// Current loaded xaml's full name. + /// + public static string CurrentLoadedXaml + { + get + { + return currentLoadedXaml; + } + set + { + if (currentLoadedXaml != value) + { + currentLoadedXaml = value; + XamlLoaded?.Invoke(new XamlLoadedEventArgs(){XamlName = value}); + } + } + } + + /// /// ResourceManager to handle multilingual. /// /// 4 @@ -523,4 +555,13 @@ namespace Tizen.NUI internal const string GlesCSharpBinder = NDalicPINVOKE.Lib; internal const string VulkanCSharpBinder = "libdali-csharp-binder-vk.so"; } + + /// + /// Xaml loaded event args. + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public class XamlLoadedEventArgs : EventArgs + { + public string XamlName {get; set;} + } } diff --git a/src/Tizen.NUI/src/public/EXaml/EXamlExtensions.cs b/src/Tizen.NUI/src/public/EXaml/EXamlExtensions.cs index c933798..c1fb942 100755 --- a/src/Tizen.NUI/src/public/EXaml/EXamlExtensions.cs +++ b/src/Tizen.NUI/src/public/EXaml/EXamlExtensions.cs @@ -136,6 +136,12 @@ namespace Tizen.NUI.EXaml reader.Dispose(); LoadEXaml.Load(view, xaml, out eXamlData); + var filePath = likelyResourcePath.Replace("\\", "/"); + if (filePath.Contains("/")) + { + var xamlName = filePath.Substring(filePath.LastIndexOf("/") + 1, filePath.LastIndexOf(".") - filePath.LastIndexOf("/") - 1); + NUIApplication.CurrentLoadedXaml = xamlName; + } } else {