2 * Copyright(c) 2019 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;
19 using Tizen.NUI.Binding;
21 namespace Tizen.NUI.Components
24 /// ScrollBarStyle is a class which saves Scrollbar's ux data.
27 /// Please note that this class will be replaced with ScrollbarStyle class in the near future.
29 /// <since_tizen> 8 </since_tizen>
30 public class ScrollBarStyle : ControlStyle
32 static ScrollBarStyle() { }
35 /// Creates a new instance of a ScrollBarStyle.
37 /// <since_tizen> 8 </since_tizen>
38 public ScrollBarStyle() : base()
41 Direction = ScrollBar.DirectionType.Horizontal;
45 /// Creates a new instance of a ScrollBarStyle with style.
47 /// <param name="style">Create ScrollBarStyle by style customized by user.</param>
48 /// <since_tizen> 8 </since_tizen>
49 public ScrollBarStyle(ScrollBarStyle style) : base(style)
51 if (null == style) return;
59 /// Get or set track image style.
61 /// <since_tizen> 8 </since_tizen>
62 public ImageViewStyle Track { get; set; }
65 /// Get or set thumb image style.
67 /// <since_tizen> 8 </since_tizen>
68 public ImageViewStyle Thumb { get; set; }
71 /// Get or set direction type.
73 /// <since_tizen> 8 </since_tizen>
74 public ScrollBar.DirectionType? Direction { get; set; }
77 /// Get or set duration.
79 /// <since_tizen> 8 </since_tizen>
80 public uint Duration { get; set; }
83 /// Style's clone function.
85 /// <param name="bindableObject">The style that need to copy.</param>
86 /// <since_tizen> 8 </since_tizen>
87 public override void CopyFrom(BindableObject bindableObject)
89 base.CopyFrom(bindableObject);
91 ScrollBarStyle scrollBarStyle = bindableObject as ScrollBarStyle;
93 if (null != scrollBarStyle)
95 if (null != scrollBarStyle.Track)
97 Track?.CopyFrom(scrollBarStyle.Track);
100 if (null != scrollBarStyle.Thumb)
102 Thumb?.CopyFrom(scrollBarStyle.Thumb);
105 Direction = scrollBarStyle.Direction;
106 Duration = scrollBarStyle.Duration;
110 private void InitSubStyle()
112 Track = new ImageViewStyle()
114 PositionUsesPivotPoint = true,
115 ParentOrigin = Tizen.NUI.ParentOrigin.CenterLeft,
116 PivotPoint = Tizen.NUI.PivotPoint.CenterLeft,
117 WidthResizePolicy = ResizePolicyType.FillToParent,
118 HeightResizePolicy = ResizePolicyType.FillToParent
121 Thumb = new ImageViewStyle()
123 PositionUsesPivotPoint = true,
124 ParentOrigin = Tizen.NUI.ParentOrigin.CenterLeft,
125 PivotPoint = Tizen.NUI.PivotPoint.CenterLeft,
126 WidthResizePolicy = ResizePolicyType.Fixed,
127 HeightResizePolicy = ResizePolicyType.Fixed