diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index bb71ef83c16..169f3088cb1 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -87,7 +87,6 @@ /src/Tizen.NUI.Extension/ @dongsug-song @bshsqa @rabbifor @hinohie /src/Tizen.NUI.Physics2D/ @dongsug-song @bshsqa @rabbifor @hinohie /src/Tizen.NUI.Scene3D/ @dongsug-song @bshsqa @rabbifor @hinohie -/src/Tizen.NUI.Wearable/ @dongsug-song @bshsqa @rabbifor @hinohie /src/Tizen.NUI.WindowSystem/ @dongsug-song @bshsqa @rabbifor @hinohie /src/Tizen.NUI.XamlBuild/ @dongsug-song @bshsqa @rabbifor @hinohie /src/Tizen.NUI/ @dongsug-song @bshsqa @rabbifor @hinohie diff --git a/src/Tizen.NUI.Components/Theme/DefaultThemeCommon.cs b/src/Tizen.NUI.Components/Theme/DefaultThemeCommon.cs index abaff585fa5..5d8948a6e6c 100755 --- a/src/Tizen.NUI.Components/Theme/DefaultThemeCommon.cs +++ b/src/Tizen.NUI.Components/Theme/DefaultThemeCommon.cs @@ -14,7 +14,6 @@ * limitations under the License. * */ -#if !PROFILE_WEARABLE using System.Diagnostics.CodeAnalysis; using Tizen.NUI.BaseComponents; @@ -865,5 +864,3 @@ public Theme Create() } } } - -#endif // !PROFILE_WEARABLE diff --git a/src/Tizen.NUI.Components/Theme/DefaultThemeWearable.cs b/src/Tizen.NUI.Components/Theme/DefaultThemeWearable.cs deleted file mode 100644 index a2037a83872..00000000000 --- a/src/Tizen.NUI.Components/Theme/DefaultThemeWearable.cs +++ /dev/null @@ -1,251 +0,0 @@ -/* - * Copyright(c) 2020 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. - * - */ - -#if PROFILE_WEARABLE - -using Tizen.NUI.BaseComponents; -using Tizen.NUI.Components.Extension; - -namespace Tizen.NUI.Components -{ - // It is a C# version of res/Tizen.NUI.Components_Tizen.NUI.Theme.Wearable.xaml - internal sealed partial class DefaultThemeCreator : IThemeCreator - { - public Theme Create() - { - var theme = new Theme() - { - Id = Tizen.NUI.DefaultThemeCreator.DefaultId, - Version = Tizen.NUI.DefaultThemeCreator.DefaultVersion - }; - - theme.AddStyleWithoutClone("Tizen.NUI.Components.Popup", new PopupStyle() - { - Size = new Size(500, 280), - BackgroundColor = new Color(0.9f, 0.9f, 0.9f, 1), - ImageShadow = new ImageShadow() - { - Url = FrameworkInformation.ResourcePath + "nui_component_default_popup_shadow.png", - Border = new Rectangle(24, 24, 24, 24), - Extents = new Vector2(48, 48) - }, - Title = new TextLabelStyle() - { - PointSize = 16, - Padding = new Extents(20, 20, 20, 20), - }, - Buttons = new ButtonStyle() - { - Size = new Size(0, 80), - BackgroundColor = new Selector() - { - Normal = new Color(1, 1, 1, 1), - Pressed = new Color(1, 1, 1, 0.5f), - }, - Overlay = new ImageViewStyle() - { - BackgroundColor = new Selector() - { - Pressed = new Color(0, 0, 0, 0.1f), - Other = new Color(1, 1, 1, 1), - }, - }, - Text = new TextLabelStyle() - { - TextColor = new Color(0.05f, 0.63f, 0.9f, 1), - } - } - }); - - theme.AddStyleWithoutClone("Tizen.NUI.Components.Progress", new ProgressStyle() - { - Size = new Size(200, 5), - Track = new ImageViewStyle() - { - BackgroundColor = new Color(0, 0, 0, 0.1f), - }, - Buffer = new ImageViewStyle() - { - BackgroundColor = new Color(0.05f, 0.63f, 0.9f, 0.3f), - }, - Progress = new ImageViewStyle() - { - BackgroundColor = new Color(0.05f, 0.63f, 0.9f, 1), - }, - }); - - theme.AddStyleWithoutClone("Tizen.NUI.Components.Slider", new SliderStyle() - { - Size = new Size(200, 50), - TrackThickness = 5, - Track = new ImageViewStyle() - { - BackgroundColor = new Color(0, 0, 0, 0.1f), - }, - Progress = new ImageViewStyle() - { - BackgroundColor = new Color(0.05f, 0.63f, 0.9f, 1), - }, - Thumb = new ImageViewStyle() - { - Size = new Size(50, 50), - ResourceUrl = FrameworkInformation.ResourcePath + "nui_component_default_slider_thumb_n.png", - BackgroundImage = new Selector() - { - Normal = "", - Pressed = FrameworkInformation.ResourcePath + "nui_component_default_slider_thumb_bg_p.png", - } - }, - }); - - theme.AddStyleWithoutClone("Tizen.NUI.Components.Tab", new TabStyle() - { - Size = new Size(480, 80), - BackgroundColor = Color.Yellow, - UnderLine = new ViewStyle() - { - Size = new Size(0, 6), - BackgroundColor = new Color(0.05f, 0.63f, 0.9f, 1), - }, - Text = new TextLabelStyle() - { - PointSize = 16, - TextColor = new Selector() - { - Normal = Color.Black, - Selected = new Color(0.05f, 0.63f, 0.9f, 1), - } - } - }); - - theme.AddStyleWithoutClone("Tizen.NUI.Components.Toast", new ToastStyle() - { - Size = new Size(480, 80), - BackgroundColor = new Color(0, 0, 0, 0.8f), - Text = new TextLabelStyle() - { - Padding = new Extents(12, 12, 8, 8) - } - }); - - theme.AddStyleWithoutClone("Tizen.NUI.Components.Pagination", new PaginationStyle() - { - IndicatorImageUrl = new Selector() - { - Normal = FrameworkInformation.ResourcePath + "nui_component_default_pagination_normal_dot.png", - Selected = FrameworkInformation.ResourcePath + "nui_component_default_pagination_focus_dot.png", - } - }); - - theme.AddStyleWithoutClone("Tizen.NUI.Components.Scrollbar", new ScrollbarStyle() - { - TrackThickness = 6, - ThumbThickness = 6, - TrackColor = new Color(1, 1, 1, 0.15f), - ThumbColor = new Color(0.6f, 0.6f, 0.6f, 1), - TrackPadding = 4 - }); - - theme.AddStyleWithoutClone("Tizen.NUI.Components.Button", new ButtonStyle() - { - Size = new Size(210, 72), - CornerRadius = 36, - BackgroundColor = new Selector() - { - Normal = new Color(0, 0.1647f, 0.3019f, 0.85f), - Pressed = new Color(0, 0.2475f, 0.5019f, 0.85f), - Disabled = new Color(0.2392f, 0.2392f, 0.2392f, 0.85f), - }, - Opacity = new Selector() - { - Other = 1.0f, - Disabled = 0.3f, - }, - Text = new TextLabelStyle() - { - FontFamily = "SamsungOne 700", - PixelSize = 28, - Padding = new Extents(20, 20, 0, 0), - HorizontalAlignment = HorizontalAlignment.Center, - VerticalAlignment = VerticalAlignment.Center, - TextColor = new Selector() - { - Normal = new Color(0.2196f, 0.6131f, 0.9882f, 1), - Disabled = new Color(1, 1, 1, 0.35f), - } - } - }); - - theme.AddStyleWithoutClone("Tizen.NUI.Components.CheckBox", new LottieButtonStyle() - { - LottieUrl = FrameworkInformation.ResourcePath + "nui_wearable_checkbox_icon.png", - PlayRange = new Selector() - { - Selected = new LottieFrameInfo(19, 36), - Normal = new LottieFrameInfo(0, 18) - }, - Opacity = new Selector() - { - Other = 1.0f, - Pressed = 0.6f, - Disabled = 0.3f, - }, - }); - - theme.AddStyleWithoutClone("Tizen.NUI.Components.RadioButton", new LottieButtonStyle() - { - LottieUrl = FrameworkInformation.ResourcePath + "nui_wearable_radiobutton_icon.png", - PlayRange = new Selector() - { - Selected = new LottieFrameInfo(0, 12), - Normal = new LottieFrameInfo(13, 25) - }, - Opacity = new Selector() - { - Other = 1.0f, - Pressed = 0.6f, - Disabled = 0.3f, - }, - }); - - theme.AddStyleWithoutClone("Tizen.NUI.Components.Switch", new LottieSwitchStyle() - { - LottieUrl = FrameworkInformation.ResourcePath + "nui_wearable_switch_icon.png", - PlayRange = new Selector() - { - Selected = new LottieFrameInfo(0, 18), - Normal = new LottieFrameInfo(19, 36) - }, - Opacity = new Selector() - { - Other = 1.0f, - Pressed = 0.6f, - Disabled = 0.3f, - }, - }); - - theme.AddStyleWithoutClone("Tizen.NUI.Components.Loading", new LoadingStyle() - { - LoadingSize = new Size(360, 360), - }); - - return theme; - } - } -} - -#endif diff --git a/src/Tizen.NUI.Wearable/Tizen.NUI.Wearable.csproj b/src/Tizen.NUI.Wearable/Tizen.NUI.Wearable.csproj deleted file mode 100755 index f123ca76ceb..00000000000 --- a/src/Tizen.NUI.Wearable/Tizen.NUI.Wearable.csproj +++ /dev/null @@ -1,25 +0,0 @@ - - - - net8.0 - Tizen.NUI - $(NoWarn);CS0618 - - - - wearable - - - - - - - - - - - PreserveNewest - - - - \ No newline at end of file diff --git a/src/Tizen.NUI.Wearable/Tizen.NUI.Wearable.sln b/src/Tizen.NUI.Wearable/Tizen.NUI.Wearable.sln deleted file mode 100755 index 0837f67bb2c..00000000000 --- a/src/Tizen.NUI.Wearable/Tizen.NUI.Wearable.sln +++ /dev/null @@ -1,55 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27004.2008 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tizen.NUI.Wearable", "Tizen.NUI.Wearable.csproj", "{742A3CD5-6B46-48A2-A01B-42F69C25E4C1}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tizen.Applications.Common", "..\Tizen.Applications.Common\Tizen.Applications.Common.csproj", "{30335A16-6F46-4ED0-AB6E-C3A42C5DA0FD}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tizen.NUI", "..\Tizen.NUI\Tizen.NUI.csproj", "{E62C42D3-9CE0-4EE4-930B-59AD6B9E84BE}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tizen.Log", "..\Tizen.Log\Tizen.Log.csproj", "{A5E9303A-3BB9-46F3-A68C-8395A0806C66}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tizen", "..\Tizen\Tizen.csproj", "{4ADC956F-2E94-444C-8D3C-DC93EAC390AC}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tizen.System.SystemSettings", "..\Tizen.System.SystemSettings\Tizen.System.SystemSettings.csproj", "{018869DB-9E2F-4475-BADE-74CF46BEB757}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {742A3CD5-6B46-48A2-A01B-42F69C25E4C1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {742A3CD5-6B46-48A2-A01B-42F69C25E4C1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {742A3CD5-6B46-48A2-A01B-42F69C25E4C1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {742A3CD5-6B46-48A2-A01B-42F69C25E4C1}.Release|Any CPU.Build.0 = Release|Any CPU - {30335A16-6F46-4ED0-AB6E-C3A42C5DA0FD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {30335A16-6F46-4ED0-AB6E-C3A42C5DA0FD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {30335A16-6F46-4ED0-AB6E-C3A42C5DA0FD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {30335A16-6F46-4ED0-AB6E-C3A42C5DA0FD}.Release|Any CPU.Build.0 = Release|Any CPU - {E62C42D3-9CE0-4EE4-930B-59AD6B9E84BE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E62C42D3-9CE0-4EE4-930B-59AD6B9E84BE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E62C42D3-9CE0-4EE4-930B-59AD6B9E84BE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E62C42D3-9CE0-4EE4-930B-59AD6B9E84BE}.Release|Any CPU.Build.0 = Release|Any CPU - {A5E9303A-3BB9-46F3-A68C-8395A0806C66}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A5E9303A-3BB9-46F3-A68C-8395A0806C66}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A5E9303A-3BB9-46F3-A68C-8395A0806C66}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A5E9303A-3BB9-46F3-A68C-8395A0806C66}.Release|Any CPU.Build.0 = Release|Any CPU - {4ADC956F-2E94-444C-8D3C-DC93EAC390AC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4ADC956F-2E94-444C-8D3C-DC93EAC390AC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4ADC956F-2E94-444C-8D3C-DC93EAC390AC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4ADC956F-2E94-444C-8D3C-DC93EAC390AC}.Release|Any CPU.Build.0 = Release|Any CPU - {018869DB-9E2F-4475-BADE-74CF46BEB757}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {018869DB-9E2F-4475-BADE-74CF46BEB757}.Debug|Any CPU.Build.0 = Debug|Any CPU - {018869DB-9E2F-4475-BADE-74CF46BEB757}.Release|Any CPU.ActiveCfg = Release|Any CPU - {018869DB-9E2F-4475-BADE-74CF46BEB757}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {06119924-8D1B-4803-84AB-9A6CFDD25B49} - EndGlobalSection -EndGlobal diff --git a/src/Tizen.NUI.Wearable/res/nui_wearable_checkbox_icon.json b/src/Tizen.NUI.Wearable/res/nui_wearable_checkbox_icon.json deleted file mode 100755 index 3074f698741..00000000000 --- a/src/Tizen.NUI.Wearable/res/nui_wearable_checkbox_icon.json +++ /dev/null @@ -1 +0,0 @@ -{"v":"5.6.6","fr":60,"ip":0,"op":40,"w":76,"h":76,"nm":"Basic/03_CONTROLLERS/Check_on","ddd":0,"assets":[{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Left_Arrow","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-45,"ix":10},"p":{"a":0,"k":[30.125,50.375,0],"ix":2},"a":{"a":0,"k":[-18.729,9.537,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":9,"s":[100,0,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":15,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":21,"s":[100,100,100]},{"t":27,"s":[100,0,100]}],"ix":6,"x":"var $bm_rt;\nvar easingPreset = [\n [\n 1,\n 2,\n [\n 'make_bezier_easing',\n [\n 0.25,\n 0.46,\n 0.45,\n 1\n ],\n 'Glide.Out',\n false\n ]\n ],\n [\n 3,\n 4,\n [\n 'make_bezier_easing',\n [\n 0.25,\n 0.46,\n 0.45,\n 1\n ],\n 'Glide.Out',\n false\n ]\n ]\n ];\nfunction easingMaker() {\n var t, d, newProgress, i;\n var n = 0;\n if (numKeys > 0) {\n n = nearestKey(time).index;\n if (key(n).time > time) {\n n--;\n }\n }\n try {\n var key1 = key(n);\n var key2 = key($bm_sum(n, 1));\n } catch (e) {\n return null;\n }\n var expression = null;\n for (var i = 0; i < easingPreset.length; ++i) {\n if (easingPreset[i][0] <= n && easingPreset[i][1] >= n + 1) {\n expression = eval([easingPreset[i][2][0]][0]);\n try {\n expression = expression.apply({}, easingPreset[i][2][1].concat(easingPreset[i][2][3]));\n } catch (e) {\n expression = expression.apply({}, easingPreset[i][2][1]);\n }\n break;\n }\n }\n if (!expression)\n return null;\n var dim = 1;\n try {\n do {\n key(1)[dim];\n } while (++dim);\n } catch (e) {\n }\n t = $bm_sub(time, key1.time);\n d = $bm_sub(key2.time, key1.time);\n if (expression.hasOwnProperty('curviosity') && expression.curviosity || thisProperty.value.constructor === Object) {\n newProgress = expression.executeProgress($bm_div(t, d));\n return thisProperty.valueAtTime($bm_sum(key1.time, $bm_mul(d, newProgress)));\n }\n if (time < key1.time || time > key2.time) {\n return value;\n }\n var result = [];\n for (i = 0; i < dim; ++i) {\n result.push(expression.execute(t, key1[i], $bm_sub(key2[i], key1[i]), d));\n }\n if (result.length === 1)\n return result[0];\n return result;\n}\n$bm_rt = easingMaker() || value;\nfunction sampleCurveY(t) {\n return $bm_mul($bm_sum($bm_mul($bm_sum($bm_mul(this.ay, t), this.by), t), this.cy), t);\n}\nfunction sampleCurveX(t) {\n return $bm_mul($bm_sum($bm_mul($bm_sum($bm_mul(this.ax, t), this.bx), t), this.cx), t);\n}\nfunction sampleCurveDerivativeX(t) {\n return $bm_sum($bm_mul($bm_sum($bm_mul($bm_mul(3, this.ax), t), $bm_mul(2, this.bx)), t), this.cx);\n}\nfunction solveCurveX(x, epsilon) {\n var t2, i, x2, d2, t0, t1;\n for (t2 = x, i = 0; i < 8; i++) {\n x2 = $bm_sub(sampleCurveX.call(this, t2), x);\n if (Math.abs(x2) < epsilon)\n return t2;\n d2 = sampleCurveDerivativeX.call(this, t2);\n if (Math.abs(d2) < 0.000001)\n break;\n t2 = $bm_sub(t2, $bm_div(x2, d2));\n }\n t0 = 0;\n t1 = 1;\n t2 = x;\n if (t2 < t0)\n return t0;\n if (t2 > t1)\n return t1;\n while (t0 < t1) {\n x2 = sampleCurveX.call(this, t2);\n if (Math.abs(x2 - x) < epsilon)\n return t2;\n if (x > x2)\n t0 = t2;\n else\n t1 = t2;\n t2 = $bm_sum($bm_mul($bm_sub(t1, t0), 0.5), t0);\n }\n return t2;\n}\nfunction executeBezier(t, b, e, d) {\n return $bm_sum(b, $bm_mul(e, sampleCurveY.call(this, solveCurveX.call(this, $bm_div(t, d), $bm_div(1, $bm_mul(200, d))))));\n}\nfunction executeBezierProgress(oldProgress) {\n return sampleCurveY.call(this, solveCurveX.call(this, oldProgress, 1 / 200));\n}\nfunction make_bezier_easing(p1x, p1y, p2x, p2y, curviosity) {\n this.cx = $bm_mul(3, p1x);\n this.bx = $bm_sub($bm_mul(3, $bm_sub(p2x, p1x)), this.cx);\n this.ax = $bm_sub($bm_sub(1, this.cx), this.bx);\n this.cy = $bm_mul(3, p1y);\n this.by = $bm_sub($bm_mul(3, $bm_sub(p2y, p1y)), this.cy);\n this.ay = $bm_sub($bm_sub(1, this.cy), this.by);\n this.curviosity = curviosity;\n this.execute = executeBezier;\n this.executeProgress = executeBezierProgress;\n return this;\n}\nfunction executeElasticIn(t, b, c, d) {\n var s = 1.70158;\n var p = 0;\n var a = c;\n if (t === 0)\n return b;\n if ((t /= d) === 1)\n return $bm_sum(b, c);\n if (!p)\n p = $bm_mul(d, 0.3);\n if (a < Math.abs(c)) {\n a = c;\n s = $bm_div(p, 4);\n } else\n s = $bm_mul($bm_div(p, $bm_mul(2, Math.PI)), Math.asin(1));\n return $bm_sum($bm_neg($bm_mul($bm_mul(a, Math.pow(2, $bm_mul(10, t -= 1))), Math.sin($bm_div($bm_mul($bm_sub($bm_mul(t, d), s), $bm_mul(2, Math.PI)), p)))), b);\n}\nfunction executeElasticOut(t, b, c, d) {\n var s = 1.70158;\n var p = 0;\n var a = c;\n if (t === 0)\n return b;\n if ((t /= d) === 1)\n return $bm_sum(b, c);\n if (!p)\n p = $bm_mul(d, 0.3);\n if (a < Math.abs(c)) {\n a = c;\n s = $bm_div(p, 4);\n } else\n s = $bm_mul($bm_div(p, $bm_mul(2, Math.PI)), Math.asin(1));\n return $bm_sum($bm_sum($bm_mul($bm_mul(a, Math.pow(2, $bm_mul(-10, t))), Math.sin($bm_div($bm_mul($bm_sub($bm_mul(t, d), s), $bm_mul(2, Math.PI)), p))), c), b);\n}\nfunction executeElasticInOut(t, b, c, d) {\n var s = 1.70158;\n var p = 0;\n var a = c;\n if (t === 0)\n return b;\n if ((t /= d / 2) === 2)\n return $bm_sum(b, c);\n if (!p)\n p = $bm_mul(d, 0.3 * 1.5);\n if (a < Math.abs(c)) {\n a = c;\n s = $bm_div(p, 4);\n } else\n s = $bm_mul($bm_div(p, $bm_mul(2, Math.PI)), Math.asin(1));\n if (t < 1)\n return $bm_sum($bm_mul(-0.5, $bm_mul($bm_mul(a, Math.pow(2, $bm_mul(10, t -= 1))), Math.sin($bm_div($bm_mul($bm_sub($bm_mul(t, d), s), $bm_mul(2, Math.PI)), p)))), b);\n return $bm_sum($bm_sum($bm_mul($bm_mul($bm_mul(a, Math.pow(2, $bm_mul(-10, t -= 1))), Math.sin($bm_div($bm_mul($bm_sub($bm_mul(t, d), s), $bm_mul(2, Math.PI)), p))), 0.5), c), b);\n}\nfunction executeElasticInProgress(Progress) {\n return Progress === 0 ? 0 : Progress === 1 ? 1 : -Math.pow(2, 10 * Progress - 10) * Math.sin((Progress * 10 - 10.75) * (2 * Math.PI / 3));\n}\nfunction executeElasticOutProgress(Progress) {\n return Progress === 0 ? 0 : Progress === 1 ? 1 : Math.pow(2, -10 * Progress) * Math.sin((Progress * 10 - 0.75) * (2 * Math.PI / 3)) + 1;\n}\nfunction executeElasticInOutProgress(Progress) {\n return Progress === 0 ? 0 : Progress === 1 ? 1 : Progress < 0.5 ? -(Math.pow(2, 20 * Progress - 10) * Math.sin((20 * Progress - 11.125) * (2 * Math.PI / 4.5))) / 2 : Math.pow(2, -20 * Progress + 10) * Math.sin((20 * Progress - 11.125) * (2 * Math.PI / 4.5)) / 2 + 1;\n}\nfunction make_elastic_easing_in(curviosity) {\n this.execute = executeElasticIn;\n this.executeProgress = executeElasticInProgress;\n this.curviosity = curviosity;\n return this;\n}\nfunction make_elastic_easing_out(curviosity) {\n this.execute = executeElasticOut;\n this.executeProgress = executeElasticOutProgress;\n this.curviosity = curviosity;\n return this;\n}\nfunction make_elastic_easing_in_out(curviosity) {\n this.execute = executeElasticInOut;\n this.executeProgress = executeElasticInOutProgress;\n this.curviosity = curviosity;\n return this;\n}\nfunction executeBounceIn(t, b, c, d) {\n return $bm_sum($bm_sub(c, executeBounceOut($bm_sub(d, t), 0, c, d)), b);\n}\nfunction executeBounceOut(t, b, c, d) {\n if ((t /= d) < 1 / 2.75) {\n return $bm_sum($bm_mul(c, $bm_mul($bm_mul(7.5625, t), t)), b);\n } else if (t < 2 / 2.75) {\n return $bm_sum($bm_mul(c, $bm_sum($bm_mul($bm_mul(7.5625, t -= 1.5 / 2.75), t), 0.75)), b);\n } else if (t < 2.5 / 2.75) {\n return $bm_sum($bm_mul(c, $bm_sum($bm_mul($bm_mul(7.5625, t -= 2.25 / 2.75), t), 0.9375)), b);\n } else {\n return $bm_sum($bm_mul(c, $bm_sum($bm_mul($bm_mul(7.5625, t -= 2.625 / 2.75), t), 0.984375)), b);\n }\n}\nfunction executeBounceInOut(t, b, c, d) {\n if (t < $bm_div(d, 2))\n return $bm_sum($bm_mul(executeBounceIn($bm_mul(t, 2), 0, c, d), 0.5), b);\n return $bm_sum($bm_sum($bm_mul(executeBounceOut($bm_sub($bm_mul(t, 2), d), 0, c, d), 0.5), $bm_mul(c, 0.5)), b);\n}\nfunction executeBounceInProgress(oldProgress) {\n return $bm_sub(1, executeBounceOut($bm_sub(1, oldProgress)));\n}\nfunction executeBounceOutProgress(oldProgress) {\n if (oldProgress < 1 / 2.75) {\n return $bm_mul($bm_mul(7.5625, oldProgress), oldProgress);\n } else if (oldProgress < 2 / 2.75) {\n return $bm_sum($bm_mul($bm_mul(7.5625, oldProgress -= 1.5 / 2.75), oldProgress), 0.75);\n } else if (oldProgress < 2.5 / 2.75) {\n return $bm_sum($bm_mul($bm_mul(7.5625, oldProgress -= 2.25 / 2.75), oldProgress), 0.9375);\n } else {\n return $bm_sum($bm_mul($bm_mul(7.5625, oldProgress -= 2.625 / 2.75), oldProgress), 0.984375);\n }\n}\nfunction executeBounceInOutProgress(oldProgress) {\n if (oldProgress < 1 / 2)\n return $bm_mul(executeBounceIn($bm_mul(oldProgress, 2)), 0.5);\n return $bm_sum($bm_mul(executeBounceOut($bm_sub($bm_mul(oldProgress, 2), 1)), 0.5), 0.5);\n}\nfunction make_bounce_easing_in(curviosity) {\n this.execute = executeBounceIn;\n this.executeProgress = executeBounceInProgress;\n this.curviosity = curviosity;\n return this;\n}\nfunction make_bounce_easing_out(curviosity) {\n this.execute = executeBounceOut;\n this.executeProgress = executeBounceOutProgress;\n this.curviosity = curviosity;\n return this;\n}\nfunction make_bounce_easing_in_out(curviosity) {\n this.execute = executeBounceInOut;\n this.executeProgress = executeBounceInOutProgress;\n this.curviosity = curviosity;\n return this;\n}"}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[6,24],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-18.5,0.875],"ix":2},"a":{"a":0,"k":[0.125,0.25],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Right_Arrow","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":45,"ix":10},"p":{"a":0,"k":[28.188,52.687,0],"ix":2},"a":{"a":0,"k":[-18.11,12.984,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":9,"s":[100,0,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":15,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":21,"s":[100,100,100]},{"t":27,"s":[100,0,100]}],"ix":6,"x":"var $bm_rt;\nvar easingPreset = [\n [\n 1,\n 2,\n [\n 'make_bezier_easing',\n [\n 0.25,\n 0.46,\n 0.45,\n 1\n ],\n 'Glide.Out',\n false\n ]\n ],\n [\n 3,\n 4,\n [\n 'make_bezier_easing',\n [\n 0.25,\n 0.46,\n 0.45,\n 1\n ],\n 'Glide.Out',\n false\n ]\n ]\n ];\nfunction easingMaker() {\n var t, d, newProgress, i;\n var n = 0;\n if (numKeys > 0) {\n n = nearestKey(time).index;\n if (key(n).time > time) {\n n--;\n }\n }\n try {\n var key1 = key(n);\n var key2 = key($bm_sum(n, 1));\n } catch (e) {\n return null;\n }\n var expression = null;\n for (var i = 0; i < easingPreset.length; ++i) {\n if (easingPreset[i][0] <= n && easingPreset[i][1] >= n + 1) {\n expression = eval([easingPreset[i][2][0]][0]);\n try {\n expression = expression.apply({}, easingPreset[i][2][1].concat(easingPreset[i][2][3]));\n } catch (e) {\n expression = expression.apply({}, easingPreset[i][2][1]);\n }\n break;\n }\n }\n if (!expression)\n return null;\n var dim = 1;\n try {\n do {\n key(1)[dim];\n } while (++dim);\n } catch (e) {\n }\n t = $bm_sub(time, key1.time);\n d = $bm_sub(key2.time, key1.time);\n if (expression.hasOwnProperty('curviosity') && expression.curviosity || thisProperty.value.constructor === Object) {\n newProgress = expression.executeProgress($bm_div(t, d));\n return thisProperty.valueAtTime($bm_sum(key1.time, $bm_mul(d, newProgress)));\n }\n if (time < key1.time || time > key2.time) {\n return value;\n }\n var result = [];\n for (i = 0; i < dim; ++i) {\n result.push(expression.execute(t, key1[i], $bm_sub(key2[i], key1[i]), d));\n }\n if (result.length === 1)\n return result[0];\n return result;\n}\n$bm_rt = easingMaker() || value;\nfunction sampleCurveY(t) {\n return $bm_mul($bm_sum($bm_mul($bm_sum($bm_mul(this.ay, t), this.by), t), this.cy), t);\n}\nfunction sampleCurveX(t) {\n return $bm_mul($bm_sum($bm_mul($bm_sum($bm_mul(this.ax, t), this.bx), t), this.cx), t);\n}\nfunction sampleCurveDerivativeX(t) {\n return $bm_sum($bm_mul($bm_sum($bm_mul($bm_mul(3, this.ax), t), $bm_mul(2, this.bx)), t), this.cx);\n}\nfunction solveCurveX(x, epsilon) {\n var t2, i, x2, d2, t0, t1;\n for (t2 = x, i = 0; i < 8; i++) {\n x2 = $bm_sub(sampleCurveX.call(this, t2), x);\n if (Math.abs(x2) < epsilon)\n return t2;\n d2 = sampleCurveDerivativeX.call(this, t2);\n if (Math.abs(d2) < 0.000001)\n break;\n t2 = $bm_sub(t2, $bm_div(x2, d2));\n }\n t0 = 0;\n t1 = 1;\n t2 = x;\n if (t2 < t0)\n return t0;\n if (t2 > t1)\n return t1;\n while (t0 < t1) {\n x2 = sampleCurveX.call(this, t2);\n if (Math.abs(x2 - x) < epsilon)\n return t2;\n if (x > x2)\n t0 = t2;\n else\n t1 = t2;\n t2 = $bm_sum($bm_mul($bm_sub(t1, t0), 0.5), t0);\n }\n return t2;\n}\nfunction executeBezier(t, b, e, d) {\n return $bm_sum(b, $bm_mul(e, sampleCurveY.call(this, solveCurveX.call(this, $bm_div(t, d), $bm_div(1, $bm_mul(200, d))))));\n}\nfunction executeBezierProgress(oldProgress) {\n return sampleCurveY.call(this, solveCurveX.call(this, oldProgress, 1 / 200));\n}\nfunction make_bezier_easing(p1x, p1y, p2x, p2y, curviosity) {\n this.cx = $bm_mul(3, p1x);\n this.bx = $bm_sub($bm_mul(3, $bm_sub(p2x, p1x)), this.cx);\n this.ax = $bm_sub($bm_sub(1, this.cx), this.bx);\n this.cy = $bm_mul(3, p1y);\n this.by = $bm_sub($bm_mul(3, $bm_sub(p2y, p1y)), this.cy);\n this.ay = $bm_sub($bm_sub(1, this.cy), this.by);\n this.curviosity = curviosity;\n this.execute = executeBezier;\n this.executeProgress = executeBezierProgress;\n return this;\n}\nfunction executeElasticIn(t, b, c, d) {\n var s = 1.70158;\n var p = 0;\n var a = c;\n if (t === 0)\n return b;\n if ((t /= d) === 1)\n return $bm_sum(b, c);\n if (!p)\n p = $bm_mul(d, 0.3);\n if (a < Math.abs(c)) {\n a = c;\n s = $bm_div(p, 4);\n } else\n s = $bm_mul($bm_div(p, $bm_mul(2, Math.PI)), Math.asin(1));\n return $bm_sum($bm_neg($bm_mul($bm_mul(a, Math.pow(2, $bm_mul(10, t -= 1))), Math.sin($bm_div($bm_mul($bm_sub($bm_mul(t, d), s), $bm_mul(2, Math.PI)), p)))), b);\n}\nfunction executeElasticOut(t, b, c, d) {\n var s = 1.70158;\n var p = 0;\n var a = c;\n if (t === 0)\n return b;\n if ((t /= d) === 1)\n return $bm_sum(b, c);\n if (!p)\n p = $bm_mul(d, 0.3);\n if (a < Math.abs(c)) {\n a = c;\n s = $bm_div(p, 4);\n } else\n s = $bm_mul($bm_div(p, $bm_mul(2, Math.PI)), Math.asin(1));\n return $bm_sum($bm_sum($bm_mul($bm_mul(a, Math.pow(2, $bm_mul(-10, t))), Math.sin($bm_div($bm_mul($bm_sub($bm_mul(t, d), s), $bm_mul(2, Math.PI)), p))), c), b);\n}\nfunction executeElasticInOut(t, b, c, d) {\n var s = 1.70158;\n var p = 0;\n var a = c;\n if (t === 0)\n return b;\n if ((t /= d / 2) === 2)\n return $bm_sum(b, c);\n if (!p)\n p = $bm_mul(d, 0.3 * 1.5);\n if (a < Math.abs(c)) {\n a = c;\n s = $bm_div(p, 4);\n } else\n s = $bm_mul($bm_div(p, $bm_mul(2, Math.PI)), Math.asin(1));\n if (t < 1)\n return $bm_sum($bm_mul(-0.5, $bm_mul($bm_mul(a, Math.pow(2, $bm_mul(10, t -= 1))), Math.sin($bm_div($bm_mul($bm_sub($bm_mul(t, d), s), $bm_mul(2, Math.PI)), p)))), b);\n return $bm_sum($bm_sum($bm_mul($bm_mul($bm_mul(a, Math.pow(2, $bm_mul(-10, t -= 1))), Math.sin($bm_div($bm_mul($bm_sub($bm_mul(t, d), s), $bm_mul(2, Math.PI)), p))), 0.5), c), b);\n}\nfunction executeElasticInProgress(Progress) {\n return Progress === 0 ? 0 : Progress === 1 ? 1 : -Math.pow(2, 10 * Progress - 10) * Math.sin((Progress * 10 - 10.75) * (2 * Math.PI / 3));\n}\nfunction executeElasticOutProgress(Progress) {\n return Progress === 0 ? 0 : Progress === 1 ? 1 : Math.pow(2, -10 * Progress) * Math.sin((Progress * 10 - 0.75) * (2 * Math.PI / 3)) + 1;\n}\nfunction executeElasticInOutProgress(Progress) {\n return Progress === 0 ? 0 : Progress === 1 ? 1 : Progress < 0.5 ? -(Math.pow(2, 20 * Progress - 10) * Math.sin((20 * Progress - 11.125) * (2 * Math.PI / 4.5))) / 2 : Math.pow(2, -20 * Progress + 10) * Math.sin((20 * Progress - 11.125) * (2 * Math.PI / 4.5)) / 2 + 1;\n}\nfunction make_elastic_easing_in(curviosity) {\n this.execute = executeElasticIn;\n this.executeProgress = executeElasticInProgress;\n this.curviosity = curviosity;\n return this;\n}\nfunction make_elastic_easing_out(curviosity) {\n this.execute = executeElasticOut;\n this.executeProgress = executeElasticOutProgress;\n this.curviosity = curviosity;\n return this;\n}\nfunction make_elastic_easing_in_out(curviosity) {\n this.execute = executeElasticInOut;\n this.executeProgress = executeElasticInOutProgress;\n this.curviosity = curviosity;\n return this;\n}\nfunction executeBounceIn(t, b, c, d) {\n return $bm_sum($bm_sub(c, executeBounceOut($bm_sub(d, t), 0, c, d)), b);\n}\nfunction executeBounceOut(t, b, c, d) {\n if ((t /= d) < 1 / 2.75) {\n return $bm_sum($bm_mul(c, $bm_mul($bm_mul(7.5625, t), t)), b);\n } else if (t < 2 / 2.75) {\n return $bm_sum($bm_mul(c, $bm_sum($bm_mul($bm_mul(7.5625, t -= 1.5 / 2.75), t), 0.75)), b);\n } else if (t < 2.5 / 2.75) {\n return $bm_sum($bm_mul(c, $bm_sum($bm_mul($bm_mul(7.5625, t -= 2.25 / 2.75), t), 0.9375)), b);\n } else {\n return $bm_sum($bm_mul(c, $bm_sum($bm_mul($bm_mul(7.5625, t -= 2.625 / 2.75), t), 0.984375)), b);\n }\n}\nfunction executeBounceInOut(t, b, c, d) {\n if (t < $bm_div(d, 2))\n return $bm_sum($bm_mul(executeBounceIn($bm_mul(t, 2), 0, c, d), 0.5), b);\n return $bm_sum($bm_sum($bm_mul(executeBounceOut($bm_sub($bm_mul(t, 2), d), 0, c, d), 0.5), $bm_mul(c, 0.5)), b);\n}\nfunction executeBounceInProgress(oldProgress) {\n return $bm_sub(1, executeBounceOut($bm_sub(1, oldProgress)));\n}\nfunction executeBounceOutProgress(oldProgress) {\n if (oldProgress < 1 / 2.75) {\n return $bm_mul($bm_mul(7.5625, oldProgress), oldProgress);\n } else if (oldProgress < 2 / 2.75) {\n return $bm_sum($bm_mul($bm_mul(7.5625, oldProgress -= 1.5 / 2.75), oldProgress), 0.75);\n } else if (oldProgress < 2.5 / 2.75) {\n return $bm_sum($bm_mul($bm_mul(7.5625, oldProgress -= 2.25 / 2.75), oldProgress), 0.9375);\n } else {\n return $bm_sum($bm_mul($bm_mul(7.5625, oldProgress -= 2.625 / 2.75), oldProgress), 0.984375);\n }\n}\nfunction executeBounceInOutProgress(oldProgress) {\n if (oldProgress < 1 / 2)\n return $bm_mul(executeBounceIn($bm_mul(oldProgress, 2)), 0.5);\n return $bm_sum($bm_mul(executeBounceOut($bm_sub($bm_mul(oldProgress, 2), 1)), 0.5), 0.5);\n}\nfunction make_bounce_easing_in(curviosity) {\n this.execute = executeBounceIn;\n this.executeProgress = executeBounceInProgress;\n this.curviosity = curviosity;\n return this;\n}\nfunction make_bounce_easing_out(curviosity) {\n this.execute = executeBounceOut;\n this.executeProgress = executeBounceOutProgress;\n this.curviosity = curviosity;\n return this;\n}\nfunction make_bounce_easing_in_out(curviosity) {\n this.execute = executeBounceInOut;\n this.executeProgress = executeBounceInOutProgress;\n this.curviosity = curviosity;\n return this;\n}"}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[6,44],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-18.125,-8.875],"ix":2},"a":{"a":0,"k":[0.125,0.25],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":180,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"Arrow","td":1,"refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[38,38,0],"ix":2},"a":{"a":0,"k":[38,38,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":76,"h":76,"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Circle_BG 2","tt":2,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":18,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":19,"s":[100]},{"t":38,"s":[0]}],"ix":11,"x":"var $bm_rt;\nvar easingPreset = [\n [\n 1,\n 2,\n [\n 'make_bezier_easing',\n [\n 0.25,\n 0.46,\n 0.45,\n 1\n ],\n 'Glide.Out',\n false\n ]\n ],\n [\n 3,\n 4,\n [\n 'make_bezier_easing',\n [\n 0.25,\n 0.46,\n 0.45,\n 1\n ],\n 'Glide.Out',\n false\n ]\n ]\n ];\nfunction easingMaker() {\n var t, d, newProgress, i;\n var n = 0;\n if (numKeys > 0) {\n n = nearestKey(time).index;\n if (key(n).time > time) {\n n--;\n }\n }\n try {\n var key1 = key(n);\n var key2 = key($bm_sum(n, 1));\n } catch (e) {\n return null;\n }\n var expression = null;\n for (var i = 0; i < easingPreset.length; ++i) {\n if (easingPreset[i][0] <= n && easingPreset[i][1] >= n + 1) {\n expression = eval([easingPreset[i][2][0]][0]);\n try {\n expression = expression.apply({}, easingPreset[i][2][1].concat(easingPreset[i][2][3]));\n } catch (e) {\n expression = expression.apply({}, easingPreset[i][2][1]);\n }\n break;\n }\n }\n if (!expression)\n return null;\n var dim = 1;\n try {\n do {\n key(1)[dim];\n } while (++dim);\n } catch (e) {\n }\n t = $bm_sub(time, key1.time);\n d = $bm_sub(key2.time, key1.time);\n if (expression.hasOwnProperty('curviosity') && expression.curviosity || thisProperty.value.constructor === Object) {\n newProgress = expression.executeProgress($bm_div(t, d));\n return thisProperty.valueAtTime($bm_sum(key1.time, $bm_mul(d, newProgress)));\n }\n if (time < key1.time || time > key2.time) {\n return value;\n }\n var result = [];\n for (i = 0; i < dim; ++i) {\n result.push(expression.execute(t, key1[i], $bm_sub(key2[i], key1[i]), d));\n }\n if (result.length === 1)\n return result[0];\n return result;\n}\n$bm_rt = easingMaker() || value;\nfunction sampleCurveY(t) {\n return $bm_mul($bm_sum($bm_mul($bm_sum($bm_mul(this.ay, t), this.by), t), this.cy), t);\n}\nfunction sampleCurveX(t) {\n return $bm_mul($bm_sum($bm_mul($bm_sum($bm_mul(this.ax, t), this.bx), t), this.cx), t);\n}\nfunction sampleCurveDerivativeX(t) {\n return $bm_sum($bm_mul($bm_sum($bm_mul($bm_mul(3, this.ax), t), $bm_mul(2, this.bx)), t), this.cx);\n}\nfunction solveCurveX(x, epsilon) {\n var t2, i, x2, d2, t0, t1;\n for (t2 = x, i = 0; i < 8; i++) {\n x2 = $bm_sub(sampleCurveX.call(this, t2), x);\n if (Math.abs(x2) < epsilon)\n return t2;\n d2 = sampleCurveDerivativeX.call(this, t2);\n if (Math.abs(d2) < 0.000001)\n break;\n t2 = $bm_sub(t2, $bm_div(x2, d2));\n }\n t0 = 0;\n t1 = 1;\n t2 = x;\n if (t2 < t0)\n return t0;\n if (t2 > t1)\n return t1;\n while (t0 < t1) {\n x2 = sampleCurveX.call(this, t2);\n if (Math.abs(x2 - x) < epsilon)\n return t2;\n if (x > x2)\n t0 = t2;\n else\n t1 = t2;\n t2 = $bm_sum($bm_mul($bm_sub(t1, t0), 0.5), t0);\n }\n return t2;\n}\nfunction executeBezier(t, b, e, d) {\n return $bm_sum(b, $bm_mul(e, sampleCurveY.call(this, solveCurveX.call(this, $bm_div(t, d), $bm_div(1, $bm_mul(200, d))))));\n}\nfunction executeBezierProgress(oldProgress) {\n return sampleCurveY.call(this, solveCurveX.call(this, oldProgress, 1 / 200));\n}\nfunction make_bezier_easing(p1x, p1y, p2x, p2y, curviosity) {\n this.cx = $bm_mul(3, p1x);\n this.bx = $bm_sub($bm_mul(3, $bm_sub(p2x, p1x)), this.cx);\n this.ax = $bm_sub($bm_sub(1, this.cx), this.bx);\n this.cy = $bm_mul(3, p1y);\n this.by = $bm_sub($bm_mul(3, $bm_sub(p2y, p1y)), this.cy);\n this.ay = $bm_sub($bm_sub(1, this.cy), this.by);\n this.curviosity = curviosity;\n this.execute = executeBezier;\n this.executeProgress = executeBezierProgress;\n return this;\n}\nfunction executeElasticIn(t, b, c, d) {\n var s = 1.70158;\n var p = 0;\n var a = c;\n if (t === 0)\n return b;\n if ((t /= d) === 1)\n return $bm_sum(b, c);\n if (!p)\n p = $bm_mul(d, 0.3);\n if (a < Math.abs(c)) {\n a = c;\n s = $bm_div(p, 4);\n } else\n s = $bm_mul($bm_div(p, $bm_mul(2, Math.PI)), Math.asin(1));\n return $bm_sum($bm_neg($bm_mul($bm_mul(a, Math.pow(2, $bm_mul(10, t -= 1))), Math.sin($bm_div($bm_mul($bm_sub($bm_mul(t, d), s), $bm_mul(2, Math.PI)), p)))), b);\n}\nfunction executeElasticOut(t, b, c, d) {\n var s = 1.70158;\n var p = 0;\n var a = c;\n if (t === 0)\n return b;\n if ((t /= d) === 1)\n return $bm_sum(b, c);\n if (!p)\n p = $bm_mul(d, 0.3);\n if (a < Math.abs(c)) {\n a = c;\n s = $bm_div(p, 4);\n } else\n s = $bm_mul($bm_div(p, $bm_mul(2, Math.PI)), Math.asin(1));\n return $bm_sum($bm_sum($bm_mul($bm_mul(a, Math.pow(2, $bm_mul(-10, t))), Math.sin($bm_div($bm_mul($bm_sub($bm_mul(t, d), s), $bm_mul(2, Math.PI)), p))), c), b);\n}\nfunction executeElasticInOut(t, b, c, d) {\n var s = 1.70158;\n var p = 0;\n var a = c;\n if (t === 0)\n return b;\n if ((t /= d / 2) === 2)\n return $bm_sum(b, c);\n if (!p)\n p = $bm_mul(d, 0.3 * 1.5);\n if (a < Math.abs(c)) {\n a = c;\n s = $bm_div(p, 4);\n } else\n s = $bm_mul($bm_div(p, $bm_mul(2, Math.PI)), Math.asin(1));\n if (t < 1)\n return $bm_sum($bm_mul(-0.5, $bm_mul($bm_mul(a, Math.pow(2, $bm_mul(10, t -= 1))), Math.sin($bm_div($bm_mul($bm_sub($bm_mul(t, d), s), $bm_mul(2, Math.PI)), p)))), b);\n return $bm_sum($bm_sum($bm_mul($bm_mul($bm_mul(a, Math.pow(2, $bm_mul(-10, t -= 1))), Math.sin($bm_div($bm_mul($bm_sub($bm_mul(t, d), s), $bm_mul(2, Math.PI)), p))), 0.5), c), b);\n}\nfunction executeElasticInProgress(Progress) {\n return Progress === 0 ? 0 : Progress === 1 ? 1 : -Math.pow(2, 10 * Progress - 10) * Math.sin((Progress * 10 - 10.75) * (2 * Math.PI / 3));\n}\nfunction executeElasticOutProgress(Progress) {\n return Progress === 0 ? 0 : Progress === 1 ? 1 : Math.pow(2, -10 * Progress) * Math.sin((Progress * 10 - 0.75) * (2 * Math.PI / 3)) + 1;\n}\nfunction executeElasticInOutProgress(Progress) {\n return Progress === 0 ? 0 : Progress === 1 ? 1 : Progress < 0.5 ? -(Math.pow(2, 20 * Progress - 10) * Math.sin((20 * Progress - 11.125) * (2 * Math.PI / 4.5))) / 2 : Math.pow(2, -20 * Progress + 10) * Math.sin((20 * Progress - 11.125) * (2 * Math.PI / 4.5)) / 2 + 1;\n}\nfunction make_elastic_easing_in(curviosity) {\n this.execute = executeElasticIn;\n this.executeProgress = executeElasticInProgress;\n this.curviosity = curviosity;\n return this;\n}\nfunction make_elastic_easing_out(curviosity) {\n this.execute = executeElasticOut;\n this.executeProgress = executeElasticOutProgress;\n this.curviosity = curviosity;\n return this;\n}\nfunction make_elastic_easing_in_out(curviosity) {\n this.execute = executeElasticInOut;\n this.executeProgress = executeElasticInOutProgress;\n this.curviosity = curviosity;\n return this;\n}\nfunction executeBounceIn(t, b, c, d) {\n return $bm_sum($bm_sub(c, executeBounceOut($bm_sub(d, t), 0, c, d)), b);\n}\nfunction executeBounceOut(t, b, c, d) {\n if ((t /= d) < 1 / 2.75) {\n return $bm_sum($bm_mul(c, $bm_mul($bm_mul(7.5625, t), t)), b);\n } else if (t < 2 / 2.75) {\n return $bm_sum($bm_mul(c, $bm_sum($bm_mul($bm_mul(7.5625, t -= 1.5 / 2.75), t), 0.75)), b);\n } else if (t < 2.5 / 2.75) {\n return $bm_sum($bm_mul(c, $bm_sum($bm_mul($bm_mul(7.5625, t -= 2.25 / 2.75), t), 0.9375)), b);\n } else {\n return $bm_sum($bm_mul(c, $bm_sum($bm_mul($bm_mul(7.5625, t -= 2.625 / 2.75), t), 0.984375)), b);\n }\n}\nfunction executeBounceInOut(t, b, c, d) {\n if (t < $bm_div(d, 2))\n return $bm_sum($bm_mul(executeBounceIn($bm_mul(t, 2), 0, c, d), 0.5), b);\n return $bm_sum($bm_sum($bm_mul(executeBounceOut($bm_sub($bm_mul(t, 2), d), 0, c, d), 0.5), $bm_mul(c, 0.5)), b);\n}\nfunction executeBounceInProgress(oldProgress) {\n return $bm_sub(1, executeBounceOut($bm_sub(1, oldProgress)));\n}\nfunction executeBounceOutProgress(oldProgress) {\n if (oldProgress < 1 / 2.75) {\n return $bm_mul($bm_mul(7.5625, oldProgress), oldProgress);\n } else if (oldProgress < 2 / 2.75) {\n return $bm_sum($bm_mul($bm_mul(7.5625, oldProgress -= 1.5 / 2.75), oldProgress), 0.75);\n } else if (oldProgress < 2.5 / 2.75) {\n return $bm_sum($bm_mul($bm_mul(7.5625, oldProgress -= 2.25 / 2.75), oldProgress), 0.9375);\n } else {\n return $bm_sum($bm_mul($bm_mul(7.5625, oldProgress -= 2.625 / 2.75), oldProgress), 0.984375);\n }\n}\nfunction executeBounceInOutProgress(oldProgress) {\n if (oldProgress < 1 / 2)\n return $bm_mul(executeBounceIn($bm_mul(oldProgress, 2)), 0.5);\n return $bm_sum($bm_mul(executeBounceOut($bm_sub($bm_mul(oldProgress, 2), 1)), 0.5), 0.5);\n}\nfunction make_bounce_easing_in(curviosity) {\n this.execute = executeBounceIn;\n this.executeProgress = executeBounceInProgress;\n this.curviosity = curviosity;\n return this;\n}\nfunction make_bounce_easing_out(curviosity) {\n this.execute = executeBounceOut;\n this.executeProgress = executeBounceOutProgress;\n this.curviosity = curviosity;\n return this;\n}\nfunction make_bounce_easing_in_out(curviosity) {\n this.execute = executeBounceInOut;\n this.executeProgress = executeBounceInOutProgress;\n this.curviosity = curviosity;\n return this;\n}"},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[41.5,41,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[67,67],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.258823543787,0.592156887054,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-3.562,-3.062],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[113.244,113.244],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[39.125,40.875,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[72,72],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.631372570992,0.631372570992,0.631372570992,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-1.562,-3.188],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":180,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/src/Tizen.NUI.Wearable/res/nui_wearable_circular_pagination_center_focus_dot.png b/src/Tizen.NUI.Wearable/res/nui_wearable_circular_pagination_center_focus_dot.png deleted file mode 100755 index 55e832abe4b..00000000000 Binary files a/src/Tizen.NUI.Wearable/res/nui_wearable_circular_pagination_center_focus_dot.png and /dev/null differ diff --git a/src/Tizen.NUI.Wearable/res/nui_wearable_circular_pagination_center_normal_dot.png b/src/Tizen.NUI.Wearable/res/nui_wearable_circular_pagination_center_normal_dot.png deleted file mode 100755 index 74e446666bb..00000000000 Binary files a/src/Tizen.NUI.Wearable/res/nui_wearable_circular_pagination_center_normal_dot.png and /dev/null differ diff --git a/src/Tizen.NUI.Wearable/res/nui_wearable_radiobutton_icon.json b/src/Tizen.NUI.Wearable/res/nui_wearable_radiobutton_icon.json deleted file mode 100755 index 0adc84fbcf7..00000000000 --- a/src/Tizen.NUI.Wearable/res/nui_wearable_radiobutton_icon.json +++ /dev/null @@ -1 +0,0 @@ -{"v":"5.6.6","fr":60,"ip":0,"op":26,"w":64,"h":64,"nm":"[Watch2018] RadioButtonVI_360_json_64x64","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"checkbox_center_circle","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":12,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":13,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":25,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":210.16,"s":[100]},{"t":222.2265625,"s":[0]}],"ix":11,"x":"var $bm_rt;\nvar easingPreset = [[\n 1,\n 4,\n [\n 'make_bezier_easing',\n [\n 0.25,\n 0.46,\n 0.45,\n 1\n ],\n 'Glide.Out',\n false\n ]\n ]];\nfunction easingMaker() {\n var t, d, newProgress;\n var n = 0;\n if (numKeys > 0) {\n n = nearestKey(time).index;\n if (key(n).time > time) {\n n--;\n }\n }\n try {\n var key1 = key(n);\n var key2 = key($bm_sum(n, 1));\n } catch (e) {\n return null;\n }\n var expression = null;\n for (var i = 0; i < easingPreset.length; ++i) {\n if (easingPreset[i][0] <= n && easingPreset[i][1] >= n + 1) {\n var expression = eval([easingPreset[i][2][0]][0]);\n try {\n expression = expression.apply({}, easingPreset[i][2][1].concat(easingPreset[i][2][3]));\n } catch (e) {\n expression = expression.apply({}, easingPreset[i][2][1]);\n }\n break;\n }\n }\n if (!expression)\n return null;\n var dim = 1;\n try {\n do {\n key(1)[dim];\n } while (++dim);\n } catch (e) {\n }\n t = $bm_sub(time, key1.time);\n d = $bm_sub(key2.time, key1.time);\n if (expression.hasOwnProperty('curviosity') && expression.curviosity || thisProperty.value.constructor === Object) {\n newProgress = expression.executeProgress($bm_div(t, d));\n return thisProperty.valueAtTime($bm_sum(key1.time, $bm_mul(d, newProgress)));\n }\n if (time < key1.time || time > key2.time) {\n return value;\n }\n var result = [];\n var i = 0;\n for (; i < dim; ++i) {\n result.push(expression.execute(t, key1[i], $bm_sub(key2[i], key1[i]), d));\n }\n if (result.length === 1)\n return result[0];\n return result;\n}\n$bm_rt = easingMaker() || value;\nfunction sampleCurveY(t) {\n return $bm_mul($bm_sum($bm_mul($bm_sum($bm_mul(this.ay, t), this.by), t), this.cy), t);\n}\nfunction sampleCurveX(t) {\n return $bm_mul($bm_sum($bm_mul($bm_sum($bm_mul(this.ax, t), this.bx), t), this.cx), t);\n}\nfunction sampleCurveDerivativeX(t) {\n return $bm_sum($bm_mul($bm_sum($bm_mul($bm_mul(3, this.ax), t), $bm_mul(2, this.bx)), t), this.cx);\n}\nfunction solveCurveX(x, epsilon) {\n var t2, i, x2, d2, t0, t1;\n for (t2 = x, i = 0; i < 8; i++) {\n x2 = $bm_sub(sampleCurveX.call(this, t2), x);\n if (Math.abs(x2) < epsilon)\n return t2;\n d2 = sampleCurveDerivativeX.call(this, t2);\n if (Math.abs(d2) < 0.000001)\n break;\n t2 = $bm_sub(t2, $bm_div(x2, d2));\n }\n t0 = 0;\n t1 = 1;\n t2 = x;\n if (t2 < t0)\n return t0;\n if (t2 > t1)\n return t1;\n while (t0 < t1) {\n x2 = sampleCurveX.call(this, t2);\n if (Math.abs(x2 - x) < epsilon)\n return t2;\n if (x > x2)\n t0 = t2;\n else\n t1 = t2;\n t2 = $bm_sum($bm_mul($bm_sub(t1, t0), 0.5), t0);\n }\n return t2;\n}\nfunction executeBezier(t, b, e, d) {\n return $bm_sum(b, $bm_mul(e, sampleCurveY.call(this, solveCurveX.call(this, $bm_div(t, d), $bm_div(1, $bm_mul(200, d))))));\n}\nfunction executeBezierProgress(oldProgress) {\n return sampleCurveY.call(this, solveCurveX.call(this, oldProgress, 1 / 200));\n}\nfunction make_bezier_easing(p1x, p1y, p2x, p2y, curviosity) {\n this.cx = $bm_mul(3, p1x);\n this.bx = $bm_sub($bm_mul(3, $bm_sub(p2x, p1x)), this.cx);\n this.ax = $bm_sub($bm_sub(1, this.cx), this.bx);\n this.cy = $bm_mul(3, p1y);\n this.by = $bm_sub($bm_mul(3, $bm_sub(p2y, p1y)), this.cy);\n this.ay = $bm_sub($bm_sub(1, this.cy), this.by);\n this.curviosity = curviosity;\n this.execute = executeBezier;\n this.executeProgress = executeBezierProgress;\n return this;\n}\nfunction executeElasticIn(t, b, c, d) {\n var s = 1.70158;\n var p = 0;\n var a = c;\n if (t === 0)\n return b;\n if ((t /= d) === 1)\n return $bm_sum(b, c);\n if (!p)\n p = $bm_mul(d, 0.3);\n if (a < Math.abs(c)) {\n a = c;\n s = $bm_div(p, 4);\n } else\n s = $bm_mul($bm_div(p, $bm_mul(2, Math.PI)), Math.asin(1));\n return $bm_sum($bm_neg($bm_mul($bm_mul(a, Math.pow(2, $bm_mul(10, t -= 1))), Math.sin($bm_div($bm_mul($bm_sub($bm_mul(t, d), s), $bm_mul(2, Math.PI)), p)))), b);\n}\nfunction executeElasticOut(t, b, c, d) {\n var s = 1.70158;\n var p = 0;\n var a = c;\n if (t === 0)\n return b;\n if ((t /= d) === 1)\n return $bm_sum(b, c);\n if (!p)\n p = $bm_mul(d, 0.3);\n if (a < Math.abs(c)) {\n a = c;\n s = $bm_div(p, 4);\n } else\n s = $bm_mul($bm_div(p, $bm_mul(2, Math.PI)), Math.asin(1));\n return $bm_sum($bm_sum($bm_mul($bm_mul(a, Math.pow(2, $bm_mul(-10, t))), Math.sin($bm_div($bm_mul($bm_sub($bm_mul(t, d), s), $bm_mul(2, Math.PI)), p))), c), b);\n}\nfunction executeElasticInOut(t, b, c, d) {\n var s = 1.70158;\n var p = 0;\n var a = c;\n if (t === 0)\n return b;\n if ((t /= d / 2) === 2)\n return $bm_sum(b, c);\n if (!p)\n p = $bm_mul(d, 0.3 * 1.5);\n if (a < Math.abs(c)) {\n a = c;\n s = $bm_div(p, 4);\n } else\n s = $bm_mul($bm_div(p, $bm_mul(2, Math.PI)), Math.asin(1));\n if (t < 1)\n return $bm_sum($bm_mul(-0.5, $bm_mul($bm_mul(a, Math.pow(2, $bm_mul(10, t -= 1))), Math.sin($bm_div($bm_mul($bm_sub($bm_mul(t, d), s), $bm_mul(2, Math.PI)), p)))), b);\n return $bm_sum($bm_sum($bm_mul($bm_mul($bm_mul(a, Math.pow(2, $bm_mul(-10, t -= 1))), Math.sin($bm_div($bm_mul($bm_sub($bm_mul(t, d), s), $bm_mul(2, Math.PI)), p))), 0.5), c), b);\n}\nfunction executeElasticInProgress(Progress) {\n return Progress === 0 ? 0 : Progress === 1 ? 1 : -Math.pow(2, 10 * Progress - 10) * Math.sin((Progress * 10 - 10.75) * (2 * Math.PI / 3));\n}\nfunction executeElasticOutProgress(Progress) {\n return Progress === 0 ? 0 : Progress === 1 ? 1 : Math.pow(2, -10 * Progress) * Math.sin((Progress * 10 - 0.75) * (2 * Math.PI / 3)) + 1;\n}\nfunction executeElasticInOutProgress(Progress) {\n return Progress === 0 ? 0 : Progress === 1 ? 1 : Progress < 0.5 ? -(Math.pow(2, 20 * Progress - 10) * Math.sin((20 * Progress - 11.125) * (2 * Math.PI / 4.5))) / 2 : Math.pow(2, -20 * Progress + 10) * Math.sin((20 * Progress - 11.125) * (2 * Math.PI / 4.5)) / 2 + 1;\n}\nfunction make_elastic_easing_in(curviosity) {\n this.execute = executeElasticIn;\n this.executeProgress = executeElasticInProgress;\n this.curviosity = curviosity;\n return this;\n}\nfunction make_elastic_easing_out(curviosity) {\n this.execute = executeElasticOut;\n this.executeProgress = executeElasticOutProgress;\n this.curviosity = curviosity;\n return this;\n}\nfunction make_elastic_easing_in_out(curviosity) {\n this.execute = executeElasticInOut;\n this.executeProgress = executeElasticInOutProgress;\n this.curviosity = curviosity;\n return this;\n}\nfunction executeBounceIn(t, b, c, d) {\n return $bm_sum($bm_sub(c, executeBounceOut($bm_sub(d, t), 0, c, d)), b);\n}\nfunction executeBounceOut(t, b, c, d) {\n if ((t /= d) < 1 / 2.75) {\n return $bm_sum($bm_mul(c, $bm_mul($bm_mul(7.5625, t), t)), b);\n } else if (t < 2 / 2.75) {\n return $bm_sum($bm_mul(c, $bm_sum($bm_mul($bm_mul(7.5625, t -= 1.5 / 2.75), t), 0.75)), b);\n } else if (t < 2.5 / 2.75) {\n return $bm_sum($bm_mul(c, $bm_sum($bm_mul($bm_mul(7.5625, t -= 2.25 / 2.75), t), 0.9375)), b);\n } else {\n return $bm_sum($bm_mul(c, $bm_sum($bm_mul($bm_mul(7.5625, t -= 2.625 / 2.75), t), 0.984375)), b);\n }\n}\nfunction executeBounceInOut(t, b, c, d) {\n if (t < $bm_div(d, 2))\n return $bm_sum($bm_mul(executeBounceIn($bm_mul(t, 2), 0, c, d), 0.5), b);\n return $bm_sum($bm_sum($bm_mul(executeBounceOut($bm_sub($bm_mul(t, 2), d), 0, c, d), 0.5), $bm_mul(c, 0.5)), b);\n}\nfunction executeBounceInProgress(oldProgress) {\n return $bm_sub(1, executeBounceOut($bm_sub(1, oldProgress)));\n}\nfunction executeBounceOutProgress(oldProgress) {\n if (oldProgress < 1 / 2.75) {\n return $bm_mul($bm_mul(7.5625, oldProgress), oldProgress);\n } else if (oldProgress < 2 / 2.75) {\n return $bm_sum($bm_mul($bm_mul(7.5625, oldProgress -= 1.5 / 2.75), oldProgress), 0.75);\n } else if (oldProgress < 2.5 / 2.75) {\n return $bm_sum($bm_mul($bm_mul(7.5625, oldProgress -= 2.25 / 2.75), oldProgress), 0.9375);\n } else {\n return $bm_sum($bm_mul($bm_mul(7.5625, oldProgress -= 2.625 / 2.75), oldProgress), 0.984375);\n }\n}\nfunction executeBounceInOutProgress(oldProgress) {\n if (oldProgress < 1 / 2)\n return $bm_mul(executeBounceIn($bm_mul(oldProgress, 2)), 0.5);\n return $bm_sum($bm_mul(executeBounceOut($bm_sub($bm_mul(oldProgress, 2), 1)), 0.5), 0.5);\n}\nfunction make_bounce_easing_in(curviosity) {\n this.execute = executeBounceIn;\n this.executeProgress = executeBounceInProgress;\n this.curviosity = curviosity;\n return this;\n}\nfunction make_bounce_easing_out(curviosity) {\n this.execute = executeBounceOut;\n this.executeProgress = executeBounceOutProgress;\n this.curviosity = curviosity;\n return this;\n}\nfunction make_bounce_easing_in_out(curviosity) {\n this.execute = executeBounceInOut;\n this.executeProgress = executeBounceInOutProgress;\n this.curviosity = curviosity;\n return this;\n}"},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[31.625,32.625,0],"ix":2},"a":{"a":0,"k":[126.125,0.875,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":0,"s":[40,40,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":12,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":13,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":25,"s":[40,40,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":210.16,"s":[100,100,100]},{"t":222.2265625,"s":[40,40,100]}],"ix":6,"x":"var $bm_rt;\nvar easingPreset = [[\n 1,\n 4,\n [\n 'make_bezier_easing',\n [\n 0.25,\n 0.46,\n 0.45,\n 1\n ],\n 'Glide.Out',\n false\n ]\n ]];\nfunction easingMaker() {\n var t, d, newProgress;\n var n = 0;\n if (numKeys > 0) {\n n = nearestKey(time).index;\n if (key(n).time > time) {\n n--;\n }\n }\n try {\n var key1 = key(n);\n var key2 = key($bm_sum(n, 1));\n } catch (e) {\n return null;\n }\n var expression = null;\n for (var i = 0; i < easingPreset.length; ++i) {\n if (easingPreset[i][0] <= n && easingPreset[i][1] >= n + 1) {\n var expression = eval([easingPreset[i][2][0]][0]);\n try {\n expression = expression.apply({}, easingPreset[i][2][1].concat(easingPreset[i][2][3]));\n } catch (e) {\n expression = expression.apply({}, easingPreset[i][2][1]);\n }\n break;\n }\n }\n if (!expression)\n return null;\n var dim = 1;\n try {\n do {\n key(1)[dim];\n } while (++dim);\n } catch (e) {\n }\n t = $bm_sub(time, key1.time);\n d = $bm_sub(key2.time, key1.time);\n if (expression.hasOwnProperty('curviosity') && expression.curviosity || thisProperty.value.constructor === Object) {\n newProgress = expression.executeProgress($bm_div(t, d));\n return thisProperty.valueAtTime($bm_sum(key1.time, $bm_mul(d, newProgress)));\n }\n if (time < key1.time || time > key2.time) {\n return value;\n }\n var result = [];\n var i = 0;\n for (; i < dim; ++i) {\n result.push(expression.execute(t, key1[i], $bm_sub(key2[i], key1[i]), d));\n }\n if (result.length === 1)\n return result[0];\n return result;\n}\n$bm_rt = easingMaker() || value;\nfunction sampleCurveY(t) {\n return $bm_mul($bm_sum($bm_mul($bm_sum($bm_mul(this.ay, t), this.by), t), this.cy), t);\n}\nfunction sampleCurveX(t) {\n return $bm_mul($bm_sum($bm_mul($bm_sum($bm_mul(this.ax, t), this.bx), t), this.cx), t);\n}\nfunction sampleCurveDerivativeX(t) {\n return $bm_sum($bm_mul($bm_sum($bm_mul($bm_mul(3, this.ax), t), $bm_mul(2, this.bx)), t), this.cx);\n}\nfunction solveCurveX(x, epsilon) {\n var t2, i, x2, d2, t0, t1;\n for (t2 = x, i = 0; i < 8; i++) {\n x2 = $bm_sub(sampleCurveX.call(this, t2), x);\n if (Math.abs(x2) < epsilon)\n return t2;\n d2 = sampleCurveDerivativeX.call(this, t2);\n if (Math.abs(d2) < 0.000001)\n break;\n t2 = $bm_sub(t2, $bm_div(x2, d2));\n }\n t0 = 0;\n t1 = 1;\n t2 = x;\n if (t2 < t0)\n return t0;\n if (t2 > t1)\n return t1;\n while (t0 < t1) {\n x2 = sampleCurveX.call(this, t2);\n if (Math.abs(x2 - x) < epsilon)\n return t2;\n if (x > x2)\n t0 = t2;\n else\n t1 = t2;\n t2 = $bm_sum($bm_mul($bm_sub(t1, t0), 0.5), t0);\n }\n return t2;\n}\nfunction executeBezier(t, b, e, d) {\n return $bm_sum(b, $bm_mul(e, sampleCurveY.call(this, solveCurveX.call(this, $bm_div(t, d), $bm_div(1, $bm_mul(200, d))))));\n}\nfunction executeBezierProgress(oldProgress) {\n return sampleCurveY.call(this, solveCurveX.call(this, oldProgress, 1 / 200));\n}\nfunction make_bezier_easing(p1x, p1y, p2x, p2y, curviosity) {\n this.cx = $bm_mul(3, p1x);\n this.bx = $bm_sub($bm_mul(3, $bm_sub(p2x, p1x)), this.cx);\n this.ax = $bm_sub($bm_sub(1, this.cx), this.bx);\n this.cy = $bm_mul(3, p1y);\n this.by = $bm_sub($bm_mul(3, $bm_sub(p2y, p1y)), this.cy);\n this.ay = $bm_sub($bm_sub(1, this.cy), this.by);\n this.curviosity = curviosity;\n this.execute = executeBezier;\n this.executeProgress = executeBezierProgress;\n return this;\n}\nfunction executeElasticIn(t, b, c, d) {\n var s = 1.70158;\n var p = 0;\n var a = c;\n if (t === 0)\n return b;\n if ((t /= d) === 1)\n return $bm_sum(b, c);\n if (!p)\n p = $bm_mul(d, 0.3);\n if (a < Math.abs(c)) {\n a = c;\n s = $bm_div(p, 4);\n } else\n s = $bm_mul($bm_div(p, $bm_mul(2, Math.PI)), Math.asin(1));\n return $bm_sum($bm_neg($bm_mul($bm_mul(a, Math.pow(2, $bm_mul(10, t -= 1))), Math.sin($bm_div($bm_mul($bm_sub($bm_mul(t, d), s), $bm_mul(2, Math.PI)), p)))), b);\n}\nfunction executeElasticOut(t, b, c, d) {\n var s = 1.70158;\n var p = 0;\n var a = c;\n if (t === 0)\n return b;\n if ((t /= d) === 1)\n return $bm_sum(b, c);\n if (!p)\n p = $bm_mul(d, 0.3);\n if (a < Math.abs(c)) {\n a = c;\n s = $bm_div(p, 4);\n } else\n s = $bm_mul($bm_div(p, $bm_mul(2, Math.PI)), Math.asin(1));\n return $bm_sum($bm_sum($bm_mul($bm_mul(a, Math.pow(2, $bm_mul(-10, t))), Math.sin($bm_div($bm_mul($bm_sub($bm_mul(t, d), s), $bm_mul(2, Math.PI)), p))), c), b);\n}\nfunction executeElasticInOut(t, b, c, d) {\n var s = 1.70158;\n var p = 0;\n var a = c;\n if (t === 0)\n return b;\n if ((t /= d / 2) === 2)\n return $bm_sum(b, c);\n if (!p)\n p = $bm_mul(d, 0.3 * 1.5);\n if (a < Math.abs(c)) {\n a = c;\n s = $bm_div(p, 4);\n } else\n s = $bm_mul($bm_div(p, $bm_mul(2, Math.PI)), Math.asin(1));\n if (t < 1)\n return $bm_sum($bm_mul(-0.5, $bm_mul($bm_mul(a, Math.pow(2, $bm_mul(10, t -= 1))), Math.sin($bm_div($bm_mul($bm_sub($bm_mul(t, d), s), $bm_mul(2, Math.PI)), p)))), b);\n return $bm_sum($bm_sum($bm_mul($bm_mul($bm_mul(a, Math.pow(2, $bm_mul(-10, t -= 1))), Math.sin($bm_div($bm_mul($bm_sub($bm_mul(t, d), s), $bm_mul(2, Math.PI)), p))), 0.5), c), b);\n}\nfunction executeElasticInProgress(Progress) {\n return Progress === 0 ? 0 : Progress === 1 ? 1 : -Math.pow(2, 10 * Progress - 10) * Math.sin((Progress * 10 - 10.75) * (2 * Math.PI / 3));\n}\nfunction executeElasticOutProgress(Progress) {\n return Progress === 0 ? 0 : Progress === 1 ? 1 : Math.pow(2, -10 * Progress) * Math.sin((Progress * 10 - 0.75) * (2 * Math.PI / 3)) + 1;\n}\nfunction executeElasticInOutProgress(Progress) {\n return Progress === 0 ? 0 : Progress === 1 ? 1 : Progress < 0.5 ? -(Math.pow(2, 20 * Progress - 10) * Math.sin((20 * Progress - 11.125) * (2 * Math.PI / 4.5))) / 2 : Math.pow(2, -20 * Progress + 10) * Math.sin((20 * Progress - 11.125) * (2 * Math.PI / 4.5)) / 2 + 1;\n}\nfunction make_elastic_easing_in(curviosity) {\n this.execute = executeElasticIn;\n this.executeProgress = executeElasticInProgress;\n this.curviosity = curviosity;\n return this;\n}\nfunction make_elastic_easing_out(curviosity) {\n this.execute = executeElasticOut;\n this.executeProgress = executeElasticOutProgress;\n this.curviosity = curviosity;\n return this;\n}\nfunction make_elastic_easing_in_out(curviosity) {\n this.execute = executeElasticInOut;\n this.executeProgress = executeElasticInOutProgress;\n this.curviosity = curviosity;\n return this;\n}\nfunction executeBounceIn(t, b, c, d) {\n return $bm_sum($bm_sub(c, executeBounceOut($bm_sub(d, t), 0, c, d)), b);\n}\nfunction executeBounceOut(t, b, c, d) {\n if ((t /= d) < 1 / 2.75) {\n return $bm_sum($bm_mul(c, $bm_mul($bm_mul(7.5625, t), t)), b);\n } else if (t < 2 / 2.75) {\n return $bm_sum($bm_mul(c, $bm_sum($bm_mul($bm_mul(7.5625, t -= 1.5 / 2.75), t), 0.75)), b);\n } else if (t < 2.5 / 2.75) {\n return $bm_sum($bm_mul(c, $bm_sum($bm_mul($bm_mul(7.5625, t -= 2.25 / 2.75), t), 0.9375)), b);\n } else {\n return $bm_sum($bm_mul(c, $bm_sum($bm_mul($bm_mul(7.5625, t -= 2.625 / 2.75), t), 0.984375)), b);\n }\n}\nfunction executeBounceInOut(t, b, c, d) {\n if (t < $bm_div(d, 2))\n return $bm_sum($bm_mul(executeBounceIn($bm_mul(t, 2), 0, c, d), 0.5), b);\n return $bm_sum($bm_sum($bm_mul(executeBounceOut($bm_sub($bm_mul(t, 2), d), 0, c, d), 0.5), $bm_mul(c, 0.5)), b);\n}\nfunction executeBounceInProgress(oldProgress) {\n return $bm_sub(1, executeBounceOut($bm_sub(1, oldProgress)));\n}\nfunction executeBounceOutProgress(oldProgress) {\n if (oldProgress < 1 / 2.75) {\n return $bm_mul($bm_mul(7.5625, oldProgress), oldProgress);\n } else if (oldProgress < 2 / 2.75) {\n return $bm_sum($bm_mul($bm_mul(7.5625, oldProgress -= 1.5 / 2.75), oldProgress), 0.75);\n } else if (oldProgress < 2.5 / 2.75) {\n return $bm_sum($bm_mul($bm_mul(7.5625, oldProgress -= 2.25 / 2.75), oldProgress), 0.9375);\n } else {\n return $bm_sum($bm_mul($bm_mul(7.5625, oldProgress -= 2.625 / 2.75), oldProgress), 0.984375);\n }\n}\nfunction executeBounceInOutProgress(oldProgress) {\n if (oldProgress < 1 / 2)\n return $bm_mul(executeBounceIn($bm_mul(oldProgress, 2)), 0.5);\n return $bm_sum($bm_mul(executeBounceOut($bm_sub($bm_mul(oldProgress, 2), 1)), 0.5), 0.5);\n}\nfunction make_bounce_easing_in(curviosity) {\n this.execute = executeBounceIn;\n this.executeProgress = executeBounceInProgress;\n this.curviosity = curviosity;\n return this;\n}\nfunction make_bounce_easing_out(curviosity) {\n this.execute = executeBounceOut;\n this.executeProgress = executeBounceOutProgress;\n this.curviosity = curviosity;\n return this;\n}\nfunction make_bounce_easing_in_out(curviosity) {\n this.execute = executeBounceInOut;\n this.executeProgress = executeBounceInOutProgress;\n this.curviosity = curviosity;\n return this;\n}"}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[26,26],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.301960796118,0.811764717102,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.301960796118,0.678431391716,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[126.125,0.875],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":459.535523150194,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Outline","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-94.625,30.25,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[58,58],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0.501960813999,0.501960813999,0.501960813999,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":12,"s":[0.301960796118,0.678431391716,1,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":13,"s":[0.301960796118,0.678431391716,1,1]},{"t":25,"s":[0.501960813999,0.501960813999,0.501960813999,1]}],"ix":3,"x":"var $bm_rt;\nvar easingPreset = [[\n 1,\n 2,\n [\n 'make_bezier_easing',\n [\n 0.25,\n 0.46,\n 0.45,\n 1\n ],\n 'Glide.Out',\n false\n ]\n ]];\nfunction easingMaker() {\n var t, d, newProgress, i;\n var n = 0;\n if (numKeys > 0) {\n n = nearestKey(time).index;\n if (key(n).time > time) {\n n--;\n }\n }\n try {\n var key1 = key(n);\n var key2 = key($bm_sum(n, 1));\n } catch (e) {\n return null;\n }\n var expression = null;\n for (var i = 0; i < easingPreset.length; ++i) {\n if (easingPreset[i][0] <= n && easingPreset[i][1] >= n + 1) {\n expression = eval([easingPreset[i][2][0]][0]);\n try {\n expression = expression.apply({}, easingPreset[i][2][1].concat(easingPreset[i][2][3]));\n } catch (e) {\n expression = expression.apply({}, easingPreset[i][2][1]);\n }\n break;\n }\n }\n if (!expression)\n return null;\n var dim = 1;\n try {\n do {\n key(1)[dim];\n } while (++dim);\n } catch (e) {\n }\n t = $bm_sub(time, key1.time);\n d = $bm_sub(key2.time, key1.time);\n if (expression.hasOwnProperty('curviosity') && expression.curviosity || thisProperty.value.constructor === Object) {\n newProgress = expression.executeProgress($bm_div(t, d));\n return thisProperty.valueAtTime($bm_sum(key1.time, $bm_mul(d, newProgress)));\n }\n if (time < key1.time || time > key2.time) {\n return value;\n }\n var result = [];\n for (i = 0; i < dim; ++i) {\n result.push(expression.execute(t, key1[i], $bm_sub(key2[i], key1[i]), d));\n }\n if (result.length === 1)\n return result[0];\n return result;\n}\n$bm_rt = easingMaker() || value;\nfunction sampleCurveY(t) {\n return $bm_mul($bm_sum($bm_mul($bm_sum($bm_mul(this.ay, t), this.by), t), this.cy), t);\n}\nfunction sampleCurveX(t) {\n return $bm_mul($bm_sum($bm_mul($bm_sum($bm_mul(this.ax, t), this.bx), t), this.cx), t);\n}\nfunction sampleCurveDerivativeX(t) {\n return $bm_sum($bm_mul($bm_sum($bm_mul($bm_mul(3, this.ax), t), $bm_mul(2, this.bx)), t), this.cx);\n}\nfunction solveCurveX(x, epsilon) {\n var t2, i, x2, d2, t0, t1;\n for (t2 = x, i = 0; i < 8; i++) {\n x2 = $bm_sub(sampleCurveX.call(this, t2), x);\n if (Math.abs(x2) < epsilon)\n return t2;\n d2 = sampleCurveDerivativeX.call(this, t2);\n if (Math.abs(d2) < 0.000001)\n break;\n t2 = $bm_sub(t2, $bm_div(x2, d2));\n }\n t0 = 0;\n t1 = 1;\n t2 = x;\n if (t2 < t0)\n return t0;\n if (t2 > t1)\n return t1;\n while (t0 < t1) {\n x2 = sampleCurveX.call(this, t2);\n if (Math.abs(x2 - x) < epsilon)\n return t2;\n if (x > x2)\n t0 = t2;\n else\n t1 = t2;\n t2 = $bm_sum($bm_mul($bm_sub(t1, t0), 0.5), t0);\n }\n return t2;\n}\nfunction executeBezier(t, b, e, d) {\n return $bm_sum(b, $bm_mul(e, sampleCurveY.call(this, solveCurveX.call(this, $bm_div(t, d), $bm_div(1, $bm_mul(200, d))))));\n}\nfunction executeBezierProgress(oldProgress) {\n return sampleCurveY.call(this, solveCurveX.call(this, oldProgress, 1 / 200));\n}\nfunction make_bezier_easing(p1x, p1y, p2x, p2y, curviosity) {\n this.cx = $bm_mul(3, p1x);\n this.bx = $bm_sub($bm_mul(3, $bm_sub(p2x, p1x)), this.cx);\n this.ax = $bm_sub($bm_sub(1, this.cx), this.bx);\n this.cy = $bm_mul(3, p1y);\n this.by = $bm_sub($bm_mul(3, $bm_sub(p2y, p1y)), this.cy);\n this.ay = $bm_sub($bm_sub(1, this.cy), this.by);\n this.curviosity = curviosity;\n this.execute = executeBezier;\n this.executeProgress = executeBezierProgress;\n return this;\n}\nfunction executeElasticIn(t, b, c, d) {\n var s = 1.70158;\n var p = 0;\n var a = c;\n if (t === 0)\n return b;\n if ((t /= d) === 1)\n return $bm_sum(b, c);\n if (!p)\n p = $bm_mul(d, 0.3);\n if (a < Math.abs(c)) {\n a = c;\n s = $bm_div(p, 4);\n } else\n s = $bm_mul($bm_div(p, $bm_mul(2, Math.PI)), Math.asin(1));\n return $bm_sum($bm_neg($bm_mul($bm_mul(a, Math.pow(2, $bm_mul(10, t -= 1))), Math.sin($bm_div($bm_mul($bm_sub($bm_mul(t, d), s), $bm_mul(2, Math.PI)), p)))), b);\n}\nfunction executeElasticOut(t, b, c, d) {\n var s = 1.70158;\n var p = 0;\n var a = c;\n if (t === 0)\n return b;\n if ((t /= d) === 1)\n return $bm_sum(b, c);\n if (!p)\n p = $bm_mul(d, 0.3);\n if (a < Math.abs(c)) {\n a = c;\n s = $bm_div(p, 4);\n } else\n s = $bm_mul($bm_div(p, $bm_mul(2, Math.PI)), Math.asin(1));\n return $bm_sum($bm_sum($bm_mul($bm_mul(a, Math.pow(2, $bm_mul(-10, t))), Math.sin($bm_div($bm_mul($bm_sub($bm_mul(t, d), s), $bm_mul(2, Math.PI)), p))), c), b);\n}\nfunction executeElasticInOut(t, b, c, d) {\n var s = 1.70158;\n var p = 0;\n var a = c;\n if (t === 0)\n return b;\n if ((t /= d / 2) === 2)\n return $bm_sum(b, c);\n if (!p)\n p = $bm_mul(d, 0.3 * 1.5);\n if (a < Math.abs(c)) {\n a = c;\n s = $bm_div(p, 4);\n } else\n s = $bm_mul($bm_div(p, $bm_mul(2, Math.PI)), Math.asin(1));\n if (t < 1)\n return $bm_sum($bm_mul(-0.5, $bm_mul($bm_mul(a, Math.pow(2, $bm_mul(10, t -= 1))), Math.sin($bm_div($bm_mul($bm_sub($bm_mul(t, d), s), $bm_mul(2, Math.PI)), p)))), b);\n return $bm_sum($bm_sum($bm_mul($bm_mul($bm_mul(a, Math.pow(2, $bm_mul(-10, t -= 1))), Math.sin($bm_div($bm_mul($bm_sub($bm_mul(t, d), s), $bm_mul(2, Math.PI)), p))), 0.5), c), b);\n}\nfunction executeElasticInProgress(Progress) {\n return Progress === 0 ? 0 : Progress === 1 ? 1 : -Math.pow(2, 10 * Progress - 10) * Math.sin((Progress * 10 - 10.75) * (2 * Math.PI / 3));\n}\nfunction executeElasticOutProgress(Progress) {\n return Progress === 0 ? 0 : Progress === 1 ? 1 : Math.pow(2, -10 * Progress) * Math.sin((Progress * 10 - 0.75) * (2 * Math.PI / 3)) + 1;\n}\nfunction executeElasticInOutProgress(Progress) {\n return Progress === 0 ? 0 : Progress === 1 ? 1 : Progress < 0.5 ? -(Math.pow(2, 20 * Progress - 10) * Math.sin((20 * Progress - 11.125) * (2 * Math.PI / 4.5))) / 2 : Math.pow(2, -20 * Progress + 10) * Math.sin((20 * Progress - 11.125) * (2 * Math.PI / 4.5)) / 2 + 1;\n}\nfunction make_elastic_easing_in(curviosity) {\n this.execute = executeElasticIn;\n this.executeProgress = executeElasticInProgress;\n this.curviosity = curviosity;\n return this;\n}\nfunction make_elastic_easing_out(curviosity) {\n this.execute = executeElasticOut;\n this.executeProgress = executeElasticOutProgress;\n this.curviosity = curviosity;\n return this;\n}\nfunction make_elastic_easing_in_out(curviosity) {\n this.execute = executeElasticInOut;\n this.executeProgress = executeElasticInOutProgress;\n this.curviosity = curviosity;\n return this;\n}\nfunction executeBounceIn(t, b, c, d) {\n return $bm_sum($bm_sub(c, executeBounceOut($bm_sub(d, t), 0, c, d)), b);\n}\nfunction executeBounceOut(t, b, c, d) {\n if ((t /= d) < 1 / 2.75) {\n return $bm_sum($bm_mul(c, $bm_mul($bm_mul(7.5625, t), t)), b);\n } else if (t < 2 / 2.75) {\n return $bm_sum($bm_mul(c, $bm_sum($bm_mul($bm_mul(7.5625, t -= 1.5 / 2.75), t), 0.75)), b);\n } else if (t < 2.5 / 2.75) {\n return $bm_sum($bm_mul(c, $bm_sum($bm_mul($bm_mul(7.5625, t -= 2.25 / 2.75), t), 0.9375)), b);\n } else {\n return $bm_sum($bm_mul(c, $bm_sum($bm_mul($bm_mul(7.5625, t -= 2.625 / 2.75), t), 0.984375)), b);\n }\n}\nfunction executeBounceInOut(t, b, c, d) {\n if (t < $bm_div(d, 2))\n return $bm_sum($bm_mul(executeBounceIn($bm_mul(t, 2), 0, c, d), 0.5), b);\n return $bm_sum($bm_sum($bm_mul(executeBounceOut($bm_sub($bm_mul(t, 2), d), 0, c, d), 0.5), $bm_mul(c, 0.5)), b);\n}\nfunction executeBounceInProgress(oldProgress) {\n return $bm_sub(1, executeBounceOut($bm_sub(1, oldProgress)));\n}\nfunction executeBounceOutProgress(oldProgress) {\n if (oldProgress < 1 / 2.75) {\n return $bm_mul($bm_mul(7.5625, oldProgress), oldProgress);\n } else if (oldProgress < 2 / 2.75) {\n return $bm_sum($bm_mul($bm_mul(7.5625, oldProgress -= 1.5 / 2.75), oldProgress), 0.75);\n } else if (oldProgress < 2.5 / 2.75) {\n return $bm_sum($bm_mul($bm_mul(7.5625, oldProgress -= 2.25 / 2.75), oldProgress), 0.9375);\n } else {\n return $bm_sum($bm_mul($bm_mul(7.5625, oldProgress -= 2.625 / 2.75), oldProgress), 0.984375);\n }\n}\nfunction executeBounceInOutProgress(oldProgress) {\n if (oldProgress < 1 / 2)\n return $bm_mul(executeBounceIn($bm_mul(oldProgress, 2)), 0.5);\n return $bm_sum($bm_mul(executeBounceOut($bm_sub($bm_mul(oldProgress, 2), 1)), 0.5), 0.5);\n}\nfunction make_bounce_easing_in(curviosity) {\n this.execute = executeBounceIn;\n this.executeProgress = executeBounceInProgress;\n this.curviosity = curviosity;\n return this;\n}\nfunction make_bounce_easing_out(curviosity) {\n this.execute = executeBounceOut;\n this.executeProgress = executeBounceOutProgress;\n this.curviosity = curviosity;\n return this;\n}\nfunction make_bounce_easing_in_out(curviosity) {\n this.execute = executeBounceInOut;\n this.executeProgress = executeBounceInOutProgress;\n this.curviosity = curviosity;\n return this;\n}"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.760784327984,0.164090722799,0.164090722799,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[126,2.375],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":459.535101979252,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/src/Tizen.NUI.Wearable/res/nui_wearable_switch_icon.json b/src/Tizen.NUI.Wearable/res/nui_wearable_switch_icon.json deleted file mode 100755 index e52990b1725..00000000000 --- a/src/Tizen.NUI.Wearable/res/nui_wearable_switch_icon.json +++ /dev/null @@ -1 +0,0 @@ -{"v":"5.6.6","fr":60,"ip":0,"op":37,"w":86,"h":86,"nm":"Switch_onoff_json","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Switch_Circle","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[18.5,44.25,0],"to":[4.979,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18,"s":[48.375,44.25,0],"to":[0,0,0],"ti":[4.979,0,0]},{"t":36,"s":[18.5,44.25,0]}],"ix":2,"x":"var $bm_rt;\nvar easingPreset = [[\n 1,\n 3,\n [\n 'make_bezier_easing',\n [\n 0.25,\n 0.46,\n 0.45,\n 1\n ],\n 'Glide.Out',\n false\n ]\n ]];\nfunction easingMaker() {\n var t, d, newProgress, i;\n var n = 0;\n if (numKeys > 0) {\n n = nearestKey(time).index;\n if (key(n).time > time) {\n n--;\n }\n }\n try {\n var key1 = key(n);\n var key2 = key($bm_sum(n, 1));\n } catch (e) {\n return null;\n }\n var expression = null;\n for (var i = 0; i < easingPreset.length; ++i) {\n if (easingPreset[i][0] <= n && easingPreset[i][1] >= n + 1) {\n expression = eval([easingPreset[i][2][0]][0]);\n try {\n expression = expression.apply({}, easingPreset[i][2][1].concat(easingPreset[i][2][3]));\n } catch (e) {\n expression = expression.apply({}, easingPreset[i][2][1]);\n }\n break;\n }\n }\n if (!expression)\n return null;\n var dim = 1;\n try {\n do {\n key(1)[dim];\n } while (++dim);\n } catch (e) {\n }\n t = $bm_sub(time, key1.time);\n d = $bm_sub(key2.time, key1.time);\n if (expression.hasOwnProperty('curviosity') && expression.curviosity || thisProperty.value.constructor === Object) {\n newProgress = expression.executeProgress($bm_div(t, d));\n return thisProperty.valueAtTime($bm_sum(key1.time, $bm_mul(d, newProgress)));\n }\n if (time < key1.time || time > key2.time) {\n return value;\n }\n var result = [];\n for (i = 0; i < dim; ++i) {\n result.push(expression.execute(t, key1[i], $bm_sub(key2[i], key1[i]), d));\n }\n if (result.length === 1)\n return result[0];\n return result;\n}\n$bm_rt = easingMaker() || value;\nfunction sampleCurveY(t) {\n return $bm_mul($bm_sum($bm_mul($bm_sum($bm_mul(this.ay, t), this.by), t), this.cy), t);\n}\nfunction sampleCurveX(t) {\n return $bm_mul($bm_sum($bm_mul($bm_sum($bm_mul(this.ax, t), this.bx), t), this.cx), t);\n}\nfunction sampleCurveDerivativeX(t) {\n return $bm_sum($bm_mul($bm_sum($bm_mul($bm_mul(3, this.ax), t), $bm_mul(2, this.bx)), t), this.cx);\n}\nfunction solveCurveX(x, epsilon) {\n var t2, i, x2, d2, t0, t1;\n for (t2 = x, i = 0; i < 8; i++) {\n x2 = $bm_sub(sampleCurveX.call(this, t2), x);\n if (Math.abs(x2) < epsilon)\n return t2;\n d2 = sampleCurveDerivativeX.call(this, t2);\n if (Math.abs(d2) < 0.000001)\n break;\n t2 = $bm_sub(t2, $bm_div(x2, d2));\n }\n t0 = 0;\n t1 = 1;\n t2 = x;\n if (t2 < t0)\n return t0;\n if (t2 > t1)\n return t1;\n while (t0 < t1) {\n x2 = sampleCurveX.call(this, t2);\n if (Math.abs(x2 - x) < epsilon)\n return t2;\n if (x > x2)\n t0 = t2;\n else\n t1 = t2;\n t2 = $bm_sum($bm_mul($bm_sub(t1, t0), 0.5), t0);\n }\n return t2;\n}\nfunction executeBezier(t, b, e, d) {\n return $bm_sum(b, $bm_mul(e, sampleCurveY.call(this, solveCurveX.call(this, $bm_div(t, d), $bm_div(1, $bm_mul(200, d))))));\n}\nfunction executeBezierProgress(oldProgress) {\n return sampleCurveY.call(this, solveCurveX.call(this, oldProgress, 1 / 200));\n}\nfunction make_bezier_easing(p1x, p1y, p2x, p2y, curviosity) {\n this.cx = $bm_mul(3, p1x);\n this.bx = $bm_sub($bm_mul(3, $bm_sub(p2x, p1x)), this.cx);\n this.ax = $bm_sub($bm_sub(1, this.cx), this.bx);\n this.cy = $bm_mul(3, p1y);\n this.by = $bm_sub($bm_mul(3, $bm_sub(p2y, p1y)), this.cy);\n this.ay = $bm_sub($bm_sub(1, this.cy), this.by);\n this.curviosity = curviosity;\n this.execute = executeBezier;\n this.executeProgress = executeBezierProgress;\n return this;\n}\nfunction executeElasticIn(t, b, c, d) {\n var s = 1.70158;\n var p = 0;\n var a = c;\n if (t === 0)\n return b;\n if ((t /= d) === 1)\n return $bm_sum(b, c);\n if (!p)\n p = $bm_mul(d, 0.3);\n if (a < Math.abs(c)) {\n a = c;\n s = $bm_div(p, 4);\n } else\n s = $bm_mul($bm_div(p, $bm_mul(2, Math.PI)), Math.asin(1));\n return $bm_sum($bm_neg($bm_mul($bm_mul(a, Math.pow(2, $bm_mul(10, t -= 1))), Math.sin($bm_div($bm_mul($bm_sub($bm_mul(t, d), s), $bm_mul(2, Math.PI)), p)))), b);\n}\nfunction executeElasticOut(t, b, c, d) {\n var s = 1.70158;\n var p = 0;\n var a = c;\n if (t === 0)\n return b;\n if ((t /= d) === 1)\n return $bm_sum(b, c);\n if (!p)\n p = $bm_mul(d, 0.3);\n if (a < Math.abs(c)) {\n a = c;\n s = $bm_div(p, 4);\n } else\n s = $bm_mul($bm_div(p, $bm_mul(2, Math.PI)), Math.asin(1));\n return $bm_sum($bm_sum($bm_mul($bm_mul(a, Math.pow(2, $bm_mul(-10, t))), Math.sin($bm_div($bm_mul($bm_sub($bm_mul(t, d), s), $bm_mul(2, Math.PI)), p))), c), b);\n}\nfunction executeElasticInOut(t, b, c, d) {\n var s = 1.70158;\n var p = 0;\n var a = c;\n if (t === 0)\n return b;\n if ((t /= d / 2) === 2)\n return $bm_sum(b, c);\n if (!p)\n p = $bm_mul(d, 0.3 * 1.5);\n if (a < Math.abs(c)) {\n a = c;\n s = $bm_div(p, 4);\n } else\n s = $bm_mul($bm_div(p, $bm_mul(2, Math.PI)), Math.asin(1));\n if (t < 1)\n return $bm_sum($bm_mul(-0.5, $bm_mul($bm_mul(a, Math.pow(2, $bm_mul(10, t -= 1))), Math.sin($bm_div($bm_mul($bm_sub($bm_mul(t, d), s), $bm_mul(2, Math.PI)), p)))), b);\n return $bm_sum($bm_sum($bm_mul($bm_mul($bm_mul(a, Math.pow(2, $bm_mul(-10, t -= 1))), Math.sin($bm_div($bm_mul($bm_sub($bm_mul(t, d), s), $bm_mul(2, Math.PI)), p))), 0.5), c), b);\n}\nfunction executeElasticInProgress(Progress) {\n return Progress === 0 ? 0 : Progress === 1 ? 1 : -Math.pow(2, 10 * Progress - 10) * Math.sin((Progress * 10 - 10.75) * (2 * Math.PI / 3));\n}\nfunction executeElasticOutProgress(Progress) {\n return Progress === 0 ? 0 : Progress === 1 ? 1 : Math.pow(2, -10 * Progress) * Math.sin((Progress * 10 - 0.75) * (2 * Math.PI / 3)) + 1;\n}\nfunction executeElasticInOutProgress(Progress) {\n return Progress === 0 ? 0 : Progress === 1 ? 1 : Progress < 0.5 ? -(Math.pow(2, 20 * Progress - 10) * Math.sin((20 * Progress - 11.125) * (2 * Math.PI / 4.5))) / 2 : Math.pow(2, -20 * Progress + 10) * Math.sin((20 * Progress - 11.125) * (2 * Math.PI / 4.5)) / 2 + 1;\n}\nfunction make_elastic_easing_in(curviosity) {\n this.execute = executeElasticIn;\n this.executeProgress = executeElasticInProgress;\n this.curviosity = curviosity;\n return this;\n}\nfunction make_elastic_easing_out(curviosity) {\n this.execute = executeElasticOut;\n this.executeProgress = executeElasticOutProgress;\n this.curviosity = curviosity;\n return this;\n}\nfunction make_elastic_easing_in_out(curviosity) {\n this.execute = executeElasticInOut;\n this.executeProgress = executeElasticInOutProgress;\n this.curviosity = curviosity;\n return this;\n}\nfunction executeBounceIn(t, b, c, d) {\n return $bm_sum($bm_sub(c, executeBounceOut($bm_sub(d, t), 0, c, d)), b);\n}\nfunction executeBounceOut(t, b, c, d) {\n if ((t /= d) < 1 / 2.75) {\n return $bm_sum($bm_mul(c, $bm_mul($bm_mul(7.5625, t), t)), b);\n } else if (t < 2 / 2.75) {\n return $bm_sum($bm_mul(c, $bm_sum($bm_mul($bm_mul(7.5625, t -= 1.5 / 2.75), t), 0.75)), b);\n } else if (t < 2.5 / 2.75) {\n return $bm_sum($bm_mul(c, $bm_sum($bm_mul($bm_mul(7.5625, t -= 2.25 / 2.75), t), 0.9375)), b);\n } else {\n return $bm_sum($bm_mul(c, $bm_sum($bm_mul($bm_mul(7.5625, t -= 2.625 / 2.75), t), 0.984375)), b);\n }\n}\nfunction executeBounceInOut(t, b, c, d) {\n if (t < $bm_div(d, 2))\n return $bm_sum($bm_mul(executeBounceIn($bm_mul(t, 2), 0, c, d), 0.5), b);\n return $bm_sum($bm_sum($bm_mul(executeBounceOut($bm_sub($bm_mul(t, 2), d), 0, c, d), 0.5), $bm_mul(c, 0.5)), b);\n}\nfunction executeBounceInProgress(oldProgress) {\n return $bm_sub(1, executeBounceOut($bm_sub(1, oldProgress)));\n}\nfunction executeBounceOutProgress(oldProgress) {\n if (oldProgress < 1 / 2.75) {\n return $bm_mul($bm_mul(7.5625, oldProgress), oldProgress);\n } else if (oldProgress < 2 / 2.75) {\n return $bm_sum($bm_mul($bm_mul(7.5625, oldProgress -= 1.5 / 2.75), oldProgress), 0.75);\n } else if (oldProgress < 2.5 / 2.75) {\n return $bm_sum($bm_mul($bm_mul(7.5625, oldProgress -= 2.25 / 2.75), oldProgress), 0.9375);\n } else {\n return $bm_sum($bm_mul($bm_mul(7.5625, oldProgress -= 2.625 / 2.75), oldProgress), 0.984375);\n }\n}\nfunction executeBounceInOutProgress(oldProgress) {\n if (oldProgress < 1 / 2)\n return $bm_mul(executeBounceIn($bm_mul(oldProgress, 2)), 0.5);\n return $bm_sum($bm_mul(executeBounceOut($bm_sub($bm_mul(oldProgress, 2), 1)), 0.5), 0.5);\n}\nfunction make_bounce_easing_in(curviosity) {\n this.execute = executeBounceIn;\n this.executeProgress = executeBounceInProgress;\n this.curviosity = curviosity;\n return this;\n}\nfunction make_bounce_easing_out(curviosity) {\n this.execute = executeBounceOut;\n this.executeProgress = executeBounceOutProgress;\n this.curviosity = curviosity;\n return this;\n}\nfunction make_bounce_easing_in_out(curviosity) {\n this.execute = executeBounceInOut;\n this.executeProgress = executeBounceInOutProgress;\n this.curviosity = curviosity;\n return this;\n}"},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[52,52],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0.631372570992,0.631372570992,0.631372570992,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":18,"s":[0.258823543787,0.592156887054,1,1]},{"t":36,"s":[0.631372570992,0.631372570992,0.631372570992,1]}],"ix":3,"x":"var $bm_rt;\nvar easingPreset = [[\n 1,\n 3,\n [\n 'make_bezier_easing',\n [\n 0.25,\n 0.46,\n 0.45,\n 1\n ],\n 'Glide.Out',\n false\n ]\n ]];\nfunction easingMaker() {\n var t, d, newProgress, i;\n var n = 0;\n if (numKeys > 0) {\n n = nearestKey(time).index;\n if (key(n).time > time) {\n n--;\n }\n }\n try {\n var key1 = key(n);\n var key2 = key($bm_sum(n, 1));\n } catch (e) {\n return null;\n }\n var expression = null;\n for (var i = 0; i < easingPreset.length; ++i) {\n if (easingPreset[i][0] <= n && easingPreset[i][1] >= n + 1) {\n expression = eval([easingPreset[i][2][0]][0]);\n try {\n expression = expression.apply({}, easingPreset[i][2][1].concat(easingPreset[i][2][3]));\n } catch (e) {\n expression = expression.apply({}, easingPreset[i][2][1]);\n }\n break;\n }\n }\n if (!expression)\n return null;\n var dim = 1;\n try {\n do {\n key(1)[dim];\n } while (++dim);\n } catch (e) {\n }\n t = $bm_sub(time, key1.time);\n d = $bm_sub(key2.time, key1.time);\n if (expression.hasOwnProperty('curviosity') && expression.curviosity || thisProperty.value.constructor === Object) {\n newProgress = expression.executeProgress($bm_div(t, d));\n return thisProperty.valueAtTime($bm_sum(key1.time, $bm_mul(d, newProgress)));\n }\n if (time < key1.time || time > key2.time) {\n return value;\n }\n var result = [];\n for (i = 0; i < dim; ++i) {\n result.push(expression.execute(t, key1[i], $bm_sub(key2[i], key1[i]), d));\n }\n if (result.length === 1)\n return result[0];\n return result;\n}\n$bm_rt = easingMaker() || value;\nfunction sampleCurveY(t) {\n return $bm_mul($bm_sum($bm_mul($bm_sum($bm_mul(this.ay, t), this.by), t), this.cy), t);\n}\nfunction sampleCurveX(t) {\n return $bm_mul($bm_sum($bm_mul($bm_sum($bm_mul(this.ax, t), this.bx), t), this.cx), t);\n}\nfunction sampleCurveDerivativeX(t) {\n return $bm_sum($bm_mul($bm_sum($bm_mul($bm_mul(3, this.ax), t), $bm_mul(2, this.bx)), t), this.cx);\n}\nfunction solveCurveX(x, epsilon) {\n var t2, i, x2, d2, t0, t1;\n for (t2 = x, i = 0; i < 8; i++) {\n x2 = $bm_sub(sampleCurveX.call(this, t2), x);\n if (Math.abs(x2) < epsilon)\n return t2;\n d2 = sampleCurveDerivativeX.call(this, t2);\n if (Math.abs(d2) < 0.000001)\n break;\n t2 = $bm_sub(t2, $bm_div(x2, d2));\n }\n t0 = 0;\n t1 = 1;\n t2 = x;\n if (t2 < t0)\n return t0;\n if (t2 > t1)\n return t1;\n while (t0 < t1) {\n x2 = sampleCurveX.call(this, t2);\n if (Math.abs(x2 - x) < epsilon)\n return t2;\n if (x > x2)\n t0 = t2;\n else\n t1 = t2;\n t2 = $bm_sum($bm_mul($bm_sub(t1, t0), 0.5), t0);\n }\n return t2;\n}\nfunction executeBezier(t, b, e, d) {\n return $bm_sum(b, $bm_mul(e, sampleCurveY.call(this, solveCurveX.call(this, $bm_div(t, d), $bm_div(1, $bm_mul(200, d))))));\n}\nfunction executeBezierProgress(oldProgress) {\n return sampleCurveY.call(this, solveCurveX.call(this, oldProgress, 1 / 200));\n}\nfunction make_bezier_easing(p1x, p1y, p2x, p2y, curviosity) {\n this.cx = $bm_mul(3, p1x);\n this.bx = $bm_sub($bm_mul(3, $bm_sub(p2x, p1x)), this.cx);\n this.ax = $bm_sub($bm_sub(1, this.cx), this.bx);\n this.cy = $bm_mul(3, p1y);\n this.by = $bm_sub($bm_mul(3, $bm_sub(p2y, p1y)), this.cy);\n this.ay = $bm_sub($bm_sub(1, this.cy), this.by);\n this.curviosity = curviosity;\n this.execute = executeBezier;\n this.executeProgress = executeBezierProgress;\n return this;\n}\nfunction executeElasticIn(t, b, c, d) {\n var s = 1.70158;\n var p = 0;\n var a = c;\n if (t === 0)\n return b;\n if ((t /= d) === 1)\n return $bm_sum(b, c);\n if (!p)\n p = $bm_mul(d, 0.3);\n if (a < Math.abs(c)) {\n a = c;\n s = $bm_div(p, 4);\n } else\n s = $bm_mul($bm_div(p, $bm_mul(2, Math.PI)), Math.asin(1));\n return $bm_sum($bm_neg($bm_mul($bm_mul(a, Math.pow(2, $bm_mul(10, t -= 1))), Math.sin($bm_div($bm_mul($bm_sub($bm_mul(t, d), s), $bm_mul(2, Math.PI)), p)))), b);\n}\nfunction executeElasticOut(t, b, c, d) {\n var s = 1.70158;\n var p = 0;\n var a = c;\n if (t === 0)\n return b;\n if ((t /= d) === 1)\n return $bm_sum(b, c);\n if (!p)\n p = $bm_mul(d, 0.3);\n if (a < Math.abs(c)) {\n a = c;\n s = $bm_div(p, 4);\n } else\n s = $bm_mul($bm_div(p, $bm_mul(2, Math.PI)), Math.asin(1));\n return $bm_sum($bm_sum($bm_mul($bm_mul(a, Math.pow(2, $bm_mul(-10, t))), Math.sin($bm_div($bm_mul($bm_sub($bm_mul(t, d), s), $bm_mul(2, Math.PI)), p))), c), b);\n}\nfunction executeElasticInOut(t, b, c, d) {\n var s = 1.70158;\n var p = 0;\n var a = c;\n if (t === 0)\n return b;\n if ((t /= d / 2) === 2)\n return $bm_sum(b, c);\n if (!p)\n p = $bm_mul(d, 0.3 * 1.5);\n if (a < Math.abs(c)) {\n a = c;\n s = $bm_div(p, 4);\n } else\n s = $bm_mul($bm_div(p, $bm_mul(2, Math.PI)), Math.asin(1));\n if (t < 1)\n return $bm_sum($bm_mul(-0.5, $bm_mul($bm_mul(a, Math.pow(2, $bm_mul(10, t -= 1))), Math.sin($bm_div($bm_mul($bm_sub($bm_mul(t, d), s), $bm_mul(2, Math.PI)), p)))), b);\n return $bm_sum($bm_sum($bm_mul($bm_mul($bm_mul(a, Math.pow(2, $bm_mul(-10, t -= 1))), Math.sin($bm_div($bm_mul($bm_sub($bm_mul(t, d), s), $bm_mul(2, Math.PI)), p))), 0.5), c), b);\n}\nfunction executeElasticInProgress(Progress) {\n return Progress === 0 ? 0 : Progress === 1 ? 1 : -Math.pow(2, 10 * Progress - 10) * Math.sin((Progress * 10 - 10.75) * (2 * Math.PI / 3));\n}\nfunction executeElasticOutProgress(Progress) {\n return Progress === 0 ? 0 : Progress === 1 ? 1 : Math.pow(2, -10 * Progress) * Math.sin((Progress * 10 - 0.75) * (2 * Math.PI / 3)) + 1;\n}\nfunction executeElasticInOutProgress(Progress) {\n return Progress === 0 ? 0 : Progress === 1 ? 1 : Progress < 0.5 ? -(Math.pow(2, 20 * Progress - 10) * Math.sin((20 * Progress - 11.125) * (2 * Math.PI / 4.5))) / 2 : Math.pow(2, -20 * Progress + 10) * Math.sin((20 * Progress - 11.125) * (2 * Math.PI / 4.5)) / 2 + 1;\n}\nfunction make_elastic_easing_in(curviosity) {\n this.execute = executeElasticIn;\n this.executeProgress = executeElasticInProgress;\n this.curviosity = curviosity;\n return this;\n}\nfunction make_elastic_easing_out(curviosity) {\n this.execute = executeElasticOut;\n this.executeProgress = executeElasticOutProgress;\n this.curviosity = curviosity;\n return this;\n}\nfunction make_elastic_easing_in_out(curviosity) {\n this.execute = executeElasticInOut;\n this.executeProgress = executeElasticInOutProgress;\n this.curviosity = curviosity;\n return this;\n}\nfunction executeBounceIn(t, b, c, d) {\n return $bm_sum($bm_sub(c, executeBounceOut($bm_sub(d, t), 0, c, d)), b);\n}\nfunction executeBounceOut(t, b, c, d) {\n if ((t /= d) < 1 / 2.75) {\n return $bm_sum($bm_mul(c, $bm_mul($bm_mul(7.5625, t), t)), b);\n } else if (t < 2 / 2.75) {\n return $bm_sum($bm_mul(c, $bm_sum($bm_mul($bm_mul(7.5625, t -= 1.5 / 2.75), t), 0.75)), b);\n } else if (t < 2.5 / 2.75) {\n return $bm_sum($bm_mul(c, $bm_sum($bm_mul($bm_mul(7.5625, t -= 2.25 / 2.75), t), 0.9375)), b);\n } else {\n return $bm_sum($bm_mul(c, $bm_sum($bm_mul($bm_mul(7.5625, t -= 2.625 / 2.75), t), 0.984375)), b);\n }\n}\nfunction executeBounceInOut(t, b, c, d) {\n if (t < $bm_div(d, 2))\n return $bm_sum($bm_mul(executeBounceIn($bm_mul(t, 2), 0, c, d), 0.5), b);\n return $bm_sum($bm_sum($bm_mul(executeBounceOut($bm_sub($bm_mul(t, 2), d), 0, c, d), 0.5), $bm_mul(c, 0.5)), b);\n}\nfunction executeBounceInProgress(oldProgress) {\n return $bm_sub(1, executeBounceOut($bm_sub(1, oldProgress)));\n}\nfunction executeBounceOutProgress(oldProgress) {\n if (oldProgress < 1 / 2.75) {\n return $bm_mul($bm_mul(7.5625, oldProgress), oldProgress);\n } else if (oldProgress < 2 / 2.75) {\n return $bm_sum($bm_mul($bm_mul(7.5625, oldProgress -= 1.5 / 2.75), oldProgress), 0.75);\n } else if (oldProgress < 2.5 / 2.75) {\n return $bm_sum($bm_mul($bm_mul(7.5625, oldProgress -= 2.25 / 2.75), oldProgress), 0.9375);\n } else {\n return $bm_sum($bm_mul($bm_mul(7.5625, oldProgress -= 2.625 / 2.75), oldProgress), 0.984375);\n }\n}\nfunction executeBounceInOutProgress(oldProgress) {\n if (oldProgress < 1 / 2)\n return $bm_mul(executeBounceIn($bm_mul(oldProgress, 2)), 0.5);\n return $bm_sum($bm_mul(executeBounceOut($bm_sub($bm_mul(oldProgress, 2), 1)), 0.5), 0.5);\n}\nfunction make_bounce_easing_in(curviosity) {\n this.execute = executeBounceIn;\n this.executeProgress = executeBounceInProgress;\n this.curviosity = curviosity;\n return this;\n}\nfunction make_bounce_easing_out(curviosity) {\n this.execute = executeBounceOut;\n this.executeProgress = executeBounceOutProgress;\n this.curviosity = curviosity;\n return this;\n}\nfunction make_bounce_easing_in_out(curviosity) {\n this.execute = executeBounceInOut;\n this.executeProgress = executeBounceInOutProgress;\n this.curviosity = curviosity;\n return this;\n}"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4,"x":"var $bm_rt;\nvar easingPreset = [[\n 1,\n 3,\n [\n 'make_bezier_easing',\n [\n 0.25,\n 0.46,\n 0.45,\n 1\n ],\n 'Glide.Out',\n false\n ]\n ]];\nfunction easingMaker() {\n var t, d, newProgress, i;\n var n = 0;\n if (numKeys > 0) {\n n = nearestKey(time).index;\n if (key(n).time > time) {\n n--;\n }\n }\n try {\n var key1 = key(n);\n var key2 = key($bm_sum(n, 1));\n } catch (e) {\n return null;\n }\n var expression = null;\n for (var i = 0; i < easingPreset.length; ++i) {\n if (easingPreset[i][0] <= n && easingPreset[i][1] >= n + 1) {\n expression = eval([easingPreset[i][2][0]][0]);\n try {\n expression = expression.apply({}, easingPreset[i][2][1].concat(easingPreset[i][2][3]));\n } catch (e) {\n expression = expression.apply({}, easingPreset[i][2][1]);\n }\n break;\n }\n }\n if (!expression)\n return null;\n var dim = 1;\n try {\n do {\n key(1)[dim];\n } while (++dim);\n } catch (e) {\n }\n t = $bm_sub(time, key1.time);\n d = $bm_sub(key2.time, key1.time);\n if (expression.hasOwnProperty('curviosity') && expression.curviosity || thisProperty.value.constructor === Object) {\n newProgress = expression.executeProgress($bm_div(t, d));\n return thisProperty.valueAtTime($bm_sum(key1.time, $bm_mul(d, newProgress)));\n }\n if (time < key1.time || time > key2.time) {\n return value;\n }\n var result = [];\n for (i = 0; i < dim; ++i) {\n result.push(expression.execute(t, key1[i], $bm_sub(key2[i], key1[i]), d));\n }\n if (result.length === 1)\n return result[0];\n return result;\n}\n$bm_rt = easingMaker() || value;\nfunction sampleCurveY(t) {\n return $bm_mul($bm_sum($bm_mul($bm_sum($bm_mul(this.ay, t), this.by), t), this.cy), t);\n}\nfunction sampleCurveX(t) {\n return $bm_mul($bm_sum($bm_mul($bm_sum($bm_mul(this.ax, t), this.bx), t), this.cx), t);\n}\nfunction sampleCurveDerivativeX(t) {\n return $bm_sum($bm_mul($bm_sum($bm_mul($bm_mul(3, this.ax), t), $bm_mul(2, this.bx)), t), this.cx);\n}\nfunction solveCurveX(x, epsilon) {\n var t2, i, x2, d2, t0, t1;\n for (t2 = x, i = 0; i < 8; i++) {\n x2 = $bm_sub(sampleCurveX.call(this, t2), x);\n if (Math.abs(x2) < epsilon)\n return t2;\n d2 = sampleCurveDerivativeX.call(this, t2);\n if (Math.abs(d2) < 0.000001)\n break;\n t2 = $bm_sub(t2, $bm_div(x2, d2));\n }\n t0 = 0;\n t1 = 1;\n t2 = x;\n if (t2 < t0)\n return t0;\n if (t2 > t1)\n return t1;\n while (t0 < t1) {\n x2 = sampleCurveX.call(this, t2);\n if (Math.abs(x2 - x) < epsilon)\n return t2;\n if (x > x2)\n t0 = t2;\n else\n t1 = t2;\n t2 = $bm_sum($bm_mul($bm_sub(t1, t0), 0.5), t0);\n }\n return t2;\n}\nfunction executeBezier(t, b, e, d) {\n return $bm_sum(b, $bm_mul(e, sampleCurveY.call(this, solveCurveX.call(this, $bm_div(t, d), $bm_div(1, $bm_mul(200, d))))));\n}\nfunction executeBezierProgress(oldProgress) {\n return sampleCurveY.call(this, solveCurveX.call(this, oldProgress, 1 / 200));\n}\nfunction make_bezier_easing(p1x, p1y, p2x, p2y, curviosity) {\n this.cx = $bm_mul(3, p1x);\n this.bx = $bm_sub($bm_mul(3, $bm_sub(p2x, p1x)), this.cx);\n this.ax = $bm_sub($bm_sub(1, this.cx), this.bx);\n this.cy = $bm_mul(3, p1y);\n this.by = $bm_sub($bm_mul(3, $bm_sub(p2y, p1y)), this.cy);\n this.ay = $bm_sub($bm_sub(1, this.cy), this.by);\n this.curviosity = curviosity;\n this.execute = executeBezier;\n this.executeProgress = executeBezierProgress;\n return this;\n}\nfunction executeElasticIn(t, b, c, d) {\n var s = 1.70158;\n var p = 0;\n var a = c;\n if (t === 0)\n return b;\n if ((t /= d) === 1)\n return $bm_sum(b, c);\n if (!p)\n p = $bm_mul(d, 0.3);\n if (a < Math.abs(c)) {\n a = c;\n s = $bm_div(p, 4);\n } else\n s = $bm_mul($bm_div(p, $bm_mul(2, Math.PI)), Math.asin(1));\n return $bm_sum($bm_neg($bm_mul($bm_mul(a, Math.pow(2, $bm_mul(10, t -= 1))), Math.sin($bm_div($bm_mul($bm_sub($bm_mul(t, d), s), $bm_mul(2, Math.PI)), p)))), b);\n}\nfunction executeElasticOut(t, b, c, d) {\n var s = 1.70158;\n var p = 0;\n var a = c;\n if (t === 0)\n return b;\n if ((t /= d) === 1)\n return $bm_sum(b, c);\n if (!p)\n p = $bm_mul(d, 0.3);\n if (a < Math.abs(c)) {\n a = c;\n s = $bm_div(p, 4);\n } else\n s = $bm_mul($bm_div(p, $bm_mul(2, Math.PI)), Math.asin(1));\n return $bm_sum($bm_sum($bm_mul($bm_mul(a, Math.pow(2, $bm_mul(-10, t))), Math.sin($bm_div($bm_mul($bm_sub($bm_mul(t, d), s), $bm_mul(2, Math.PI)), p))), c), b);\n}\nfunction executeElasticInOut(t, b, c, d) {\n var s = 1.70158;\n var p = 0;\n var a = c;\n if (t === 0)\n return b;\n if ((t /= d / 2) === 2)\n return $bm_sum(b, c);\n if (!p)\n p = $bm_mul(d, 0.3 * 1.5);\n if (a < Math.abs(c)) {\n a = c;\n s = $bm_div(p, 4);\n } else\n s = $bm_mul($bm_div(p, $bm_mul(2, Math.PI)), Math.asin(1));\n if (t < 1)\n return $bm_sum($bm_mul(-0.5, $bm_mul($bm_mul(a, Math.pow(2, $bm_mul(10, t -= 1))), Math.sin($bm_div($bm_mul($bm_sub($bm_mul(t, d), s), $bm_mul(2, Math.PI)), p)))), b);\n return $bm_sum($bm_sum($bm_mul($bm_mul($bm_mul(a, Math.pow(2, $bm_mul(-10, t -= 1))), Math.sin($bm_div($bm_mul($bm_sub($bm_mul(t, d), s), $bm_mul(2, Math.PI)), p))), 0.5), c), b);\n}\nfunction executeElasticInProgress(Progress) {\n return Progress === 0 ? 0 : Progress === 1 ? 1 : -Math.pow(2, 10 * Progress - 10) * Math.sin((Progress * 10 - 10.75) * (2 * Math.PI / 3));\n}\nfunction executeElasticOutProgress(Progress) {\n return Progress === 0 ? 0 : Progress === 1 ? 1 : Math.pow(2, -10 * Progress) * Math.sin((Progress * 10 - 0.75) * (2 * Math.PI / 3)) + 1;\n}\nfunction executeElasticInOutProgress(Progress) {\n return Progress === 0 ? 0 : Progress === 1 ? 1 : Progress < 0.5 ? -(Math.pow(2, 20 * Progress - 10) * Math.sin((20 * Progress - 11.125) * (2 * Math.PI / 4.5))) / 2 : Math.pow(2, -20 * Progress + 10) * Math.sin((20 * Progress - 11.125) * (2 * Math.PI / 4.5)) / 2 + 1;\n}\nfunction make_elastic_easing_in(curviosity) {\n this.execute = executeElasticIn;\n this.executeProgress = executeElasticInProgress;\n this.curviosity = curviosity;\n return this;\n}\nfunction make_elastic_easing_out(curviosity) {\n this.execute = executeElasticOut;\n this.executeProgress = executeElasticOutProgress;\n this.curviosity = curviosity;\n return this;\n}\nfunction make_elastic_easing_in_out(curviosity) {\n this.execute = executeElasticInOut;\n this.executeProgress = executeElasticInOutProgress;\n this.curviosity = curviosity;\n return this;\n}\nfunction executeBounceIn(t, b, c, d) {\n return $bm_sum($bm_sub(c, executeBounceOut($bm_sub(d, t), 0, c, d)), b);\n}\nfunction executeBounceOut(t, b, c, d) {\n if ((t /= d) < 1 / 2.75) {\n return $bm_sum($bm_mul(c, $bm_mul($bm_mul(7.5625, t), t)), b);\n } else if (t < 2 / 2.75) {\n return $bm_sum($bm_mul(c, $bm_sum($bm_mul($bm_mul(7.5625, t -= 1.5 / 2.75), t), 0.75)), b);\n } else if (t < 2.5 / 2.75) {\n return $bm_sum($bm_mul(c, $bm_sum($bm_mul($bm_mul(7.5625, t -= 2.25 / 2.75), t), 0.9375)), b);\n } else {\n return $bm_sum($bm_mul(c, $bm_sum($bm_mul($bm_mul(7.5625, t -= 2.625 / 2.75), t), 0.984375)), b);\n }\n}\nfunction executeBounceInOut(t, b, c, d) {\n if (t < $bm_div(d, 2))\n return $bm_sum($bm_mul(executeBounceIn($bm_mul(t, 2), 0, c, d), 0.5), b);\n return $bm_sum($bm_sum($bm_mul(executeBounceOut($bm_sub($bm_mul(t, 2), d), 0, c, d), 0.5), $bm_mul(c, 0.5)), b);\n}\nfunction executeBounceInProgress(oldProgress) {\n return $bm_sub(1, executeBounceOut($bm_sub(1, oldProgress)));\n}\nfunction executeBounceOutProgress(oldProgress) {\n if (oldProgress < 1 / 2.75) {\n return $bm_mul($bm_mul(7.5625, oldProgress), oldProgress);\n } else if (oldProgress < 2 / 2.75) {\n return $bm_sum($bm_mul($bm_mul(7.5625, oldProgress -= 1.5 / 2.75), oldProgress), 0.75);\n } else if (oldProgress < 2.5 / 2.75) {\n return $bm_sum($bm_mul($bm_mul(7.5625, oldProgress -= 2.25 / 2.75), oldProgress), 0.9375);\n } else {\n return $bm_sum($bm_mul($bm_mul(7.5625, oldProgress -= 2.625 / 2.75), oldProgress), 0.984375);\n }\n}\nfunction executeBounceInOutProgress(oldProgress) {\n if (oldProgress < 1 / 2)\n return $bm_mul(executeBounceIn($bm_mul(oldProgress, 2)), 0.5);\n return $bm_sum($bm_mul(executeBounceOut($bm_sub($bm_mul(oldProgress, 2), 1)), 0.5), 0.5);\n}\nfunction make_bounce_easing_in(curviosity) {\n this.execute = executeBounceIn;\n this.executeProgress = executeBounceInProgress;\n this.curviosity = curviosity;\n return this;\n}\nfunction make_bounce_easing_out(curviosity) {\n this.execute = executeBounceOut;\n this.executeProgress = executeBounceOutProgress;\n this.curviosity = curviosity;\n return this;\n}\nfunction make_bounce_easing_in_out(curviosity) {\n this.execute = executeBounceInOut;\n this.executeProgress = executeBounceInOutProgress;\n this.curviosity = curviosity;\n return this;\n}"},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[9.75,-1.75],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":120,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Switch_RoundRect_BG","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[43,43,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[115,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[40.5,28.5],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":20,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[0.631372570992,0.631372570992,0.631372570992,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0.631372570992,0.631372570992,0.631372570992,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":18,"s":[0.258823543787,0.592156887054,1,1]},{"t":36,"s":[0.631372570992,0.631372570992,0.631372570992,1]}],"ix":4,"x":"var $bm_rt;\nvar easingPreset = [[\n 1,\n 3,\n [\n 'make_bezier_easing',\n [\n 0.25,\n 0.46,\n 0.45,\n 1\n ],\n 'Glide.Out',\n false\n ]\n ]];\nfunction easingMaker() {\n var t, d, newProgress, i;\n var n = 0;\n if (numKeys > 0) {\n n = nearestKey(time).index;\n if (key(n).time > time) {\n n--;\n }\n }\n try {\n var key1 = key(n);\n var key2 = key($bm_sum(n, 1));\n } catch (e) {\n return null;\n }\n var expression = null;\n for (var i = 0; i < easingPreset.length; ++i) {\n if (easingPreset[i][0] <= n && easingPreset[i][1] >= n + 1) {\n expression = eval([easingPreset[i][2][0]][0]);\n try {\n expression = expression.apply({}, easingPreset[i][2][1].concat(easingPreset[i][2][3]));\n } catch (e) {\n expression = expression.apply({}, easingPreset[i][2][1]);\n }\n break;\n }\n }\n if (!expression)\n return null;\n var dim = 1;\n try {\n do {\n key(1)[dim];\n } while (++dim);\n } catch (e) {\n }\n t = $bm_sub(time, key1.time);\n d = $bm_sub(key2.time, key1.time);\n if (expression.hasOwnProperty('curviosity') && expression.curviosity || thisProperty.value.constructor === Object) {\n newProgress = expression.executeProgress($bm_div(t, d));\n return thisProperty.valueAtTime($bm_sum(key1.time, $bm_mul(d, newProgress)));\n }\n if (time < key1.time || time > key2.time) {\n return value;\n }\n var result = [];\n for (i = 0; i < dim; ++i) {\n result.push(expression.execute(t, key1[i], $bm_sub(key2[i], key1[i]), d));\n }\n if (result.length === 1)\n return result[0];\n return result;\n}\n$bm_rt = easingMaker() || value;\nfunction sampleCurveY(t) {\n return $bm_mul($bm_sum($bm_mul($bm_sum($bm_mul(this.ay, t), this.by), t), this.cy), t);\n}\nfunction sampleCurveX(t) {\n return $bm_mul($bm_sum($bm_mul($bm_sum($bm_mul(this.ax, t), this.bx), t), this.cx), t);\n}\nfunction sampleCurveDerivativeX(t) {\n return $bm_sum($bm_mul($bm_sum($bm_mul($bm_mul(3, this.ax), t), $bm_mul(2, this.bx)), t), this.cx);\n}\nfunction solveCurveX(x, epsilon) {\n var t2, i, x2, d2, t0, t1;\n for (t2 = x, i = 0; i < 8; i++) {\n x2 = $bm_sub(sampleCurveX.call(this, t2), x);\n if (Math.abs(x2) < epsilon)\n return t2;\n d2 = sampleCurveDerivativeX.call(this, t2);\n if (Math.abs(d2) < 0.000001)\n break;\n t2 = $bm_sub(t2, $bm_div(x2, d2));\n }\n t0 = 0;\n t1 = 1;\n t2 = x;\n if (t2 < t0)\n return t0;\n if (t2 > t1)\n return t1;\n while (t0 < t1) {\n x2 = sampleCurveX.call(this, t2);\n if (Math.abs(x2 - x) < epsilon)\n return t2;\n if (x > x2)\n t0 = t2;\n else\n t1 = t2;\n t2 = $bm_sum($bm_mul($bm_sub(t1, t0), 0.5), t0);\n }\n return t2;\n}\nfunction executeBezier(t, b, e, d) {\n return $bm_sum(b, $bm_mul(e, sampleCurveY.call(this, solveCurveX.call(this, $bm_div(t, d), $bm_div(1, $bm_mul(200, d))))));\n}\nfunction executeBezierProgress(oldProgress) {\n return sampleCurveY.call(this, solveCurveX.call(this, oldProgress, 1 / 200));\n}\nfunction make_bezier_easing(p1x, p1y, p2x, p2y, curviosity) {\n this.cx = $bm_mul(3, p1x);\n this.bx = $bm_sub($bm_mul(3, $bm_sub(p2x, p1x)), this.cx);\n this.ax = $bm_sub($bm_sub(1, this.cx), this.bx);\n this.cy = $bm_mul(3, p1y);\n this.by = $bm_sub($bm_mul(3, $bm_sub(p2y, p1y)), this.cy);\n this.ay = $bm_sub($bm_sub(1, this.cy), this.by);\n this.curviosity = curviosity;\n this.execute = executeBezier;\n this.executeProgress = executeBezierProgress;\n return this;\n}\nfunction executeElasticIn(t, b, c, d) {\n var s = 1.70158;\n var p = 0;\n var a = c;\n if (t === 0)\n return b;\n if ((t /= d) === 1)\n return $bm_sum(b, c);\n if (!p)\n p = $bm_mul(d, 0.3);\n if (a < Math.abs(c)) {\n a = c;\n s = $bm_div(p, 4);\n } else\n s = $bm_mul($bm_div(p, $bm_mul(2, Math.PI)), Math.asin(1));\n return $bm_sum($bm_neg($bm_mul($bm_mul(a, Math.pow(2, $bm_mul(10, t -= 1))), Math.sin($bm_div($bm_mul($bm_sub($bm_mul(t, d), s), $bm_mul(2, Math.PI)), p)))), b);\n}\nfunction executeElasticOut(t, b, c, d) {\n var s = 1.70158;\n var p = 0;\n var a = c;\n if (t === 0)\n return b;\n if ((t /= d) === 1)\n return $bm_sum(b, c);\n if (!p)\n p = $bm_mul(d, 0.3);\n if (a < Math.abs(c)) {\n a = c;\n s = $bm_div(p, 4);\n } else\n s = $bm_mul($bm_div(p, $bm_mul(2, Math.PI)), Math.asin(1));\n return $bm_sum($bm_sum($bm_mul($bm_mul(a, Math.pow(2, $bm_mul(-10, t))), Math.sin($bm_div($bm_mul($bm_sub($bm_mul(t, d), s), $bm_mul(2, Math.PI)), p))), c), b);\n}\nfunction executeElasticInOut(t, b, c, d) {\n var s = 1.70158;\n var p = 0;\n var a = c;\n if (t === 0)\n return b;\n if ((t /= d / 2) === 2)\n return $bm_sum(b, c);\n if (!p)\n p = $bm_mul(d, 0.3 * 1.5);\n if (a < Math.abs(c)) {\n a = c;\n s = $bm_div(p, 4);\n } else\n s = $bm_mul($bm_div(p, $bm_mul(2, Math.PI)), Math.asin(1));\n if (t < 1)\n return $bm_sum($bm_mul(-0.5, $bm_mul($bm_mul(a, Math.pow(2, $bm_mul(10, t -= 1))), Math.sin($bm_div($bm_mul($bm_sub($bm_mul(t, d), s), $bm_mul(2, Math.PI)), p)))), b);\n return $bm_sum($bm_sum($bm_mul($bm_mul($bm_mul(a, Math.pow(2, $bm_mul(-10, t -= 1))), Math.sin($bm_div($bm_mul($bm_sub($bm_mul(t, d), s), $bm_mul(2, Math.PI)), p))), 0.5), c), b);\n}\nfunction executeElasticInProgress(Progress) {\n return Progress === 0 ? 0 : Progress === 1 ? 1 : -Math.pow(2, 10 * Progress - 10) * Math.sin((Progress * 10 - 10.75) * (2 * Math.PI / 3));\n}\nfunction executeElasticOutProgress(Progress) {\n return Progress === 0 ? 0 : Progress === 1 ? 1 : Math.pow(2, -10 * Progress) * Math.sin((Progress * 10 - 0.75) * (2 * Math.PI / 3)) + 1;\n}\nfunction executeElasticInOutProgress(Progress) {\n return Progress === 0 ? 0 : Progress === 1 ? 1 : Progress < 0.5 ? -(Math.pow(2, 20 * Progress - 10) * Math.sin((20 * Progress - 11.125) * (2 * Math.PI / 4.5))) / 2 : Math.pow(2, -20 * Progress + 10) * Math.sin((20 * Progress - 11.125) * (2 * Math.PI / 4.5)) / 2 + 1;\n}\nfunction make_elastic_easing_in(curviosity) {\n this.execute = executeElasticIn;\n this.executeProgress = executeElasticInProgress;\n this.curviosity = curviosity;\n return this;\n}\nfunction make_elastic_easing_out(curviosity) {\n this.execute = executeElasticOut;\n this.executeProgress = executeElasticOutProgress;\n this.curviosity = curviosity;\n return this;\n}\nfunction make_elastic_easing_in_out(curviosity) {\n this.execute = executeElasticInOut;\n this.executeProgress = executeElasticInOutProgress;\n this.curviosity = curviosity;\n return this;\n}\nfunction executeBounceIn(t, b, c, d) {\n return $bm_sum($bm_sub(c, executeBounceOut($bm_sub(d, t), 0, c, d)), b);\n}\nfunction executeBounceOut(t, b, c, d) {\n if ((t /= d) < 1 / 2.75) {\n return $bm_sum($bm_mul(c, $bm_mul($bm_mul(7.5625, t), t)), b);\n } else if (t < 2 / 2.75) {\n return $bm_sum($bm_mul(c, $bm_sum($bm_mul($bm_mul(7.5625, t -= 1.5 / 2.75), t), 0.75)), b);\n } else if (t < 2.5 / 2.75) {\n return $bm_sum($bm_mul(c, $bm_sum($bm_mul($bm_mul(7.5625, t -= 2.25 / 2.75), t), 0.9375)), b);\n } else {\n return $bm_sum($bm_mul(c, $bm_sum($bm_mul($bm_mul(7.5625, t -= 2.625 / 2.75), t), 0.984375)), b);\n }\n}\nfunction executeBounceInOut(t, b, c, d) {\n if (t < $bm_div(d, 2))\n return $bm_sum($bm_mul(executeBounceIn($bm_mul(t, 2), 0, c, d), 0.5), b);\n return $bm_sum($bm_sum($bm_mul(executeBounceOut($bm_sub($bm_mul(t, 2), d), 0, c, d), 0.5), $bm_mul(c, 0.5)), b);\n}\nfunction executeBounceInProgress(oldProgress) {\n return $bm_sub(1, executeBounceOut($bm_sub(1, oldProgress)));\n}\nfunction executeBounceOutProgress(oldProgress) {\n if (oldProgress < 1 / 2.75) {\n return $bm_mul($bm_mul(7.5625, oldProgress), oldProgress);\n } else if (oldProgress < 2 / 2.75) {\n return $bm_sum($bm_mul($bm_mul(7.5625, oldProgress -= 1.5 / 2.75), oldProgress), 0.75);\n } else if (oldProgress < 2.5 / 2.75) {\n return $bm_sum($bm_mul($bm_mul(7.5625, oldProgress -= 2.25 / 2.75), oldProgress), 0.9375);\n } else {\n return $bm_sum($bm_mul($bm_mul(7.5625, oldProgress -= 2.625 / 2.75), oldProgress), 0.984375);\n }\n}\nfunction executeBounceInOutProgress(oldProgress) {\n if (oldProgress < 1 / 2)\n return $bm_mul(executeBounceIn($bm_mul(oldProgress, 2)), 0.5);\n return $bm_sum($bm_mul(executeBounceOut($bm_sub($bm_mul(oldProgress, 2), 1)), 0.5), 0.5);\n}\nfunction make_bounce_easing_in(curviosity) {\n this.execute = executeBounceIn;\n this.executeProgress = executeBounceInProgress;\n this.curviosity = curviosity;\n return this;\n}\nfunction make_bounce_easing_out(curviosity) {\n this.execute = executeBounceOut;\n this.executeProgress = executeBounceOutProgress;\n this.curviosity = curviosity;\n return this;\n}\nfunction make_bounce_easing_in_out(curviosity) {\n this.execute = executeBounceInOut;\n this.executeProgress = executeBounceInOutProgress;\n this.curviosity = curviosity;\n return this;\n}"},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":18,"s":[100]},{"t":36,"s":[0]}],"ix":5,"x":"var $bm_rt;\nvar easingPreset = [[\n 1,\n 3,\n [\n 'make_bezier_easing',\n [\n 0.25,\n 0.46,\n 0.45,\n 1\n ],\n 'Glide.Out',\n false\n ]\n ]];\nfunction easingMaker() {\n var t, d, newProgress, i;\n var n = 0;\n if (numKeys > 0) {\n n = nearestKey(time).index;\n if (key(n).time > time) {\n n--;\n }\n }\n try {\n var key1 = key(n);\n var key2 = key($bm_sum(n, 1));\n } catch (e) {\n return null;\n }\n var expression = null;\n for (var i = 0; i < easingPreset.length; ++i) {\n if (easingPreset[i][0] <= n && easingPreset[i][1] >= n + 1) {\n expression = eval([easingPreset[i][2][0]][0]);\n try {\n expression = expression.apply({}, easingPreset[i][2][1].concat(easingPreset[i][2][3]));\n } catch (e) {\n expression = expression.apply({}, easingPreset[i][2][1]);\n }\n break;\n }\n }\n if (!expression)\n return null;\n var dim = 1;\n try {\n do {\n key(1)[dim];\n } while (++dim);\n } catch (e) {\n }\n t = $bm_sub(time, key1.time);\n d = $bm_sub(key2.time, key1.time);\n if (expression.hasOwnProperty('curviosity') && expression.curviosity || thisProperty.value.constructor === Object) {\n newProgress = expression.executeProgress($bm_div(t, d));\n return thisProperty.valueAtTime($bm_sum(key1.time, $bm_mul(d, newProgress)));\n }\n if (time < key1.time || time > key2.time) {\n return value;\n }\n var result = [];\n for (i = 0; i < dim; ++i) {\n result.push(expression.execute(t, key1[i], $bm_sub(key2[i], key1[i]), d));\n }\n if (result.length === 1)\n return result[0];\n return result;\n}\n$bm_rt = easingMaker() || value;\nfunction sampleCurveY(t) {\n return $bm_mul($bm_sum($bm_mul($bm_sum($bm_mul(this.ay, t), this.by), t), this.cy), t);\n}\nfunction sampleCurveX(t) {\n return $bm_mul($bm_sum($bm_mul($bm_sum($bm_mul(this.ax, t), this.bx), t), this.cx), t);\n}\nfunction sampleCurveDerivativeX(t) {\n return $bm_sum($bm_mul($bm_sum($bm_mul($bm_mul(3, this.ax), t), $bm_mul(2, this.bx)), t), this.cx);\n}\nfunction solveCurveX(x, epsilon) {\n var t2, i, x2, d2, t0, t1;\n for (t2 = x, i = 0; i < 8; i++) {\n x2 = $bm_sub(sampleCurveX.call(this, t2), x);\n if (Math.abs(x2) < epsilon)\n return t2;\n d2 = sampleCurveDerivativeX.call(this, t2);\n if (Math.abs(d2) < 0.000001)\n break;\n t2 = $bm_sub(t2, $bm_div(x2, d2));\n }\n t0 = 0;\n t1 = 1;\n t2 = x;\n if (t2 < t0)\n return t0;\n if (t2 > t1)\n return t1;\n while (t0 < t1) {\n x2 = sampleCurveX.call(this, t2);\n if (Math.abs(x2 - x) < epsilon)\n return t2;\n if (x > x2)\n t0 = t2;\n else\n t1 = t2;\n t2 = $bm_sum($bm_mul($bm_sub(t1, t0), 0.5), t0);\n }\n return t2;\n}\nfunction executeBezier(t, b, e, d) {\n return $bm_sum(b, $bm_mul(e, sampleCurveY.call(this, solveCurveX.call(this, $bm_div(t, d), $bm_div(1, $bm_mul(200, d))))));\n}\nfunction executeBezierProgress(oldProgress) {\n return sampleCurveY.call(this, solveCurveX.call(this, oldProgress, 1 / 200));\n}\nfunction make_bezier_easing(p1x, p1y, p2x, p2y, curviosity) {\n this.cx = $bm_mul(3, p1x);\n this.bx = $bm_sub($bm_mul(3, $bm_sub(p2x, p1x)), this.cx);\n this.ax = $bm_sub($bm_sub(1, this.cx), this.bx);\n this.cy = $bm_mul(3, p1y);\n this.by = $bm_sub($bm_mul(3, $bm_sub(p2y, p1y)), this.cy);\n this.ay = $bm_sub($bm_sub(1, this.cy), this.by);\n this.curviosity = curviosity;\n this.execute = executeBezier;\n this.executeProgress = executeBezierProgress;\n return this;\n}\nfunction executeElasticIn(t, b, c, d) {\n var s = 1.70158;\n var p = 0;\n var a = c;\n if (t === 0)\n return b;\n if ((t /= d) === 1)\n return $bm_sum(b, c);\n if (!p)\n p = $bm_mul(d, 0.3);\n if (a < Math.abs(c)) {\n a = c;\n s = $bm_div(p, 4);\n } else\n s = $bm_mul($bm_div(p, $bm_mul(2, Math.PI)), Math.asin(1));\n return $bm_sum($bm_neg($bm_mul($bm_mul(a, Math.pow(2, $bm_mul(10, t -= 1))), Math.sin($bm_div($bm_mul($bm_sub($bm_mul(t, d), s), $bm_mul(2, Math.PI)), p)))), b);\n}\nfunction executeElasticOut(t, b, c, d) {\n var s = 1.70158;\n var p = 0;\n var a = c;\n if (t === 0)\n return b;\n if ((t /= d) === 1)\n return $bm_sum(b, c);\n if (!p)\n p = $bm_mul(d, 0.3);\n if (a < Math.abs(c)) {\n a = c;\n s = $bm_div(p, 4);\n } else\n s = $bm_mul($bm_div(p, $bm_mul(2, Math.PI)), Math.asin(1));\n return $bm_sum($bm_sum($bm_mul($bm_mul(a, Math.pow(2, $bm_mul(-10, t))), Math.sin($bm_div($bm_mul($bm_sub($bm_mul(t, d), s), $bm_mul(2, Math.PI)), p))), c), b);\n}\nfunction executeElasticInOut(t, b, c, d) {\n var s = 1.70158;\n var p = 0;\n var a = c;\n if (t === 0)\n return b;\n if ((t /= d / 2) === 2)\n return $bm_sum(b, c);\n if (!p)\n p = $bm_mul(d, 0.3 * 1.5);\n if (a < Math.abs(c)) {\n a = c;\n s = $bm_div(p, 4);\n } else\n s = $bm_mul($bm_div(p, $bm_mul(2, Math.PI)), Math.asin(1));\n if (t < 1)\n return $bm_sum($bm_mul(-0.5, $bm_mul($bm_mul(a, Math.pow(2, $bm_mul(10, t -= 1))), Math.sin($bm_div($bm_mul($bm_sub($bm_mul(t, d), s), $bm_mul(2, Math.PI)), p)))), b);\n return $bm_sum($bm_sum($bm_mul($bm_mul($bm_mul(a, Math.pow(2, $bm_mul(-10, t -= 1))), Math.sin($bm_div($bm_mul($bm_sub($bm_mul(t, d), s), $bm_mul(2, Math.PI)), p))), 0.5), c), b);\n}\nfunction executeElasticInProgress(Progress) {\n return Progress === 0 ? 0 : Progress === 1 ? 1 : -Math.pow(2, 10 * Progress - 10) * Math.sin((Progress * 10 - 10.75) * (2 * Math.PI / 3));\n}\nfunction executeElasticOutProgress(Progress) {\n return Progress === 0 ? 0 : Progress === 1 ? 1 : Math.pow(2, -10 * Progress) * Math.sin((Progress * 10 - 0.75) * (2 * Math.PI / 3)) + 1;\n}\nfunction executeElasticInOutProgress(Progress) {\n return Progress === 0 ? 0 : Progress === 1 ? 1 : Progress < 0.5 ? -(Math.pow(2, 20 * Progress - 10) * Math.sin((20 * Progress - 11.125) * (2 * Math.PI / 4.5))) / 2 : Math.pow(2, -20 * Progress + 10) * Math.sin((20 * Progress - 11.125) * (2 * Math.PI / 4.5)) / 2 + 1;\n}\nfunction make_elastic_easing_in(curviosity) {\n this.execute = executeElasticIn;\n this.executeProgress = executeElasticInProgress;\n this.curviosity = curviosity;\n return this;\n}\nfunction make_elastic_easing_out(curviosity) {\n this.execute = executeElasticOut;\n this.executeProgress = executeElasticOutProgress;\n this.curviosity = curviosity;\n return this;\n}\nfunction make_elastic_easing_in_out(curviosity) {\n this.execute = executeElasticInOut;\n this.executeProgress = executeElasticInOutProgress;\n this.curviosity = curviosity;\n return this;\n}\nfunction executeBounceIn(t, b, c, d) {\n return $bm_sum($bm_sub(c, executeBounceOut($bm_sub(d, t), 0, c, d)), b);\n}\nfunction executeBounceOut(t, b, c, d) {\n if ((t /= d) < 1 / 2.75) {\n return $bm_sum($bm_mul(c, $bm_mul($bm_mul(7.5625, t), t)), b);\n } else if (t < 2 / 2.75) {\n return $bm_sum($bm_mul(c, $bm_sum($bm_mul($bm_mul(7.5625, t -= 1.5 / 2.75), t), 0.75)), b);\n } else if (t < 2.5 / 2.75) {\n return $bm_sum($bm_mul(c, $bm_sum($bm_mul($bm_mul(7.5625, t -= 2.25 / 2.75), t), 0.9375)), b);\n } else {\n return $bm_sum($bm_mul(c, $bm_sum($bm_mul($bm_mul(7.5625, t -= 2.625 / 2.75), t), 0.984375)), b);\n }\n}\nfunction executeBounceInOut(t, b, c, d) {\n if (t < $bm_div(d, 2))\n return $bm_sum($bm_mul(executeBounceIn($bm_mul(t, 2), 0, c, d), 0.5), b);\n return $bm_sum($bm_sum($bm_mul(executeBounceOut($bm_sub($bm_mul(t, 2), d), 0, c, d), 0.5), $bm_mul(c, 0.5)), b);\n}\nfunction executeBounceInProgress(oldProgress) {\n return $bm_sub(1, executeBounceOut($bm_sub(1, oldProgress)));\n}\nfunction executeBounceOutProgress(oldProgress) {\n if (oldProgress < 1 / 2.75) {\n return $bm_mul($bm_mul(7.5625, oldProgress), oldProgress);\n } else if (oldProgress < 2 / 2.75) {\n return $bm_sum($bm_mul($bm_mul(7.5625, oldProgress -= 1.5 / 2.75), oldProgress), 0.75);\n } else if (oldProgress < 2.5 / 2.75) {\n return $bm_sum($bm_mul($bm_mul(7.5625, oldProgress -= 2.25 / 2.75), oldProgress), 0.9375);\n } else {\n return $bm_sum($bm_mul($bm_mul(7.5625, oldProgress -= 2.625 / 2.75), oldProgress), 0.984375);\n }\n}\nfunction executeBounceInOutProgress(oldProgress) {\n if (oldProgress < 1 / 2)\n return $bm_mul(executeBounceIn($bm_mul(oldProgress, 2)), 0.5);\n return $bm_sum($bm_mul(executeBounceOut($bm_sub($bm_mul(oldProgress, 2), 1)), 0.5), 0.5);\n}\nfunction make_bounce_easing_in(curviosity) {\n this.execute = executeBounceIn;\n this.executeProgress = executeBounceInProgress;\n this.curviosity = curviosity;\n return this;\n}\nfunction make_bounce_easing_out(curviosity) {\n this.execute = executeBounceOut;\n this.executeProgress = executeBounceOutProgress;\n this.curviosity = curviosity;\n return this;\n}\nfunction make_bounce_easing_in_out(curviosity) {\n this.execute = executeBounceInOut;\n this.executeProgress = executeBounceInOutProgress;\n this.curviosity = curviosity;\n return this;\n}"},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,1],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[161.453,161.453],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":120,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Switch_RoundRect_BG_Outline","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[43,43,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[115,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[40.5,28.5],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":20,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0.631372570992,0.631372570992,0.631372570992,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":18,"s":[0.258823543787,0.592156887054,1,1]},{"t":36,"s":[0.631372570992,0.631372570992,0.631372570992,1]}],"ix":3,"x":"var $bm_rt;\nvar easingPreset = [[\n 1,\n 3,\n [\n 'make_bezier_easing',\n [\n 0.25,\n 0.46,\n 0.45,\n 1\n ],\n 'Glide.Out',\n false\n ]\n ]];\nfunction easingMaker() {\n var t, d, newProgress, i;\n var n = 0;\n if (numKeys > 0) {\n n = nearestKey(time).index;\n if (key(n).time > time) {\n n--;\n }\n }\n try {\n var key1 = key(n);\n var key2 = key($bm_sum(n, 1));\n } catch (e) {\n return null;\n }\n var expression = null;\n for (var i = 0; i < easingPreset.length; ++i) {\n if (easingPreset[i][0] <= n && easingPreset[i][1] >= n + 1) {\n expression = eval([easingPreset[i][2][0]][0]);\n try {\n expression = expression.apply({}, easingPreset[i][2][1].concat(easingPreset[i][2][3]));\n } catch (e) {\n expression = expression.apply({}, easingPreset[i][2][1]);\n }\n break;\n }\n }\n if (!expression)\n return null;\n var dim = 1;\n try {\n do {\n key(1)[dim];\n } while (++dim);\n } catch (e) {\n }\n t = $bm_sub(time, key1.time);\n d = $bm_sub(key2.time, key1.time);\n if (expression.hasOwnProperty('curviosity') && expression.curviosity || thisProperty.value.constructor === Object) {\n newProgress = expression.executeProgress($bm_div(t, d));\n return thisProperty.valueAtTime($bm_sum(key1.time, $bm_mul(d, newProgress)));\n }\n if (time < key1.time || time > key2.time) {\n return value;\n }\n var result = [];\n for (i = 0; i < dim; ++i) {\n result.push(expression.execute(t, key1[i], $bm_sub(key2[i], key1[i]), d));\n }\n if (result.length === 1)\n return result[0];\n return result;\n}\n$bm_rt = easingMaker() || value;\nfunction sampleCurveY(t) {\n return $bm_mul($bm_sum($bm_mul($bm_sum($bm_mul(this.ay, t), this.by), t), this.cy), t);\n}\nfunction sampleCurveX(t) {\n return $bm_mul($bm_sum($bm_mul($bm_sum($bm_mul(this.ax, t), this.bx), t), this.cx), t);\n}\nfunction sampleCurveDerivativeX(t) {\n return $bm_sum($bm_mul($bm_sum($bm_mul($bm_mul(3, this.ax), t), $bm_mul(2, this.bx)), t), this.cx);\n}\nfunction solveCurveX(x, epsilon) {\n var t2, i, x2, d2, t0, t1;\n for (t2 = x, i = 0; i < 8; i++) {\n x2 = $bm_sub(sampleCurveX.call(this, t2), x);\n if (Math.abs(x2) < epsilon)\n return t2;\n d2 = sampleCurveDerivativeX.call(this, t2);\n if (Math.abs(d2) < 0.000001)\n break;\n t2 = $bm_sub(t2, $bm_div(x2, d2));\n }\n t0 = 0;\n t1 = 1;\n t2 = x;\n if (t2 < t0)\n return t0;\n if (t2 > t1)\n return t1;\n while (t0 < t1) {\n x2 = sampleCurveX.call(this, t2);\n if (Math.abs(x2 - x) < epsilon)\n return t2;\n if (x > x2)\n t0 = t2;\n else\n t1 = t2;\n t2 = $bm_sum($bm_mul($bm_sub(t1, t0), 0.5), t0);\n }\n return t2;\n}\nfunction executeBezier(t, b, e, d) {\n return $bm_sum(b, $bm_mul(e, sampleCurveY.call(this, solveCurveX.call(this, $bm_div(t, d), $bm_div(1, $bm_mul(200, d))))));\n}\nfunction executeBezierProgress(oldProgress) {\n return sampleCurveY.call(this, solveCurveX.call(this, oldProgress, 1 / 200));\n}\nfunction make_bezier_easing(p1x, p1y, p2x, p2y, curviosity) {\n this.cx = $bm_mul(3, p1x);\n this.bx = $bm_sub($bm_mul(3, $bm_sub(p2x, p1x)), this.cx);\n this.ax = $bm_sub($bm_sub(1, this.cx), this.bx);\n this.cy = $bm_mul(3, p1y);\n this.by = $bm_sub($bm_mul(3, $bm_sub(p2y, p1y)), this.cy);\n this.ay = $bm_sub($bm_sub(1, this.cy), this.by);\n this.curviosity = curviosity;\n this.execute = executeBezier;\n this.executeProgress = executeBezierProgress;\n return this;\n}\nfunction executeElasticIn(t, b, c, d) {\n var s = 1.70158;\n var p = 0;\n var a = c;\n if (t === 0)\n return b;\n if ((t /= d) === 1)\n return $bm_sum(b, c);\n if (!p)\n p = $bm_mul(d, 0.3);\n if (a < Math.abs(c)) {\n a = c;\n s = $bm_div(p, 4);\n } else\n s = $bm_mul($bm_div(p, $bm_mul(2, Math.PI)), Math.asin(1));\n return $bm_sum($bm_neg($bm_mul($bm_mul(a, Math.pow(2, $bm_mul(10, t -= 1))), Math.sin($bm_div($bm_mul($bm_sub($bm_mul(t, d), s), $bm_mul(2, Math.PI)), p)))), b);\n}\nfunction executeElasticOut(t, b, c, d) {\n var s = 1.70158;\n var p = 0;\n var a = c;\n if (t === 0)\n return b;\n if ((t /= d) === 1)\n return $bm_sum(b, c);\n if (!p)\n p = $bm_mul(d, 0.3);\n if (a < Math.abs(c)) {\n a = c;\n s = $bm_div(p, 4);\n } else\n s = $bm_mul($bm_div(p, $bm_mul(2, Math.PI)), Math.asin(1));\n return $bm_sum($bm_sum($bm_mul($bm_mul(a, Math.pow(2, $bm_mul(-10, t))), Math.sin($bm_div($bm_mul($bm_sub($bm_mul(t, d), s), $bm_mul(2, Math.PI)), p))), c), b);\n}\nfunction executeElasticInOut(t, b, c, d) {\n var s = 1.70158;\n var p = 0;\n var a = c;\n if (t === 0)\n return b;\n if ((t /= d / 2) === 2)\n return $bm_sum(b, c);\n if (!p)\n p = $bm_mul(d, 0.3 * 1.5);\n if (a < Math.abs(c)) {\n a = c;\n s = $bm_div(p, 4);\n } else\n s = $bm_mul($bm_div(p, $bm_mul(2, Math.PI)), Math.asin(1));\n if (t < 1)\n return $bm_sum($bm_mul(-0.5, $bm_mul($bm_mul(a, Math.pow(2, $bm_mul(10, t -= 1))), Math.sin($bm_div($bm_mul($bm_sub($bm_mul(t, d), s), $bm_mul(2, Math.PI)), p)))), b);\n return $bm_sum($bm_sum($bm_mul($bm_mul($bm_mul(a, Math.pow(2, $bm_mul(-10, t -= 1))), Math.sin($bm_div($bm_mul($bm_sub($bm_mul(t, d), s), $bm_mul(2, Math.PI)), p))), 0.5), c), b);\n}\nfunction executeElasticInProgress(Progress) {\n return Progress === 0 ? 0 : Progress === 1 ? 1 : -Math.pow(2, 10 * Progress - 10) * Math.sin((Progress * 10 - 10.75) * (2 * Math.PI / 3));\n}\nfunction executeElasticOutProgress(Progress) {\n return Progress === 0 ? 0 : Progress === 1 ? 1 : Math.pow(2, -10 * Progress) * Math.sin((Progress * 10 - 0.75) * (2 * Math.PI / 3)) + 1;\n}\nfunction executeElasticInOutProgress(Progress) {\n return Progress === 0 ? 0 : Progress === 1 ? 1 : Progress < 0.5 ? -(Math.pow(2, 20 * Progress - 10) * Math.sin((20 * Progress - 11.125) * (2 * Math.PI / 4.5))) / 2 : Math.pow(2, -20 * Progress + 10) * Math.sin((20 * Progress - 11.125) * (2 * Math.PI / 4.5)) / 2 + 1;\n}\nfunction make_elastic_easing_in(curviosity) {\n this.execute = executeElasticIn;\n this.executeProgress = executeElasticInProgress;\n this.curviosity = curviosity;\n return this;\n}\nfunction make_elastic_easing_out(curviosity) {\n this.execute = executeElasticOut;\n this.executeProgress = executeElasticOutProgress;\n this.curviosity = curviosity;\n return this;\n}\nfunction make_elastic_easing_in_out(curviosity) {\n this.execute = executeElasticInOut;\n this.executeProgress = executeElasticInOutProgress;\n this.curviosity = curviosity;\n return this;\n}\nfunction executeBounceIn(t, b, c, d) {\n return $bm_sum($bm_sub(c, executeBounceOut($bm_sub(d, t), 0, c, d)), b);\n}\nfunction executeBounceOut(t, b, c, d) {\n if ((t /= d) < 1 / 2.75) {\n return $bm_sum($bm_mul(c, $bm_mul($bm_mul(7.5625, t), t)), b);\n } else if (t < 2 / 2.75) {\n return $bm_sum($bm_mul(c, $bm_sum($bm_mul($bm_mul(7.5625, t -= 1.5 / 2.75), t), 0.75)), b);\n } else if (t < 2.5 / 2.75) {\n return $bm_sum($bm_mul(c, $bm_sum($bm_mul($bm_mul(7.5625, t -= 2.25 / 2.75), t), 0.9375)), b);\n } else {\n return $bm_sum($bm_mul(c, $bm_sum($bm_mul($bm_mul(7.5625, t -= 2.625 / 2.75), t), 0.984375)), b);\n }\n}\nfunction executeBounceInOut(t, b, c, d) {\n if (t < $bm_div(d, 2))\n return $bm_sum($bm_mul(executeBounceIn($bm_mul(t, 2), 0, c, d), 0.5), b);\n return $bm_sum($bm_sum($bm_mul(executeBounceOut($bm_sub($bm_mul(t, 2), d), 0, c, d), 0.5), $bm_mul(c, 0.5)), b);\n}\nfunction executeBounceInProgress(oldProgress) {\n return $bm_sub(1, executeBounceOut($bm_sub(1, oldProgress)));\n}\nfunction executeBounceOutProgress(oldProgress) {\n if (oldProgress < 1 / 2.75) {\n return $bm_mul($bm_mul(7.5625, oldProgress), oldProgress);\n } else if (oldProgress < 2 / 2.75) {\n return $bm_sum($bm_mul($bm_mul(7.5625, oldProgress -= 1.5 / 2.75), oldProgress), 0.75);\n } else if (oldProgress < 2.5 / 2.75) {\n return $bm_sum($bm_mul($bm_mul(7.5625, oldProgress -= 2.25 / 2.75), oldProgress), 0.9375);\n } else {\n return $bm_sum($bm_mul($bm_mul(7.5625, oldProgress -= 2.625 / 2.75), oldProgress), 0.984375);\n }\n}\nfunction executeBounceInOutProgress(oldProgress) {\n if (oldProgress < 1 / 2)\n return $bm_mul(executeBounceIn($bm_mul(oldProgress, 2)), 0.5);\n return $bm_sum($bm_mul(executeBounceOut($bm_sub($bm_mul(oldProgress, 2), 1)), 0.5), 0.5);\n}\nfunction make_bounce_easing_in(curviosity) {\n this.execute = executeBounceIn;\n this.executeProgress = executeBounceInProgress;\n this.curviosity = curviosity;\n return this;\n}\nfunction make_bounce_easing_out(curviosity) {\n this.execute = executeBounceOut;\n this.executeProgress = executeBounceOutProgress;\n this.curviosity = curviosity;\n return this;\n}\nfunction make_bounce_easing_in_out(curviosity) {\n this.execute = executeBounceInOut;\n this.executeProgress = executeBounceInOutProgress;\n this.curviosity = curviosity;\n return this;\n}"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,1],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[161.453,161.453],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":120,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/src/Tizen.NUI.Wearable/src/internal/FishEyeLayoutManager.cs b/src/Tizen.NUI.Wearable/src/internal/FishEyeLayoutManager.cs deleted file mode 100755 index 21f88cca120..00000000000 --- a/src/Tizen.NUI.Wearable/src/internal/FishEyeLayoutManager.cs +++ /dev/null @@ -1,288 +0,0 @@ -/* Copyright (c) 2020 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 Tizen.NUI.Components; -using System.Collections.Generic; - -namespace Tizen.NUI.Wearable -{ - /// - /// [Draft] This class implements a fish eye layout - /// - internal sealed class FishEyeLayoutManager : RecycleLayoutManager - { - public int CurrentFocusedIndex { get; set; } = 0; - public int FocusedIndex { get; set; } = 0; - public FishEyeLayoutManager() - { - } - - private float FindCandidatePosition(float startPosition, float scrollPosition, bool isBack) - { - // There are two ellipses which return how much scale needed. - // We can find candidate position by intersection of ellipse and line. - // Item size is always determined before calculation, so can get angle of it by height/width when orientation is vertical. - // Y intercept is on previous item. - - double center = Math.Abs(scrollPosition); - double result = isBack ? center + 180.0f : center - 180.0f; - - // double newFactor = Math.Pow(180,2) / CalculateXFactor(0); - double angle = ItemSize.Height / ItemSize.Width; - double intercept = (startPosition - center); - double constant = Math.Sqrt(Math.Pow((180 * 333), 2) / (Math.Pow(333, 2) - Math.Pow(153, 2))); - - double semiMajorAxis = 333.0; - double centerOfEllipse = -153.0; - double centerOfEllipse2 = 153.0; - - // Find intersection using qurdratic formula. - // We have two different equations because there are two different ellipse. - double a = Math.Pow(semiMajorAxis, 2) + Math.Pow(angle * constant, 2); - double b = -(intercept * Math.Pow(semiMajorAxis, 2) + centerOfEllipse * Math.Pow(angle * constant, 2)); - double c = Math.Pow(intercept * semiMajorAxis, 2) + Math.Pow(angle * constant * centerOfEllipse, 2) - Math.Pow(angle * constant * semiMajorAxis, 2); - double b2 = -(intercept * Math.Pow(semiMajorAxis, 2) + centerOfEllipse2 * Math.Pow(angle * constant, 2)); - double c2 = Math.Pow(intercept * semiMajorAxis, 2) + Math.Pow(angle * constant * centerOfEllipse2, 2) - Math.Pow(angle * constant * semiMajorAxis, 2); - - double result1 = (-b + Math.Sqrt((Math.Pow(b, 2) - a * c))) / a; - double result2 = (-b - Math.Sqrt((Math.Pow(b, 2) - a * c))) / a; - double result3 = (-b2 + Math.Sqrt((Math.Pow(b2, 2) - a * c2))) / a; - double result4 = (-b2 - Math.Sqrt((Math.Pow(b2, 2) - a * c2))) / a; - - result = isBack ? result1 : result4; - return (float)(center + result); - } - - - public override float CalculateLayoutOrientationSize() - { - return StepSize * (DataCount-1); - } - - public override void Layout(float scrollPosition) - { - RecycleItem centerItem = Container.Children[FocusedIndex] as RecycleItem; - if (centerItem == null) - { - return; - } - - float centerItemPosition = LayoutOrientation == Orientation.Horizontal ? centerItem.Position.X : centerItem.Position.Y; - - Vector2 stepRange = new Vector2(-scrollPosition - StepSize + 1.0f, -scrollPosition + StepSize - 1.0f); - Vector2 visibleRange = new Vector2(Math.Abs(scrollPosition) - 180, Math.Abs(scrollPosition) + 180); - - if (StepSize != 0 && centerItemPosition <= stepRange.X) - { - FocusedIndex = Math.Min(Container.Children.Count - 1, FocusedIndex + 1); - centerItem = Container.Children[FocusedIndex] as RecycleItem; - if (centerItem != null) - { - centerItem.Position = new Position(0.0f, Math.Abs(StepSize * (centerItem.DataIndex))); - centerItem.Scale = new Vector3(1.0f, 1.0f, 1.0f); - } - } - else if (StepSize != 0 && centerItemPosition >= stepRange.Y) - { - FocusedIndex = Math.Max(0, FocusedIndex - 1); - centerItem = Container.Children[FocusedIndex] as RecycleItem; - if (centerItem != null) - { - centerItem.Position = new Position(0.0f, Math.Abs(StepSize * (centerItem.DataIndex))); - centerItem.Scale = new Vector3(1.0f, 1.0f, 1.0f); - } - } - else - { - float centerItemScale = CalculateScaleFactor(centerItemPosition, scrollPosition); - centerItem.Scale = new Vector3(centerItemScale, centerItemScale, 1.0f); - } - - RecycleItem prevItem = centerItem; - if (prevItem == null) - { - return; - } - - // Front of center item - for (int i = FocusedIndex - 1; i > -1; i--) - { - RecycleItem target = Container.Children[i] as RecycleItem; - if (target == null) - { - continue; - } - - float prevItemPosition = LayoutOrientation == Orientation.Horizontal ? prevItem.Position.X : prevItem.Position.Y; - float prevItemSize = (LayoutOrientation == Orientation.Horizontal ? prevItem.Size.Width : prevItem.Size.Height); - float prevItemCurrentSize = (LayoutOrientation == Orientation.Horizontal ? prevItem.GetCurrentSizeFloat().Width : prevItem.GetCurrentSizeFloat().Height); - prevItemSize = prevItemCurrentSize == 0 ? prevItemSize : prevItemCurrentSize; - prevItemSize = prevItemSize * prevItem.Scale.X; - - float startPosition = prevItemPosition - prevItemSize / 2.0f; - - if (startPosition > visibleRange.X) - { - float candidatePosition = visibleRange.X; - candidatePosition = FindCandidatePosition(startPosition, scrollPosition, false); - target.Position = LayoutOrientation == Orientation.Horizontal ? - new Position(candidatePosition, target.Position.Y) : - new Position(target.Position.X, candidatePosition); - - float scaleFactor = CalculateScaleFactor(candidatePosition, scrollPosition); - target.Scale = new Vector3(scaleFactor, scaleFactor, 1.0f); - - prevItem = target; - } - else - { - target.Scale = new Vector3(0.0f, 0.0f, 1.0f); - } - } - - prevItem = centerItem; - - // Back of center item - for (int i = FocusedIndex + 1; i < Container.Children.Count; i++) - { - RecycleItem target = Container.Children[i] as RecycleItem; - if (target == null) - { - continue; - } - - float prevItemPosition = LayoutOrientation == Orientation.Horizontal ? prevItem.Position.X : prevItem.Position.Y; - float prevItemSize = (LayoutOrientation == Orientation.Horizontal ? prevItem.Size.Width : prevItem.Size.Height); - float prevItemCurrentSize = (LayoutOrientation == Orientation.Horizontal ? prevItem.GetCurrentSizeFloat().Width : prevItem.GetCurrentSizeFloat().Height); - prevItemSize = prevItemCurrentSize == 0 ? prevItemSize : prevItemCurrentSize; - prevItemSize = prevItemSize * prevItem.Scale.X; - - float startPosition = prevItemPosition + prevItemSize / 2.0f; - - if (startPosition < visibleRange.Y) - { - float candidatePosition = visibleRange.Y; - candidatePosition = FindCandidatePosition(startPosition, scrollPosition, true); - target.Position = LayoutOrientation == Orientation.Horizontal ? - new Position(candidatePosition, target.Position.Y) : - new Position(target.Position.X, candidatePosition); - - float scaleFactor = CalculateScaleFactor(candidatePosition, scrollPosition); - target.Scale = new Vector3(scaleFactor, scaleFactor, 1.0f); - - prevItem = target; - } - else - { - target.Scale = new Vector3(0.0f, 0.0f, 1.0f); - } - } - - if (StepSize == 0) - { - if (LayoutOrientation == Orientation.Horizontal) - { - StepSize = Container.Children[0].Size.Width / 2.0f + Container.Children[1].Size.Width * Container.Children[1].Scale.X / 2.0f; - } - else - { - StepSize = Container.Children[0].Size.Height / 2.0f + Container.Children[1].Size.Height * Container.Children[1].Scale.X / 2.0f; - } - - StepSize = float.IsNaN(StepSize)?0:StepSize; - } - } - - public override List Recycle(float scrollPosition) - { - List result = new List(); - - bool isBack = scrollPosition - PrevScrollPosition < 0; - - int previousFocusIndex = FocusedIndex; - - if (!isBack && FocusedIndex < 6) - { - RecycleItem target = Container.Children[Container.Children.Count - 1] as RecycleItem; - if (target != null) - { - int previousSiblingOrder = target.SiblingOrder; - target.SiblingOrder = 0; - target.DataIndex = target.DataIndex - Container.Children.Count; - target.Position = new Position(0, Math.Abs(scrollPosition) - 360); - target.Scale = new Vector3(0, 0, 0); - - result.Add(target); - - FocusedIndex++; - } - } - else if (isBack && FocusedIndex > 8) - { - RecycleItem target = Container.Children[0] as RecycleItem; - if (target != null) - { - int previousSiblingOrder = target.SiblingOrder; - target.SiblingOrder = Container.Children.Count - 1; - target.DataIndex = target.DataIndex + Container.Children.Count; - target.Position = new Position(0, Math.Abs(scrollPosition) + 360); - target.Scale = new Vector3(0, 0, 0); - - result.Add(target); - - FocusedIndex--; - } - } - - PrevScrollPosition = scrollPosition; - - return result; - } - - private double CalculateXFactor(double y) - { - double factor1 = Math.Pow(180, 2); - double factor2 = Math.Pow(333, 2); - double factor3 = Math.Pow((y + 153), 2); - - return Math.Sqrt(factor1 - (factor1 / factor2 * factor3)); - } - - private float CalculateScaleFactor(float position, float scrollPosition) - { - float origin = Math.Abs(scrollPosition); - float diff = position - origin; - - diff = Math.Max(diff, -180); - diff = Math.Min(diff, 180); - diff = Math.Abs(diff); - - float result = (float)(CalculateXFactor(diff) / CalculateXFactor(0)); - return result; - } - - public override float CalculateCandidateScrollPosition(float scrollPosition) - { - int value = (int)(Math.Abs(scrollPosition) / StepSize); - float remain = Math.Abs(scrollPosition) % StepSize; - - int newValue = remain > StepSize / 2.0f ? value + 1 : value; - - CurrentFocusedIndex = newValue; - return -newValue * StepSize; - } - } -} diff --git a/src/Tizen.NUI.Wearable/src/internal/NUIWatchCoreBackend.cs b/src/Tizen.NUI.Wearable/src/internal/NUIWatchCoreBackend.cs deleted file mode 100755 index a19d15dd4d3..00000000000 --- a/src/Tizen.NUI.Wearable/src/internal/NUIWatchCoreBackend.cs +++ /dev/null @@ -1,270 +0,0 @@ -/* - * Copyright (c) 2017 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.Collections.Generic; -using Tizen.Applications.CoreBackend; -using Tizen.Applications; - -namespace Tizen.NUI -{ - class NUIWatchCoreBackend : ICoreBackend - { - /// - /// Application instance to connect event. - /// - protected WatchApplication _application; - private string _stylesheet = ""; - - /// - /// Dictionary to contain each type of event callback. - /// - protected IDictionary Handlers = new Dictionary(); - - /// - /// The default Constructor. - /// - public NUIWatchCoreBackend() - { - } - - /// - /// The constructor with stylesheet. - /// - public NUIWatchCoreBackend(string stylesheet) - { - _stylesheet = stylesheet; - } - - /// - /// Add NUIApplication event to Application. - /// Put each type of event callback in Dictionary. - /// - /// Type of event - /// Event callback - public void AddEventHandler(EventType evType, Action handler) - { - Handlers.Add(evType, handler); - } - - /// - /// Add NUIApplication event to Application. - /// Put each type of event callback in Dictionary. - /// - /// Argument type for the event - /// Type of event - /// Event callback - public void AddEventHandler(EventType evType, Action handler) where TEventArgs : EventArgs - { - Handlers.Add(evType, handler); - } - - - /// - /// Dispose function. - /// - public void Dispose() - { - _application.Dispose(); - } - - /// - /// Exit Application. - /// - public void Exit() - { - _application.Quit(); - } - - /// - /// Run Application. - /// - /// Arguments from commandline. - public void Run(string[] args) - { - args[0] = Tizen.Applications.Application.Current.ApplicationInfo.ExecutablePath; - if (args.Length == 1) - { - _application = WatchApplication.NewWatchApplication(); - } - else if (args.Length > 1) - { - _application = WatchApplication.NewWatchApplication(args, _stylesheet); - } - - _application.BatteryLow += OnBatteryLow; - _application.LanguageChanged += OnLanguageChanged; - _application.MemoryLow += OnMemoryLow; - _application.RegionChanged += OnRegionChanged; - - _application.Initialized += OnInitialized; - _application.Resumed += OnResumed; - _application.Terminating += OnTerminated; - _application.Paused += OnPaused; - _application.AppControl += OnAppControl; - - _application.AmbientChanged += OnAmbientChanged; - _application.AmbientTick += OnAmbientTick; - _application.TimeTick += OnTimeTick; - - _application.MainLoop(); - } - - private void OnTimeTick(object source, WatchApplication.TimeTickEventArgs e) - { - Log.Debug("NUI", "NUIWatchCorebackend OnTimeTick Called"); - var handler = Handlers[NUIEventType.TimeTick] as Action; - handler?.Invoke(new NUIWatchApplication.TimeTickEventArgs(e.WatchTime)); - } - - private void OnAmbientTick(object source, WatchApplication.AmbientTickEventArgs e) - { - Log.Debug("NUI", "NUIWatchCorebackend OnAmbientTick Called"); - var handler = Handlers[NUIEventType.AmbientTick] as Action; - handler?.Invoke(new NUIWatchApplication.AmbientTickEventArgs(e.WatchTime)); - } - - private void OnAmbientChanged(object source, WatchApplication.AmbientChangedEventArgs e) - { - Log.Debug("NUI", "NUIWatchCorebackend OnAmbientChanged Called"); - var handler = Handlers[NUIEventType.AmbientChanged] as Action; - handler?.Invoke(new NUIWatchApplication.AmbientChangedEventArgs(e.Changed)); - } - - /// - /// Region changed event callback function. - /// - /// Application instance - /// Event argument for RegionChanged - private void OnRegionChanged(object source, NUIApplicationRegionChangedEventArgs e) - { - Log.Debug("NUI", "NUIWatchCorebackend OnRegionChanged Called"); - var handler = Handlers[EventType.RegionFormatChanged] as Action; - // Need to make new signal return in native to return right value. - handler?.Invoke( new RegionFormatChangedEventArgs("")); - } - - /// - /// Memory Low event callback function. - /// - /// Application instance - /// Event argument for MemoryLow - private void OnMemoryLow(object source, NUIApplicationMemoryLowEventArgs e) - { - Log.Debug("NUI", "NUIWatchCorebackend OnMemoryLow Called"); - var handler = Handlers[EventType.LowMemory] as Action; - // Need to make new signal return in native to return right value. - handler?.Invoke( new LowMemoryEventArgs(LowMemoryStatus.None)); - } - - /// - /// Language changed event callback function. - /// - /// Application instance - /// Event argument for LanguageChanged - private void OnLanguageChanged(object source, NUIApplicationLanguageChangedEventArgs e) - { - Log.Debug("NUI", "NUIWatchCorebackend OnLanguageChanged Called"); - var handler = Handlers[EventType.LocaleChanged] as Action; - // Need to make new signal return in native to return right value. - handler?.Invoke( new LocaleChangedEventArgs((source as Application)?.GetLanguage())); - } - - /// - /// Battery low event callback function. - /// - /// Application instance - /// Event argument for BatteryLow - private void OnBatteryLow(object source, NUIApplicationBatteryLowEventArgs e) - { - Log.Debug("NUI", "NUIWatchCorebackend OnBatteryLow Called"); - var handler = Handlers[EventType.LowBattery] as Action; - // Need to make new signal return in native to return right value. - handler?.Invoke(new LowBatteryEventArgs(LowBatteryStatus.None)); - } - - /// - /// Initialized event callback function. - /// - /// Application instance - /// Event argument for Initialized - private void OnInitialized(object source, NUIApplicationInitEventArgs e) - { - Log.Debug("NUI", "NUIWatchCorebackend OnInitialized Called"); - var handler = Handlers[EventType.Created] as Action; - handler?.Invoke(); - } - - /// - /// Terminated event callback function. - /// - /// Application instance - /// Event argument for Terminated - private void OnTerminated(object source, NUIApplicationTerminatingEventArgs e) - { - Log.Debug("NUI", "NUIWatchCorebackend OnTerminated Called"); - var handler = Handlers[EventType.Terminated] as Action; - handler?.Invoke(); - } - - /// - /// Resumed event callback function. - /// - /// Application instance - /// Event argument for Resumed - private void OnResumed(object source, NUIApplicationResumedEventArgs e) - { - Log.Debug("NUI", "NUIWatchCorebackend OnResumed Called"); - var handler = Handlers[EventType.Resumed] as Action; - handler?.Invoke(); - } - - /// - /// App control event callback function. - /// - /// Application instance - /// Event argument for AppControl - private void OnAppControl(object source, NUIApplicationAppControlEventArgs e) - { - Log.Debug("NUI", "NUIWatchCorebackend OnAppControl Called"); - var handler = Handlers[EventType.AppControlReceived] as Action; - SafeAppControlHandle handle = new SafeAppControlHandle(e.VoidP, false); - handler?.Invoke(new AppControlReceivedEventArgs(new ReceivedAppControl(handle))); - } - - /// - /// Paused event callback function. - /// - /// Application instance - /// Event argument for Paused - private void OnPaused(object source, NUIApplicationPausedEventArgs e) - { - Log.Debug("NUI", "NUIWatchCorebackend OnPaused Called"); - var handler = Handlers[EventType.Paused] as Action; - handler?.Invoke(); - } - - internal WatchApplication WatchApplicationHandle - { - get - { - return _application; - } - } - - } -} diff --git a/src/Tizen.NUI.Wearable/src/internal/Theme/DefaultTheme.cs b/src/Tizen.NUI.Wearable/src/internal/Theme/DefaultTheme.cs deleted file mode 100644 index 1a71dc197ce..00000000000 --- a/src/Tizen.NUI.Wearable/src/internal/Theme/DefaultTheme.cs +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Copyright(c) 2020 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.Collections.Generic; -using Tizen.NUI.BaseComponents; - -namespace Tizen.NUI.Wearable -{ - internal sealed class DefaultThemeCreator : IThemeCreator - { - private DefaultThemeCreator() { } - - public static IThemeCreator Instance { get; set; } = new DefaultThemeCreator(); - - public Theme Create() - { - var theme = new Theme() - { - Id = Tizen.NUI.DefaultThemeCreator.DefaultId, - Version = Tizen.NUI.DefaultThemeCreator.DefaultVersion - }; - - theme.AddStyleWithoutClone("Tizen.NUI.Wearable.CircularPagination", new CircularPaginationStyle() - { - IndicatorSize = new Size(10, 10), - IndicatorImageURL = new Selector() - { - Normal = FrameworkInformation.ResourcePath + "nui_component_default_pagination_normal_dot.png", - Selected = FrameworkInformation.ResourcePath + "nui_component_default_pagination_focus_dot.png", - }, - CenterIndicatorImageURL = new Selector() - { - Normal = FrameworkInformation.ResourcePath + "nui_wearable_circular_pagination_center_normal_dot.png", - Selected = FrameworkInformation.ResourcePath + "nui_wearable_circular_pagination_center_focus_dot.png", - }, - }); - - theme.AddStyleWithoutClone("Tizen.NUI.Wearable.CircularProgress", new CircularProgressStyle() - { - Thickness = 6, - MaxValue = 100, - MinValue = 0, - CurrentValue = 0, - TrackColor = new Color(0, 0.16f, 0.3f, 1), - ProgressColor = new Color(0, 0.55f, 1, 1) - }); - - theme.AddStyleWithoutClone("Tizen.NUI.Wearable.CircularScrollbar", new CircularScrollbarStyle() - { - Thickness = 10, - TrackSweepAngle = 60, - TrackColor = new Color(1, 1, 1, 0.15f), - ThumbColor = new Color(0.6f, 0.6f, 0.6f, 1) - }); - - theme.AddStyleWithoutClone("Tizen.NUI.Wearable.CircularSlider", new CircularSliderStyle() - { - Thickness = 6, - MaxValue = 100, - MinValue = 0, - CurrentValue = 0, - TrackColor = new Color(0, 0.16f, 0.3f, 1), - ProgressColor = new Color(0, 0.55f, 1, 1), - ThumbSize = new Size(19, 19), - ThumbColor = new Color(0, 0.55f, 1, 1) - }); - - return theme; - } - } -} diff --git a/src/Tizen.NUI.Wearable/src/public/CircularPagination.cs b/src/Tizen.NUI.Wearable/src/public/CircularPagination.cs deleted file mode 100755 index 143d6f70c98..00000000000 --- a/src/Tizen.NUI.Wearable/src/public/CircularPagination.cs +++ /dev/null @@ -1,787 +0,0 @@ -/* - * 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.Collections.Generic; -using System.ComponentModel; -using Tizen.NUI.BaseComponents; -using Tizen.NUI.Components; - -namespace Tizen.NUI.Wearable -{ - /// - /// CircularPagination shows the number of pages available and the currently active page. - /// Especially, CircularPagination provides indicators specific to wearable device. - /// - /// 8 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public class CircularPagination : Control - { - private CircularPaginationStyle circularPaginationStyle; - - private VisualView container; - - private List indicatorList = new List(); - - private bool isSymmetrical = true; - private int middleIndex = 9; - private int indicatorCount = 0; - private int leftIndicatorCount = 0; - private int rightIndicatorCount = 0; - private int selectedIndex = -1; - private bool isCenterImageSet = false; // When CenterIndicatorImageURL is set, this variable becomes true. - private bool isCurrentIndicatorCentered = false; // When the current indicator is the center one, this variable becomes true. - private bool isOddNumber = true; - private bool uninitializedLeftIndicator = true; // Need it when the indicators are asymmetry and the right indicator count is set earlier than left one. - - Position2D[] oddArray = new Position2D[] { new Position2D(36, 74), new Position2D(47, 60), new Position2D(60, 47), new Position2D(74, 36), - new Position2D(89, 26), new Position2D(105, 18), new Position2D(122, 11), new Position2D(139, 7), - new Position2D(157, 4), new Position2D(175, 3), new Position2D(193, 4), new Position2D(211, 7), - new Position2D(228, 11), new Position2D(245, 18), new Position2D(261, 26), new Position2D(276, 36), - new Position2D(290, 47), new Position2D(303, 60), new Position2D(314, 73) }; - - Position2D[] evenArray = new Position2D[] { new Position2D(41, 67), new Position2D(53, 53), new Position2D(67, 41), new Position2D(81, 31), - new Position2D(97, 22), new Position2D(113, 14), new Position2D(131, 9), new Position2D(148, 5), - new Position2D(166, 3), new Position2D(184, 3), new Position2D(202, 5), new Position2D(220, 9), - new Position2D(237, 14), new Position2D(253, 22), new Position2D(269, 31), new Position2D(283, 41), - new Position2D(297, 53), new Position2D(309, 67) }; - - static CircularPagination() - { - ThemeManager.AddPackageTheme(DefaultThemeCreator.Instance); - } - - /// - /// Creates a new instance of a CircularPagination. - /// - /// 8 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public CircularPagination() : base() - { - Initialize(); - } - - /// - /// Creates a new instance of a CircularPagination using style. - /// - /// 8 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public CircularPagination(CircularPaginationStyle style) : base(style) - { - Initialize(); - } - - /// - /// Gets or sets the size of the indicator. - /// - /// 8 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public Size IndicatorSize - { - get - { - return circularPaginationStyle?.IndicatorSize; - } - set - { - if (value == null || circularPaginationStyle == null) - { - return; - } - circularPaginationStyle.IndicatorSize = value; - UpdateVisual(); - } - } - - /// - /// Gets or sets the background resource of indicator. - /// - /// 8 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public Selector IndicatorImageURL - { - get - { - return circularPaginationStyle?.IndicatorImageURL; - } - set - { - if (value == null || circularPaginationStyle == null) - { - return; - } - circularPaginationStyle.IndicatorImageURL = value; - UpdateVisual(); - } - } - - /// - /// Gets or sets the background resource of the center indicator. - /// - /// 8 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public Selector CenterIndicatorImageURL - { - get - { - if (isCenterImageSet) - { - return circularPaginationStyle?.CenterIndicatorImageURL; - } - else - { - Log.Info("NUI", "CenterIndicatorImageURL is not set yet. \n"); - return ""; - } - - } - set - { - if (value == null || circularPaginationStyle == null) - { - return; - } - circularPaginationStyle.CenterIndicatorImageURL = value; - isCenterImageSet = true; - UpdateVisual(); - } - } - - /// - /// Checks whether the indicators are symmetrical or not. - /// - /// The default value is true. - /// If the value is true, the user just can set IndicatorCount. - /// If false, the user should set both the number of Left Indicators and the number of Right Indicators. - /// Please refer to LeftIndicatorCount and RightIndicatorCount. - /// - /// 8 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public bool IsSymmetrical - { - get - { - return isSymmetrical; - } - set - { - if (isSymmetrical == value) - { - return; - } - if (value == false) - { - isOddNumber = true; - CreateIndicator(middleIndex); - } - - isSymmetrical = value; - UpdateContainer(); - UpdateVisual(); - } - } - - /// - /// Gets or sets the number of the pages/indicators. - /// - /// This value is for symmetrical indicators. - /// - /// 8 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public int IndicatorCount - { - get - { - return indicatorCount; - } - set - { - if (indicatorCount == value || indicatorCount < 0 || value <= 0) - { - return; - } - if (isSymmetrical == false) - { - Log.Info("NUI", "This property is not for asymmetric pagination. Change to symmetrical pagination.\n"); - isSymmetrical = true; - } - - if (value % 2 == 1) // Odd number - { - isOddNumber = true; - } - else // Even number - { - isOddNumber = false; - } - - if (indicatorCount < value) - { - int arrayIndex = 0; - if (isOddNumber) - { - arrayIndex = (19 - value) / 2; - } - else - { - arrayIndex = (18 - value) / 2; - } - if (arrayIndex < 0) return; - - for (int i = (indicatorCount + 1); i <= value; i++) - { - CreateIndicator(arrayIndex); - arrayIndex++; - } - - // If selectedIndex is not set yet, the default value is middle index. - if (selectedIndex == -1) - { - selectedIndex = value / 2; - SelectIn(indicatorList[selectedIndex]); - } - } - else - { - for (int i = value; i < indicatorCount; i++) - { - ImageVisual indicator = indicatorList[i]; - container.RemoveVisual("Indicator" + i); - } - indicatorList.RemoveRange(value, indicatorCount - value); - - if (selectedIndex >= value) - { - selectedIndex = value - 1; - SelectIn(indicatorList[selectedIndex]); - } - } - indicatorCount = value; - - UpdateContainer(); - UpdateVisual(); - } - } - - /// - /// Gets or sets the number of the left pages/indicators. - /// - /// This value can be set when IsSymmetrical API is false. - /// - /// 8 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public int LeftIndicatorCount - { - get - { - return leftIndicatorCount; - } - set - { - if (isSymmetrical == true) - { - Log.Info("NUI", "This variable is not for symmetric pagination. \n"); - isSymmetrical = false; - //return; - } - if (leftIndicatorCount == value || leftIndicatorCount < 0 || value > 9 || value < 0) - { - return; - } - - isOddNumber = true; - - if (leftIndicatorCount < value) - { - for (int i = (middleIndex - value); i < (middleIndex - leftIndicatorCount); i++) - { - CreateIndicator(i); - selectedIndex++; - } - } - else - { - for (int i = 0; i < (leftIndicatorCount - value); i++) - { - ImageVisual indicator = indicatorList[i]; - container.RemoveVisual("Indicator" + i); - } - indicatorList.RemoveRange(0, (leftIndicatorCount - value)); // LeftIndicator starts from index 0. - - if (selectedIndex == 0) - { - selectedIndex++; - SelectIn(indicatorList[selectedIndex]); - } - else - { - selectedIndex--; - SelectIn(indicatorList[selectedIndex]); - } - } - leftIndicatorCount = value; - indicatorCount = leftIndicatorCount + rightIndicatorCount + 1; - - // When RightIndicatorCount is set before, then selectedIndex should be updated using the current LeftIndicatorCount. - if (uninitializedLeftIndicator && selectedIndex == 0) - { - selectedIndex = leftIndicatorCount; - } - uninitializedLeftIndicator = false; - - UpdateContainer(); - UpdateAsymmetry(); - } - } - - /// - /// Gets or sets the number of the right pages/indicators. - /// - /// This value can be set when IsSymmetrical API is false. - /// - /// 8 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public int RightIndicatorCount - { - get - { - return rightIndicatorCount; - } - set - { - if (isSymmetrical == true) - { - Log.Info("NUI", "This variable is not for symmetric pagination. \n"); - isSymmetrical = false; - //return; - } - if (rightIndicatorCount == value || rightIndicatorCount < 0 || value > 9 || value < 0) - { - return; - } - - isOddNumber = true; - - if (rightIndicatorCount < value) - { - for (int i = (middleIndex + rightIndicatorCount + 1); i <= (middleIndex + value); i++) - { - CreateIndicator(i); - } - } - else - { - for (int i = (leftIndicatorCount + value + 1); i < (leftIndicatorCount + rightIndicatorCount); i++) - { - ImageVisual indicator = indicatorList[i]; - container.RemoveVisual("Indicator" + i); - } - indicatorList.RemoveRange((leftIndicatorCount + value), (rightIndicatorCount - value)); - - if (selectedIndex >= (leftIndicatorCount + rightIndicatorCount)) - { - selectedIndex--; - SelectIn(indicatorList[selectedIndex]); - } - } - rightIndicatorCount = value; - indicatorCount = leftIndicatorCount + rightIndicatorCount + 1; - - UpdateContainer(); - UpdateAsymmetry(); - } - } - - /// - /// Gets or sets the index of the select indicator. - /// - /// If no value is set, the default value is the center indicator. - /// - /// 8 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public int SelectedIndex - { - get - { - return selectedIndex; - } - set - { - if (selectedIndex == value || value < 0 || value >= indicatorCount) - { - return; - } - - // TODO : Here it needs to add virtual function for Animation. - - if (selectedIndex >= 0) - { - if ((isSymmetrical && selectedIndex < indicatorCount) || - (!isSymmetrical && selectedIndex <= (middleIndex + rightIndicatorCount))) - { - CheckCenterIndicator(selectedIndex); - SelectOut(indicatorList[selectedIndex]); - } - } - selectedIndex = value; - if (selectedIndex >= 0) - { - if ((isSymmetrical && selectedIndex < indicatorCount) || - (!isSymmetrical && selectedIndex <= (middleIndex + rightIndicatorCount))) - { - CheckCenterIndicator(selectedIndex); - SelectIn(indicatorList[selectedIndex]); - } - } - } - } - - /// - /// Retrieves the position of a indicator by index. - /// - /// Indicator index - /// The position of a indicator by index - /// 8 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public Position GetIndicatorPosition(int index) - { - if (index < 0 || index >= indicatorList.Count) - { - return null; - } - return new Position(indicatorList[index].Position.X, indicatorList[index].Position.Y); - } - - /// - /// Sets the position of a indicator by index. - /// - /// Indicator index - /// The position of a indicator by index - /// This exception can occur by the position is null. - /// 8 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public virtual void SetIndicatorPosition(int index, Position position) - { - if (position == null) - { - throw new ArgumentNullException(nameof(position)); - } - // Update odd / even Array and List by each converted index. - if (isOddNumber) - { - if (isSymmetrical) - { - oddArray[(middleIndex - (indicatorCount / 2) + index)] = position; - } - else // IsSymmetrical is false and it means the number of left indicators is different from that of right ones. - { - oddArray[(middleIndex - leftIndicatorCount) + index] = position; - } - indicatorList[index].Position = new Vector2(position.X, position.Y); - } - else // Only symmetry circular pagination can be even number. - { - evenArray[(middleIndex - (indicatorCount / 2) + index)] = position; - indicatorList[index].Position = new Vector2(position.X, position.Y); - } - UpdateVisual(); - } - - /// - /// You can override it to do your select out operation. - /// - /// The indicator will be selected out - /// 8 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - protected virtual void SelectOut(VisualMap selectOutIndicator) - { - if (!(selectOutIndicator is ImageVisual visual)) return; - if (isCurrentIndicatorCentered) - { - visual.URL = circularPaginationStyle?.CenterIndicatorImageURL?.Normal; - } - else - { - visual.URL = circularPaginationStyle?.IndicatorImageURL?.Normal; - } - visual.Opacity = 0.5f; - } - - /// - /// You can override it to do your select in operation. - /// - /// The indicator will be selected in - /// 8 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - protected virtual void SelectIn(VisualMap selectInIndicator) - { - if (!(selectInIndicator is ImageVisual visual)) return; - if (isCurrentIndicatorCentered) - { - visual.URL = circularPaginationStyle?.CenterIndicatorImageURL?.Selected; - } - else - { - visual.URL = circularPaginationStyle?.IndicatorImageURL?.Selected; - } - visual.Opacity = 1.0f; - } - - /// - /// you can override it to create your own default style. - /// - /// 8 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - protected override ViewStyle CreateViewStyle() - { - return new CircularPaginationStyle(); - } - - /// - /// you can override it to clean-up your own resources. - /// - /// DisposeTypes - /// 8 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - protected override void Dispose(DisposeTypes type) - { - if (disposed) - { - return; - } - - if (type == DisposeTypes.Explicit) - { - container.RemoveAll(); - indicatorList.Clear(); - - this.Remove(container); - container.Dispose(); - container = null; - } - - base.Dispose(type); - } - - private void Initialize() - { - circularPaginationStyle = ViewStyle as CircularPaginationStyle; - if (circularPaginationStyle == null) - { - throw new Exception("CircularPagination style is null."); - } - - container = new VisualView() - { - Name = "Container", - ParentOrigin = Tizen.NUI.ParentOrigin.TopLeft, - PivotPoint = Tizen.NUI.PivotPoint.TopLeft, - PositionUsesPivotPoint = true, - }; - this.Add(container); - } - - // The parameter, index, is for the index of either oddArray or evenArray. - private void CreateIndicator(int index) - { - if (circularPaginationStyle == null || circularPaginationStyle.IndicatorSize == null) - { - return; - } - - ImageVisual indicator = new ImageVisual - { - URL = circularPaginationStyle.IndicatorImageURL?.Normal, - Size = new Size2D((int)circularPaginationStyle.IndicatorSize.Width, (int)circularPaginationStyle.IndicatorSize.Height), - Opacity = 0.5f, - }; - - if (isOddNumber) - { - indicator.Position = oddArray[index]; - } - else - { - indicator.Position = evenArray[index]; - } - - container.AddVisual("Indicator" + indicatorList.Count, indicator); - indicatorList.Add(indicator); - } - - private void CheckCenterIndicator(int index) - { - if (isCenterImageSet && - (isSymmetrical && (index == indicatorCount / 2)) || - (!isSymmetrical && (index == leftIndicatorCount))) - { - isCurrentIndicatorCentered = true; - } - else - { - isCurrentIndicatorCentered = false; - } - } - - private void UpdateContainer() - { - if (circularPaginationStyle == null || circularPaginationStyle.IndicatorSize == null || container == null) - { - return; - } - if (indicatorList.Count > 0) - { - container.SizeWidth = (circularPaginationStyle.IndicatorSize.Width) * indicatorList.Count; - } - else - { - container.SizeWidth = 0; - } - container.SizeHeight = circularPaginationStyle.IndicatorSize.Height; - } - - private void UpdateVisual() - { - if (null == circularPaginationStyle.IndicatorSize) return; - var indicatorImageURL = circularPaginationStyle.IndicatorImageURL; - if (null == indicatorImageURL) return; - if (indicatorCount <= 0) return; - - for (int i = 0; i < indicatorList.Count; i++) - { - ImageVisual indicator = indicatorList[i]; - indicator.Size = new Size2D((int)circularPaginationStyle.IndicatorSize.Width, (int)circularPaginationStyle.IndicatorSize.Height); - - CheckCenterIndicator(i); - - if (i == selectedIndex) - { - // If the center image is set before, then should update the center visual separately. - if (isCurrentIndicatorCentered) - { - indicator.URL = circularPaginationStyle.CenterIndicatorImageURL?.Selected; - } - else - { - indicator.URL = indicatorImageURL.Selected; - } - indicator.Opacity = 1.0f; - } - else - { - // If the center image is set before, then should update the center visual separately. - if (isCurrentIndicatorCentered) - { - indicator.URL = circularPaginationStyle.CenterIndicatorImageURL?.Normal; - } - else - { - indicator.URL = indicatorImageURL.Normal; - } - indicator.Opacity = 0.5f; - } - - if (isOddNumber) - { - if (isSymmetrical) - { - indicator.Position = oddArray[middleIndex - (indicatorCount / 2) + i]; - } - else - { - indicator.Position = oddArray[(middleIndex - leftIndicatorCount) + i]; - } - - } - else - { - indicator.Position = evenArray[middleIndex - (indicatorCount / 2) + i]; - } - } - } - - private void UpdateAsymmetry() - { - if (null == circularPaginationStyle.IndicatorSize) return; - var indicatorImageURL = circularPaginationStyle.IndicatorImageURL; - if (null == indicatorImageURL) return; - - int listCount = indicatorList.Count; - - for (int i = 0; i < listCount; i++) - { - container.RemoveVisual("Indicator" + i); - } - container.RemoveAll(); - indicatorList.Clear(); - - for (int i = 0; i < listCount; i++) - { - ImageVisual newOne = new ImageVisual - { - Size = new Size2D((int)circularPaginationStyle.IndicatorSize.Width, (int)circularPaginationStyle.IndicatorSize.Height), - Position = oddArray[i + (middleIndex - leftIndicatorCount)] - }; - - if (isCenterImageSet && !isSymmetrical && (i == leftIndicatorCount)) - { - newOne.URL = circularPaginationStyle.CenterIndicatorImageURL?.Normal; - } - else - { - newOne.URL = indicatorImageURL.Normal; - } - newOne.Opacity = 0.5f; - container.AddVisual("Indicator" + i, newOne); - indicatorList.Add(newOne); - } - - // If selectedIndex is not set yet, the default value is middle index. - if (selectedIndex == -1) - { - selectedIndex = leftIndicatorCount; - } - - if (isCenterImageSet && (selectedIndex == leftIndicatorCount)) - { - indicatorList[selectedIndex].URL = circularPaginationStyle.CenterIndicatorImageURL?.Selected; - indicatorList[selectedIndex].Opacity = 1.0f; - } - else - { - indicatorList[selectedIndex].URL = indicatorImageURL.Selected; - indicatorList[selectedIndex].Opacity = 1.0f; - } - } - } -} diff --git a/src/Tizen.NUI.Wearable/src/public/CircularProgress.cs b/src/Tizen.NUI.Wearable/src/public/CircularProgress.cs deleted file mode 100755 index 63751b46ce2..00000000000 --- a/src/Tizen.NUI.Wearable/src/public/CircularProgress.cs +++ /dev/null @@ -1,558 +0,0 @@ -/* - * Copyright(c) 2020 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 Tizen.NUI.BaseComponents; -using Tizen.NUI.Binding; -using Tizen.NUI.Components; -using System.ComponentModel; - -namespace Tizen.NUI.Wearable -{ - /// - /// The CircularProgress class of Wearable is used to show the ongoing status with a circular bar. - /// CircularProgress can be counted in its percentage. - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public class CircularProgress : Control - { - #region Fields - - /// Bindable property of Thickness - [EditorBrowsable(EditorBrowsableState.Never)] - public static readonly BindableProperty ThicknessProperty = BindableProperty.Create(nameof(Thickness), typeof(float), typeof(CircularProgress), default(float), propertyChanged: (bindable, oldValue, newValue) => - { - var instance = ((CircularProgress)bindable); - instance.CurrentStyle.Thickness = (float)newValue; - instance.UpdateVisualThickness((float)newValue); - }, - defaultValueCreator: (bindable) => - { - return ((CircularProgress)bindable).CurrentStyle.Thickness; - }); - - /// Bindable property of MaxValue - [EditorBrowsable(EditorBrowsableState.Never)] - public static readonly BindableProperty MaxValueProperty = BindableProperty.Create(nameof(MaxValue), typeof(float), typeof(CircularProgress), default(float), propertyChanged: (bindable, oldValue, newValue) => - { - var instance = (CircularProgress)bindable; - if (newValue != null) - { - instance.maxValue = (float)newValue; - instance.UpdateValue(); - } - }, - defaultValueCreator: (bindable) => - { - var instance = (CircularProgress)bindable; - return instance.maxValue; - }); - - /// Bindable property of MinValue - [EditorBrowsable(EditorBrowsableState.Never)] - public static readonly BindableProperty MinValueProperty = BindableProperty.Create(nameof(MinValue), typeof(float), typeof(CircularProgress), default(float), propertyChanged: (bindable, oldValue, newValue) => - { - var instance = (CircularProgress)bindable; - if (newValue != null) - { - instance.minValue = (float)newValue; - instance.UpdateValue(); - } - }, - defaultValueCreator: (bindable) => - { - var instance = (CircularProgress)bindable; - return instance.minValue; - }); - - /// Bindable property of CurrentValue - [EditorBrowsable(EditorBrowsableState.Never)] - public static readonly BindableProperty CurrentValueProperty = BindableProperty.Create(nameof(CurrentValue), typeof(float), typeof(CircularProgress), default(float), propertyChanged: (bindable, oldValue, newValue) => - { - var instance = (CircularProgress)bindable; - if (newValue != null) - { - if ((float)newValue > instance.maxValue || (float)newValue < instance.minValue) - { - return; - } - instance.currentValue = (float)newValue; - instance.UpdateValue(); - } - }, - defaultValueCreator: (bindable) => - { - var instance = (CircularProgress)bindable; - return instance.currentValue; - }); - - /// Bindable property of TrackColor - [EditorBrowsable(EditorBrowsableState.Never)] - public static readonly BindableProperty TrackColorProperty = BindableProperty.Create(nameof(TrackColor), typeof(Color), typeof(CircularProgress), null, propertyChanged: (bindable, oldValue, newValue) => - { - var instance = (CircularProgress)bindable; - instance.CurrentStyle.TrackColor = (Color)newValue; - instance.UpdateTrackVisualColor((Color)newValue); - }, - defaultValueCreator: (bindable) => - { - return ((CircularProgress)bindable).CurrentStyle.TrackColor; - }); - - /// Bindable property of ProgressColor - [EditorBrowsable(EditorBrowsableState.Never)] - public static readonly BindableProperty ProgressColorProperty = BindableProperty.Create(nameof(ProgressColor), typeof(Color), typeof(CircularProgress), null, propertyChanged: (bindable, oldValue, newValue) => - { - var instance = (CircularProgress)bindable; - instance.CurrentStyle.ProgressColor = (Color)newValue; - instance.UpdateProgressVisualColor((Color)newValue); - }, - defaultValueCreator: (bindable) => - { - return ((CircularProgress)bindable).CurrentStyle.ProgressColor; - }); - - /// Bindable property of IsEnabled - [EditorBrowsable(EditorBrowsableState.Never)] - public new static readonly BindableProperty IsEnabledProperty = BindableProperty.Create(nameof(IsEnabled), typeof(bool), typeof(CircularProgress), true, propertyChanged: (bindable, oldValue, newValue) => - { - var instance = (CircularProgress)bindable; - if (newValue != null) - { - instance.privateIsEnabled = (bool)newValue; - } - }, - defaultValueCreator: (bindable) => - { - var instance = (CircularProgress)bindable; - return instance.privateIsEnabled; - }); - - private const string TrackVisualName = "Track"; - private const string ProgressVisualName = "Progress"; - private ArcVisual trackVisual; - private ArcVisual progressVisual; - - private float maxValue = 100; - private float minValue = 0; - private float currentValue = 0; - private bool isEnabled = true; - - private Animation sweepAngleAnimation; - - #endregion Fields - - - #region Constructors - - static CircularProgress() - { - ThemeManager.AddPackageTheme(DefaultThemeCreator.Instance); - } - - /// - /// The constructor of CircularProgress. - /// Basically, CircularProgress is for full screen. (360 x 360) - /// But, it also can be displayed on the button or the list for small size. - /// User can set its size. - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public CircularProgress() : base() - { - Initialize(); - } - - /// - /// The constructor of the CircularProgress class with specific style. - /// - /// style name - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public CircularProgress(string style) : base(style) - { - Initialize(); - } - - /// - /// The constructor of the CircularProgress class with specific style. - /// - /// The style object to initialize the CircularProgress. - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public CircularProgress(CircularProgressStyle progressStyle) : base(progressStyle) - { - Initialize(); - } - - #endregion Constructors - - - #region Properties - - /// - /// The thickness of the track and progress. - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public float Thickness - { - get - { - return (float)GetValue(ThicknessProperty); - } - set - { - SetValue(ThicknessProperty, value); - } - } - - /// - /// The property to get/set the maximum value of the CircularProgress. - /// The default value is 100. - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public float MaxValue - { - get - { - return (float)GetValue(MaxValueProperty); - } - set - { - SetValue(MaxValueProperty, value); - } - } - - /// - /// The property to get/set the minimum value of the CircularProgress. - /// The default value is 0. - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public float MinValue - { - get - { - return (float)GetValue(MinValueProperty); - } - set - { - SetValue(MinValueProperty, value); - } - } - - /// - /// The property to get/set the current value of the CircularProgress. - /// The default value is 0. - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public float CurrentValue - { - get - { - return (float)GetValue(CurrentValueProperty); - } - set - { - if (sweepAngleAnimation) - { - sweepAngleAnimation.Stop(); - } - sweepAngleAnimation = AnimateVisual(progressVisual, "sweepAngle", progressVisual.SweepAngle, 0, 100, AlphaFunction.BuiltinFunctions.EaseIn); - - SetValue(CurrentValueProperty, value); - - UpdateAnimation(); - } - } - - /// - /// The property to get/set Track object color of the CircularProgress. - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public Color TrackColor - { - get - { - return (Color)GetValue(TrackColorProperty); - } - set - { - SetValue(TrackColorProperty, value); - } - } - - /// - /// The property to get/set Progress object color of the CircularProgress. - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public Color ProgressColor - { - get - { - return (Color)GetValue(ProgressColorProperty); - } - set - { - SetValue(ProgressColorProperty, value); - } - } - - /// - /// Flag to be enabled or disabled in CircularProgress. - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public new bool IsEnabled - { - get - { - return (bool)GetValue(IsEnabledProperty); - } - set - { - SetValue(IsEnabledProperty, value); - } - } - private bool privateIsEnabled - { - get - { - return isEnabled; - } - set - { - isEnabled = value; - if (isEnabled) - { - ControlState = ControlState.Normal; - - UpdateTrackVisualColor(new Color(0.0f, 0.16f, 0.30f, 1.0f)); // #002A4D - } - else - { - ControlState = ControlState.Disabled; - - UpdateTrackVisualColor(new Color(0.25f, 0.25f, 0.25f, 1.0f)); // #404040 - } - } - } - - private CircularProgressStyle CurrentStyle => ViewStyle as CircularProgressStyle; - - #endregion Properties - - - #region Methods - - /// - /// Dispose Progress and all children on it. - /// - /// Dispose type. - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - protected override void Dispose(DisposeTypes type) - { - if (disposed) - { - return; - } - - if (type == DisposeTypes.Explicit) - { - trackVisual = null; - progressVisual = null; - } - - base.Dispose(type); - } - - /// - /// Update progress value - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - protected virtual void UpdateValue() - { - if (null == trackVisual || null == progressVisual) - { - return; - } - - if (minValue >= maxValue || currentValue < minValue || currentValue > maxValue) - { - return; - } - - HandleProgressVisualVisibility(); - - UpdateProgressVisualSweepAngle(); - } - - /// - /// Get Progress style. - /// - /// The default progress style. - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - protected override ViewStyle CreateViewStyle() - { - return new CircularProgressStyle(); - } - - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - protected override void OnControlStateChanged(ControlStateChangedEventArgs controlStateChangedInfo) - { - base.OnControlStateChanged(controlStateChangedInfo); - - var stateEnabled = !controlStateChangedInfo.CurrentState.Contains(ControlState.Disabled); - - if (isEnabled != stateEnabled) - { - isEnabled = stateEnabled; - } - } - - - private void Initialize() - { - Size = new Size(360.0f, 360.0f); - - sweepAngleAnimation?.Stop(); - sweepAngleAnimation = null; - - trackVisual = new ArcVisual - { - SuppressUpdateVisual = true, - Thickness = this.Thickness, - Cap = ArcVisual.CapType.Butt, - MixColor = TrackColor, - StartAngle = 0.0f, - SweepAngle = 360.0f - }; - this.AddVisual(TrackVisualName, trackVisual); - - progressVisual = new ArcVisual - { - SuppressUpdateVisual = true, - Thickness = this.Thickness, - Cap = ArcVisual.CapType.Butt, - MixColor = ProgressColor, - StartAngle = 0.0f, - SweepAngle = 0.0f - }; - this.AddVisual(ProgressVisualName, progressVisual); - - HandleProgressVisualVisibility(); - - UpdateProgressVisualSweepAngle(); - } - - private void HandleProgressVisualVisibility() - { - if (isEnabled) - { - progressVisual.Opacity = 1.0f; - } - else if (!isEnabled) - { - progressVisual.Opacity = 0.6f; - } - } - - private void UpdateVisualThickness(float thickness) - { - if (trackVisual == null) - { - return; - } - - trackVisual.Thickness = thickness; - progressVisual.Thickness = thickness; - - trackVisual.UpdateVisual(true); - progressVisual.UpdateVisual(true); - } - - private void UpdateProgressVisualSweepAngle() - { - float progressRatio = (float)(currentValue - minValue) / (float)(maxValue - minValue); - float progressWidth = 360.0f * progressRatio; // Circle - progressVisual.SweepAngle = progressWidth; - - if (!sweepAngleAnimation) - { - progressVisual.UpdateVisual(true); - } - } - - private void UpdateAnimation() - { - // TODO : Currently not sure which effect is needed. - AlphaFunction.BuiltinFunctions builtinAlphaFunction = AlphaFunction.BuiltinFunctions.EaseIn; - - if (sweepAngleAnimation) - { - sweepAngleAnimation.Stop(); - } - - sweepAngleAnimation = AnimateVisual(progressVisual, "sweepAngle", progressVisual.SweepAngle, 0, 100, builtinAlphaFunction); - - if (sweepAngleAnimation) - { - sweepAngleAnimation.Play(); - } - - } - - private void UpdateTrackVisualColor(Color trackColor) - { - if (trackVisual == null) - { - return; - } - - trackVisual.MixColor = trackColor; - trackVisual.UpdateVisual(true); - } - - private void UpdateProgressVisualColor(Color progressColor) - { - if (progressVisual == null) - { - return; - } - - progressVisual.MixColor = progressColor; - if (!isEnabled) // Dim state - { - progressVisual.Opacity = 0.6f; - } - - progressVisual.UpdateVisual(true); - } - - #endregion Methods - } -} diff --git a/src/Tizen.NUI.Wearable/src/public/CircularScrollbar.cs b/src/Tizen.NUI.Wearable/src/public/CircularScrollbar.cs deleted file mode 100755 index 08db21498dd..00000000000 --- a/src/Tizen.NUI.Wearable/src/public/CircularScrollbar.cs +++ /dev/null @@ -1,524 +0,0 @@ -/* - * Copyright(c) 2020 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.BaseComponents; -using Tizen.NUI.Binding; -using Tizen.NUI.Components; - -namespace Tizen.NUI.Wearable -{ - /// - /// The CircualrScrollbar is a wearable NUI component that can be linked to the scrollable objects - /// indicating the current scroll position of the scrollable object.
- ///
- [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public class CircularScrollbar : ScrollbarBase - { - #region Fields - - /// Bindable property of Thickness - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public static readonly BindableProperty ThicknessProperty = BindableProperty.Create(nameof(Thickness), typeof(float), typeof(CircularScrollbar), default(float), propertyChanged: (bindable, oldValue, newValue) => - { - var instance = ((CircularScrollbar)bindable); - float value = (float?)newValue ?? 0; - instance.CurrentStyle.Thickness = value; - instance.UpdateVisualThickness(value); - }, - defaultValueCreator: (bindable) => - { - var instance = (CircularScrollbar)bindable; - return instance.CurrentStyle.Thickness ?? 0; - }); - - /// Bindable property of TrackSweepAngle - [EditorBrowsable(EditorBrowsableState.Never)] - public static readonly BindableProperty TrackSweepAngleProperty = BindableProperty.Create(nameof(TrackSweepAngle), typeof(float), typeof(CircularScrollbar), default(float), propertyChanged: (bindable, oldValue, newValue) => - { - var instance = ((CircularScrollbar)bindable); - float value = (float?)newValue ?? 0; - instance.CurrentStyle.TrackSweepAngle = value; - instance.UpdateTrackVisualSweepAngle(value); - }, - defaultValueCreator: (bindable) => - { - var instance = (CircularScrollbar)bindable; - return instance.CurrentStyle.TrackSweepAngle ?? 0; - }); - - /// Bindable property of TrackColor - [EditorBrowsable(EditorBrowsableState.Never)] - public static readonly BindableProperty TrackColorProperty = BindableProperty.Create(nameof(TrackColor), typeof(Color), typeof(CircularScrollbar), null, propertyChanged: (bindable, oldValue, newValue) => - { - var instance = ((CircularScrollbar)bindable); - instance.CurrentStyle.TrackColor = (Color)newValue; - instance.UpdateTrackVisualColor((Color)newValue); - }, - defaultValueCreator: (bindable) => - { - return ((CircularScrollbar)bindable).CurrentStyle.TrackColor; - }); - - /// Bindable property of ThumbColor - [EditorBrowsable(EditorBrowsableState.Never)] - public static readonly BindableProperty ThumbColorProperty = BindableProperty.Create(nameof(ThumbColor), typeof(Color), typeof(CircularScrollbar), null, propertyChanged: (bindable, oldValue, newValue) => - { - var instance = ((CircularScrollbar)bindable); - instance.CurrentStyle.ThumbColor = (Color)newValue; - instance.UpdateThumbVisualColor((Color)newValue); - }, - defaultValueCreator: (bindable) => - { - return ((CircularScrollbar)bindable).CurrentStyle.ThumbColor; - }); - - private ArcVisual trackVisual; - private ArcVisual thumbVisual; - private float contentLength; - private float visibleLength; - private float previousPosition; - private float currentPosition; - private float directionAlpha; - private Size containerSize = new Size(0, 0); - private Animation thumbStartAngleAnimation; - private Animation thumbSweepAngleAnimation; - - #endregion Fields - - - #region Constructors - - /// - /// Create an empty CircularScrollbar. - /// - [Obsolete("This has been deprecated in API12")] - public CircularScrollbar() : base() - { - } - - /// - /// Create a CircularScrollbar and initialize with properties. - /// - /// The length of the scrollable content area. - /// The length of the viewport representing the amount of visible content. - /// The current position of the viewport in scrollable content area. This is the viewport's top position if the scroller is vertical, otherwise, left. - /// Whether the direction of scrolling is horizontal or not. It is vertical by default. - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public CircularScrollbar(float contentLength, float viewportLength, float currentPosition, bool isHorizontal = false) : base() - { - Initialize(contentLength, viewportLength, currentPosition, isHorizontal); - } - - /// - /// Create an empty CircularScrollbar with a CircularScrollbarStyle instance to set style properties. - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public CircularScrollbar(CircularScrollbarStyle style) : base(style) - { - } - - /// - /// Static constructor to initialize bindable properties when loading. - /// - static CircularScrollbar() - { - ThemeManager.AddPackageTheme(DefaultThemeCreator.Instance); - } - - #endregion Constructors - - - #region Properties - - /// - /// The thickness of the scrollbar and track. - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public float Thickness - { - get => (float)GetValue(ThicknessProperty); - set => SetValue(ThicknessProperty, value); - } - - /// - /// The sweep angle of track area in degrees. - /// - /// - /// Values below 6 degrees are treated as 6 degrees. - /// Values exceeding 180 degrees are treated as 180 degrees. - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public float TrackSweepAngle - { - get => (float)GetValue(TrackSweepAngleProperty); - set => SetValue(TrackSweepAngleProperty, value); - } - - /// - /// The color of the track part. - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public Color TrackColor - { - get => (Color)GetValue(TrackColorProperty); - set => SetValue(TrackColorProperty, value); - } - - /// - /// The color of the thumb part. - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public Color ThumbColor - { - get => (Color)GetValue(ThumbColorProperty); - set => SetValue(ThumbColorProperty, value); - } - - private CircularScrollbarStyle CurrentStyle => ViewStyle as CircularScrollbarStyle; - - #endregion Properties - - - #region Methods - - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public override void Initialize(float contentLength, float viewportLenth, float currentPosition, bool isHorizontal = false) - { - this.contentLength = contentLength > 0.0f ? contentLength : 0.0f; - this.visibleLength = viewportLenth; - this.currentPosition = currentPosition; - this.directionAlpha = isHorizontal ? 270.0f : 0.0f; - - thumbStartAngleAnimation?.Stop(); - thumbStartAngleAnimation = null; - - thumbSweepAngleAnimation?.Stop(); - thumbSweepAngleAnimation = null; - - - float trackSweepAngle = CalculateTrackSweepAngle(TrackSweepAngle); - float trackStartAngle = CalculateTrackStartAngle(trackSweepAngle); - float thumbSweepAngle = CalculateThumbSweepAngle(TrackSweepAngle); - float thumbStartAngle = CalculateThumbStartAngle(currentPosition, trackStartAngle, trackSweepAngle, thumbSweepAngle); - - if (trackVisual == null) - { - trackVisual = new ArcVisual - { - SuppressUpdateVisual = true, - Thickness = this.Thickness, - Cap = ArcVisual.CapType.Round, - MixColor = TrackColor, - Size = containerSize - new Size(2, 2), - SizePolicy = VisualTransformPolicyType.Absolute, - SweepAngle = trackSweepAngle, - StartAngle = trackStartAngle, - }; - - AddVisual("Track", trackVisual); - } - else - { - trackVisual.SweepAngle = trackSweepAngle; - trackVisual.StartAngle = trackStartAngle; - trackVisual.UpdateVisual(true); - } - - if (thumbVisual == null) - { - thumbVisual = new ArcVisual - { - SuppressUpdateVisual = true, - Thickness = trackVisual.Thickness, - Cap = ArcVisual.CapType.Round, - MixColor = ThumbColor, - Size = containerSize - new Size(2, 2), - SizePolicy = VisualTransformPolicyType.Absolute, - SweepAngle = thumbSweepAngle, - StartAngle = thumbStartAngle, - Opacity = CalculateThumbVisibility() ? 1.0f : 0.0f, - }; - - AddVisual("Thumb", thumbVisual); - } - else - { - thumbVisual.SweepAngle = thumbSweepAngle; - thumbVisual.StartAngle = thumbStartAngle; - thumbVisual.UpdateVisual(true); - } - } - - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public override void Update(float contentLength, float viewportLength, float position, uint durationMs = 0, AlphaFunction alphaFunction = null) - { - this.visibleLength = viewportLength; - Update(contentLength, position, durationMs, alphaFunction); - } - - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public override void Update(float contentLength, float position, uint durationMs = 0, AlphaFunction alphaFunction = null) - { - this.previousPosition = this.currentPosition; - this.currentPosition = position; - this.contentLength = contentLength > 0.0f ? contentLength : 0.0f; - - if (thumbVisual == null) - { - return; - } - - thumbVisual.SweepAngle = CalculateThumbSweepAngle(TrackSweepAngle); - thumbVisual.StartAngle = CalculateThumbStartAngle(position, trackVisual.StartAngle, trackVisual.SweepAngle, thumbVisual.SweepAngle); - thumbVisual.Opacity = CalculateThumbVisibility() ? 1.0f : 0.0f; - - if (durationMs == 0) - { - thumbVisual.UpdateVisual(true); - - return; - } - - // TODO Support non built-in alpha function for visual trainsition in DALi. - AlphaFunction.BuiltinFunctions builtinAlphaFunction = alphaFunction?.GetBuiltinFunction() ?? AlphaFunction.BuiltinFunctions.Default; - - thumbStartAngleAnimation?.Stop(); - thumbStartAngleAnimation = AnimateVisual(thumbVisual, "startAngle", thumbVisual.StartAngle, 0, (int)durationMs, builtinAlphaFunction); - thumbStartAngleAnimation.Play(); - - thumbSweepAngleAnimation?.Stop(); - thumbSweepAngleAnimation = AnimateVisual(thumbVisual, "sweepAngle", thumbVisual.SweepAngle, 0, (int)durationMs, builtinAlphaFunction); - thumbSweepAngleAnimation.Play(); - } - - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public override void ScrollTo(float position, uint durationMs = 0, AlphaFunction alphaFunction = null) - { - previousPosition = currentPosition; - currentPosition = position; - - if (ControlState == ControlState.Disabled) - { - return; - } - - if (thumbVisual == null) - { - return; - } - - var oldThumbStartAngle = thumbVisual.StartAngle; - - thumbVisual.StartAngle = CalculateThumbStartAngle(position, trackVisual.StartAngle, trackVisual.SweepAngle, thumbVisual.SweepAngle); - - if (durationMs == 0) - { - thumbVisual.UpdateVisual(true); - - return; - } - - // TODO Support non built-in alpha function for visual trainsition in DALi. - AlphaFunction.BuiltinFunctions builtinAlphaFunction = alphaFunction?.GetBuiltinFunction() ?? AlphaFunction.BuiltinFunctions.Default; - - thumbStartAngleAnimation?.Stop(); - thumbStartAngleAnimation = AnimateVisual(thumbVisual, "startAngle", thumbVisual.StartAngle, 0, (int)durationMs, builtinAlphaFunction); - thumbStartAngleAnimation.Play(); - } - - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public override void OnRelayout(Vector2 size, RelayoutContainer container) - { - base.OnRelayout(size, container); - - if (size == null || container == null || containerSize == null) - { - return; - } - - if (size.Width == containerSize.Width && size.Height == containerSize.Height) - { - return; - } - - containerSize = new Size(size.Width, size.Height); - - if (trackVisual == null) - { - return; - } - - trackVisual.Size = containerSize - new Size(2, 2); - thumbVisual.Size = containerSize - new Size(2, 2); - - trackVisual.UpdateVisual(true); - thumbVisual.UpdateVisual(true); - } - - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public override void ApplyStyle(ViewStyle viewStyle) - { - if (viewStyle == null) return; - if (viewStyle.WidthResizePolicy == null) viewStyle.WidthResizePolicy = ResizePolicyType.FillToParent; - if (viewStyle.HeightResizePolicy == null) viewStyle.HeightResizePolicy = ResizePolicyType.FillToParent; - - base.ApplyStyle(viewStyle); - } - - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - protected override ViewStyle CreateViewStyle() - { - return new CircularScrollbarStyle(); - } - - private float CalculateTrackStartAngle(float currentTrackSweepAngle) - { - return ((180.0f - currentTrackSweepAngle) / 2.0f) + directionAlpha; - } - - private float CalculateTrackSweepAngle(float inputTrackSweepAngle) - { - return Math.Min(Math.Max(inputTrackSweepAngle, 3), 180); - } - - private float CalculateThumbStartAngle(float position, float trackStartAngle, float trackSweepAngle, float thumbSweepAngle) - { - float minAngle = trackStartAngle; - float maxAngle = trackStartAngle + trackSweepAngle - thumbSweepAngle; - float resultAngle = trackStartAngle + (trackSweepAngle * (position < 0.0f ? 0.0f : position) / contentLength); - - return Math.Min(Math.Max(resultAngle, minAngle), maxAngle); - } - - private float CalculateThumbSweepAngle(float trackSweepAngle) - { - return trackSweepAngle * visibleLength / contentLength; - } - - private bool CalculateThumbVisibility() - { - return contentLength > visibleLength; - } - - private void UpdateVisualThickness(float thickness) - { - if (trackVisual == null) - { - return; - } - - trackVisual.Thickness = thickness; - thumbVisual.Thickness = thickness; - - trackVisual.UpdateVisual(true); - thumbVisual.UpdateVisual(true); - } - - private void UpdateTrackVisualSweepAngle(float trackSweepAngle) - { - if (trackVisual == null || thumbVisual == null) - { - return; - } - - trackVisual.SweepAngle = CalculateTrackSweepAngle(trackSweepAngle); - trackVisual.StartAngle = CalculateTrackStartAngle(trackVisual.SweepAngle); - - thumbVisual.SweepAngle = CalculateThumbSweepAngle(TrackSweepAngle); - thumbVisual.StartAngle = CalculateThumbStartAngle(currentPosition, trackVisual.StartAngle, trackVisual.SweepAngle, thumbVisual.SweepAngle); - - trackVisual.UpdateVisual(true); - thumbVisual.UpdateVisual(true); - } - - private void UpdateTrackVisualColor(Color trackColor) - { - if (trackVisual == null) - { - return; - } - - trackVisual.MixColor = trackColor; - trackVisual.UpdateVisual(true); - } - - private void UpdateThumbVisualColor(Color thumbColor) - { - if (thumbVisual == null) - { - return; - } - - thumbVisual.MixColor = thumbColor; - thumbVisual.UpdateVisual(true); - } - - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public override float ScrollPosition - { - get => Math.Min(Math.Max(currentPosition, 0.0f), contentLength - visibleLength); - } - - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public override float ScrollCurrentPosition - { - get - { - float length = Math.Min(Math.Max(currentPosition, 0.0f), contentLength - visibleLength); - - if (thumbStartAngleAnimation != null) - { - float progress = thumbStartAngleAnimation.CurrentProgress; - float previousLength = Math.Min(Math.Max(previousPosition, 0.0f), contentLength - visibleLength); - - length = ((1.0f - progress) * previousLength) + (progress * length); - } - - return length; - } - } - - #endregion Methods - } -} diff --git a/src/Tizen.NUI.Wearable/src/public/CircularSlider.cs b/src/Tizen.NUI.Wearable/src/public/CircularSlider.cs deleted file mode 100755 index e8b947218f1..00000000000 --- a/src/Tizen.NUI.Wearable/src/public/CircularSlider.cs +++ /dev/null @@ -1,680 +0,0 @@ -/* - * Copyright(c) 2020 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 Tizen.NUI.BaseComponents; -using Tizen.NUI.Binding; -using Tizen.NUI.Components; -using System.ComponentModel; - -namespace Tizen.NUI.Wearable -{ - /// - /// Value Changed event data. - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public class CircularSliderValueChangedEventArgs : EventArgs - { - private float currentValue = 0.0f; - - /// - /// Current value - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public float CurrentValue - { - get { return currentValue; } - set { currentValue = value; } - } - } - - /// - /// The CircularSlider class of Wearable is used to let users select a value from a continuous or discrete range of values by moving the slider thumb. - /// CircularSlider shows the current value with the length of the line. - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public class CircularSlider : Control - { - #region Fields - - /// Bindable property of Thickness - [EditorBrowsable(EditorBrowsableState.Never)] - public static readonly BindableProperty ThicknessProperty = BindableProperty.Create(nameof(Thickness), typeof(float), typeof(CircularSlider), default(float), propertyChanged: (bindable, oldValue, newValue) => - { - var instance = ((CircularSlider)bindable); - instance.CurrentStyle.Thickness = (float)newValue; - instance.UpdateVisualThickness((float)newValue); - }, - defaultValueCreator: (bindable) => - { - return ((CircularSlider)bindable).CurrentStyle.Thickness; - }); - - /// Bindable property of MaxValue - [EditorBrowsable(EditorBrowsableState.Never)] - public static readonly BindableProperty MaxValueProperty = BindableProperty.Create(nameof(MaxValue), typeof(float), typeof(CircularSlider), default(float), propertyChanged: (bindable, oldValue, newValue) => - { - var instance = (CircularSlider)bindable; - if (newValue != null) - { - instance.maxValue = (float)newValue; - instance.UpdateValue(); - } - }, - defaultValueCreator: (bindable) => - { - var instance = (CircularSlider)bindable; - return instance.maxValue; - }); - - /// Bindable property of MinValue - [EditorBrowsable(EditorBrowsableState.Never)] - public static readonly BindableProperty MinValueProperty = BindableProperty.Create(nameof(MinValue), typeof(float), typeof(CircularSlider), default(float), propertyChanged: (bindable, oldValue, newValue) => - { - var instance = (CircularSlider)bindable; - if (newValue != null) - { - instance.minValue = (float)newValue; - instance.UpdateValue(); - } - }, - defaultValueCreator: (bindable) => - { - var instance = (CircularSlider)bindable; - return instance.minValue; - }); - - /// Bindable property of CurrentValue - [EditorBrowsable(EditorBrowsableState.Never)] - public static readonly BindableProperty CurrentValueProperty = BindableProperty.Create(nameof(CurrentValue), typeof(float), typeof(CircularSlider), default(float), propertyChanged: (bindable, oldValue, newValue) => - { - var instance = (CircularSlider)bindable; - if (newValue != null) - { - if ((float)newValue > instance.maxValue || (float)newValue < instance.minValue) - { - return; - } - instance.currentValue = (float)newValue; - instance.UpdateValue(); - } - }, - defaultValueCreator: (bindable) => - { - var instance = (CircularSlider)bindable; - return instance.currentValue; - }); - - /// Bindable property of TrackColor - [EditorBrowsable(EditorBrowsableState.Never)] - public static readonly BindableProperty TrackColorProperty = BindableProperty.Create(nameof(TrackColor), typeof(Color), typeof(CircularSlider), null, propertyChanged: (bindable, oldValue, newValue) => - { - var instance = (CircularSlider)bindable; - instance.CurrentStyle.TrackColor = (Color)newValue; - instance.UpdateTrackVisualColor((Color)newValue); - }, - defaultValueCreator: (bindable) => - { - return ((CircularSlider)bindable).CurrentStyle.TrackColor; - }); - - /// Bindable property of ProgressColor - [EditorBrowsable(EditorBrowsableState.Never)] - public static readonly BindableProperty ProgressColorProperty = BindableProperty.Create(nameof(ProgressColor), typeof(Color), typeof(CircularSlider), null, propertyChanged: (bindable, oldValue, newValue) => - { - var instance = (CircularSlider)bindable; - instance.CurrentStyle.ProgressColor = (Color)newValue; - instance.UpdateProgressVisualColor((Color)newValue); - }, - defaultValueCreator: (bindable) => - { - return ((CircularSlider)bindable).CurrentStyle.ProgressColor; - }); - - /// Bindable property of ThumbSize - [EditorBrowsable(EditorBrowsableState.Never)] - public static readonly BindableProperty ThumbSizeProperty = BindableProperty.Create(nameof(ThumbSize), typeof(Size), typeof(CircularSlider), new Size(0, 0), propertyChanged: (bindable, oldValue, newValue) => - { - var instance = (CircularSlider)bindable; - if (newValue != null) - { - instance.thumbSize = (Size)newValue; - instance.UpdateThumbVisualSize((Size)newValue); - } - }, - defaultValueCreator: (bindable) => - { - var instance = (CircularSlider)bindable; - return instance.thumbSize; - }); - - /// Bindable property of ThumbColor - [EditorBrowsable(EditorBrowsableState.Never)] - public static readonly BindableProperty ThumbColorProperty = BindableProperty.Create(nameof(ThumbColor), typeof(Color), typeof(CircularSlider), null, propertyChanged: (bindable, oldValue, newValue) => - { - var instance = (CircularSlider)bindable; - instance.CurrentStyle.ThumbColor = (Color)newValue; - instance.UpdateThumbVisualColor((Color)newValue); - }, - defaultValueCreator: (bindable) => - { - return ((CircularSlider)bindable).CurrentStyle.ThumbColor; - }); - - /// Bindable property of IsEnabled - [EditorBrowsable(EditorBrowsableState.Never)] - public new static readonly BindableProperty IsEnabledProperty = BindableProperty.Create(nameof(IsEnabled), typeof(bool), typeof(CircularSlider), true, propertyChanged: (bindable, oldValue, newValue) => - { - var instance = (CircularSlider)bindable; - if (newValue != null) - { - instance.privateIsEnabled = (bool)newValue; - } - }, - defaultValueCreator: (bindable) => - { - var instance = (CircularSlider)bindable; - return instance.privateIsEnabled; - }); - - private const string TrackVisualName = "Track"; - private const string ProgressVisualName = "Progress"; - private const string ThumbVisualName = "Thumb"; - private ArcVisual trackVisual; - private ArcVisual progressVisual; - private ArcVisual thumbVisual; - - private float maxValue = 100; - private float minValue = 0; - private float currentValue = 0; - private Size thumbSize; - private bool isEnabled = true; - - float sliderPadding = 6.0f; - - private Animation sweepAngleAnimation; - private Animation thumbAnimation; - - #endregion Fields - - - #region Constructors - - static CircularSlider() - { - ThemeManager.AddPackageTheme(DefaultThemeCreator.Instance); - } - - /// - /// The constructor of CircularSlider. - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public CircularSlider() : base() - { - Initialize(); - } - - /// - /// The constructor of the CircularSlider class with specific style. - /// - /// The style object to initialize the CircularSlider. - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public CircularSlider(CircularSliderStyle progressStyle) : base(progressStyle) - { - Initialize(); - } - - #endregion Constructors - - #region Events - - /// - /// The value changed event handler. - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public event EventHandler ValueChanged; - - #endregion Events - - #region Properties - - /// - /// The thickness of the track and progress. - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public float Thickness - { - get - { - return (float)GetValue(ThicknessProperty); - } - set - { - SetValue(ThicknessProperty, value); - } - } - - /// - /// The property to get/set the maximum value of the CircularSlider. - /// The default value is 100. - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public float MaxValue - { - get - { - return (float)GetValue(MaxValueProperty); - } - set - { - SetValue(MaxValueProperty, value); - } - } - - /// - /// The property to get/set the minimum value of the CircularSlider. - /// The default value is 0. - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public float MinValue - { - get - { - return (float)GetValue(MinValueProperty); - } - set - { - SetValue(MinValueProperty, value); - } - } - - /// - /// The property to get/set the current value of the CircularSlider. - /// The default value is 0. - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public float CurrentValue - { - get - { - return (float)GetValue(CurrentValueProperty); - } - set - { - if (sweepAngleAnimation) - { - sweepAngleAnimation.Stop(); - } - // For the first Animation effect - sweepAngleAnimation = AnimateVisual(progressVisual, "sweepAngle", progressVisual.SweepAngle, 0, 100, AlphaFunction.BuiltinFunctions.EaseIn); - - SetValue(CurrentValueProperty, value); - - UpdateAnimation(); - } - } - - /// - /// The property to get/set Track object color of the CircularSlider. - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public Color TrackColor - { - get - { - return (Color)GetValue(TrackColorProperty); - } - set - { - SetValue(TrackColorProperty, value); - } - } - - /// - /// The property to get/set Progress object color of the CircularSlider. - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public Color ProgressColor - { - get - { - return (Color)GetValue(ProgressColorProperty); - } - set - { - SetValue(ProgressColorProperty, value); - } - } - - /// - /// Gets or sets the size of the thumb of Slider. - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public Size ThumbSize - { - get - { - return (Size)GetValue(ThumbSizeProperty); - } - set - { - SetValue(ThumbSizeProperty, value); - } - } - - /// - /// The property to get/set Thumb object color of the CircularSlider. - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public Color ThumbColor - { - get - { - return (Color)GetValue(ThumbColorProperty); - } - set - { - SetValue(ThumbColorProperty, value); - } - } - - /// - /// Flag to be enabled or disabled in CircularSlider. - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public new bool IsEnabled - { - get - { - return (bool)GetValue(IsEnabledProperty); - } - set - { - SetValue(IsEnabledProperty, value); - } - } - private bool privateIsEnabled - { - get - { - return isEnabled; - } - set - { - isEnabled = value; - if (isEnabled) - { - UpdateTrackVisualColor(new Color(0.0f, 0.16f, 0.30f, 1.0f)); // #002A4D - } - else - { - UpdateTrackVisualColor(new Color(0.25f, 0.25f, 0.25f, 1.0f)); // #404040 - } - } - } - - private CircularSliderStyle CurrentStyle => ViewStyle as CircularSliderStyle; - - #endregion Properties - - - #region Methods - - /// - /// Dispose Progress and all children on it. - /// - /// Dispose type. - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - protected override void Dispose(DisposeTypes type) - { - if (disposed) - { - return; - } - - if (type == DisposeTypes.Explicit) - { - trackVisual = null; - progressVisual = null; - thumbVisual = null; - } - - base.Dispose(type); - } - - /// - /// Update progress value - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - protected virtual void UpdateValue() - { - if (null == trackVisual || null == progressVisual || null == thumbVisual) - { - return; - } - - if (minValue >= maxValue || currentValue < minValue || currentValue > maxValue) - { - return; - } - - HandleProgressVisualVisibility(); - - UpdateProgressVisualSweepAngle(); - } - - /// - /// Get Progress style. - /// - /// The default progress style. - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - protected override ViewStyle CreateViewStyle() - { - return new CircularSliderStyle(); - } - - private void Initialize() - { - Size = new Size(360.0f, 360.0f); - - sweepAngleAnimation?.Stop(); - sweepAngleAnimation = null; - - thumbAnimation?.Stop(); - thumbAnimation = null; - - trackVisual = new ArcVisual - { - SuppressUpdateVisual = true, - Size = new Size(this.Size.Width - sliderPadding, this.Size.Height - sliderPadding), - SizePolicy = VisualTransformPolicyType.Absolute, - Thickness = this.Thickness, - Cap = ArcVisual.CapType.Butt, - MixColor = TrackColor, - StartAngle = 0.0f, - SweepAngle = 360.0f - }; - this.AddVisual(TrackVisualName, trackVisual); - - progressVisual = new ArcVisual - { - SuppressUpdateVisual = true, - Size = new Size(this.Size.Width - sliderPadding, this.Size.Height - sliderPadding), - SizePolicy = VisualTransformPolicyType.Absolute, - Thickness = this.Thickness, - Cap = ArcVisual.CapType.Butt, - MixColor = ProgressColor, - StartAngle = 0.0f, - SweepAngle = 0.0f - }; - this.AddVisual(ProgressVisualName, progressVisual); - - thumbVisual = new ArcVisual - { - SuppressUpdateVisual = true, - Size = new Size(this.Size.Width + sliderPadding, this.Size.Height + sliderPadding), - SizePolicy = VisualTransformPolicyType.Absolute, - Thickness = this.ThumbSize.Width, - Cap = ArcVisual.CapType.Round, - MixColor = this.ThumbColor, - StartAngle = 0.0f, - SweepAngle = 0.0f - }; - this.AddVisual(ThumbVisualName, thumbVisual); - - HandleProgressVisualVisibility(); - - UpdateProgressVisualSweepAngle(); - } - - private void HandleProgressVisualVisibility() - { - if (isEnabled) - { - progressVisual.Opacity = 1.0f; - } - else if (!isEnabled) - { - progressVisual.Opacity = 0.6f; - } - } - - private void UpdateVisualThickness(float thickness) - { - if (trackVisual == null) - { - return; - } - - trackVisual.Thickness = thickness; - progressVisual.Thickness = thickness; - - trackVisual.UpdateVisual(true); - progressVisual.UpdateVisual(true); - } - - private void UpdateProgressVisualSweepAngle() - { - float progressRatio = (float)(currentValue - minValue) / (float)(maxValue - minValue); - float progressWidth = 360.0f * progressRatio; // Circle - - progressVisual.SweepAngle = progressWidth; - thumbVisual.StartAngle = progressWidth; - - if (!sweepAngleAnimation) - { - progressVisual.UpdateVisual(true); - thumbVisual.UpdateVisual(true); - } - } - - private void UpdateAnimation() - { - // TODO : Currently not sure which effect is needed. - AlphaFunction.BuiltinFunctions builtinAlphaFunction = AlphaFunction.BuiltinFunctions.EaseOut; - - if (sweepAngleAnimation) - { - sweepAngleAnimation.Stop(); - } - if (thumbAnimation) - { - thumbAnimation.Stop(); - } - - sweepAngleAnimation = AnimateVisual(progressVisual, "sweepAngle", progressVisual.SweepAngle, 0, 500, builtinAlphaFunction); - thumbAnimation = AnimateVisual(thumbVisual, "startAngle", thumbVisual.StartAngle, 0, 500, builtinAlphaFunction); - - if (sweepAngleAnimation) - { - sweepAngleAnimation.Play(); - thumbAnimation.Play(); - } - - ValueChanged?.Invoke(this, new CircularSliderValueChangedEventArgs() { CurrentValue = currentValue }); - } - - private void UpdateTrackVisualColor(Color trackColor) - { - if (trackVisual == null) - { - return; - } - - trackVisual.MixColor = trackColor; - trackVisual.UpdateVisual(true); - } - - private void UpdateProgressVisualColor(Color progressColor) - { - if (progressVisual == null) - { - return; - } - - progressVisual.MixColor = progressColor; - if (!isEnabled) // Dim state - { - progressVisual.Opacity = 0.6f; - } - - progressVisual.UpdateVisual(true); - } - - private void UpdateThumbVisualSize(Size thumbSize) - { - if (thumbVisual == null) - { - return; - } - - thumbVisual.Thickness = thumbSize.Width; - thumbVisual.UpdateVisual(true); - } - - private void UpdateThumbVisualColor(Color thumbColor) - { - if (thumbVisual == null) - { - return; - } - - thumbVisual.MixColor = thumbColor; - thumbVisual.UpdateVisual(true); - } - - - #endregion Methods - } -} diff --git a/src/Tizen.NUI.Wearable/src/public/NUIWatchApplication.cs b/src/Tizen.NUI.Wearable/src/public/NUIWatchApplication.cs deleted file mode 100755 index d2ccbbf902e..00000000000 --- a/src/Tizen.NUI.Wearable/src/public/NUIWatchApplication.cs +++ /dev/null @@ -1,352 +0,0 @@ -/* - * Copyright (c) 2016 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 Tizen.Applications; -using Tizen.Applications.CoreBackend; - -namespace Tizen.NUI -{ - - /// - /// Represents an application that can make watch-face. - /// - [Obsolete("This has been deprecated in API12")] - public class NUIWatchApplication : CoreApplication - { - /// - /// Occurs whenever the application is resumed. - /// - [Obsolete("This has been deprecated in API12")] - public event EventHandler Resumed; - - /// - /// Occurs whenever the application is paused. - /// - [Obsolete("This has been deprecated in API12")] - public event EventHandler Paused; - - /// - /// Occurs at every second. - /// - [Obsolete("This has been deprecated in API12")] - public event EventHandler TimeTick; - - /// - /// Event arguments that passed via time tick event signal. - /// - [Obsolete("This has been deprecated in API12")] - public class TimeTickEventArgs : EventArgs - { - private WatchTime _watchTime; - /// - /// Default Constructor. - /// - [Obsolete("This has been deprecated in API12")] - public TimeTickEventArgs( WatchTime watchTime ) - { - _watchTime = watchTime; - } - - /// - /// WatchTime. - /// - [Obsolete("This has been deprecated in API12")] - public WatchTime WatchTime - { - get - { - return _watchTime; - } - } - } - - /// - /// Occurs at each minute in ambient mode. - /// http://tizen.org/privilege/alarm.set privilege is needed to receive ambient ticks at each minute. - /// - [Obsolete("This has been deprecated in API12")] - public event EventHandler AmbientTick; - - /// - /// Event arguments that passed via ambient tick event signal. - /// - [Obsolete("This has been deprecated in API12")] - public class AmbientTickEventArgs : EventArgs - { - private WatchTime _watchTime; - /// - /// Default Constructor. - /// - [Obsolete("This has been deprecated in API12")] - public AmbientTickEventArgs(WatchTime watchTime) - { - _watchTime = watchTime; - } - - /// - /// WatchTime. - /// - [Obsolete("This has been deprecated in API12")] - public WatchTime WatchTime - { - get - { - return _watchTime; - } - } - } - - /// - /// Occurs when the device enters or exits ambient mode - /// - [Obsolete("This has been deprecated in API12")] - public event EventHandler AmbientChanged; - - /// - /// Event arguments that passed via ambient tick event signal. - /// - [Obsolete("This has been deprecated in API12")] - public class AmbientChangedEventArgs : EventArgs - { - private bool _changed; - /// - /// Default Constructor. - /// - [Obsolete("This has been deprecated in API12")] - public AmbientChangedEventArgs(bool changed) - { - _changed = changed; - } - - /// - /// Changed. - /// - [Obsolete("This has been deprecated in API12")] - public bool Changed - { - get - { - return _changed; - } - } - } - - /// - /// The default constructor. - /// - [Obsolete("This has been deprecated in API12")] - public NUIWatchApplication() : base(new NUIWatchCoreBackend()) - { - } - - /// - /// The constructor with stylesheet. - /// - [Obsolete("This has been deprecated in API12")] - public NUIWatchApplication(string stylesheet) : base(new NUIWatchCoreBackend(stylesheet)) - { - } - - /// - /// Overrides this method if want to handle behavior. - /// - [Obsolete("This has been deprecated in API12")] - protected override void OnLocaleChanged(LocaleChangedEventArgs e) - { - Log.Debug("NUI", "OnLocaleChanged() is called!"); - base.OnLocaleChanged(e); - } - - /// - /// Overrides this method if want to handle behavior. - /// - [Obsolete("This has been deprecated in API12")] - protected override void OnLowBattery(LowBatteryEventArgs e) - { - Log.Debug("NUI", "OnLowBattery() is called!"); - base.OnLowBattery(e); - } - - /// - /// Overrides this method if want to handle behavior. - /// - [Obsolete("This has been deprecated in API12")] - protected override void OnLowMemory(LowMemoryEventArgs e) - { - Log.Debug("NUI", "OnLowMemory() is called!"); - base.OnLowMemory(e); - } - - /// - /// Overrides this method if want to handle behavior. - /// - [Obsolete("This has been deprecated in API12")] - protected override void OnRegionFormatChanged(RegionFormatChangedEventArgs e) - { - Log.Debug("NUI", "OnRegionFormatChanged() is called!"); - base.OnRegionFormatChanged(e); - } - - /// - /// Overrides this method if want to handle behavior. - /// - [Obsolete("This has been deprecated in API12")] - protected override void OnCreate() - { - // This is also required to create DisposeQueue on main thread. - DisposeQueue disposeQ = DisposeQueue.Instance; - disposeQ.Initialize(); - Log.Debug("NUI","OnCreate() is called!"); - base.OnCreate(); - } - - /// - /// Overrides this method if want to handle behavior. - /// - [Obsolete("This has been deprecated in API12")] - protected virtual void OnPreCreate() - { - Log.Debug("NUI", "OnPreCreate() is called!"); - } - - /// - /// Overrides this method if want to handle behavior. - /// - [Obsolete("This has been deprecated in API12")] - protected override void OnTerminate() - { - Log.Debug("NUI", "OnTerminate() is called!"); - base.OnTerminate(); - } - - /// - /// Overrides this method if want to handle behavior. - /// - [Obsolete("This has been deprecated in API12")] - protected override void OnAppControlReceived(AppControlReceivedEventArgs e) - { - Log.Debug("NUI", "OnAppControlReceived() is called!"); - if (e != null && e.ReceivedAppControl != null) - { - Log.Debug("NUI", $"OnAppControlReceived() is called! ApplicationId={e.ReceivedAppControl.ApplicationId}"); - Log.Debug("NUI", $"CallerApplicationId={e.ReceivedAppControl.CallerApplicationId} IsReplyRequest={e.ReceivedAppControl.IsReplyRequest}"); - } - base.OnAppControlReceived(e); - } - - /// - /// Overrides this method if want to handle behavior. - /// - [Obsolete("This has been deprecated in API12")] - protected virtual void OnPause() - { - Log.Debug("NUI", "OnPause() is called!"); - Paused?.Invoke(this, EventArgs.Empty); - } - - /// - /// Overrides this method if want to handle behavior. - /// - [Obsolete("This has been deprecated in API12")] - protected virtual void OnResume() - { - Log.Debug("NUI", "OnResume() is called!"); - Resumed?.Invoke(this, EventArgs.Empty); - } - - /// - /// Overrides this method if want to handle behavior. - /// - [Obsolete("This has been deprecated in API12")] - protected virtual void OnTimeTick(TimeTickEventArgs e) - { - Log.Debug("NUI", "OnTimeTick() is called!"); - TimeTick?.Invoke(this, e); - } - - /// - /// Overrides this method if want to handle behavior. - /// - /// http://tizen.org/privilege/alarm.set - [Obsolete("This has been deprecated in API12")] - protected virtual void OnAmbientTick(AmbientTickEventArgs e) - { - Log.Debug("NUI", "OnAmbientTick() is called!"); - AmbientTick?.Invoke(this, e); - } - - /// - /// Overrides this method if want to handle behavior. - /// - [Obsolete("This has been deprecated in API12")] - protected virtual void OnAmbientChanged(AmbientChangedEventArgs e) - { - Log.Debug("NUI", "OnAmbientChanged() is called!"); - AmbientChanged?.Invoke(this, e); - } - - /// - /// Run NUIWidgetApplication. - /// - /// Arguments from commandline. - [Obsolete("This has been deprecated in API12")] - public override void Run(string[] args) - { - Backend.AddEventHandler(EventType.PreCreated, OnPreCreate); - Backend.AddEventHandler(EventType.Resumed, OnResume); - Backend.AddEventHandler(EventType.Paused, OnPause); - - Backend.AddEventHandler(NUIEventType.TimeTick, OnTimeTick); - Backend.AddEventHandler(NUIEventType.AmbientTick, OnAmbientTick); - Backend.AddEventHandler(NUIEventType.AmbientChanged, OnAmbientChanged); - - base.Run(args); - } - - /// - /// Exit NUIWidgetApplication. - /// - [Obsolete("This has been deprecated in API12")] - public override void Exit() - { - Backend.Exit(); - } - - internal WatchApplication ApplicationHandle - { - get - { - return ((NUIWatchCoreBackend)this.Backend).WatchApplicationHandle; - } - } - - /// - /// Get the window instance. - /// - [Obsolete("This has been deprecated in API12")] - public Window Window - { - get - { - //return Window.Instance; - return ApplicationHandle.GetWindow(); - } - } - - } -} diff --git a/src/Tizen.NUI.Wearable/src/public/Popup.cs b/src/Tizen.NUI.Wearable/src/public/Popup.cs deleted file mode 100755 index d67f0c96936..00000000000 --- a/src/Tizen.NUI.Wearable/src/public/Popup.cs +++ /dev/null @@ -1,651 +0,0 @@ -/* - * Copyright(c) 2020 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.Collections.Generic; -using System.ComponentModel; -using Tizen.NUI.BaseComponents; -using Tizen.NUI.Components; - -namespace Tizen.NUI.Wearable -{ - using L = Tizen.Log; - - /// - /// Popup is an UI component to give a notification or message, which interaction with user simply. - /// It is attached to Window directly so that it is shown on top of all UI components. - /// Title(text) and Content(container) are initially formed and user can control them by setting properties or styles. - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public class Popup : Control - { - const string tag = "NUI"; - - /// - /// Constructor - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public Popup() : base() - { - initialize(); - } - - /// - /// Constructor with style - /// - /// style - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public Popup(PopupStyle style) : base(style) - { - initialize(); - } - - /// - /// Dispose. - /// - /// Dispose type - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - protected override void Dispose(DisposeTypes type) - { - if (disposed) - { - return; - } - - timer.Dispose(); - - foreach (var iter in buttonList.Values) - { - iter.Unparent(); - iter.Dispose(); - } - buttonList.Clear(); - buttonList = null; - - foreach (var iter in scrollList.Values) - { - iter.Unparent(); - iter.Dispose(); - } - scrollList.Clear(); - scrollList = null; - - title.Unparent(); - title.Dispose(); - - scroll.Unparent(); - scroll.Dispose(); - - TouchEvent -= Popup_TouchEvent; - Unparent(); - instanceCnt--; - - if (window != null) - { - window.RemoveLayer(layer); - layer.Dispose(); - layer = null; - } - window = null; - - base.Dispose(type); - } - - - /// - /// Set postion of added button - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public enum ButtonPosition - { - /// - /// Left side on popup - /// - Left, - /// - /// Right side on popup - /// - Right, - /// - /// Lower sider on popup - /// - Bottom, - /// - /// User set the position on popup - /// - Custom, - /// - /// Position is set automatically - /// - Automatic, - } - - /// - /// ContentContainer - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public View ContentContainer; - - /// - /// Append Buttons on popup. - /// - /// Key to get a specific button by using GetButton - /// Button to be added - /// If set true, added button will be placed automatically - /// Specific postion set by user - [Obsolete("This has been deprecated in API12")] - public void AppendButton(string index, Button button, bool automaticPositioning = true, ButtonPosition position = ButtonPosition.Automatic) - { - if (button != null) - { - if (automaticPositioning) - { - if (buttonList.Count >= 2) - { - throw new InvalidOperationException("Added button should not be added more than 2"); - } - else if (buttonList.Count <= 0) - { - buttonList.Add(index, button); - // will be fixed later. - //buttonContainer.Layout = new FlexLayout() - //{ - // Direction = FlexLayout.FlexDirection.Row, - // Justification = FlexLayout.FlexJustification.Center, - // ItemsAlignment = FlexLayout.AlignmentType.FlexEnd, - //}; - //buttonContainer.Layout = new LinearLayout() - //{ - // LinearAlignment = LinearLayout.Alignment.Center, - // LinearOrientation = LinearLayout.Orientation.Horizontal, - //}; - - buttonContainer.Add(button); - buttonContainer.RaiseToTop(); - - // will be removed later. - button.PositionUsesPivotPoint = true; - button.ParentOrigin = NUI.ParentOrigin.BottomCenter; - button.PivotPoint = NUI.PivotPoint.BottomCenter; - firstButtonIndex = index; - } - else - { - buttonList.Add(index, button); - - // will be fixed later. - //buttonContainer.Layout = new FlexLayout() - //{ - // Direction = FlexLayout.FlexDirection.Column, - // Justification = FlexLayout.FlexJustification.SpaceBetween, - // ItemsAlignment = FlexLayout.AlignmentType.Center, - //}; - //buttonContainer.Layout = new LinearLayout() - //{ - // LinearAlignment = LinearLayout.Alignment.Center, - // LinearOrientation = LinearLayout.Orientation.Horizontal, - //}; - - buttonContainer.Add(button); - buttonContainer.RaiseToTop(); - - // will be removed later. - Button leftButton; - buttonList.TryGetValue(firstButtonIndex, out leftButton); - leftButton.PositionUsesPivotPoint = true; - leftButton.ParentOrigin = NUI.ParentOrigin.CenterLeft; - leftButton.PivotPoint = NUI.PivotPoint.CenterLeft; - leftButton.OverlayImage.SiblingOrder = 100; - button.PositionUsesPivotPoint = true; - button.ParentOrigin = NUI.ParentOrigin.CenterRight; - button.PivotPoint = NUI.PivotPoint.CenterRight; - button.OverlayImage.SiblingOrder = 100; - } - } - else - { - L.Debug(tag, "AppendButton()"); - buttonList.Add(index, button); - Add(button); - button.RaiseToTop(); - button.OverlayImage.SiblingOrder = 100; //will be fixed. - if (position == ButtonPosition.Left) - { - button.PositionUsesPivotPoint = true; - button.ParentOrigin = NUI.ParentOrigin.CenterLeft; - button.PivotPoint = NUI.PivotPoint.CenterLeft; - } - else if (position == ButtonPosition.Right) - { - button.PositionUsesPivotPoint = true; - button.ParentOrigin = NUI.ParentOrigin.CenterRight; - button.PivotPoint = NUI.PivotPoint.CenterRight; - } - else if (position == ButtonPosition.Bottom) - { - button.PositionUsesPivotPoint = true; - button.ParentOrigin = NUI.ParentOrigin.BottomCenter; - button.PivotPoint = NUI.PivotPoint.BottomCenter; - } - else - { - //do nothing. - } - } - } - } - - /// - /// Get Button by index. - /// - /// Index(key) to be found - /// Button of Popup - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public Button GetButton(string index) - { - L.Fatal(tag, "GetButton()"); - - return buttonList[index]; - } - - /// - /// Get Title. - /// - /// Title(TextLabel) of Popup - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public TextLabel GetTitle() - { - return title; - } - - /// - /// Append indexed content which is created by user. - /// - /// Index(key) of the content added - /// Content to be added in Popup's content - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public void AppendContent(string index, View content) - { - scrollList.Add(index, content); - ContentContainer.Add(content); - } - - /// - /// Get indexed content. - /// - /// Index(key) to be found - /// Content in the Popup - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public View GetContent(string index) - { - return scrollList[index]; - } - - /// - /// Post on top of Window. - /// - /// Window where Popup is placed - /// Posting animation - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public void Post(Window targetWindow, bool animated = true) - { - window = targetWindow; - if (window != null) - { - if (animated) - { - BeforePosting?.Invoke(this, null); - if (CustomAnimation == null) - { - defaultShowAnimation(); - } - else - { - CustomAnimation.ShowAnimation(this); - } - window.AddLayer(layer); - layer.RaiseToTop(); - AfterPosting?.Invoke(this, null); - } - else - { - window.AddLayer(layer); - layer.RaiseToTop(); - } - } - } - - /// - /// Dismiss Popup. - /// - /// True when using Dismissing event - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public void Dismiss(bool animated = true) - { - if (window != null) - { - BeforeDissmising?.Invoke(this, null); - - if (animated) - { - if (CustomAnimation == null) - { - defaultHideAnimation(); - } - else - { - CustomAnimation.HideAnimation(this); - } - } - else - { - window.RemoveLayer(layer); - } - AfterDissmising?.Invoke(this, null); - } - } - - /// - /// Set timeout milli-second - /// - /// Automatically dissmissed after milli-second - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public void SetTimeout(uint milliSecond) - { - if (timer == null) - { - timer = new Timer(milliSecond); - } - else - { - timer.Stop(); - } - - timer.Tick += (s, e) => - { - Dismiss(); - return false; - }; - timer.Start(); - } - - /// - /// OnUpdate - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - protected override void OnUpdate() - { - } - - /// - /// CustomAnimation - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public IPopupAnimation CustomAnimation; - - /// - /// Event when outside of components(Button, Content, Title) is clicked. - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public event EventHandler OutsideClicked; - - /// - /// Event before popup is posted. Customized action such as animation can be added. - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public event EventHandler BeforePosting; - - /// - /// Event after popup is posted. Customized action such as animation can be added. - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public event EventHandler AfterPosting; - - /// - /// Event before popup is dismissed. Customized action such as animation can be added. - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public event EventHandler BeforeDissmising; - - /// - /// Event after popup is dismissed. Customized action such as animation can be added. - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public event EventHandler AfterDissmising; - - /// - /// Get Popup style. - /// - /// The default popup style. - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - protected override ViewStyle CreateViewStyle() - { - return new PopupStyle(); - } - - private void initialize() - { - popupStyle = ViewStyle as PopupStyle; - if (popupStyle == null) - { - throw new Exception("Popup style is null."); - } - - BackgroundColor = Color.Black; - Size = new Size(POPUP_WIDTH, POPUP_HEIGHT); - PositionUsesPivotPoint = true; - ParentOrigin = NUI.ParentOrigin.Center; - PivotPoint = NUI.PivotPoint.Center; - Layout = new AbsoluteLayout(); - - layer = new Layer() - { - Name = "PopupLayer", - }; - layer.Add(this); - - buttonList = new Dictionary(); - - buttonContainer = new View() - { - WidthSpecification = LayoutParamPolicies.MatchParent, - HeightSpecification = LayoutParamPolicies.MatchParent, - }; - Add(buttonContainer); - - titleContentContainer = new View() - { - WidthSpecification = LayoutParamPolicies.MatchParent, - HeightSpecification = LayoutParamPolicies.MatchParent, - }; - Add(titleContentContainer); - - //will be fixed later. - //titleContentContainer.Layout = new LinearLayout() - //{ - // LinearOrientation = LinearLayout.Orientation.Vertical, - // LinearAlignment = LinearLayout.Alignment.Top, - //}; - - title = new TextLabel() - { - Name = "Title", - Size = new Size(TITLE_WIDTH, TITLE_HEIGHT), - PointSize = TEXT_POINT_SIZE, - HorizontalAlignment = HorizontalAlignment.Center, - VerticalAlignment = VerticalAlignment.Center, - TextColor = Color.Cyan, - - //will be removed later. - PositionUsesPivotPoint = true, - ParentOrigin = Tizen.NUI.ParentOrigin.TopCenter, - PivotPoint = Tizen.NUI.PivotPoint.TopCenter, - Position = new Position(0, TITLE_POSITION_Y), - }; - titleContentContainer.Add(title); - - LinearLayout scrollLayout = new LinearLayout(); - scrollLayout.LinearOrientation = LinearLayout.Orientation.Vertical; - - ContentContainer = new View() - { - Layout = scrollLayout, - - //will be removed later. - PositionUsesPivotPoint = true, - ParentOrigin = Tizen.NUI.ParentOrigin.TopCenter, - PivotPoint = Tizen.NUI.PivotPoint.TopCenter, - }; - - scroll = new ScrollableBase() - { - Name = "Scroll", - PositionUsesPivotPoint = true, - ScrollingDirection = ScrollableBase.Direction.Vertical, - ScrollEnabled = true, - WidthResizePolicy = ResizePolicyType.FillToParent, - HeightResizePolicy = ResizePolicyType.FillToParent, - - //will be removed later. - ParentOrigin = Tizen.NUI.ParentOrigin.TopCenter, - PivotPoint = Tizen.NUI.PivotPoint.TopCenter, - Position = new Position(0, CONTENT_POSITION_Y), - }; - titleContentContainer.Add(scroll); - scroll.Add(ContentContainer); - - scrollList = new Dictionary(); - - TouchEvent += Popup_TouchEvent; - - title.PropertyChanged += Title_PropertyChanged; - } - - private void Title_PropertyChanged(object sender, PropertyChangedEventArgs e) - { - if (e.PropertyName == "Size" || e.PropertyName == "Size2D") - { - scroll.Position = new Position(0, title.Size.Height); - } - } - - private static int instanceCnt; - private Layer layer; - private Dictionary buttonList; - private Window window; - private TextLabel title; - private ScrollableBase scroll; - private Dictionary scrollList; - private Timer timer; - private PopupStyle popupStyle; - private View buttonContainer; - private string firstButtonIndex; - private View titleContentContainer; - - private PointStateType previousState; - private bool Popup_TouchEvent(object source, TouchEventArgs e) - { - if (previousState == PointStateType.Down && e.Touch.GetState(0) == PointStateType.Finished) - { - OutsideClicked?.Invoke(this, null); - } - previousState = e.Touch.GetState(0); - return true; - } - - //this will be changed as blur animation - private void defaultShowAnimation() - { - Opacity = 0; - Animation ani = new Animation(1000); - ani.AnimateTo(this, "opacity", 1); - ani.Finished += (s, e) => - { - ani.Reset(); - ani.Dispose(); - }; - ani.Play(); - } - - //this will be changed as blur animation - private void defaultHideAnimation() - { - Animation ani = new Animation(1000); - ani.AnimateTo(this, "opacity", 0); - ani.Finished += (s, e) => - { - window.RemoveLayer(layer); - ani.Reset(); - ani.Dispose(); - }; - ani.Play(); - } - - //the followings will be replaced by style - private const int TITLE_WIDTH = 198; - private const int TITLE_HEIGHT = 39; - private const int TITLE_POSITION_Y = 46; - private const int CONTENT_POSITION_Y = TITLE_POSITION_Y + TITLE_HEIGHT + 5; - private const int POPUP_WIDTH = 360; - private const int POPUP_HEIGHT = 360; - private const int TEXT_POINT_SIZE = 7; - } - - /// - /// PopupAnimation interface - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public interface IPopupAnimation - { - /// - /// ShowAnimation - /// - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - void ShowAnimation(Popup popup); - /// - /// HideAnimation - /// - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - void HideAnimation(Popup popup); - } - -} diff --git a/src/Tizen.NUI.Wearable/src/public/RecyclerView/GridRecycleLayoutManager.cs b/src/Tizen.NUI.Wearable/src/public/RecyclerView/GridRecycleLayoutManager.cs deleted file mode 100755 index 807a60d2d20..00000000000 --- a/src/Tizen.NUI.Wearable/src/public/RecyclerView/GridRecycleLayoutManager.cs +++ /dev/null @@ -1,309 +0,0 @@ -/* Copyright (c) 2020 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 Tizen.NUI.BaseComponents; -using Tizen.NUI.Components; -using System.Collections.Generic; -using System.ComponentModel; - -namespace Tizen.NUI.Wearable -{ - /// - /// [Draft] This class implements a grid box layout. - /// - /// 8 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public class GridRecycleLayoutManager : RecycleLayoutManager - { - private int rows = 1; - - /// - /// [draft ]Get/Set the number of rows in the grid - /// - /// 8 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public int Rows - { - get - { - return rows; - } - set - { - rows = value; - - if (Container != null) - { - Layout(PrevScrollPosition); - } - } - } - - private int columns = 1; - - - /// - /// [Draft] Get/Set the number of columns in the grid - /// - /// 8 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public int Columns - { - get - { - return columns; - } - set - { - columns = value; - - if (Container != null) - { - Layout(PrevScrollPosition); - } - } - } - - private int firstVisibleItemIndex = -1; - private int lastVisibleItemIndex = -1; - - private bool IsItemVisible(float scrollPosition, RecycleItem item) - { - bool result = false; - View list = Container.GetParent() as View; - if (list == null) - { - return result; - } - Vector2 visibleArea = new Vector2(Math.Abs(scrollPosition), - Math.Abs(scrollPosition) + (LayoutOrientation == Orientation.Vertical ? - list.Size.Width : list.Size.Height) - ); - - float firstCheckPoint = LayoutOrientation == Orientation.Vertical ? item.Position.X : item.Position.Y; - float secondCheckPoint = LayoutOrientation == Orientation.Vertical ? - firstCheckPoint + item.Size.Width : - firstCheckPoint + item.Size.Height; - - result = (firstCheckPoint >= visibleArea.X && firstCheckPoint <= visibleArea.Y) || (secondCheckPoint >= visibleArea.X && secondCheckPoint <= visibleArea.Y); - - return result; - } - - /// - /// This is called to find out how much container size can be. - /// - /// 8 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public override float CalculateLayoutOrientationSize() - { - float orientationFactor = LayoutOrientation == Orientation.Vertical ? Rows : Columns; - return StepSize * (int)Math.Ceiling((double)DataCount / (double)orientationFactor); - } - - - /// - /// This is called to find out where items are lain out according to current scroll position. - /// - /// Scroll position which is calculated by ScrollableBase - /// 8 - [Obsolete("This has been deprecated in API12")] - public override void Layout(float scrollPosition) - { - int itemInGroup = LayoutOrientation == Orientation.Vertical ? Rows : Columns; - firstVisibleItemIndex = -1; - lastVisibleItemIndex = -1; - - RecycleItem previousItem = null; - - for (int i = 0; i < Container.Children.Count; i++) - { - RecycleItem item = Container.Children[i] as RecycleItem; - - if (previousItem != null && item != null) - { - item.Position = LayoutOrientation == Orientation.Vertical ? - new Position( - (i % itemInGroup == 0 ? - previousItem.Position.X + (previousItem.CurrentSize.Width != 0 ? - previousItem.CurrentSize.Width : - previousItem.Size.Width) : - previousItem.Position.X), - (i % itemInGroup == 0 ? - 0 : - previousItem.PositionY + (previousItem.CurrentSize.Height != 0 ? - previousItem.CurrentSize.Height : - previousItem.Size.Height)) - ) : - new Position( - (i % itemInGroup == 0 ? - 0 : - previousItem.PositionX + (previousItem.CurrentSize.Width != 0 ? - previousItem.CurrentSize.Width : - previousItem.Size.Width)), - (i % itemInGroup == 0 ? - previousItem.Position.Y + (previousItem.CurrentSize.Height != 0 ? - previousItem.CurrentSize.Height : - previousItem.Size.Height) : - previousItem.Position.Y) - ); - } - - bool isVisible = IsItemVisible(scrollPosition, item); - - if (isVisible) - { - firstVisibleItemIndex = firstVisibleItemIndex == -1 ? i : firstVisibleItemIndex; - lastVisibleItemIndex = i; - } - - previousItem = item; - } - - if (StepSize == 0) - { - StepSize = LayoutOrientation == Orientation.Vertical ? ItemSize.Width : ItemSize.Height; - } - } - - - /// - /// This is called to find out which items should be recycled according to current scroll position. - /// - /// Scroll position which is calculated by ScrollableBase - /// List of RecycleItems which should be recycled. - /// 8 - [Obsolete("This has been deprecated in API12")] - public override List Recycle(float scrollPosition) - { - List result = new List(); - bool checkFront = (PrevScrollPosition - scrollPosition) > 0; - - int itemInGroup = LayoutOrientation == Orientation.Vertical ? Rows : Columns; - - if (checkFront) - { - int currentGroupNum = (int)(firstVisibleItemIndex / itemInGroup) + 1; - - if (currentGroupNum > 2) - { - // Too many item is in front!!! move first item to back!!!! - for (int i = 0; i < itemInGroup; i++) - { - RecycleItem target = Container.Children[0] as RecycleItem; - if (target != null) - { - target.DataIndex = target.DataIndex + Container.Children.Count; - target.SiblingOrder = Container.Children.Count - 1; - - result.Add(target); - } - } - } - } - else - { - int currentGroupNum = (int)(lastVisibleItemIndex / itemInGroup) + 1; - - if (currentGroupNum < (int)(Container.Children.Count / itemInGroup) - 3) - { - for (int i = 0; i < itemInGroup; i++) - { - RecycleItem prevFirstItem = Container.Children[itemInGroup] as RecycleItem; - RecycleItem target = Container.Children[Container.Children.Count - 1] as RecycleItem; - if (prevFirstItem != null && target != null) - { - target.Position = new Position( - LayoutOrientation == Orientation.Vertical ? (prevFirstItem.Position.X - target.Size.Width) : prevFirstItem.Position.X, - LayoutOrientation == Orientation.Vertical ? prevFirstItem.Position.Y : (prevFirstItem.Position.Y - target.Size.Height) - ); - target.DataIndex = target.DataIndex - Container.Children.Count; - target.SiblingOrder = 0; - - result.Add(target); - } - } - } - } - - - PrevScrollPosition = scrollPosition; - - return result; - } - - /// - /// Adjust scrolling position by own scrolling rules. - /// - /// Scroll position which is calculated by ScrollableBase - /// 8 - [Obsolete("This has been deprecated in API12")] - public override float CalculateCandidateScrollPosition(float scrollPosition) - { - return scrollPosition; - } - - /// - [Obsolete("This has been deprecated in API12")] - public override View RequestNextFocusableView(View currentFocusedView, View.FocusDirection direction, bool loopEnabled) - { - View nextFocusedView = null; - int targetSibling = -1; - bool isHorizontal = LayoutOrientation == Orientation.Horizontal; - - switch (direction) - { - case View.FocusDirection.Left: - { - targetSibling = isHorizontal ? currentFocusedView.SiblingOrder - 1 : currentFocusedView.SiblingOrder - Rows; - break; - } - case View.FocusDirection.Right: - { - targetSibling = isHorizontal ? currentFocusedView.SiblingOrder + 1 : currentFocusedView.SiblingOrder + Rows; - break; - } - case View.FocusDirection.Up: - { - targetSibling = isHorizontal ? currentFocusedView.SiblingOrder - Columns : currentFocusedView.SiblingOrder - 1; - break; - } - case View.FocusDirection.Down: - { - targetSibling = isHorizontal ? currentFocusedView.SiblingOrder + Columns : currentFocusedView.SiblingOrder + 1; - break; - } - default: - break; - } - - if (targetSibling > -1 && targetSibling < Container.Children.Count) - { - RecycleItem candidate = Container.Children[targetSibling] as RecycleItem; - if (candidate != null && candidate.DataIndex >= 0 && candidate.DataIndex < DataCount) - { - nextFocusedView = candidate; - } - } - - return nextFocusedView; - } - } -} diff --git a/src/Tizen.NUI.Wearable/src/public/RecyclerView/LinearRecycleLayoutManager.cs b/src/Tizen.NUI.Wearable/src/public/RecyclerView/LinearRecycleLayoutManager.cs deleted file mode 100755 index bff4d565f13..00000000000 --- a/src/Tizen.NUI.Wearable/src/public/RecyclerView/LinearRecycleLayoutManager.cs +++ /dev/null @@ -1,236 +0,0 @@ -/* Copyright (c) 2020 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 Tizen.NUI.BaseComponents; -using Tizen.NUI.Components; -using System.Collections.Generic; -using System.ComponentModel; - -namespace Tizen.NUI.Wearable -{ - /// - /// [Draft] This class implements a linear box layout. - /// - /// 8 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public class LinearRecycleLayoutManager : RecycleLayoutManager - { - private int firstVisibleItemIndex = -1; - private int lastVisibleItemIndex = -1; - - private bool IsItemVisible(float scrollPosition, RecycleItem item) - { - bool result = false; - View list = Container.GetParent() as View; - if (list == null) - { - return result; - } - - Vector2 visibleArea = new Vector2(Math.Abs(scrollPosition), - Math.Abs(scrollPosition) + (LayoutOrientation == Orientation.Horizontal ? - list.Size.Width : list.Size.Height) - ); - - float firstCheckPoint = LayoutOrientation == Orientation.Horizontal ? item.Position.X : item.Position.Y; - float secondCheckPoint = LayoutOrientation == Orientation.Horizontal ? - firstCheckPoint + item.Size.Width : - firstCheckPoint + item.Size.Height; - - // Tizen.Log.Error("NUI", "[1p] "+visibleArea.X+ " =< "+firstCheckPoint+" =< "+visibleArea.Y+" ==== \n"); - // Tizen.Log.Error("NUI", "[2p] "+visibleArea.X+ " =< "+secondCheckPoint+" =< "+visibleArea.Y+" ==== \n"); - - result = (firstCheckPoint >= visibleArea.X && firstCheckPoint <= visibleArea.Y) || (secondCheckPoint >= visibleArea.X && secondCheckPoint <= visibleArea.Y); - - return result; - } - - /// - /// This is called to find out where items are lain out according to current scroll position. - /// - /// Scroll position which is calculated by ScrollableBase - /// 8 - [Obsolete("This has been deprecated in API12")] - public override void Layout(float scrollPosition) - { - firstVisibleItemIndex = -1; - lastVisibleItemIndex = -1; - - RecycleItem previousItem = null; - - for (int i = 0; i < Container.Children.Count; i++) - { - RecycleItem item = Container.Children[i] as RecycleItem; - - if (previousItem != null && item != null) - { - item.Position = LayoutOrientation == Orientation.Horizontal ? - new Position( - previousItem.Position.X + (previousItem.CurrentSize.Width != 0 ? - previousItem.CurrentSize.Width : - previousItem.Size.Width), - item.PositionY - ) : - new Position( - item.PositionX, - previousItem.Position.Y + (previousItem.CurrentSize.Height != 0 ? - previousItem.CurrentSize.Height : - previousItem.Size.Height) - ); - } - - bool isVisible = IsItemVisible(scrollPosition, item); - - if (isVisible) - { - firstVisibleItemIndex = firstVisibleItemIndex == -1 ? i : firstVisibleItemIndex; - lastVisibleItemIndex = i; - } - - previousItem = item; - - // Tizen.Log.Error("NUI","["+item.DataIndex+"] "+item.Position.Y+" ==== \n"); - } - - if (StepSize == 0) - { - StepSize = LayoutOrientation == Orientation.Horizontal ? ItemSize.Width : ItemSize.Height; - } - } - - /// - /// This is called to find out how much container size can be. - /// - /// 8 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public override float CalculateLayoutOrientationSize() - { - return StepSize * DataCount; - } - - /// - /// This is called to find out which items should be recycled according to current scroll position. - /// - /// Scroll position which is calculated by ScrollableBase - /// List of RecycleItems which should be recycled. - /// 8 - [Obsolete("This has been deprecated in API12")] - public override List Recycle(float scrollPosition) - { - List result = new List(); - - bool checkFront = (PrevScrollPosition - scrollPosition) > 0; - - if (checkFront) - { - if (firstVisibleItemIndex > 3) - { - // Too many item is in front!!! move first item to back!!!! - RecycleItem target = Container.Children[0] as RecycleItem; - if (target != null) - { - target.DataIndex = target.DataIndex + Container.Children.Count; - target.SiblingOrder = Container.Children.Count - 1; - - result.Add(target); - } - } - } - else - { - if (lastVisibleItemIndex < Container.Children.Count - 3) - { - RecycleItem prevFirstItem = Container.Children[0] as RecycleItem; - RecycleItem target = Container.Children[Container.Children.Count - 1] as RecycleItem; - if (prevFirstItem != null && target != null) - { - target.Position = new Position( - LayoutOrientation == Orientation.Horizontal ? (prevFirstItem.Position.X - target.Size.Width) : prevFirstItem.Position.X, - LayoutOrientation == Orientation.Horizontal ? prevFirstItem.Position.Y : (prevFirstItem.Position.Y - target.Size.Height) - ); - target.DataIndex = target.DataIndex - Container.Children.Count; - target.SiblingOrder = 0; - - result.Add(target); - } - } - } - - PrevScrollPosition = scrollPosition; - - return result; - } - - /// - /// Adjust scrolling position by own scrolling rules. - /// - /// Scroll position which is calculated by ScrollableBase - /// 8 - [Obsolete("This has been deprecated in API12")] - public override float CalculateCandidateScrollPosition(float scrollPosition) - { - return scrollPosition; - } - - /// - [Obsolete("This has been deprecated in API12")] - public override View RequestNextFocusableView(View currentFocusedView, View.FocusDirection direction, bool loopEnabled) - { - View nextFocusedView = null; - int targetSibling = -1; - bool isHorizontal = LayoutOrientation == Orientation.Horizontal; - - switch (direction) - { - case View.FocusDirection.Left: - { - targetSibling = isHorizontal ? currentFocusedView.SiblingOrder - 1 : targetSibling; - break; - } - case View.FocusDirection.Right: - { - targetSibling = isHorizontal ? currentFocusedView.SiblingOrder + 1 : targetSibling; - break; - } - case View.FocusDirection.Up: - { - targetSibling = isHorizontal ? targetSibling : currentFocusedView.SiblingOrder - 1; - break; - } - case View.FocusDirection.Down: - { - targetSibling = isHorizontal ? targetSibling : currentFocusedView.SiblingOrder + 1; - break; - } - default: - break; - } - - if (targetSibling > -1 && targetSibling < Container.Children.Count) - { - RecycleItem candidate = Container.Children[targetSibling] as RecycleItem; - if (candidate != null && candidate.DataIndex >= 0 && candidate.DataIndex < DataCount) - { - nextFocusedView = candidate; - } - } - - return nextFocusedView; - } - } -} diff --git a/src/Tizen.NUI.Wearable/src/public/RecyclerView/RecycleAdapter.cs b/src/Tizen.NUI.Wearable/src/public/RecyclerView/RecycleAdapter.cs deleted file mode 100755 index 3c9f22af19d..00000000000 --- a/src/Tizen.NUI.Wearable/src/public/RecyclerView/RecycleAdapter.cs +++ /dev/null @@ -1,99 +0,0 @@ -/* Copyright (c) 2020 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.Collections.Generic; -using System.ComponentModel; -using Tizen.NUI.Components; - -namespace Tizen.NUI.Wearable -{ - /// - /// [Draft] Defalt adapter for RecyclerView. - /// Managing RecycleItem and Data for RecyclerView. - /// - /// 8 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public class RecycleAdapter - { - private List mData = new List(); - - /// - /// Create recycle item for RecyclerView. - /// RecyclerView will make its children using this api. - /// - /// Item for RecyclerView - /// 8 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public virtual RecycleItem CreateRecycleItem() - { - return new RecycleItem(); - } - - /// - /// Bind data with recycler item. - /// This function is called when RecyclerItem is used again with new data. - /// Can update content of recycle item with new data at DataIndex of item. - /// - /// Reused RecycleItem which needs data binding. - /// 8 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public virtual void BindData(RecycleItem item) - { - - } - - /// - /// Notify when data of adapter is changed. - /// - /// 8 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public void Notify() - { - OnDataChanged?.Invoke(this, new EventArgs()); - } - - /// - /// Triggered when user called Notify(). - /// - /// 8 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public event EventHandler OnDataChanged; - - /// - /// Triggered when user called Notify(). - /// - /// 8 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public List Data - { - get - { - return mData; - } - set - { - mData = value; - Notify(); - } - } - } -} diff --git a/src/Tizen.NUI.Wearable/src/public/RecyclerView/RecycleItem.cs b/src/Tizen.NUI.Wearable/src/public/RecyclerView/RecycleItem.cs deleted file mode 100755 index 09228c2fb3b..00000000000 --- a/src/Tizen.NUI.Wearable/src/public/RecyclerView/RecycleItem.cs +++ /dev/null @@ -1,39 +0,0 @@ -/* Copyright (c) 2020 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.ComponentModel; -using Tizen.NUI.Components; -using System; - -namespace Tizen.NUI.Wearable -{ - /// - /// [Draft] This class provides a basic item for RecyclerView. - /// - /// 8 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public class RecycleItem : Control - { - /// - /// Data index which is binded to item by RecycleAdapter. - /// Can access to data of RecycleAdapter using this index. - /// - /// 8 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public int DataIndex { get; set; } = 0; - } -} diff --git a/src/Tizen.NUI.Wearable/src/public/RecyclerView/RecycleLayoutManager.cs b/src/Tizen.NUI.Wearable/src/public/RecyclerView/RecycleLayoutManager.cs deleted file mode 100755 index e57666aa2df..00000000000 --- a/src/Tizen.NUI.Wearable/src/public/RecyclerView/RecycleLayoutManager.cs +++ /dev/null @@ -1,168 +0,0 @@ -/* Copyright (c) 2020 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 Tizen.NUI.BaseComponents; -using Tizen.NUI.Components; -using System.Collections.Generic; -using System.ComponentModel; -using System; - -namespace Tizen.NUI.Wearable -{ - /// - /// [Draft] Defalt layout manager for RecyclerView. - /// Lay out RecycleItem and recycle RecycleItem. - /// - /// 8 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public class RecycleLayoutManager - { - /// - /// Enumeration for the direction in which the content is laid out - /// - /// 8 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public enum Orientation - { - /// - /// Vertical - /// - /// 8 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - Vertical = 0, - /// - /// Horizontal - /// - /// 8 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - Horizontal = 1, - } - - /// - /// Container which contains RecycleItems. - /// - /// 8 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public View Container { get; set; } - - /// - /// Size of RecycleItem. - /// - /// 8 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public Size ItemSize { get; set; } = new Size(); - - /// - /// Get/Set the orientation in the layout. - /// - /// 8 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public Orientation LayoutOrientation { get; set; } = Orientation.Vertical; - - /// - /// How far can you reach the next item. - /// - /// 8 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public float StepSize { get; protected set; } - - /// - /// How far can you reach the next item. - /// - /// 8 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public int DataCount { get; set; } - - /// - /// The last scrolled position which is calculated by ScrollableBase. The value should be updated in the Recycle() method. - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - protected float PrevScrollPosition { get; set; } - - /// - /// This is called to find out where items are lain out according to current scroll position. - /// - /// Scroll position which is calculated by ScrollableBase - /// 8 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public virtual void Layout(float scrollPosition) - { - - } - - /// - /// This is called to find out how much container size can be. - /// - /// 8 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public virtual float CalculateLayoutOrientationSize() - { - return 0.0f; - } - - /// - /// This is called to find out which items should be recycled according to current scroll position. - /// - /// Scroll position which is calculated by ScrollableBase - /// List of RecycleItems which should be recycled. - /// 8 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public virtual List Recycle(float scrollPosition) - { - return new List(); - } - - /// - /// Adjust scrolling position by own scrolling rules. - /// - /// Scroll position which is calculated by ScrollableBase - /// 8 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public virtual float CalculateCandidateScrollPosition(float scrollPosition) - { - return scrollPosition; - } - - /// - /// Gets the next keyboard focusable view in this control towards the given direction.
- /// A control needs to override this function in order to support two dimensional keyboard navigation.
- ///
- /// The current focused view. - /// The direction to move the focus towards. - /// Whether the focus movement should be looped within the control. - /// The next keyboard focusable view in this control or an empty handle if no view can be focused. - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public virtual View RequestNextFocusableView(View currentFocusedView, View.FocusDirection direction, bool loopEnabled) - { - return null; - } - - } -} diff --git a/src/Tizen.NUI.Wearable/src/public/RecyclerView/RecyclerView.cs b/src/Tizen.NUI.Wearable/src/public/RecyclerView/RecyclerView.cs deleted file mode 100755 index 721ef1c852f..00000000000 --- a/src/Tizen.NUI.Wearable/src/public/RecyclerView/RecyclerView.cs +++ /dev/null @@ -1,389 +0,0 @@ -/* Copyright (c) 2020 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 Tizen.NUI.BaseComponents; -using Tizen.NUI.Components; -using System.Collections.Generic; -using System.ComponentModel; - -namespace Tizen.NUI.Wearable -{ - /// - /// [Draft] This class provides a View that can recycle items to improve performance. - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public class RecyclerView : ScrollableBase - { - private RecycleAdapter adapter; - private RecycleLayoutManager layoutManager; - private int totalItemCount = 15; - private List notifications = new List(); - - /// - /// Default constructor. - /// - [Obsolete("This has been deprecated in API12")] - public RecyclerView() : base() - { - Initialize(new RecycleAdapter(), new RecycleLayoutManager()); - } - - /// - /// A constructor of . - /// - /// Recycle adapter of RecyclerView. - /// Recycle layoutManager of RecyclerView. - /// 8 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public RecyclerView(RecycleAdapter adapter, RecycleLayoutManager layoutManager) - { - Initialize(adapter, layoutManager); - } - - private void Initialize(RecycleAdapter adapter, RecycleLayoutManager layoutManager) - { - FocusGroup = true; - SetKeyboardNavigationSupport(true); - Scrolling += OnScrolling; - - this.adapter = adapter; - this.adapter.OnDataChanged += OnAdapterDataChanged; - - this.layoutManager = layoutManager; - this.layoutManager.Container = ContentContainer; - this.layoutManager.ItemSize = this.adapter.CreateRecycleItem().Size; - this.layoutManager.DataCount = this.adapter.Data.Count; - - InitializeItems(); - } - - private void OnItemSizeChanged(object source, PropertyNotification.NotifyEventArgs args) - { - layoutManager.Layout(ScrollingDirection == Direction.Horizontal ? ContentContainer.CurrentPosition.X : ContentContainer.CurrentPosition.Y); - } - - /// - /// Gets / Sets total number of items. - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public int TotalItemCount - { - get - { - return totalItemCount; - } - set - { - totalItemCount = value; - InitializeItems(); - } - } - - private void InitializeItems() - { - for (int i = Children.Count - 1; i > -1; i--) - { - Children[i].Unparent(); - notifications[i].Notified -= OnItemSizeChanged; - notifications.RemoveAt(i); - } - - for (int i = 0; i < totalItemCount; i++) - { - RecycleItem item = adapter.CreateRecycleItem(); - item.DataIndex = i; - item.Name = "[" + i + "] recycle"; - - if (i < adapter.Data.Count) - { - adapter.BindData(item); - } - Add(item); - - PropertyNotification noti = item.AddPropertyNotification("size", PropertyCondition.Step(0.1f)); - noti.Notified += OnItemSizeChanged; - notifications.Add(noti); - } - - layoutManager.Layout(0.0f); - - if (ScrollingDirection == Direction.Horizontal) - { - ContentContainer.SizeWidth = layoutManager.CalculateLayoutOrientationSize(); - } - else - { - ContentContainer.SizeHeight = layoutManager.CalculateLayoutOrientationSize(); - } - } - - /// - /// Scrolling direction mode for RecyclerView. . - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public new Direction ScrollingDirection - { - get - { - return base.ScrollingDirection; - } - set - { - base.ScrollingDirection = value; - - if (ScrollingDirection == Direction.Horizontal) - { - ContentContainer.SizeWidth = layoutManager.CalculateLayoutOrientationSize(); - } - else - { - ContentContainer.SizeHeight = layoutManager.CalculateLayoutOrientationSize(); - } - } - } - - /// - /// Recycler adpater. - /// - /// 8 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public RecycleAdapter Adapter - { - get - { - return adapter; - } - set - { - if (adapter != null) - { - adapter.OnDataChanged -= OnAdapterDataChanged; - } - - adapter = value; - adapter.OnDataChanged += OnAdapterDataChanged; - layoutManager.ItemSize = adapter.CreateRecycleItem().Size; - layoutManager.DataCount = adapter.Data.Count; - InitializeItems(); - } - } - - /// - /// Recycler layoutManager. - /// - /// 8 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public RecycleLayoutManager LayoutManager - { - get - { - return layoutManager; - } - set - { - layoutManager = value; - layoutManager.Container = ContentContainer; - layoutManager.ItemSize = adapter.CreateRecycleItem().Size; - layoutManager.DataCount = adapter.Data.Count; - InitializeItems(); - } - } - - private void OnScrolling(object source, ScrollEventArgs args) - { - layoutManager.Layout(ScrollingDirection == Direction.Horizontal ? args.Position.X : args.Position.Y); - List recycledItemList = layoutManager.Recycle(ScrollingDirection == Direction.Horizontal ? args.Position.X : args.Position.Y); - BindData(recycledItemList); - } - - private void OnAdapterDataChanged(object source, EventArgs args) - { - List changedData = new List(); - - foreach (RecycleItem item in Children) - { - changedData.Add(item); - } - - BindData(changedData); - } - - private void BindData(List changedData) - { - foreach (RecycleItem item in changedData) - { - if (item.DataIndex > -1 && item.DataIndex < adapter.Data.Count) - { - item.Show(); - item.Name = "[" + item.DataIndex + "]"; - adapter.BindData(item); - } - else - { - item.Hide(); - } - } - } - - /// - /// Adjust scrolling position by own scrolling rules. - /// Override this function when developer wants to change destination of flicking.(e.g. always snap to center of item) - /// - /// Scroll position which is calculated by ScrollableBase - /// Adjusted scroll destination - /// 8 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - protected override float AdjustTargetPositionOfScrollAnimation(float position) - { - // Destination is depending on implementation of layout manager. - // Get destination from layout manager. - return layoutManager.CalculateCandidateScrollPosition(position); - } - - private View focusedView; - private int prevFocusedDataIndex = 0; - - /// - [EditorBrowsable(EditorBrowsableState.Never)] - [Obsolete("This has been deprecated in API12")] - public override View GetNextFocusableView(View currentFocusedView, View.FocusDirection direction, bool loopEnabled) - { - View nextFocusedView = null; - - if (!focusedView) - { - // If focusedView is null, find child which has previous data index - if (Children.Count > 0 && Adapter.Data.Count > 0) - { - for (int i = 0; i < Children.Count; i++) - { - if ((Children[i] is RecycleItem item) && (item.DataIndex == prevFocusedDataIndex)) - { - nextFocusedView = item; - break; - } - } - } - } - else - { - // If this is not first focus, request next focus to LayoutManager - if (LayoutManager != null) - { - nextFocusedView = LayoutManager.RequestNextFocusableView(currentFocusedView, direction, loopEnabled); - } - } - - if (nextFocusedView != null) - { - // Check next focused view is inside of visible area. - // If it is not, move scroll position to make it visible. - Position scrollPosition = ContentContainer.CurrentPosition; - float targetPosition = -(ScrollingDirection == Direction.Horizontal ? scrollPosition.X : scrollPosition.Y); - - float left = nextFocusedView.Position.X; - float right = nextFocusedView.Position.X + nextFocusedView.Size.Width; - float top = nextFocusedView.Position.Y; - float bottom = nextFocusedView.Position.Y + nextFocusedView.Size.Height; - - float visibleRectangleLeft = -scrollPosition.X; - float visibleRectangleRight = -scrollPosition.X + Size.Width; - float visibleRectangleTop = -scrollPosition.Y; - float visibleRectangleBottom = -scrollPosition.Y + Size.Height; - - if (ScrollingDirection == Direction.Horizontal) - { - if ((direction == View.FocusDirection.Left || direction == View.FocusDirection.Up) && left < visibleRectangleLeft) - { - targetPosition = left; - } - else if ((direction == View.FocusDirection.Right || direction == View.FocusDirection.Down) && right > visibleRectangleRight) - { - targetPosition = right - Size.Width; - } - } - else - { - if ((direction == View.FocusDirection.Up || direction == View.FocusDirection.Left) && top < visibleRectangleTop) - { - targetPosition = top; - } - else if ((direction == View.FocusDirection.Down || direction == View.FocusDirection.Right) && bottom > visibleRectangleBottom) - { - targetPosition = bottom - Size.Height; - } - } - - focusedView = nextFocusedView; - if (nextFocusedView is RecycleItem item) - { - prevFocusedDataIndex = item.DataIndex; - } - - ScrollTo(targetPosition, true); - } - else - { - // If nextView is null, it means that we should move focus to outside of Control. - // Return FocusableView depending on direction. - switch (direction) - { - case View.FocusDirection.Left: - { - nextFocusedView = LeftFocusableView; - break; - } - case View.FocusDirection.Right: - { - nextFocusedView = RightFocusableView; - break; - } - case View.FocusDirection.Up: - { - nextFocusedView = UpFocusableView; - break; - } - case View.FocusDirection.Down: - { - nextFocusedView = DownFocusableView; - break; - } - default: - break; - } - - if (nextFocusedView) - { - focusedView = null; - } - else - { - //If FocusableView doesn't exist, not move focus. - nextFocusedView = focusedView; - } - } - - return nextFocusedView; - } - } -} diff --git a/src/Tizen.NUI.Wearable/src/public/Title.cs b/src/Tizen.NUI.Wearable/src/public/Title.cs deleted file mode 100755 index 194fb52dba2..00000000000 --- a/src/Tizen.NUI.Wearable/src/public/Title.cs +++ /dev/null @@ -1,374 +0,0 @@ -/* - * Copyright(c) 2020 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 System.Runtime.InteropServices; -using Tizen.NUI.BaseComponents; -using Tizen.NUI.Binding; - -namespace Tizen.NUI.Components -{ - /// - /// Use it to set the title. this has a fadeout effect. - /// You can also set the color of the fadeout. - /// - /// 8 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public class Title : TextLabel - { - private const string VERTEX_SHADER = - "//@name NUI.Component.Tile.vert\n" + - "\n" + - "//@version 100\n" + - "\n" + - "INPUT mediump vec2 aPosition;\n" + - "OUTPUT mediump vec2 vTexCoord;\n" + - "UNIFORM_BLOCK VertBlock\n" + - "{\n" + - " UNIFORM highp mat4 uMvpMatrix;\n" + - " UNIFORM mediump vec3 uSize;\n" + - "};\n" + - "void main()\n" + - "{\n" + - " gl_Position = uMvpMatrix * vec4(aPosition * uSize.xy, 0.0, 1.0);\n" + - " vTexCoord = aPosition + vec2(0.5);\n" + - "}\n"; - - private const string FRAGMENT_SHADER = - "//@name NUI.Component.Tile.frag\n" + - "\n" + - "//@version 100\n" + - "\n" + - "INPUT mediump vec2 vTexCoord;\n" + - "UNIFORM sampler2D sTexture;\n" + - "UNIFORM_BLOCK FragBlock\n" + - "{\n" + - " UNIFORM lowp vec4 uColor;\n" + - "};\n" + - "void main()\n" + - "{\n" + - " gl_FragColor = texture2D(sTexture, vTexCoord) * uColor;\n" + - "}\n"; - - private ImageView leftImage = null; - private ImageView rightImage = null; - private Geometry geometry = null; - private Shader shader = null; - private Renderer leftRenderer = null; - private Renderer rightRenderer = null; - private Color fadeOutColor; - private bool isFadeOutColorSet = false; - private int fadeOutWidth = 32; // default size - - /// - /// - /// 8 - [Obsolete("This has been deprecated in API12")] - static Title() { } - - /// - /// Construct Title with null. - /// - /// 8 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public Title() : base() - { - Initialize(); - } - - /// - /// The constructor of the Title class with specific Style. - /// - /// Construct Style - /// 8 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public Title(TextLabelStyle textLabelStyle) : base(textLabelStyle) - { - Initialize(); - } - - /// - /// Constructor of the Title class with special style. - /// - /// style name - /// 8 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public Title(string style) : base(style) - { - Initialize(); - } - - /// - /// Sets the start and end color of the fadeout. - /// - /// 8 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public Color FadeOutColor - { - get - { - return fadeOutColor; - } - set - { - fadeOutColor = value; - isFadeOutColorSet = true; - UpdateImage(); - } - } - - /// - /// Gets or Sets the width of the fadeout effect. - /// - /// 8 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public int FadeOutWidth - { - get - { - return fadeOutWidth; - } - set - { - fadeOutWidth = value; - UpdateImage(); - } - } - - /// - /// Dispose Title. - /// - /// dispose types. - /// 8 - [Obsolete("This has been deprecated in API12")] - protected override void Dispose(DisposeTypes type) - { - if (disposed) - { - return; - } - - if (type == DisposeTypes.Explicit) - { - if (null != leftImage) - { - leftImage.Unparent(); - leftImage.Dispose(); - leftImage = null; - } - if (null != rightImage) - { - rightImage.Unparent(); - rightImage.Dispose(); - rightImage = null; - } - } - base.Dispose(type); - } - - private void UpdateImage() - { - leftImage.SizeWidth = fadeOutWidth; - rightImage.SizeWidth = fadeOutWidth; - - if (fadeOutWidth > 0) - { - Color startColor = new Color(fadeOutColor.R, fadeOutColor.G, fadeOutColor.B, 0.6F); - Color endColor = new Color(fadeOutColor.R, fadeOutColor.G, fadeOutColor.B, 0.0F); - - TextureSet leftTextureSet = CreateTexture(startColor, endColor); - TextureSet rightTextureSet = CreateTexture(endColor, startColor); - - leftImage.RemoveRenderer(leftRenderer); - rightImage.RemoveRenderer(rightRenderer); - - if (this.EnableAutoScroll) - { - leftRenderer.SetTextures(leftTextureSet); - rightRenderer.SetTextures(rightTextureSet); - - leftImage.AddRenderer(leftRenderer); - rightImage.AddRenderer(rightRenderer); - } - else if (this.TextDirection == TextDirection.LeftToRight) - { - rightRenderer.SetTextures(rightTextureSet); - rightImage.AddRenderer(rightRenderer); - } - else - { - leftRenderer.SetTextures(leftTextureSet); - leftImage.AddRenderer(leftRenderer); - } - } - - this.Ellipsis = false; - this.HorizontalAlignment = HorizontalAlignment.Center; - this.VerticalAlignment = VerticalAlignment.Center; - } - - private void Initialize() - { - leftImage = new ImageView(); - leftImage.PositionUsesPivotPoint = true; - leftImage.ParentOrigin = Tizen.NUI.ParentOrigin.TopLeft; - leftImage.PivotPoint = Tizen.NUI.PivotPoint.TopLeft; - leftImage.WidthResizePolicy = ResizePolicyType.FillToParent; - leftImage.HeightResizePolicy = ResizePolicyType.FillToParent; - this.Add(leftImage); - - rightImage = new ImageView(); - rightImage.PositionUsesPivotPoint = true; - rightImage.ParentOrigin = Tizen.NUI.ParentOrigin.TopRight; - rightImage.PivotPoint = Tizen.NUI.PivotPoint.TopRight; - rightImage.WidthResizePolicy = ResizePolicyType.FillToParent; - rightImage.HeightResizePolicy = ResizePolicyType.FillToParent; - this.Add(rightImage); - - geometry = CreateQuadGeometry(); - - shader = new Shader(VERTEX_SHADER, FRAGMENT_SHADER); - - leftRenderer = new Renderer(geometry, shader); - - rightRenderer = new Renderer(geometry, shader); - - fadeOutColor = this.BackgroundColor; - - PropertyChanged += TitlePropertyChanged; - - UpdateImage(); - } - - private void TitlePropertyChanged(object sender, PropertyChangedEventArgs e) - { - if (isFadeOutColorSet == false && e.PropertyName is var propName && propName != null && propName.Equals("BackgroundColor") ) - { - fadeOutColor = this.BackgroundColor; - UpdateImage(); - } - } - - private TextureSet CreateTexture(Vector4 color1, Vector4 color2) - { - TextureSet textureSet = new TextureSet(); - const int width = 2; - const int height = 1; - uint size = width * height * 4; - byte[] pixelBuffer = new byte[size]; - pixelBuffer[0] = (byte)(0xFF * color1.X); - pixelBuffer[1] = (byte)(0xFF * color1.Y); - pixelBuffer[2] = (byte)(0xFF * color1.Z); - pixelBuffer[3] = (byte)(0xFF * color1.W); - pixelBuffer[4] = (byte)(0xFF * color2.X); - pixelBuffer[5] = (byte)(0xFF * color2.Y); - pixelBuffer[6] = (byte)(0xFF * color2.Z); - pixelBuffer[7] = (byte)(0xFF * color2.W); - - PixelData pixelData = new PixelData(pixelBuffer, size, width, height, PixelFormat.RGBA8888); - Texture texture = new Texture(TextureType.TEXTURE_2D, PixelFormat.RGBA8888, width, height); - texture.Upload(pixelData); - - textureSet.SetTexture(0u, texture); - return textureSet; - } - - private PropertyBuffer CreatePropertyBuffer() - { - PropertyMap vertexFormat = new PropertyMap(); - vertexFormat.Add("aPosition", new PropertyValue((int)PropertyType.Vector2)); - PropertyBuffer vertexBuffer = new PropertyBuffer(vertexFormat); - return vertexBuffer; - } - - private struct Vec2 - { - float x; - float y; - public Vec2(float xIn, float yIn) - { - x = xIn; - y = yIn; - } - } - - private struct TexturedQuadVertex - { - public Vec2 position; - }; - - private byte[] Struct2Bytes(TexturedQuadVertex[] obj) - { - int size = Marshal.SizeOf(obj); - byte[] bytes = new byte[size]; - IntPtr ptr = Marshal.AllocHGlobal(size); - Marshal.StructureToPtr(obj, ptr, false); - Marshal.Copy(ptr, bytes, 0, size); - Marshal.FreeHGlobal(ptr); - return bytes; - } - - private Geometry CreateQuadGeometry() - { - PropertyBuffer vertexData = CreatePropertyBuffer(); - - TexturedQuadVertex vertex1 = new TexturedQuadVertex(); - TexturedQuadVertex vertex2 = new TexturedQuadVertex(); - TexturedQuadVertex vertex3 = new TexturedQuadVertex(); - TexturedQuadVertex vertex4 = new TexturedQuadVertex(); - vertex1.position = new Vec2(-0.5f, -0.5f); - vertex2.position = new Vec2(-0.5f, 0.5f); - vertex3.position = new Vec2(0.5f, -0.5f); - vertex4.position = new Vec2(0.5f, 0.5f); - - TexturedQuadVertex[] texturedQuadVertexData = new TexturedQuadVertex[4] { vertex1, vertex2, vertex3, vertex4 }; - - int size = Marshal.SizeOf(vertex1); - IntPtr pA = Marshal.AllocHGlobal(checked(size * texturedQuadVertexData.Length)); - - try - { - for (int i = 0; i < texturedQuadVertexData.Length; i++) - { - Marshal.StructureToPtr(texturedQuadVertexData[i], pA + i * size, true); - } - vertexData.SetData(pA, (uint)texturedQuadVertexData.Length); - } - catch(Exception e) - { - Tizen.Log.Error("NUI", $"Exception in Title : {e.Message}"); - } - finally - { - // Free AllocHGlobal memory after call PropertyBuffer.SetData() - Marshal.FreeHGlobal(pA); - } - - Geometry geometry = new Geometry(); - geometry.AddVertexBuffer(vertexData); - geometry.SetType(Geometry.Type.TRIANGLE_STRIP); - return geometry; - } - - } -} diff --git a/src/Tizen.NUI.Wearable/src/public/WatchView.cs b/src/Tizen.NUI.Wearable/src/public/WatchView.cs deleted file mode 100755 index 31a7659037e..00000000000 --- a/src/Tizen.NUI.Wearable/src/public/WatchView.cs +++ /dev/null @@ -1,115 +0,0 @@ -/* - * Copyright(c) 2020 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 System.Runtime.InteropServices; -using Tizen.NUI.BaseComponents; - -namespace Tizen.NUI.Wearable -{ - - - /// - /// The WatchView is a class for displaying the watch.
- ///
- /// 6 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public class WatchView : View - { - /// - /// Creates a new WatchView. - /// - /// 6 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public WatchView(Window window, string watchId, string contentInfo, int width, int height) : this(Interop.WatchView.New(Window.getCPtr(window), watchId, contentInfo, width, height), true) - { - if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); - - } - - internal WatchView(global::System.IntPtr cPtr, bool cMemoryOwn) : base(Interop.WatchView.Upcast(cPtr), cMemoryOwn) - { - } - internal WatchView(WatchView handle) : this(Interop.WatchView.NewWatchView(WatchView.getCPtr(handle)), true) - { - if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); - } - - /// - /// Pauses a given Watch. - /// - /// True on success, false otherwise. - /// 6 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public bool PauseWatch() - { - bool ret = Interop.WatchView.PauseWatch(SwigCPtr); - if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - /// - /// Resumes a given Watch. - /// - /// True on success, false otherwise. - /// 6 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public bool ResumeWatch() - { - bool ret = Interop.WatchView.ResumeWatch(SwigCPtr); - if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - internal static WatchView DownCast(BaseHandle handle) - { - WatchView ret = new WatchView(Interop.WatchView.DownCast(BaseHandle.getCPtr(handle)), true); - if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - internal static WatchView GetWatchViewFromPtr(global::System.IntPtr cPtr) - { - WatchView ret = new WatchView(cPtr, false); - if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - internal WatchView Assign(WatchView handle) - { - WatchView ret = new WatchView(Interop.WatchView.Assign(SwigCPtr, WatchView.getCPtr(handle)), false); - if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - /// - /// To make the Button instance be disposed. - /// - /// 6 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - protected override void Dispose(DisposeTypes type) - { - base.Dispose(type); - } - } - -} diff --git a/src/Tizen.NUI.Wearable/src/public/WearableList.cs b/src/Tizen.NUI.Wearable/src/public/WearableList.cs deleted file mode 100755 index c9f8fd14582..00000000000 --- a/src/Tizen.NUI.Wearable/src/public/WearableList.cs +++ /dev/null @@ -1,164 +0,0 @@ -/* Copyright (c) 2020 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 Tizen.NUI.BaseComponents; -using Tizen.NUI.Components; -using System.ComponentModel; - -namespace Tizen.NUI.Wearable -{ - /// - /// [Draft] This class provides a list view styled by wearable ux. - /// List will lay out all items with Fish-Eye layout manager. - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public class WearableList : RecyclerView - { - private RecycleItem FocusedItem = null; - - /// - /// Default constructor. - /// - /// 8 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public WearableList() : base(new RecycleAdapter(), new FishEyeLayoutManager()) - { - ScrollingDirection = ScrollableBase.Direction.Vertical; - - ScrollDragStarted += OnScrollDragStarted; - ScrollAnimationEnded += OnAnimationEnded; - - ContentContainer.PositionUsesPivotPoint = true; - ContentContainer.ParentOrigin = Tizen.NUI.ParentOrigin.Center; - ContentContainer.PivotPoint = Tizen.NUI.PivotPoint.TopCenter; - NoticeAnimationEndBeforePosition = 50; - - ScrollAvailableArea = new Vector2(0, ContentContainer.SizeHeight); - - SetFocus(0, false); - - Scrollbar = new CircularScrollbar(); - DecelerationThreshold = 60.0f; - DecelerationRate = 0.991f; - } - - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - protected override void SetScrollbar() - { - if(LayoutManager != null) - { - Scrollbar.Initialize(ContentContainer.Size.Height, LayoutManager.StepSize, ContentContainer.CurrentPosition.Y, false); - } - } - - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public new RecycleAdapter Adapter - { - get - { - return base.Adapter; - } - - set - { - base.Adapter = value; - - foreach (View child in Children) - { - child.PositionUsesPivotPoint = true; - child.ParentOrigin = Tizen.NUI.ParentOrigin.TopCenter; - } - - ScrollAvailableArea = new Vector2( 0, ContentContainer.SizeHeight ); - } - } - - /// - /// Set focus to item which has specific data index. - /// - /// Data index of item. - /// If set true, scroll to item using animation. - /// 8 - [Obsolete("This has been deprecated in API12")] - public void SetFocus(int dataIndex, bool animated) - { - if (LayoutManager == null) - { - return; - } - - foreach (RecycleItem item in Children) - { - if (item.DataIndex == dataIndex) - { - RecycleItem prevFocusedItem = FocusedItem; - prevFocusedItem?.OnFocusLost(); - FocusedItem = item; - FocusedItem.OnFocusGained(); - - ScrollTo(item.DataIndex * LayoutManager.StepSize, animated); - } - } - } - - private void OnAnimationEnded(object source, ScrollEventArgs args) - { - } - - /// - /// This helps developer who wants to know before scroll is reaching target position. - /// - /// Index of item. - /// 8 - [Obsolete("This has been deprecated in API12")] - protected override void OnPreReachedTargetPosition(float targetPosition) - { - if (LayoutManager == null) - { - return; - } - int targetDataIndex = (int)Math.Round(Math.Abs(targetPosition) / LayoutManager.StepSize); - - for (int i = 0; i < Children.Count; i++) - { - RecycleItem item = Children[i] as RecycleItem; - if (item == null) - { - continue; - } - - if (targetDataIndex == item.DataIndex) - { - FocusedItem = item; - item.OnFocusGained(); - break; - } - } - } - - private void OnScrollDragStarted(object source, ScrollEventArgs args) - { - RecycleItem prevFocusedItem = FocusedItem; - prevFocusedItem?.OnFocusLost(); - } - } -} diff --git a/src/Tizen.NUI.Wearable/src/public/WearableStyle/CircularPaginationStyle.cs b/src/Tizen.NUI.Wearable/src/public/WearableStyle/CircularPaginationStyle.cs deleted file mode 100755 index e8af4dbcb99..00000000000 --- a/src/Tizen.NUI.Wearable/src/public/WearableStyle/CircularPaginationStyle.cs +++ /dev/null @@ -1,144 +0,0 @@ -/* - * Copyright(c) 2020 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.ComponentModel; -using Tizen.NUI.BaseComponents; -using Tizen.NUI.Binding; -using Tizen.NUI.Components; -using System; - -namespace Tizen.NUI.Wearable -{ - /// - /// CircularPaginationStyle used to config the circularPagination represent. - /// - /// 8 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public class CircularPaginationStyle : ControlStyle - { - /// The IndicatorSize bindable property. - [EditorBrowsable(EditorBrowsableState.Never)] - public static readonly BindableProperty IndicatorSizeProperty = BindableProperty.Create(nameof(IndicatorSize), typeof(Size), typeof(CircularPaginationStyle), null, propertyChanged: (bindable, oldValue, newValue) => - { - ((CircularPaginationStyle)bindable).indicatorSize = newValue == null ? null : new Size((Size)newValue); - }, - defaultValueCreator: (bindable) => - { - return ((CircularPaginationStyle)bindable).indicatorSize; - }); - - /// The IndicatorImageUrlSelector bindable property. - [EditorBrowsable(EditorBrowsableState.Never)] - public static readonly BindableProperty IndicatorImageUrlSelectorProperty = BindableProperty.Create("IndicatorImageUrlSelector", typeof(Selector), typeof(CircularPaginationStyle), null, propertyChanged: (bindable, oldValue, newValue) => - { - ((CircularPaginationStyle)bindable).indicatorImageUrl = ((Selector)newValue)?.Clone(); - }, - defaultValueCreator: (bindable) => - { - return ((CircularPaginationStyle)bindable).indicatorImageUrl; - }); - - /// The CenterIndicatorImageUrlSelector bindable property. - [EditorBrowsable(EditorBrowsableState.Never)] - public static readonly BindableProperty CenterIndicatorImageUrlSelectorProperty = BindableProperty.Create("CenterIndicatorImageUrlSelector", typeof(Selector), typeof(CircularPaginationStyle), null, propertyChanged: (bindable, oldValue, newValue) => - { - ((CircularPaginationStyle)bindable).centerIndicatorImageUrl = ((Selector)newValue)?.Clone(); - }, - defaultValueCreator: (bindable) => - { - return ((CircularPaginationStyle)bindable).centerIndicatorImageUrl; - }); - - private Size indicatorSize; - private Selector indicatorImageUrl; - private Selector centerIndicatorImageUrl; - - static CircularPaginationStyle() { } - - /// - /// Creates a new instance of a CircularPaginationStyle. - /// - /// 8 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public CircularPaginationStyle() : base() - { - Initialize(); - } - - /// - /// Creates a new instance of a CircularPaginationStyle using style. - /// - /// 8 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public CircularPaginationStyle(CircularPaginationStyle style) : base(style) - { - } - - /// - /// Gets or sets the size of the indicator. - /// - /// 8 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public Size IndicatorSize - { - get => (Size)GetValue(IndicatorSizeProperty); - set => SetValue(IndicatorSizeProperty, value); - } - - /// - /// Gets or sets the resource of indicator. - /// - /// 8 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public Selector IndicatorImageURL - { - get => (Selector)GetValue(IndicatorImageUrlSelectorProperty); - set => SetValue(IndicatorImageUrlSelectorProperty, value); - } - - /// - /// Gets or sets the resource of the center indicator. - /// - /// 8 - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public Selector CenterIndicatorImageURL - { - get => (Selector)GetValue(CenterIndicatorImageUrlSelectorProperty); - set => SetValue(CenterIndicatorImageUrlSelectorProperty, value); - } - - private void Initialize() - { - IndicatorSize = new Size(10, 10); - IndicatorImageURL = new Selector() - { - Normal = Tizen.NUI.FrameworkInformation.ResourcePath + "nui_component_default_pagination_normal_dot.png", - Selected = Tizen.NUI.FrameworkInformation.ResourcePath + "nui_component_default_pagination_focus_dot.png", - }; - CenterIndicatorImageURL = new Selector() - { - Normal = Tizen.NUI.FrameworkInformation.ResourcePath + "nui_wearable_circular_pagination_center_normal_dot.png", - Selected = Tizen.NUI.FrameworkInformation.ResourcePath + "nui_wearable_circular_pagination_center_focus_dot.png", - }; - } - } -} diff --git a/src/Tizen.NUI.Wearable/src/public/WearableStyle/CircularProgressStyle.cs b/src/Tizen.NUI.Wearable/src/public/WearableStyle/CircularProgressStyle.cs deleted file mode 100755 index 067f56f3ff3..00000000000 --- a/src/Tizen.NUI.Wearable/src/public/WearableStyle/CircularProgressStyle.cs +++ /dev/null @@ -1,286 +0,0 @@ -/* - * Copyright(c) 2020 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.ComponentModel; -using Tizen.NUI.BaseComponents; -using Tizen.NUI.Binding; -using Tizen.NUI.Components; -using System; - -namespace Tizen.NUI.Wearable -{ - /// - /// CircularProgressStyle is a class which saves CircularProgress's ux data. - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public class CircularProgressStyle : ControlStyle - { - /// Bindable property of Thickness - [EditorBrowsable(EditorBrowsableState.Never)] - public static readonly BindableProperty ThicknessProperty = BindableProperty.Create(nameof(Thickness), typeof(float?), typeof(CircularProgressStyle), null, propertyChanged: (bindable, oldValue, newValue) => - { - ((CircularProgressStyle)bindable).thickness = (float?)newValue; - }, - defaultValueCreator: (bindable) => - { - return ((CircularProgressStyle)bindable).thickness; - }); - - /// Bindable property of MaxValue - [EditorBrowsable(EditorBrowsableState.Never)] - public static readonly BindableProperty MaxValueProperty = BindableProperty.Create(nameof(MaxValue), typeof(float), typeof(CircularProgressStyle), default(float), propertyChanged: (bindable, oldValue, newValue) => - { - ((CircularProgressStyle)bindable).maxValue = (float)newValue; - }, - defaultValueCreator: (bindable) => - { - return ((CircularProgressStyle)bindable).maxValue; - }); - - /// Bindable property of MinValue - [EditorBrowsable(EditorBrowsableState.Never)] - public static readonly BindableProperty MinValueProperty = BindableProperty.Create(nameof(MinValue), typeof(float), typeof(CircularProgressStyle), default(float), propertyChanged: (bindable, oldValue, newValue) => - { - ((CircularProgressStyle)bindable).minValue = (float)newValue; - }, - defaultValueCreator: (bindable) => - { - return ((CircularProgressStyle)bindable).minValue; - }); - - /// Bindable property of CurrentValue - [EditorBrowsable(EditorBrowsableState.Never)] - public static readonly BindableProperty CurrentValueProperty = BindableProperty.Create(nameof(CurrentValue), typeof(float), typeof(CircularProgressStyle), default(float), propertyChanged: (bindable, oldValue, newValue) => - { - ((CircularProgressStyle)bindable).currentValue = (float)newValue; - }, - defaultValueCreator: (bindable) => - { - return ((CircularProgressStyle)bindable).currentValue; - }); - - /// Bindable property of TrackColor - [EditorBrowsable(EditorBrowsableState.Never)] - public static readonly BindableProperty TrackColorProperty = BindableProperty.Create(nameof(TrackColor), typeof(Color), typeof(CircularProgressStyle), null, propertyChanged: (bindable, oldValue, newValue) => - { - ((CircularProgressStyle)bindable).trackColor = newValue == null ? null : new Color((Color)newValue); - }, - defaultValueCreator: (bindable) => - { - return ((CircularProgressStyle)bindable).trackColor; - }); - - /// Bindable property of ProgressColor - [EditorBrowsable(EditorBrowsableState.Never)] - public static readonly BindableProperty ProgressColorProperty = BindableProperty.Create(nameof(ProgressColor), typeof(Color), typeof(CircularProgressStyle), null, propertyChanged: (bindable, oldValue, newValue) => - { - ((CircularProgressStyle)bindable).progressColor = newValue == null ? null : new Color((Color)newValue); - }, - defaultValueCreator: (bindable) => - { - return ((CircularProgressStyle)bindable).progressColor; - }); - - /// Bindable property of IsEnabled - [EditorBrowsable(EditorBrowsableState.Never)] - public new static readonly BindableProperty IsEnabledProperty = BindableProperty.Create(nameof(IsEnabled), typeof(bool?), typeof(CircularProgressStyle), null, propertyChanged: (bindable, oldValue, newValue) => - { - ((CircularProgressStyle)bindable).isEnabled = (bool?)newValue; - }, - defaultValueCreator: (bindable) => - { - return ((CircularProgressStyle)bindable).isEnabled; - }); - - private float? thickness; - private float maxValue; - private float minValue; - private float currentValue; - private Color trackColor; - private Color progressColor; - private bool? isEnabled; - - static CircularProgressStyle() { } - - /// - /// Creates a new instance of a CircularProgressStyle. - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public CircularProgressStyle() : base() - { - Initialize(); - } - - /// - /// Creates a new instance of a CircularProgressStyle with style. - /// - /// Create CircularProgressStyle by style customized by user. - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public CircularProgressStyle(CircularProgressStyle style) : base(style) - { - } - - /// - /// The thickness of the track and progress. - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public float? Thickness - { - get - { - return (float?)GetValue(ThicknessProperty); - } - set - { - SetValue(ThicknessProperty, value); - } - } - - /// - /// The property to get/set the maximum value of the CircularProgress. - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public float MaxValue - { - get - { - return (float)GetValue(MaxValueProperty); - } - set - { - SetValue(MaxValueProperty, value); - } - } - - /// - /// The property to get/set the minim value of the CircularProgress. - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public float MinValue - { - get - { - return (float)GetValue(MinValueProperty); - } - set - { - SetValue(MinValueProperty, value); - } - } - - /// - /// The property to get/set the current value of the CircularProgress. - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public float CurrentValue - { - get - { - return (float)GetValue(CurrentValueProperty); - } - set - { - SetValue(CurrentValueProperty, value); - } - } - - /// - /// The property to get/set Track object color of the CircularProgress. - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public Color TrackColor - { - get - { - return (Color)GetValue(TrackColorProperty); - } - set - { - SetValue(TrackColorProperty, value); - } - } - - /// - /// The property to get/set Progress object color of the CircularProgress. - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public Color ProgressColor - { - get - { - return (Color)GetValue(ProgressColorProperty); - } - set - { - SetValue(ProgressColorProperty, value); - } - } - - /// - /// Flag to be enabled or disabled in CircularProgress. - /// - /// 8 - [Obsolete("This has been deprecated in API12")] - public new bool? IsEnabled - { - get - { - return (bool?)GetValue(IsEnabledProperty); - } - set - { - SetValue(IsEnabledProperty, value); - } - } - - /// - /// Dispose CircularProgressStyle and all children on it. - /// - /// true in order to free managed objects - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - protected override void Dispose(bool disposing) - { - if (disposing) - { - trackColor?.Dispose(); - progressColor?.Dispose(); - } - - base.Dispose(disposing); - } - - private void Initialize() - { - isEnabled = true; - thickness = 6.0f; - maxValue = 100.0f; - minValue = 0.0f; - currentValue = 0.0f; - trackColor = new Color(0.0f, 0.16f, 0.30f, 1.0f); - progressColor = new Color(0.0f, 0.55f, 1.0f, 1.0f); - } - } -} diff --git a/src/Tizen.NUI.Wearable/src/public/WearableStyle/CircularScrollbarStyle.cs b/src/Tizen.NUI.Wearable/src/public/WearableStyle/CircularScrollbarStyle.cs deleted file mode 100755 index 3771e9816ae..00000000000 --- a/src/Tizen.NUI.Wearable/src/public/WearableStyle/CircularScrollbarStyle.cs +++ /dev/null @@ -1,168 +0,0 @@ -/* - * Copyright(c) 2019 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.ComponentModel; -using Tizen.NUI.Components; -using Tizen.NUI.Binding; -using System; - -namespace Tizen.NUI.Wearable -{ - /// - /// CircularScrollbarStyle is a class which saves CircularScrollbar's ux data. - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public class CircularScrollbarStyle : ControlStyle - { - #region Fields - - /// Bindable property of Thickness - [EditorBrowsable(EditorBrowsableState.Never)] - public static readonly BindableProperty ThicknessProperty = BindableProperty.Create(nameof(Thickness), typeof(float?), typeof(CircularScrollbarStyle), null, propertyChanged: (bindable, oldValue, newValue) => - { - ((CircularScrollbarStyle)bindable).thickness = (float?)newValue; - }, - defaultValueCreator: (bindable) => - { - return ((CircularScrollbarStyle)bindable).thickness; - }); - - /// Bindable property of TrackSweepAngle - [EditorBrowsable(EditorBrowsableState.Never)] - public static readonly BindableProperty TrackSweepAngleProperty = BindableProperty.Create(nameof(TrackSweepAngle), typeof(float?), typeof(CircularScrollbarStyle), null, propertyChanged: (bindable, oldValue, newValue) => - { - ((CircularScrollbarStyle)bindable).trackSweepAngle = (float?)newValue; - }, - defaultValueCreator: (bindable) => - { - return ((CircularScrollbarStyle)bindable).trackSweepAngle; - }); - - /// Bindable property of TrackColor - [EditorBrowsable(EditorBrowsableState.Never)] - public static readonly BindableProperty TrackColorProperty = BindableProperty.Create(nameof(TrackColor), typeof(Color), typeof(CircularScrollbarStyle), null, propertyChanged: (bindable, oldValue, newValue) => - { - ((CircularScrollbarStyle)bindable).trackColor = newValue == null ? null : new Color((Color)newValue); - }, - defaultValueCreator: (bindable) => - { - return ((CircularScrollbarStyle)bindable).trackColor; - }); - - /// Bindable property of ThumbColor - [EditorBrowsable(EditorBrowsableState.Never)] - public static readonly BindableProperty ThumbColorProperty = BindableProperty.Create(nameof(ThumbColor), typeof(Color), typeof(CircularScrollbarStyle), null, propertyChanged: (bindable, oldValue, newValue) => - { - ((CircularScrollbarStyle)bindable).thumbColor = newValue == null ? null : new Color((Color)newValue); - }, - defaultValueCreator: (bindable) => - { - return ((CircularScrollbarStyle)bindable).thumbColor; - }); - - private float? thickness; - private float? trackSweepAngle; - private Color trackColor; - private Color thumbColor; - - #endregion Fields - - - #region Constructors - - /// - /// Creates a new instance of a CircularScrollbarStyle. - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public CircularScrollbarStyle() : base() - { - } - - /// - /// Copy constructor. - /// - /// Create ScrollbarStyle by style customized by user. - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public CircularScrollbarStyle(CircularScrollbarStyle style) : base(style) - { - } - - /// - /// Static constructor to initialize bindable properties when loading. - /// - static CircularScrollbarStyle() - { - } - - #endregion Constructors - - - #region Properties - - /// - /// The thickness of the scrollbar and track. - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public float? Thickness - { - get => (float?)GetValue(ThicknessProperty); - set => SetValue(ThicknessProperty, value); - } - - /// - /// The sweep angle of track area in degrees. - /// - /// - /// Values below 6 degrees are treated as 6 degrees. - /// Values exceeding 180 degrees are treated as 180 degrees. - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public float? TrackSweepAngle - { - get => (float?)GetValue(TrackSweepAngleProperty); - set => SetValue(TrackSweepAngleProperty, value); - } - - /// - /// The color of the track part. - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public Color TrackColor - { - get => (Color)GetValue(TrackColorProperty); - set => SetValue(TrackColorProperty, value); - } - - /// - /// The color of the thumb part. - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public Color ThumbColor - { - get => (Color)GetValue(ThumbColorProperty); - set => SetValue(ThumbColorProperty, value); - } - - #endregion Properties - } -} diff --git a/src/Tizen.NUI.Wearable/src/public/WearableStyle/CircularSliderStyle.cs b/src/Tizen.NUI.Wearable/src/public/WearableStyle/CircularSliderStyle.cs deleted file mode 100755 index 580dd6e3863..00000000000 --- a/src/Tizen.NUI.Wearable/src/public/WearableStyle/CircularSliderStyle.cs +++ /dev/null @@ -1,329 +0,0 @@ -/* - * Copyright(c) 2020 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.ComponentModel; -using Tizen.NUI.BaseComponents; -using Tizen.NUI.Binding; -using Tizen.NUI.Components; -using System; - -namespace Tizen.NUI.Wearable -{ - /// - /// CircularSliderStyle is a class which saves CircularSlider's ux data. - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public class CircularSliderStyle : ControlStyle - { - /// Bindable property of Thickness - [EditorBrowsable(EditorBrowsableState.Never)] - public static readonly BindableProperty ThicknessProperty = BindableProperty.Create(nameof(Thickness), typeof(float?), typeof(CircularSliderStyle), null, propertyChanged: (bindable, oldValue, newValue) => - { - ((CircularSliderStyle)bindable).thickness = (float?)newValue; - }, - defaultValueCreator: (bindable) => - { - return ((CircularSliderStyle)bindable).thickness; - }); - - /// Bindable property of MaxValue - [EditorBrowsable(EditorBrowsableState.Never)] - public static readonly BindableProperty MaxValueProperty = BindableProperty.Create(nameof(MaxValue), typeof(float), typeof(CircularSliderStyle), default(float), propertyChanged: (bindable, oldValue, newValue) => - { - ((CircularSliderStyle)bindable).maxValue = (float)newValue; - }, - defaultValueCreator: (bindable) => - { - return ((CircularSliderStyle)bindable).maxValue; - }); - - /// Bindable property of MinValue - [EditorBrowsable(EditorBrowsableState.Never)] - public static readonly BindableProperty MinValueProperty = BindableProperty.Create(nameof(MinValue), typeof(float), typeof(CircularSliderStyle), default(float), propertyChanged: (bindable, oldValue, newValue) => - { - ((CircularSliderStyle)bindable).minValue = (float)newValue; - }, - defaultValueCreator: (bindable) => - { - return ((CircularSliderStyle)bindable).minValue; - }); - - /// Bindable property of CurrentValue - [EditorBrowsable(EditorBrowsableState.Never)] - public static readonly BindableProperty CurrentValueProperty = BindableProperty.Create(nameof(CurrentValue), typeof(float), typeof(CircularSliderStyle), default(float), propertyChanged: (bindable, oldValue, newValue) => - { - ((CircularSliderStyle)bindable).currentValue = (float)newValue; - }, - defaultValueCreator: (bindable) => - { - return ((CircularSliderStyle)bindable).currentValue; - }); - - /// Bindable property of TrackColor - [EditorBrowsable(EditorBrowsableState.Never)] - public static readonly BindableProperty TrackColorProperty = BindableProperty.Create(nameof(TrackColor), typeof(Color), typeof(CircularSliderStyle), null, propertyChanged: (bindable, oldValue, newValue) => - { - ((CircularSliderStyle)bindable).trackColor = newValue == null ? null : new Color((Color)newValue); - }, - defaultValueCreator: (bindable) => - { - return ((CircularSliderStyle)bindable).trackColor; - }); - - /// Bindable property of ProgressColor - [EditorBrowsable(EditorBrowsableState.Never)] - public static readonly BindableProperty ProgressColorProperty = BindableProperty.Create(nameof(ProgressColor), typeof(Color), typeof(CircularSliderStyle), null, propertyChanged: (bindable, oldValue, newValue) => - { - ((CircularSliderStyle)bindable).progressColor = newValue == null ? null : new Color((Color)newValue); - }, - defaultValueCreator: (bindable) => - { - return ((CircularSliderStyle)bindable).progressColor; - }); - - /// Bindable property of ThumbSize - [EditorBrowsable(EditorBrowsableState.Never)] - public static readonly BindableProperty ThumbSizeProperty = BindableProperty.Create(nameof(ThumbSize), typeof(Size), typeof(CircularSliderStyle), new Size(0, 0), propertyChanged: (bindable, oldValue, newValue) => - { - ((CircularSliderStyle)bindable).thumbSize = (Size)newValue; - }, - defaultValueCreator: (bindable) => - { - return ((CircularSliderStyle)bindable).thumbSize; - }); - - /// Bindable property of ThumbColor - [EditorBrowsable(EditorBrowsableState.Never)] - public static readonly BindableProperty ThumbColorProperty = BindableProperty.Create(nameof(ThumbColor), typeof(Color), typeof(CircularSliderStyle), null, propertyChanged: (bindable, oldValue, newValue) => - { - ((CircularSliderStyle)bindable).thumbColor = newValue == null ? null : new Color((Color)newValue); - }, - defaultValueCreator: (bindable) => - { - return ((CircularSliderStyle)bindable).thumbColor; - }); - - /// Bindable property of IsEnabled - [EditorBrowsable(EditorBrowsableState.Never)] - public new static readonly BindableProperty IsEnabledProperty = BindableProperty.Create(nameof(IsEnabled), typeof(bool?), typeof(CircularSliderStyle), null, propertyChanged: (bindable, oldValue, newValue) => - { - ((CircularSliderStyle)bindable).isEnabled = (bool?)newValue; - }, - defaultValueCreator: (bindable) => - { - return ((CircularSliderStyle)bindable).isEnabled; - }); - - private float? thickness; - private float maxValue; - private float minValue; - private float currentValue; - private Color trackColor; - private Color progressColor; - private Color thumbColor; - private Size thumbSize; - private bool? isEnabled; - - static CircularSliderStyle() { } - - /// - /// Creates a new instance of a CircularSliderStyle. - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public CircularSliderStyle() : base() - { - Initialize(); - } - - /// - /// Creates a new instance of a CircularSliderStyle with style. - /// - /// Create CircularSliderStyle by style customized by user. - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public CircularSliderStyle(CircularSliderStyle style) : base(style) - { - } - - /// - /// The thickness of the track and progress. - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public float? Thickness - { - get - { - return (float?)GetValue(ThicknessProperty); - } - set - { - SetValue(ThicknessProperty, value); - } - } - - /// - /// The property to get/set the maximum value of the CircularSlider. - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public float MaxValue - { - get - { - return (float)GetValue(MaxValueProperty); - } - set - { - SetValue(MaxValueProperty, value); - } - } - - /// - /// The property to get/set the minim value of the CircularSlider. - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public float MinValue - { - get - { - return (float)GetValue(MinValueProperty); - } - set - { - SetValue(MinValueProperty, value); - } - } - - /// - /// The property to get/set the current value of the CircularSlider. - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public float CurrentValue - { - get - { - return (float)GetValue(CurrentValueProperty); - } - set - { - SetValue(CurrentValueProperty, value); - } - } - - /// - /// The property to get/set Track object color of the CircularSlider. - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public Color TrackColor - { - get - { - return (Color)GetValue(TrackColorProperty); - } - set - { - SetValue(TrackColorProperty, value); - } - } - - /// - /// The property to get/set Progress object color of the CircularSlider. - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public Color ProgressColor - { - get - { - return (Color)GetValue(ProgressColorProperty); - } - set - { - SetValue(ProgressColorProperty, value); - } - } - - /// - /// Gets or sets the size of the thumb of Slider. - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public Size ThumbSize - { - get - { - return (Size)GetValue(ThumbSizeProperty); - } - set - { - SetValue(ThumbSizeProperty, value); - } - } - - /// - /// The property to get/set Thumb object color of the CircularSlider. - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public Color ThumbColor - { - get - { - return (Color)GetValue(ThumbColorProperty); - } - set - { - SetValue(ThumbColorProperty, value); - } - } - - /// - /// Flag to be enabled or disabled in CircularSlider. - /// - /// 8 - [Obsolete("This has been deprecated in API12")] - public new bool? IsEnabled - { - get - { - return (bool?)GetValue(IsEnabledProperty); - } - set - { - SetValue(IsEnabledProperty, value); - } - } - - private void Initialize() - { - isEnabled = true; - thickness = 6.0f; - maxValue = 100.0f; - minValue = 0.0f; - currentValue = 0.0f; - trackColor = new Color(0.0f, 0.16f, 0.30f, 1.0f); // #002A4D - progressColor = new Color(0.0f, 0.55f, 1.0f, 1.0f); // #008CFF - thumbSize = new Size(19, 19); - thumbColor = new Color(0.0f, 0.55f, 1.0f, 1.0f); // #008CFF - } - } -} diff --git a/src/Tizen.NUI.Wearable/src/public/WearableStyle/PopupStyle.cs b/src/Tizen.NUI.Wearable/src/public/WearableStyle/PopupStyle.cs deleted file mode 100755 index 9f9eab763ae..00000000000 --- a/src/Tizen.NUI.Wearable/src/public/WearableStyle/PopupStyle.cs +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright(c) 2020 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.ComponentModel; -using Tizen.NUI.Binding; -using Tizen.NUI.Components; -using System; - -namespace Tizen.NUI.Wearable -{ - /// - /// PopupStyle used to config the Popup represent. - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public class PopupStyle : ControlStyle - { - /// Bindable property of WrapContent - [EditorBrowsable(EditorBrowsableState.Never)] - public static readonly BindableProperty WrapContentProperty = BindableProperty.Create(nameof(WrapContent), typeof(bool?), typeof(PopupStyle), null, propertyChanged: (bindable, oldValue, newValue) => - { - ((PopupStyle)bindable).wrapContent = (bool?)newValue; - }, - defaultValueCreator: (bindable) => - { - return ((PopupStyle)bindable).wrapContent; - }); - - private bool? wrapContent; - - static PopupStyle() { } - - /// - /// Creates a new instance of a PopupStyle. - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public PopupStyle() : base() - { - initSubStyle(); - } - - /// - /// Creates a new instance of a PopupStyle using style. - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public PopupStyle(PopupStyle style) : base(style) - { - } - - /// - /// WrapContent - /// - [Obsolete("This has been deprecated in API12")] - [EditorBrowsable(EditorBrowsableState.Never)] - public bool? WrapContent - { - get => (bool?)GetValue(WrapContentProperty); - set => SetValue(WrapContentProperty, value); - } - - private void initSubStyle() - { - WrapContent = false; - //to do - Size = new Size(10, 10); - } - - } -} diff --git a/src/Tizen.NUI/src/public/BaseComponents/TextUtils.cs b/src/Tizen.NUI/src/public/BaseComponents/TextUtils.cs index a48cbbc7792..989e9841831 100755 --- a/src/Tizen.NUI/src/public/BaseComponents/TextUtils.cs +++ b/src/Tizen.NUI/src/public/BaseComponents/TextUtils.cs @@ -1168,13 +1168,6 @@ public static TextFitArray GetMapToTextFitArray(PropertyMap textFitArrayMap) private const float FontSizeScaleLarge = 1.5f; private const float FontSizeScaleHuge = 1.9f; private const float FontSizeScaleGiant = 2.5f; -#elif PROFILE_WEARABLE - // The following values from 'system-settings/libutil/sstu.c' - private const float FontSizeScaleSmall = 0.9f; - private const float FontSizeScaleNormal = 1.0f; - private const float FontSizeScaleLarge = 1.1f; - private const float FontSizeScaleHuge = 1.9f; - private const float FontSizeScaleGiant = 2.5f; #else // PROFILE_MOBILE and etc // The following values from 'system-settings/libutil/sstu.c' private const float FontSizeScaleSmall = 0.87f; diff --git a/test/Tizen.NUI.LayoutSamples/Tizen.NUI.LayoutSamples.sln b/test/Tizen.NUI.LayoutSamples/Tizen.NUI.LayoutSamples.sln index f35a807b8d8..7655db276a4 100755 --- a/test/Tizen.NUI.LayoutSamples/Tizen.NUI.LayoutSamples.sln +++ b/test/Tizen.NUI.LayoutSamples/Tizen.NUI.LayoutSamples.sln @@ -27,8 +27,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ElmSharp", "..\..\src\ElmSh EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tizen.System.Information", "..\..\src\Tizen.System.Information\Tizen.System.Information.csproj", "{02BEE3AD-99A6-44A5-89FC-D9F4132D9ECE}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tizen.NUI.Wearable", "..\..\src\Tizen.NUI.Wearable\Tizen.NUI.Wearable.csproj", "{A2B607F9-5B9B-43AC-A8CA-E0FDF2A6694E}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tizen.System.Feedback", "..\..\src\Tizen.System.Feedback\Tizen.System.Feedback.csproj", "{D422D03E-7E32-4230-8306-B16DFE27E95A}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tizen.Multimedia.Camera", "..\..\src\Tizen.Multimedia.Camera\Tizen.Multimedia.Camera.csproj", "{210C3F38-BD17-4583-816D-550C319FC6CF}" diff --git a/test/Tizen.NUI.Samples/Tizen.NUI.Samples.sln b/test/Tizen.NUI.Samples/Tizen.NUI.Samples.sln index bd1853c122f..e6337ca5980 100755 --- a/test/Tizen.NUI.Samples/Tizen.NUI.Samples.sln +++ b/test/Tizen.NUI.Samples/Tizen.NUI.Samples.sln @@ -25,8 +25,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tizen.Multimedia", "..\..\s EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tizen.System.Information", "..\..\src\Tizen.System.Information\Tizen.System.Information.csproj", "{02BEE3AD-99A6-44A5-89FC-D9F4132D9ECE}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tizen.NUI.Wearable", "..\..\src\Tizen.NUI.Wearable\Tizen.NUI.Wearable.csproj", "{A2B607F9-5B9B-43AC-A8CA-E0FDF2A6694E}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tizen.System.Feedback", "..\..\src\Tizen.System.Feedback\Tizen.System.Feedback.csproj", "{D422D03E-7E32-4230-8306-B16DFE27E95A}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tizen.Multimedia.Camera", "..\..\src\Tizen.Multimedia.Camera\Tizen.Multimedia.Camera.csproj", "{210C3F38-BD17-4583-816D-550C319FC6CF}" diff --git a/test/Tizen.NUI.Samples/Tizen.NUI.Samples/Samples/CircularPaginationSample.cs b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/Samples/CircularPaginationSample.cs deleted file mode 100755 index ba047787313..00000000000 --- a/test/Tizen.NUI.Samples/Tizen.NUI.Samples/Samples/CircularPaginationSample.cs +++ /dev/null @@ -1,121 +0,0 @@ -//using Tizen.NUI.Components; -using Tizen.NUI.BaseComponents; -using Tizen.NUI.Wearable; - -namespace Tizen.NUI.Samples -{ - public class CircularPaginationSample : IExample - { - private CircularPagination circular; - private CircularPagination homeCircular; - - public void Activate() - { - Window window = NUIApplication.GetDefaultWindow(); - - /////////////////////////////////////////////////////////////////////////////////////////////////////////////// - /////////////////////////////////////// Symmetrical Circular Pagination /////////////////////////////////////// - /////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - circular = new CircularPagination(); - circular.Position2D = new Position2D(50, 20); - circular.Size2D = new Size2D(360, 360); - circular.BackgroundColor = new Color(0.2f, 0.2f, 0.2f, 0.6f); - circular.IndicatorSize = new Size(26, 26); - circular.IndicatorImageURL = new Selector() - { - Normal = CommonResource.GetFHResourcePath() + "9. Controller/pagination_ic_nor.png", - Selected = CommonResource.GetFHResourcePath() + "9. Controller/pagination_ic_sel.png", - }; - - circular.IndicatorCount = 19; - - //circular.SelectedIndex = 0; - - window.Add(circular); - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////// - /////////////////////////////////////// Asymmetrical Circular Pagination /////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - homeCircular = new CircularPagination(); - homeCircular.Position2D = new Position2D(50, 410); - homeCircular.Size2D = new Size2D(360, 360); - homeCircular.BackgroundColor = new Color(0.7f, 0.7f, 0.7f, 0.6f); - - homeCircular.IndicatorSize = new Size(26, 26); - homeCircular.IndicatorImageURL = new Selector() - { - Normal = CommonResource.GetFHResourcePath() + "9. Controller/pagination_ic_nor.png", - Selected = CommonResource.GetFHResourcePath() + "9. Controller/pagination_ic_sel.png", - }; - - // If you want to set the center indicator image differently from other indicators, - // Use CenterIndicatorImageURL like below. (for example, home indicator clock picker) - homeCircular.CenterIndicatorImageURL = new Selector() - { - Normal = CommonResource.GetFHResourcePath() + "9. Controller/controller_btn_slide_handler_press.png", - Selected = CommonResource.GetFHResourcePath() + "9. Controller/controller_btn_radio_on.png", - }; - - homeCircular.IsSymmetrical = false; - homeCircular.RightIndicatorCount = 5; - homeCircular.LeftIndicatorCount = 2; - - //homeCircular.SetIndicatorPosition(0, new Position(111, 11)); - //homeCircular.SetIndicatorPosition(2, new Position(222, 73)); - - //homeCircular.SelectedIndex = 0; - - window.Add(homeCircular); - - window.KeyEvent += Window_KeyEvent; - } - - private void Window_KeyEvent(object sender, Window.KeyEventArgs e) - { - if (e.Key.State == Key.StateType.Down) - { - if (e.Key.KeyPressedName == "Left") - { - if (circular.SelectedIndex > 0) - { - circular.SelectedIndex = circular.SelectedIndex - 1; - } - if (homeCircular.SelectedIndex > 0) - { - homeCircular.SelectedIndex = homeCircular.SelectedIndex - 1; - } - - /*for(int i = 0; i < 7; i++) - { - Position pos = homeCircular.GetIndicatorPosition(i); - Tizen.Log.Error("NUI", "home circular index : "+i+", pos x :"+pos.X+", y :"+pos.Y+"\n"); - }*/ - } - else if (e.Key.KeyPressedName == "Right") - { - if (circular.SelectedIndex < circular.IndicatorCount - 1) - { - circular.SelectedIndex = circular.SelectedIndex + 1; - } - if (homeCircular.SelectedIndex < homeCircular.IndicatorCount - 1) - { - homeCircular.SelectedIndex = homeCircular.SelectedIndex + 1; - } - } - } - } - - public void Deactivate() - { - Window window = Window.Instance; - window.KeyEvent -= Window_KeyEvent; - window.Remove(circular); - window.Remove(homeCircular); - - circular.Dispose(); - homeCircular.Dispose(); - } - } -} diff --git a/test/Tizen.NUI.Samples/Tizen.NUI.Samples/Samples/TitleSample.cs b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/Samples/TitleSample.cs deleted file mode 100755 index 659db7b5395..00000000000 --- a/test/Tizen.NUI.Samples/Tizen.NUI.Samples/Samples/TitleSample.cs +++ /dev/null @@ -1,51 +0,0 @@ -using Tizen.NUI; -using Tizen.NUI.BaseComponents; -using Tizen.NUI.Components; -using Tizen.NUI.Wearable; - -namespace Tizen.NUI.Samples -{ - public class TitleSample : IExample - { - private Title title; - private View root; - - public void Activate() - { - Window window = NUIApplication.GetDefaultWindow(); - - TextLabelStyle attr = new TextLabelStyle - { - Size = new Size(300, 39), - BackgroundColor = Color.Black, - TextColor = Color.White, - }; - - /** - * The title inherits textlabel. - * Refer to textlabel. - */ - title = new Title(attr); - title.Text = "The title can has a fadeOut effect."; - - - /** - * The title has a fadeout effect. - * The default width is 32. You can change the value through FadeOutWidth. - * ex) title.FadeOutWidth = 10; - * The default color is BackgroundColor. You can change the color value through FadeOutColor. - * ex) title.FadeOutColor = Color.Red; - */ - window.Add(title); - } - - public void Deactivate() - { - if (root != null) - { - NUIApplication.GetDefaultWindow().Remove(root); - root.Dispose(); - } - } - } -} \ No newline at end of file diff --git a/test/Tizen.NUI.Samples/Tizen.NUI.Samples/Samples/WearablePopupTest.cs b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/Samples/WearablePopupTest.cs deleted file mode 100755 index b930415a2a2..00000000000 --- a/test/Tizen.NUI.Samples/Tizen.NUI.Samples/Samples/WearablePopupTest.cs +++ /dev/null @@ -1,142 +0,0 @@ - -using global::System; -using Tizen.NUI.BaseComponents; -using Tizen.NUI.Components; - -namespace Tizen.NUI.Samples -{ - using L = Tizen.Log; - using W = Tizen.NUI.Wearable; - - public class WearablePopupTest : IExample - { - private W.Popup myPopup1; - private Window myWindow; - const string tag = "NUITEST"; - private string resourcePath; - private const int BUTTON_WIDTH = 73; - private const int BUTTON_HEIGHT = 121; - private Color BUTTON_COLOR = new Color(11.0f / 255.0f, 6.0f / 255.0f, 92.0f / 255.0f, 1); - private const int BUTTON_ICON_WIDTH = 50; - private const int BUTTON_ICON_HEIGHT = 50; - - private TextLabel myContent1; - private TextLabel t1; - public void Activate() - { - resourcePath = Tizen.Applications.Application.Current.DirectoryInfo.Resource; - myWindow = NUIApplication.GetDefaultWindow(); - - //two buttons popup, type1 - ButtonStyle buttonStyle = new ButtonStyle() - { - Icon = new ImageViewStyle() - { - ResourceUrl = new Selector() - { - All = resourcePath + "images/PopupTest/tw_ic_popup_btn_bg.png", - }, - Size = new Size(BUTTON_WIDTH, BUTTON_HEIGHT), - Color = new Selector() - { - All = BUTTON_COLOR, - }, - }, - Overlay = new ImageViewStyle() - { - ResourceUrl = new Selector() - { - All = resourcePath + "images/PopupTest/tw_ic_popup_btn_check.png", - }, - Size = new Size(BUTTON_ICON_WIDTH, BUTTON_ICON_HEIGHT), - Color = new Selector() - { - All = Color.Cyan, - }, - }, - }; - Button leftButton = new Button(buttonStyle) - { - Name = "LeftButton", - Size = new Size(BUTTON_WIDTH, BUTTON_HEIGHT), - }; - - myPopup1 = new W.Popup(); - myPopup1.AppendButton("LeftButton", leftButton); - - buttonStyle.Overlay.ResourceUrl = new Selector() - { - All = resourcePath + "images/PopupTest/tw_ic_popup_btn_delete.png", - }; - Button rightButton = new Button(buttonStyle) - { - Name = "RightButton", - Size = new Size(BUTTON_WIDTH, BUTTON_HEIGHT), - }; - myPopup1.AppendButton("RightButton", rightButton); - - TextLabel t = myPopup1.GetTitle(); - t.Text = "User consent"; - - myContent1 = new TextLabel(); - myContent1.Text = "Agree? \n GPS location \n and use of your \n location data \n are controlled \n by the applications you \n \n \n this is additional text!"; - myContent1.MultiLine = true; - myContent1.Size = new Size(200, 800); - myContent1.PointSize = 6; - myContent1.HorizontalAlignment = HorizontalAlignment.Center; - myContent1.VerticalAlignment = VerticalAlignment.Top; - myContent1.TextColor = Color.White; - myContent1.PositionUsesPivotPoint = true; - myContent1.ParentOrigin = ParentOrigin.Center; - myContent1.PivotPoint = PivotPoint.Center; - myPopup1.AppendContent("ContentText", myContent1); - leftButton.Clicked += LeftButton_Clicked; - rightButton.Clicked += RightButton_Clicked; - myPopup1.OutsideClicked += Mp_OutsideClicked; - - myPopup1.ContentContainer.WidthResizePolicy = ResizePolicyType.FitToChildren; - myPopup1.ContentContainer.HeightResizePolicy = ResizePolicyType.FitToChildren; - - myPopup1.Post(myWindow); - myPopup1.AfterDissmising += MyPopup1_AfterDissmising; - } - - private void MyPopup1_AfterDissmising(object sender, EventArgs e) - { - t1 = new TextLabel("please go back to main menu!") - { - PositionUsesPivotPoint = true, - ParentOrigin = ParentOrigin.Center, - PivotPoint = PivotPoint.Center, - PointSize = 8, - MultiLine = true, - }; - NUIApplication.GetDefaultWindow().Add(t1); - } - - private void RightButton_Clicked(object sender, ClickedEventArgs e) - { - myPopup1.Dismiss(); - } - - private void LeftButton_Clicked(object sender, ClickedEventArgs e) - { - myContent1.TextColor = Color.Yellow; - } - - private void Mp_OutsideClicked(object sender, EventArgs e) - { - var popup = sender as W.Popup; - if (popup != null) - { - myPopup1.Dismiss(); - } - } - - public void Deactivate() - { - t1.Unparent(); - t1.Dispose(); - } - } -} diff --git a/test/Tizen.NUI.Samples/Tizen.NUI.Samples/Tizen.NUI.Samples.csproj b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/Tizen.NUI.Samples.csproj index 4580151ac5d..bea85c78d4e 100755 --- a/test/Tizen.NUI.Samples/Tizen.NUI.Samples/Tizen.NUI.Samples.csproj +++ b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/Tizen.NUI.Samples.csproj @@ -37,7 +37,6 @@ -