[NUI][Xaml]Add ResourcePathExtension
authorFang Xiaohui <xiaohui.fang@samsung.com>
Fri, 9 Jul 2021 06:57:43 +0000 (14:57 +0800)
committerdongsug-song <35130733+dongsug-song@users.noreply.github.com>
Fri, 9 Jul 2021 10:39:50 +0000 (19:39 +0900)
src/Tizen.NUI/src/public/Widget/WidgetView.cs
src/Tizen.NUI/src/public/Xaml/MarkupExtensions/ResourcePathExtension.cs [new file with mode: 0755]

index 3270b99..941164e 100755 (executable)
@@ -41,6 +41,22 @@ namespace Tizen.NUI
         private WidgetUpdatePeriodChangedEventCallbackType widgetUpdatePeriodChangedEventCallback;
         private EventHandler<WidgetViewEventArgs> widgetFaultedEventHandler;
         private WidgetFaultedEventCallbackType widgetFaultedEventCallback;
+
+        /// <summary>
+        /// Used in xaml as factory method to create WidgetView.
+        /// </summary>
+        /// <param name="widgetId"></param>
+        /// <param name="contentInfo"></param>
+        /// <param name="width"></param>
+        /// <param name="height"></param>
+        /// <param name="updatePeriod"></param>
+        /// <returns></returns>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public static WidgetView CreateWidgetView(string widgetId, string contentInfo, int width, int height, float updatePeriod)
+        {
+            return WidgetViewManager.Instance.AddWidget(widgetId, contentInfo, width, height, updatePeriod);
+        }
+
         /// <summary>
         /// Creates a new WidgetView.
         /// </summary>
diff --git a/src/Tizen.NUI/src/public/Xaml/MarkupExtensions/ResourcePathExtension.cs b/src/Tizen.NUI/src/public/Xaml/MarkupExtensions/ResourcePathExtension.cs
new file mode 100755 (executable)
index 0000000..7c91e61
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+ * Copyright(c) 2021 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.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+using System;
+using System.ComponentModel;
+using Tizen.NUI.Binding;
+
+namespace Tizen.NUI.Xaml
+{
+    /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
+    [EditorBrowsable(EditorBrowsableState.Never)]
+    [ContentProperty(nameof(FilePath))]
+    [AcceptEmptyServiceProvider]
+    public class ResourcePathExtension : IMarkupExtension<string>
+    {
+        /// <summary></summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public ResourcePathExtension()
+        {
+        }
+
+        /// <summary></summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public string FilePath { get; set; }
+
+        /// <inheritdoc/>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public string ProvideValue(IServiceProvider serviceProvider) => Tizen.Applications.Application.Current.DirectoryInfo.Resource + FilePath;
+
+        /// <inheritdoc/>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        object IMarkupExtension.ProvideValue(IServiceProvider serviceProvider)
+        {
+            return (this as IMarkupExtension<string>).ProvideValue(serviceProvider);
+        }
+    }
+}