• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2021-2023 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #ifndef FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_TAB_BAR_TAB_THEME_H
17 #define FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_TAB_BAR_TAB_THEME_H
18 
19 #include "base/geometry/dimension.h"
20 #include "core/components/common/properties/text_style.h"
21 #include "core/components/theme/theme.h"
22 #include "core/components/theme/theme_constants.h"
23 #include "core/components/theme/theme_constants_defines.h"
24 
25 namespace OHOS::Ace {
26 
27 /**
28  * TabTheme defines color and styles of tab. TabTheme should be built
29  * using TabTheme::Builder.
30  */
31 namespace {
32 constexpr double THIRDFONT_DEFAULT_VALUE = 1.45;
33 constexpr double BIGFONT_DEFAULT_VALUE = 1.75;
34 constexpr double LARGEFONT_DEFAULT_VALUE = 2.0;
35 constexpr double MAXFONT_DEFAULT_VALUE = 3.2;
36 constexpr double ANIMATION_DURATION_DEFAULT = 300.0;
37 } // namespace
38 class TabTheme : public virtual Theme {
39     DECLARE_ACE_TYPE(TabTheme, Theme);
40 
41 public:
42     class Builder {
43     public:
44         Builder() = default;
45         ~Builder() = default;
46 
47         static constexpr Dimension BOTTOM_BAR_HORIZONTAL_TEXT_SIZE = 12.0_vp;
48 
Build(const RefPtr<ThemeConstants> & themeConstants)49         RefPtr<TabTheme> Build(const RefPtr<ThemeConstants>& themeConstants) const
50         {
51             RefPtr<TabTheme> theme = AceType::MakeRefPtr<TabTheme>();
52             if (!themeConstants) {
53                 return theme;
54             }
55             RefPtr<ThemeStyle> pattern = themeConstants->GetPatternByName(THEME_PATTERN_TAB);
56             if (pattern) {
57                 theme->backgroundColor_ = pattern->GetAttr<Color>(PATTERN_BG_COLOR, Color::WHITE);
58                 theme->activeIndicatorColor_ = pattern->GetAttr<Color>("active_indicator_color", Color::WHITE);
59                 theme->focusIndicatorColor_ = pattern->GetAttr<Color>("focus_indicator_color", Color::WHITE);
60                 theme->focusIndicatorRadius_ = pattern->GetAttr<Dimension>("focus_indicator_radius", 0.0_vp);
61                 theme->subTabIndicatorHeight_ = pattern->GetAttr<Dimension>("subtab_indicator_height", 0.0_vp);
62                 theme->subTabTextOnColor_ = pattern->GetAttr<Color>("subtab_text_on_color", Color::WHITE);
63                 theme->subTabTextOffColor_ = pattern->GetAttr<Color>("subtab_text_off_color", Color::WHITE);
64                 theme->subTabBoardTextOnColor_ = pattern->GetAttr<Color>("subtab_board_text_on_color", Color::WHITE);
65                 theme->subTabIndicatorGap_ = pattern->GetAttr<Dimension>("subtab_indicator_gap", 0.0_vp);
66                 theme->subTabHorizontalPadding_ = pattern->GetAttr<Dimension>("subtab_horizontal_padding", 0.0_vp);
67                 theme->subTabTopPadding_ = pattern->GetAttr<Dimension>("subtab_top_padding", 0.0_vp);
68                 theme->subTabBottomPadding_ = pattern->GetAttr<Dimension>("subtab_bottom_padding", 0.0_vp);
69                 theme->subTabItemPadding_ = pattern->GetAttr<Dimension>("subtab_item_padding", 0.0_vp);
70                 theme->subTabBarHoverColor_ = pattern->GetAttr<Color>("subtab_hover_color", Color::WHITE);
71                 theme->subTabBarPressedColor_ = pattern->GetAttr<Color>("subtab_press_color", Color::WHITE);
72                 theme->subtabTextDefaultFontSize_ =
73                     pattern->GetAttr<Dimension>("subtab_text_default_font_size", 0.0_vp);
74                 theme->subtabLandscapeHorizontalPadding_ =
75                     pattern->GetAttr<Dimension>("subtab_landscape_horizontal_padding", 0.0_vp);
76                 theme->bottomTabHorizontalPadding_ =
77                     pattern->GetAttr<Dimension>("bottom_tab_horizontal_padding", 0.0_vp);
78                 theme->bottomTabTextOn_ = pattern->GetAttr<Color>("bottom_tab_text_on", Color::WHITE);
79                 theme->bottomTabTextOff_ = pattern->GetAttr<Color>("bottom_tab_text_off", Color::WHITE);
80                 theme->bottomTabIconOn_ = pattern->GetAttr<Color>("bottom_tab_icon", Color::WHITE);
81                 theme->bottomTabIconOff_ = pattern->GetAttr<Color>("bottom_tab_icon_off", Color::WHITE);
82                 theme->bottomTabSymbolOn_ = pattern->GetAttr<Color>("bottom_tab_symbol", Color(0xFF007DFF));
83                 theme->bottomTabSymbolOff_ = pattern->GetAttr<Color>("bottom_tab_symbol_off", Color(0x66182431));
84                 theme->bottomTabImageSize_ = pattern->GetAttr<Dimension>("bottom_tab_image_size", 0.0_vp);
85                 theme->bottomTabTextSize_ = pattern->GetAttr<Dimension>("bottom_tab_text_size", 0.0_vp);
86                 theme->bottomTabHorizontalTextSize_ =
87                     pattern->GetAttr<Dimension>("bottom_tab_horizontal_text_size", BOTTOM_BAR_HORIZONTAL_TEXT_SIZE);
88                 theme->bottomTabBackgroundBlurStyle_ = pattern->GetAttr<int>("bottom_tab_bar_bg_blur_style", 0);
89                 theme->defaultTabBarName_ = pattern->GetAttr<std::string>("default_tab_bar_name", "");
90                 theme->bottomTabBarSpace_ = pattern->GetAttr<Dimension>("bottom_tab_bar_space", 0.0_vp);
91                 theme->horizontalBottomTabBarSpace_ =
92                     pattern->GetAttr<Dimension>("horizontal_bottom_tab_bar_space", 0.0_vp);
93                 theme->subTabBarHoverDuration_ = pattern->GetAttr<double>("sub_tab_bar_hover_duration", 0.0);
94                 theme->subTabBarBigFontSizeScale_ =
95                     pattern->GetAttr<double>("sub_tab_bar_big_font_size_scale", BIGFONT_DEFAULT_VALUE);
96                 theme->subTabBarLargeFontSizeScale_ =
97                     pattern->GetAttr<double>("sub_tab_bar_large_font_size_scale", LARGEFONT_DEFAULT_VALUE);
98                 theme->subTabBarMaxFontSizeScale_ =
99                     pattern->GetAttr<double>("sub_tab_bar_max_font_size_scale", MAXFONT_DEFAULT_VALUE);
100                 theme->subTabBarOriginFontSizeScale_ =
101                     pattern->GetAttr<double>("sub_tab_bar_origin_font_size_scale", 1.0);
102                 theme->subTabBarLeftRightMargin_ =
103                     pattern->GetAttr<Dimension>("sub_tab_bar_left_right_margin", 12.0_vp);
104                 theme->subTabBarIndicatorstyleMarginTop_ =
105                     pattern->GetAttr<Dimension>("sub_tab_bar_indicatorstyle_margin_top", 4.0_vp);
106                 theme->subTabBarThirdLargeFontSizeScale_ =
107                     pattern->GetAttr<double>("sub_tab_bar_third_large_font_size_scale", THIRDFONT_DEFAULT_VALUE);
108 
109                 ParseAttribute(theme, pattern);
110             } else {
111                 LOGW("find pattern of tab fail");
112             }
113             return theme;
114         }
115 
116     private:
ParseAttribute(const RefPtr<TabTheme> & theme,const RefPtr<ThemeStyle> & pattern)117         void ParseAttribute(const RefPtr<TabTheme>& theme, const RefPtr<ThemeStyle>& pattern) const
118         {
119             theme->subTabBarHoverToPressDuration_ =
120                 pattern->GetAttr<double>("sub_tab_bar_hover_to_press_duration", 0.0);
121             theme->tabContentAnimationDuration_ =
122                 pattern->GetAttr<double>("tab_content_animation_duration", ANIMATION_DURATION_DEFAULT);
123             theme->tabBarDefaultHeight_ = pattern->GetAttr<Dimension>("tab_bar_default_height", 0.0_vp);
124             theme->bottomTabBarDefaultHeight_ =
125                 pattern->GetAttr<Dimension>("bottom_tab_bar_default_height", 0.0_vp);
126             theme->tabBarDefaultWidth_ = pattern->GetAttr<Dimension>("tab_bar_default_width", 0.0_vp);
127             theme->subTabBarMinWidth_ = pattern->GetAttr<Dimension>("sub_tab_bar_min_width", 0.0_vp);
128             theme->dividerColor_ = pattern->GetAttr<Color>("divider_color", Color::BLACK);
129             theme->tabBarShadowMargin_ = pattern->GetAttr<Dimension>("tab_bar_shadow_margin", 0.0_vp);
130             theme->tabBarGradientWidth_ = pattern->GetAttr<Dimension>("tab_bar_gradient_width", 0.0_vp);
131             theme->colorBottomTabSubBg_ = pattern->GetAttr<Color>("color_bottom_tab_sub_bg", Color::WHITE);
132             theme->colorBottomTabSubBgBlur_ = pattern->GetAttr<Color>("color_bottom_tab_sub_bg_blur", Color::WHITE);
133             theme->tabBarColumnGutter_ = pattern->GetAttr<Dimension>("tab_bar_column_gutter", 0.0_vp);
134             theme->tabBarColumnMargin_ = pattern->GetAttr<Dimension>("tab_bar_column_margin", 0.0_vp);
135             theme->horizontalBottomTabMinWidth_ =
136                 pattern->GetAttr<Dimension>("horizontal_bottom_tab_min_width", 0.0_vp);
137             theme->tabBarDefaultMargin_ = pattern->GetAttr<Dimension>("tab_bar_margin_width", 0.0_vp);
138             theme->tabBarFocusedColor_ = pattern->GetAttr<Color>("tab_bar_focused_color", Color::TRANSPARENT);
139             theme->subTabTextFocusedColor_ =
140                 pattern->GetAttr<Color>("subtab_text_focused_color", theme->subTabTextOffColor_);
141             theme->focusBoardPadding_ = pattern->GetAttr<Dimension>("tab_bar_board_focus_padding", 0.0_vp);
142             theme->subTabItemHorizontalPadding_ = pattern->GetAttr<Dimension>("subtab_item_Horizontal_padding", 0.0_vp);
143             theme->focusPadding_ = pattern->GetAttr<Dimension>("tab_bar_focus_padding", 0.0_vp);
144             theme->isChangeFocusTextStyle_ = static_cast<bool>(pattern->GetAttr<int>("subtab_focused_style", 0));
145             theme->labelPadding_ = pattern->GetAttr<Dimension>("label_padding", 8.0_vp);
146             theme->padding_ = pattern->GetAttr<Dimension>("tab_padding", 16.0_vp);
147             theme->gradientWidth_ = pattern->GetAttr<Dimension>("tab_gradient_width", 24.0_vp);
148             theme->defaultHeight_ = pattern->GetAttr<Dimension>("tab_default_height", 56.0_vp);
149             theme->defaultWidth_ = pattern->GetAttr<Dimension>("tab_default_width", 200.0_px);
150             theme->defaultItemHeight_ = pattern->GetAttr<Dimension>("tab_default_item_height", 200.0_px);
151             theme->activeIndicatorWidth_ = pattern->GetAttr<Dimension>("active_indicator_width", 2.0_vp);
152             theme->activeIndicatorMinWidth_ = pattern->GetAttr<Dimension>("active_indicator_min_width", 32.0_vp);
153             theme->activeIndicatorPadding_ = pattern->GetAttr<Dimension>("active_indicator_padding", 3.0_vp);
154             theme->focusIndicatorHorizontalPadding_ =
155                 pattern->GetAttr<Dimension>("focus_indicator_horizontal_padding", 0.0_vp);
156             theme->focusIndicatorVerticalPadding_ =
157                 pattern->GetAttr<Dimension>("focus_indicator_vertical_padding", 0.0_vp);
158             theme->dialog_radius_level10_ = pattern->GetAttr<Dimension>("dialog_radius_level10", 20.0_vp);
159             theme->dialog_iconColor_ = pattern->GetAttr<Color>("dialog_icon_primary", Color(0xff182431));
160             theme->dialog_fontColor_ = pattern->GetAttr<Color>("dialog_font_primary", Color(0xff182431));
161         }
162     };
163 
164     ~TabTheme() override = default;
165 
GetLabelPadding()166     const Dimension& GetLabelPadding() const
167     {
168         return labelPadding_;
169     }
170 
GetPadding()171     const Dimension& GetPadding() const
172     {
173         return padding_;
174     }
175 
GetGradientWidth()176     const Dimension& GetGradientWidth() const
177     {
178         return gradientWidth_;
179     }
180 
GetDefaultHeight()181     const Dimension& GetDefaultHeight() const
182     {
183         return defaultHeight_;
184     }
185 
GetDefaultWidth()186     const Dimension& GetDefaultWidth() const
187     {
188         return defaultWidth_;
189     }
190 
GetDefaultItemHeight()191     const Dimension& GetDefaultItemHeight() const
192     {
193         return defaultItemHeight_;
194     }
195 
GetBackgroundColor()196     const Color& GetBackgroundColor() const
197     {
198         return backgroundColor_;
199     }
200 
GetActiveIndicatorColor()201     const Color& GetActiveIndicatorColor() const
202     {
203         return activeIndicatorColor_;
204     }
205 
GetActiveIndicatorWidth()206     const Dimension& GetActiveIndicatorWidth() const
207     {
208         return activeIndicatorWidth_;
209     }
210 
GetActiveIndicatorMinWidth()211     const Dimension& GetActiveIndicatorMinWidth() const
212     {
213         return activeIndicatorMinWidth_;
214     }
215 
GetActiveIndicatorPadding()216     const Dimension& GetActiveIndicatorPadding() const
217     {
218         return activeIndicatorPadding_;
219     }
220 
GetFocusIndicatorColor()221     const Color& GetFocusIndicatorColor() const
222     {
223         return focusIndicatorColor_;
224     }
225 
GetFocusIndicatorRadius()226     const Dimension& GetFocusIndicatorRadius() const
227     {
228         return focusIndicatorRadius_;
229     }
230 
GetFocusIndicatorHorizontalPadding()231     const Dimension& GetFocusIndicatorHorizontalPadding() const
232     {
233         return focusIndicatorHorizontalPadding_;
234     }
235 
GetFocusIndicatorVerticalPadding()236     const Dimension& GetFocusIndicatorVerticalPadding() const
237     {
238         return focusIndicatorVerticalPadding_;
239     }
240 
GetSubTabTextOnColor()241     const Color& GetSubTabTextOnColor() const
242     {
243         return subTabTextOnColor_;
244     }
245 
GetSubTabTextOffColor()246     const Color& GetSubTabTextOffColor() const
247     {
248         return subTabTextOffColor_;
249     }
250 
GetSubTabBoardTextOnColor()251     const Color& GetSubTabBoardTextOnColor() const
252     {
253         return subTabBoardTextOnColor_;
254     }
255 
GetSubTabIndicatorHeight()256     const Dimension& GetSubTabIndicatorHeight() const
257     {
258         return subTabIndicatorHeight_;
259     }
260 
GetSubTabIndicatorGap()261     const Dimension& GetSubTabIndicatorGap() const
262     {
263         return subTabIndicatorGap_;
264     }
265 
GetSubTabHorizontalPadding()266     const Dimension& GetSubTabHorizontalPadding() const
267     {
268         return subTabHorizontalPadding_;
269     }
270 
GetSubTabItemPadding()271     const Dimension& GetSubTabItemPadding() const
272     {
273         return subTabItemPadding_;
274     }
275 
GetSubTabTopPadding()276     const Dimension& GetSubTabTopPadding() const
277     {
278         return subTabTopPadding_;
279     }
280 
GetSubTabBottomPadding()281     const Dimension& GetSubTabBottomPadding() const
282     {
283         return subTabBottomPadding_;
284     }
285 
GetSubTabBarHoverColor()286     const Color& GetSubTabBarHoverColor() const
287     {
288         return subTabBarHoverColor_;
289     }
290 
GetSubTabBarPressedColor()291     const Color& GetSubTabBarPressedColor() const
292     {
293         return subTabBarPressedColor_;
294     }
295 
GetSubTabTextDefaultFontSize()296     const Dimension& GetSubTabTextDefaultFontSize() const
297     {
298         return subtabTextDefaultFontSize_;
299     }
300 
GetSubtabLandscapeHorizontalPadding()301     const Dimension& GetSubtabLandscapeHorizontalPadding() const
302     {
303         return subtabLandscapeHorizontalPadding_;
304     }
305 
GetBottomTabHorizontalPadding()306     const Dimension& GetBottomTabHorizontalPadding() const
307     {
308         return bottomTabHorizontalPadding_;
309     }
310 
GetBottomTabTextOn()311     const Color& GetBottomTabTextOn() const
312     {
313         return bottomTabTextOn_;
314     }
315 
GetBottomTabTextOff()316     const Color& GetBottomTabTextOff() const
317     {
318         return bottomTabTextOff_;
319     }
320 
GetBottomTabIconOn()321     const Color& GetBottomTabIconOn() const
322     {
323         return bottomTabIconOn_;
324     }
325 
GetBottomTabIconOff()326     const Color& GetBottomTabIconOff() const
327     {
328         return bottomTabIconOff_;
329     }
330 
GetBottomTabSymbolOn()331     const Color& GetBottomTabSymbolOn() const
332     {
333         return bottomTabSymbolOn_;
334     }
335 
GetBottomTabSymbolOff()336     const Color& GetBottomTabSymbolOff() const
337     {
338         return bottomTabSymbolOff_;
339     }
340 
GetBottomTabImageSize()341     const Dimension& GetBottomTabImageSize() const
342     {
343         return bottomTabImageSize_;
344     }
345 
GetBottomTabTextSize()346     const Dimension& GetBottomTabTextSize() const
347     {
348         return bottomTabTextSize_;
349     }
350 
GetBottomTabHorizontalTextSize()351     const Dimension& GetBottomTabHorizontalTextSize() const
352     {
353         return bottomTabHorizontalTextSize_;
354     }
355 
GetBottomTabBackgroundBlurStyle()356     const int& GetBottomTabBackgroundBlurStyle() const
357     {
358         return bottomTabBackgroundBlurStyle_;
359     }
360 
GetDefaultTabBarName()361     const std::string& GetDefaultTabBarName() const
362     {
363         return defaultTabBarName_;
364     }
365 
GetBottomTabBarSpace()366     const Dimension& GetBottomTabBarSpace() const
367     {
368         return bottomTabBarSpace_;
369     }
370 
GetHorizontalBottomTabBarSpace()371     const Dimension& GetHorizontalBottomTabBarSpace() const
372     {
373         return horizontalBottomTabBarSpace_;
374     }
375 
GetSubTabBarHoverDuration()376     double GetSubTabBarHoverDuration() const
377     {
378         return subTabBarHoverDuration_;
379     }
380 
GetSubTabBarHoverToPressDuration()381     double GetSubTabBarHoverToPressDuration() const
382     {
383         return subTabBarHoverToPressDuration_;
384     }
385 
GetTabContentAnimationDuration()386     double GetTabContentAnimationDuration() const
387     {
388         return tabContentAnimationDuration_;
389     }
390 
GetTabBarDefaultHeight()391     const Dimension& GetTabBarDefaultHeight() const
392     {
393         return tabBarDefaultHeight_;
394     }
395 
GetTabBarDefaultWidth()396     const Dimension& GetTabBarDefaultWidth() const
397     {
398         return tabBarDefaultWidth_;
399     }
400 
GetSubTabBarMinWidth()401     const Dimension& GetSubTabBarMinWidth() const
402     {
403         return subTabBarMinWidth_;
404     }
405 
GetDividerColor()406     const Color& GetDividerColor() const
407     {
408         return dividerColor_;
409     }
410 
GetTabBarShadowMargin()411     const Dimension& GetTabBarShadowMargin() const
412     {
413         return tabBarShadowMargin_;
414     }
415 
GetTabBarGradientWidth()416     const Dimension& GetTabBarGradientWidth() const
417     {
418         return tabBarGradientWidth_;
419     }
420 
GetColorBottomTabSubBg()421     const Color& GetColorBottomTabSubBg() const
422     {
423         return colorBottomTabSubBg_;
424     }
GetColorBottomTabSubBgBlur()425     const Color& GetColorBottomTabSubBgBlur() const
426     {
427         return colorBottomTabSubBgBlur_;
428     }
429 
GetTabBarColumnGutter()430     const Dimension& GetTabBarColumnGutter() const
431     {
432         return tabBarColumnGutter_;
433     }
434 
GetTabBarColumnMargin()435     const Dimension& GetTabBarColumnMargin() const
436     {
437         return tabBarColumnMargin_;
438     }
439 
GetsubTabBarThirdLargeFontSizeScale()440     float GetsubTabBarThirdLargeFontSizeScale() const
441     {
442         return subTabBarThirdLargeFontSizeScale_;
443     }
444 
GetHorizontalBottomTabMinWidth()445     const Dimension& GetHorizontalBottomTabMinWidth() const
446     {
447         return horizontalBottomTabMinWidth_;
448     }
GetBottomTabBarDefaultWidth()449     const Dimension& GetBottomTabBarDefaultWidth() const
450     {
451         return bottomTabBarDefaultHeight_;
452     }
GetDialogRadiusLevel10()453     const Dimension& GetDialogRadiusLevel10() const
454     {
455         return dialog_radius_level10_;
456     }
GetDialogIconColor()457     const Color& GetDialogIconColor() const
458     {
459         return dialog_iconColor_;
460     }
GetDialogFontColor()461     const Color& GetDialogFontColor() const
462     {
463         return dialog_fontColor_;
464     }
GetSubTabBarBigFontSizeScale()465     float GetSubTabBarBigFontSizeScale() const
466     {
467         return subTabBarBigFontSizeScale_;
468     }
GetSubTabBarLargeFontSizeScale()469     float GetSubTabBarLargeFontSizeScale() const
470     {
471         return subTabBarLargeFontSizeScale_;
472     }
GetSubTabBarMaxFontSizeScale()473     float GetSubTabBarMaxFontSizeScale() const
474     {
475         return subTabBarMaxFontSizeScale_;
476     }
GetSubTabBarOriginFontSizeScale()477     float GetSubTabBarOriginFontSizeScale() const
478     {
479         return subTabBarOriginFontSizeScale_;
480     }
GetSubTabBarLeftRightMargin()481     const Dimension& GetSubTabBarLeftRightMargin() const
482     {
483         return subTabBarLeftRightMargin_;
484     }
GetSubTabBarIndicatorstyleMarginTop()485     const Dimension& GetSubTabBarIndicatorstyleMarginTop() const
486     {
487         return subTabBarIndicatorstyleMarginTop_;
488     }
489 
GetSubTabItemHorizontalPadding()490     const Dimension& GetSubTabItemHorizontalPadding() const
491     {
492         return subTabItemHorizontalPadding_;
493     }
494 
GetBoardFocusPadding()495     const Dimension& GetBoardFocusPadding() const
496     {
497         return focusBoardPadding_;
498     }
499 
GetFocusPadding()500     const Dimension& GetFocusPadding() const
501     {
502         return focusPadding_;
503     }
504 
GetTabBarDefaultMargin()505     const Dimension& GetTabBarDefaultMargin() const
506     {
507         return tabBarDefaultMargin_;
508     }
509 
GetTabBarFocusedColor()510     const Color& GetTabBarFocusedColor() const
511     {
512         return tabBarFocusedColor_;
513     }
514 
GetSubTabTextFocusedColor()515     const Color& GetSubTabTextFocusedColor() const
516     {
517         return subTabTextFocusedColor_;
518     }
519 
GetIsChangeFocusTextStyle()520     bool GetIsChangeFocusTextStyle() const
521     {
522         return isChangeFocusTextStyle_;
523     }
524 
525 protected:
526     TabTheme() = default;
527 
528 private:
529     Dimension labelPadding_;
530     Dimension padding_;
531     Dimension gradientWidth_;
532     Dimension defaultHeight_;
533     Dimension defaultWidth_;
534     Dimension defaultItemHeight_;
535     Color backgroundColor_;
536     Color activeIndicatorColor_;
537     Dimension activeIndicatorWidth_;
538     Dimension activeIndicatorMinWidth_;
539     Dimension activeIndicatorPadding_;
540     Color focusIndicatorColor_;
541     Dimension focusIndicatorRadius_;
542     Dimension focusIndicatorHorizontalPadding_;
543     Dimension focusIndicatorVerticalPadding_;
544     Color subTabTextOnColor_;
545     Color subTabTextOffColor_;
546     Color subTabBoardTextOnColor_;
547     Dimension subTabIndicatorHeight_;
548     Dimension subTabIndicatorGap_;
549     Dimension subTabHorizontalPadding_;
550     Dimension subTabTopPadding_;
551     Dimension subTabBottomPadding_;
552     Dimension subTabItemPadding_;
553     Color subTabBarHoverColor_;
554     Color subTabBarPressedColor_;
555     Dimension subtabTextDefaultFontSize_;
556     Dimension subtabLandscapeHorizontalPadding_;
557     Dimension bottomTabHorizontalPadding_;
558     Color bottomTabTextOn_;
559     Color bottomTabTextOff_;
560     Color bottomTabIconOn_;
561     Color bottomTabIconOff_;
562     Color bottomTabSymbolOn_;
563     Color bottomTabSymbolOff_;
564     Dimension bottomTabImageSize_;
565     Dimension bottomTabTextSize_;
566     Dimension bottomTabHorizontalTextSize_;
567     std::string defaultTabBarName_;
568     Dimension bottomTabBarSpace_;
569     Dimension horizontalBottomTabBarSpace_;
570     double subTabBarHoverDuration_;
571     double subTabBarHoverToPressDuration_;
572     double tabContentAnimationDuration_;
573     Dimension tabBarDefaultHeight_;
574     Dimension bottomTabBarDefaultHeight_;
575     Dimension tabBarDefaultWidth_;
576     Dimension subTabBarMinWidth_;
577     Color dividerColor_;
578     Dimension tabBarShadowMargin_;
579     Dimension tabBarGradientWidth_;
580     Color colorBottomTabSubBg_;
581     Color colorBottomTabSubBgBlur_;
582     Dimension tabBarColumnGutter_;
583     Dimension tabBarColumnMargin_;
584     Dimension horizontalBottomTabMinWidth_;
585     Dimension dialog_radius_level10_;
586     Color dialog_iconColor_;
587     Color dialog_fontColor_;
588     int bottomTabBackgroundBlurStyle_;
589     float subTabBarBigFontSizeScale_ = 1.75f;
590     float subTabBarLargeFontSizeScale_ = 2.0f;
591     float subTabBarMaxFontSizeScale_ = 3.2f;
592     float subTabBarOriginFontSizeScale_ = 1.0f;
593     Dimension subTabBarLeftRightMargin_;
594     Dimension subTabBarIndicatorstyleMarginTop_;
595     float subTabBarThirdLargeFontSizeScale_ = 1.45f;
596     Dimension tabBarDefaultMargin_;
597     Dimension focusPadding_;
598     Dimension subTabItemHorizontalPadding_;
599     Dimension focusBoardPadding_;
600     Color tabBarFocusedColor_;
601     Color subTabTextFocusedColor_;
602     bool isChangeFocusTextStyle_;
603 };
604 
605 } // namespace OHOS::Ace
606 
607 #endif // FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_TAB_BAR_TAB_THEME_H
608