2 * Copyright(c) 2020 Samsung Electronics Co., Ltd.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 using System.ComponentModel;
18 using Tizen.NUI.BaseComponents;
20 namespace Tizen.NUI.Components.Extension
23 /// LottieSwitchExtension is a SwitchExtension class that uses Lottie image for a Switch icon.
25 /// This extension must be used within a class implementing LottieSwitchStyle.
28 [EditorBrowsable(EditorBrowsableState.Never)]
29 public class LottieSwitchExtension : SwitchExtension
32 [EditorBrowsable(EditorBrowsableState.Never)]
33 public override bool ProcessIcon(Button button, ref ImageView icon)
35 if (button.Style is ILottieButtonStyle lottieStyle)
37 var lottieView = LottieExtensionHelper.CreateLottieView(lottieStyle);
38 var parent = icon.GetParent();
52 [EditorBrowsable(EditorBrowsableState.Never)]
53 public override void OnControlStateChanged(Button button, View.ControlStateChangedEventArgs args)
55 if (button.Style is ILottieButtonStyle lottieStyle && button.Icon is LottieAnimationView lottieView)
57 LottieExtensionHelper.UpdateLottieView(lottieView, lottieStyle, args.PreviousState, button.ControlState);