[NUI] Theme change do not overwrite user set properties. (#2731)
[platform/core/csapi/tizenfx.git] / src / Tizen.NUI.Components / Theme / DefaultThemeCommon.cs
1 /*
2  * Copyright(c) 2021 Samsung Electronics Co., Ltd.
3  *
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
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
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.
15  *
16  */
17 #if !PROFILE_WEARABLE
18
19 using System.Diagnostics.CodeAnalysis;
20 using Tizen.NUI.BaseComponents;
21
22 namespace Tizen.NUI.Components
23 {
24     // It is a C# version of res/Tizen.NUI.Components_Tizen.NUI.Theme.Common.xaml
25     internal partial class DefaultThemeCreator : IThemeCreator
26     {
27         [SuppressMessage("Microsoft.Reliability", "CA2000: Dispose objects before losing scope", Justification = "The responsibility to dispose the object is transferred to the theme object.")]
28         public Theme Create()
29         {
30             var theme = new Theme()
31             {
32                 Id = Tizen.NUI.DefaultThemeCreator.DefaultId,
33                 Version = Tizen.NUI.DefaultThemeCreator.DefaultVersion
34             };
35
36             theme.AddStyleWithoutClone("Tizen.NUI.Components.Button", new ButtonStyle()
37             {
38                 Size = new Size(339, 96),
39                 CornerRadiusPolicy = VisualTransformPolicyType.Relative,
40                 CornerRadius = 0.2916f,
41                 BackgroundColor = new Selector<Color>()
42                 {
43                     Normal = new Color(0.039f, 0.055f, 0.29f, 1),
44                     Focused = new Color(0, 0.2f, 0.545f, 1),
45                     Pressed = new Color(0.106f, 0.412f, 0.792f, 1),
46                     Disabled = new Color(0.765f, 0.792f, 0.824f, 1),
47                 },
48                 Text = new TextLabelStyle()
49                 {
50                     PixelSize = 32,
51                     TextColor = Color.White,
52                 }
53             });
54
55             theme.AddStyleWithoutClone("Tizen.NUI.Components.CheckBox", new ButtonStyle()
56             {
57                 Size = new Size(30, 30),
58                 Icon = new ImageViewStyle()
59                 {
60                     Opacity = new Selector<float?>()
61                     {
62                         Normal = 1.0f,
63                         Disabled = 0.4f,
64                         Selected = 1.0f,
65                     },
66                     BackgroundImage = new Selector<string>()
67                     {
68                         Pressed = FrameworkInformation.ResourcePath + "nui_component_default_checkbox_bg_p.png",
69                         Selected = FrameworkInformation.ResourcePath + "nui_component_default_checkbox_bg_p.png",
70                         Other = FrameworkInformation.ResourcePath + "nui_component_default_checkbox_bg_n.png",
71                     },
72                     ResourceUrl = new Selector<string>()
73                     {
74                         Pressed = "",
75                         Selected = FrameworkInformation.ResourcePath + "nui_component_default_checkbox_s.png",
76                         Other = "",
77                     },
78                 },
79                 Text = new TextLabelStyle()
80                 {
81                     PointSize = 12,
82                     TextColor = new Selector<Color>()
83                     {
84                         Normal = new Color(0.22f, 0.22f, 0.22f, 1),
85                         Pressed = new Color(0.11f, 0.11f, 0.11f, 1),
86                         Disabled = new Color(0.66f, 0.66f, 0.66f, 1),
87                     }
88                 }
89             });
90
91             theme.AddStyleWithoutClone("Tizen.NUI.Components.Popup", new PopupStyle()
92             {
93                 Size = new Size(500, 280),
94                 BackgroundColor = new Color(0.9f, 0.9f, 0.9f, 1),
95                 ImageShadow = new ImageShadow()
96                 {
97                     Url = FrameworkInformation.ResourcePath + "nui_component_default_popup_shadow.png",
98                     Border = new Rectangle(24, 24, 24, 24),
99                     Extents = new Vector2(48, 48)
100                 },
101                 Title = new TextLabelStyle()
102                 {
103                     PointSize = 16,
104                     Padding = new Extents(20, 20, 20, 20),
105                 },
106                 Buttons = new ButtonStyle()
107                 {
108                     Size = new Size(0, 80),
109                     BackgroundColor = new Selector<Color>()
110                     {
111                         Normal = new Color(1, 1, 1, 1),
112                         Pressed = new Color(1, 1, 1, 0.5f),
113                     },
114                     Overlay = new ImageViewStyle()
115                     {
116                         BackgroundColor = new Selector<Color>()
117                         {
118                             Normal = new Color(1, 1, 1, 1),
119                             Pressed = new Color(0, 0, 0, 0.1f),
120                             Other = new Color(1, 1, 1, 1),
121                         },
122                     },
123                     Text = new TextLabelStyle()
124                     {
125                         TextColor = new Color(0.05f, 0.63f, 0.9f, 1),
126                     }
127                 }
128             });
129
130             theme.AddStyleWithoutClone("Tizen.NUI.Components.Progress", new ProgressStyle()
131             {
132                 Size = new Size(200, 5),
133                 Track = new ImageViewStyle()
134                 {
135                     BackgroundColor = new Color(0, 0, 0, 0.1f),
136                 },
137                 Buffer = new ImageViewStyle()
138                 {
139                     BackgroundColor = new Color(0.05f, 0.63f, 0.9f, 0.3f),
140                 },
141                 Progress = new ImageViewStyle()
142                 {
143                     BackgroundColor = new Color(0.05f, 0.63f, 0.9f, 1),
144                 },
145             });
146
147             theme.AddStyleWithoutClone("Tizen.NUI.Components.RadioButton", new ButtonStyle()
148             {
149                 Size = new Size(30, 30),
150                 Icon = new ImageViewStyle()
151                 {
152                     Opacity = new Selector<float?>()
153                     {
154                         Normal = 1.0f,
155                         Disabled = 0.4f,
156                         Selected = 1.0f,
157                     },
158                     BackgroundImage = new Selector<string>()
159                     {
160                         Pressed = FrameworkInformation.ResourcePath + "nui_component_default_radiobutton_p.png",
161                         Selected = FrameworkInformation.ResourcePath + "nui_component_default_radiobutton_s.png",
162                         Other = FrameworkInformation.ResourcePath + "nui_component_default_radiobutton_n.png",
163                     }
164                 },
165                 Text = new TextLabelStyle()
166                 {
167                     PointSize = 12,
168                     TextColor = new Selector<Color>()
169                     {
170                         Normal = new Color(0.22f, 0.22f, 0.22f, 1),
171                         Pressed = new Color(0.11f, 0.11f, 0.11f, 1),
172                         Disabled = new Color(0.66f, 0.66f, 0.66f, 1),
173                     }
174                 }
175             });
176
177             theme.AddStyleWithoutClone("Tizen.NUI.Components.Slider", new SliderStyle()
178             {
179                 Size = new Size(200, 50),
180                 TrackThickness = 5,
181                 Track = new ImageViewStyle()
182                 {
183                     BackgroundColor = new Color(0, 0, 0, 0.1f),
184                 },
185                 Progress = new ImageViewStyle()
186                 {
187                     BackgroundColor = new Color(0.5f, 0.63f, 0.9f, 1),
188                 },
189                 Thumb = new ImageViewStyle()
190                 {
191                     Size = new Size(50, 50),
192                     ResourceUrl = FrameworkInformation.ResourcePath + "nui_component_default_slider_thumb_n.png",
193                     BackgroundImage = new Selector<string>()
194                     {
195                         Normal = FrameworkInformation.ResourcePath + "nui_component_default_slider_thumb_bg_p.png",
196                         Pressed = FrameworkInformation.ResourcePath + "nui_component_default_slider_thumb_bg_p.png",
197                     }
198                 },
199                 ValueIndicatorImage = new ImageViewStyle()
200                 {
201                     Size = new Size(83, 54),
202                     ResourceUrl = FrameworkInformation.ResourcePath + "nui_component_default_slider_value_indicator.png",
203                 },
204             });
205
206             theme.AddStyleWithoutClone("Tizen.NUI.Components.Switch", new SwitchStyle()
207             {
208                 Size = new Size(96, 60),
209                 Track = new ImageViewStyle()
210                 {
211                     Size = new Size(96, 60),
212                     ResourceUrl = new Selector<string>()
213                     {
214                         Normal = FrameworkInformation.ResourcePath + "nui_component_default_switch_track_n.png",
215                         Selected = FrameworkInformation.ResourcePath + "nui_component_default_switch_track_s.png",
216                         Disabled = FrameworkInformation.ResourcePath + "nui_component_default_switch_track_d.png",
217                         DisabledSelected = FrameworkInformation.ResourcePath + "nui_component_default_switch_track_ds.png",
218                     }
219                 },
220                 Thumb = new ImageViewStyle()
221                 {
222                     Size = new Size(60, 60),
223                     ResourceUrl = new Selector<string>()
224                     {
225                         Normal = FrameworkInformation.ResourcePath + "nui_component_default_switch_thumb_n.png",
226                         Disabled = FrameworkInformation.ResourcePath + "nui_component_default_switch_thumb_d.png",
227                         Selected = FrameworkInformation.ResourcePath + "nui_component_default_switch_thumb_n.png",
228                     }
229                 },
230                 Text = new TextLabelStyle()
231                 {
232                     PointSize = 12,
233                     TextColor = new Selector<Color>()
234                     {
235                         Normal = new Color(0.22f, 0.22f, 0.22f, 1),
236                         Pressed = new Color(0.11f, 0.11f, 0.11f, 1),
237                         Disabled = new Color(0.66f, 0.66f, 0.66f, 1),
238                     }
239                 }
240             });
241
242             theme.AddStyleWithoutClone("Tizen.NUI.Components.Loading", new LoadingStyle()
243             {
244                 LoadingSize = new Size(100, 100),
245             });
246
247             theme.AddStyleWithoutClone("Tizen.NUI.Components.Pagination", new PaginationStyle()
248             {
249                 IndicatorImageUrl = new Selector<string>()
250                 {
251                     Normal = FrameworkInformation.ResourcePath + "nui_component_default_pagination_normal_dot.png",
252                     Selected = FrameworkInformation.ResourcePath + "nui_component_default_pagination_focus_dot.png",
253                 },
254                 IndicatorSize = new Size(10, 10),
255                 IndicatorSpacing = 10,
256             });
257
258             theme.AddStyleWithoutClone("Tizen.NUI.Components.Scrollbar", new ScrollbarStyle()
259             {
260                 TrackThickness = 6,
261                 ThumbThickness = 6,
262                 TrackColor = new Color(1, 1, 1, 0.15f),
263                 ThumbColor = new Color(0.6f, 0.6f, 0.6f, 1.0f),
264                 TrackPadding = 4
265             });
266
267             theme.AddStyleWithoutClone("Tizen.NUI.Components.RecyclerViewItem", new RecyclerViewItemStyle()
268             {
269                 BackgroundColor = new Selector<Color>()
270                 {
271                     Normal = new Color(1, 1, 1, 1),
272                     Pressed = new Color(0.85f, 0.85f, 0.85f, 1),
273                     Disabled = new Color(0.70f, 0.70f, 0.70f, 1),
274                     Selected = new Color(0.701f, 0.898f, 0.937f, 1),
275                 },
276             });
277
278             theme.AddStyleWithoutClone("Tizen.NUI.Components.DefaultLinearItem", new DefaultLinearItemStyle()
279             {
280                 SizeHeight = 130,
281                 Padding = new Extents(20, 20, 5, 5),
282                 BackgroundColor = new Selector<Color>()
283                 {
284                     Normal = new Color(1, 1, 1, 1),
285                     Pressed = new Color(0.85f, 0.85f, 0.85f, 1),
286                     Disabled = new Color(0.70f, 0.70f, 0.70f, 1),
287                     Selected = new Color(0.701f, 0.898f, 0.937f, 1),
288                 },
289                 Label = new TextLabelStyle()
290                 {
291                     PointSize = 10,
292                     Ellipsis = true,
293                 },
294                 SubLabel = new TextLabelStyle()
295                 {
296                     PointSize = 6,
297                     Ellipsis = true,
298                 },
299                 Icon = new ViewStyle()
300                 {
301                     Margin = new Extents(0, 20, 0, 0)
302                 },
303                 Extra = new ViewStyle()
304                 {
305                     Margin = new Extents(20, 0, 0, 0)
306                 },
307                 Seperator = new ViewStyle()
308                 {
309                     Margin = new Extents(5, 5, 0, 0),
310                     BackgroundColor = new Color(0.78f, 0.78f, 0.78f, 1),
311                 },
312             });
313             theme.AddStyleWithoutClone("Tizen.NUI.Components.DefaultGridItem", new DefaultGridItemStyle()
314             {
315                 Padding = new Extents(5, 5, 5, 5),
316                 Caption = new TextLabelStyle()
317                 {
318                     PointSize = 9,
319                     Ellipsis = true,
320                 },
321                 Badge = new ViewStyle()
322                 {
323                     Margin = new Extents(5, 5, 5, 5),
324                 },
325             });
326
327             theme.AddStyleWithoutClone("Tizen.NUI.Components.DefaultTitleItem", new DefaultTitleItemStyle()
328             {
329                 SizeHeight = 90,
330                 Padding = new Extents(10, 10, 5, 5),
331                 BackgroundColor = new Selector<Color>()
332                 {
333                     Normal = new Color(0.78f, 0.78f, 0.78f, 1),
334                 },
335                 Label = new TextLabelStyle()
336                 {
337                     PointSize = 10,
338                     Ellipsis = true,
339                 },
340                 Icon = new ViewStyle()
341                 {
342                     Margin = new Extents(10, 0, 0, 0)
343                 },
344                 Seperator = new ViewStyle()
345                 {
346                     Margin = new Extents(0, 0, 0, 0),
347                     BackgroundColor = new Color(0.85f, 0.85f, 0.85f, 1),
348                 },
349             });
350
351             theme.AddStyleWithoutClone("Tizen.NUI.Components.AppBar", new AppBarStyle()
352             {
353                 Size = new Size(-1, 120),
354                 BackgroundColor = new Color("#EEEFF1FF"),
355                 BackButton = new ButtonStyle()
356                 {
357                     Size = new Size(48, 48),
358                     CornerRadius = 0,
359                     BackgroundColor = new Color(0, 0, 0, 0),
360                     Icon = new ImageViewStyle()
361                     {
362                         Size = new Size(48, 48),
363                         ResourceUrl = FrameworkInformation.ResourcePath + "nui_component_default_back_button.png",
364                         Color = new Selector<Color>()
365                         {
366                             Normal = new Color("#0A0E4AFF"),
367                             Focused = new Color("#00338BFF"),
368                             Pressed = new Color("#1B69CAFF"),
369                             Disabled = new Color("#C3CAD2FF"),
370                         },
371                     },
372                 },
373                 TitleTextLabel = new TextLabelStyle()
374                 {
375                     PixelSize = 40,
376                     VerticalAlignment = VerticalAlignment.Center,
377                     TextColor = new Selector<Color>()
378                     {
379                         Normal = new Color("#000C2BFF"),
380                     }
381                 },
382                 ActionView = new ViewStyle()
383                 {
384                     Size = new Size(-1, 48),
385                     CornerRadius = 0,
386                     BackgroundColor = new Color(0, 0, 0, 0),
387                 },
388                 ActionButton = new ButtonStyle()
389                 {
390                     Size = new Size(-1, 48),
391                     CornerRadius = 0,
392                     BackgroundColor = new Color(0, 0, 0, 0),
393                     Text = new TextLabelStyle()
394                     {
395                         PixelSize = 26,
396                         TextColor = new Selector<Color>()
397                         {
398                             Normal = new Color("#0A0E4AFF"),
399                             Focused = new Color("#00338BFF"),
400                             Pressed = new Color("#1B69CAFF"),
401                             Disabled = new Color("#C3CAD2FF"),
402                         },
403                     },
404                     Icon = new ImageViewStyle()
405                     {
406                         Size = new Size(-1, 48),
407                         Color = new Selector<Color>()
408                         {
409                             Normal = new Color("#0A0E4AFF"),
410                             Focused = new Color("#00338BFF"),
411                             Pressed = new Color("#1B69CAFF"),
412                             Disabled = new Color("#C3CAD2FF"),
413                         },
414                     },
415                 },
416                 Padding = new Extents(64, 64, 0, 0),
417                 NavigationPadding = new Extents(0, 24, 0, 0),
418                 ActionPadding = new Extents(40, 0, 0, 0),
419                 ActionCellPadding = new Size2D(40, 0),
420             });
421
422             return theme;
423         }
424     }
425 }
426
427 #endif