1 /*
2 * Copyright (c) 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 #include "core/common/rosen/rosen_convert_helper.h"
17
18 namespace OHOS::Ace {
GetRosenBlurStyleValue(const BlurStyleOption & option)19 MATERIAL_BLUR_STYLE GetRosenBlurStyleValue(const BlurStyleOption& option)
20 {
21 ThemeColorMode colorMode = option.colorMode;
22 if (option.colorMode == ThemeColorMode::SYSTEM) {
23 colorMode = SystemProperties::GetColorMode() == ColorMode::DARK ? ThemeColorMode::DARK : ThemeColorMode::LIGHT;
24 }
25 const static std::map<std::pair<BlurStyle, ThemeColorMode>, MATERIAL_BLUR_STYLE> mp = {
26 { { BlurStyle::THIN, ThemeColorMode::LIGHT }, MATERIAL_BLUR_STYLE::STYLE_CARD_THIN_LIGHT },
27 { { BlurStyle::THIN, ThemeColorMode::DARK }, MATERIAL_BLUR_STYLE::STYLE_CARD_THIN_DARK },
28 { { BlurStyle::REGULAR, ThemeColorMode::LIGHT }, MATERIAL_BLUR_STYLE::STYLE_CARD_LIGHT },
29 { { BlurStyle::REGULAR, ThemeColorMode::DARK }, MATERIAL_BLUR_STYLE::STYLE_CARD_DARK },
30 { { BlurStyle::THICK, ThemeColorMode::LIGHT }, MATERIAL_BLUR_STYLE::STYLE_CARD_THICK_LIGHT },
31 { { BlurStyle::THICK, ThemeColorMode::DARK }, MATERIAL_BLUR_STYLE::STYLE_CARD_THICK_DARK },
32 { { BlurStyle::BACKGROUND_THIN, ThemeColorMode::LIGHT }, MATERIAL_BLUR_STYLE::STYLE_BACKGROUND_SMALL_LIGHT },
33 { { BlurStyle::BACKGROUND_THIN, ThemeColorMode::DARK }, MATERIAL_BLUR_STYLE::STYLE_BACKGROUND_SMALL_DARK },
34 { { BlurStyle::BACKGROUND_REGULAR, ThemeColorMode::LIGHT },
35 MATERIAL_BLUR_STYLE::STYLE_BACKGROUND_MEDIUM_LIGHT },
36 { { BlurStyle::BACKGROUND_REGULAR, ThemeColorMode::DARK }, MATERIAL_BLUR_STYLE::STYLE_BACKGROUND_MEDIUM_DARK },
37 { { BlurStyle::BACKGROUND_THICK, ThemeColorMode::LIGHT }, MATERIAL_BLUR_STYLE::STYLE_BACKGROUND_LARGE_LIGHT },
38 { { BlurStyle::BACKGROUND_THICK, ThemeColorMode::DARK }, MATERIAL_BLUR_STYLE::STYLE_BACKGROUND_LARGE_DARK },
39 { { BlurStyle::BACKGROUND_ULTRA_THICK, ThemeColorMode::LIGHT },
40 MATERIAL_BLUR_STYLE::STYLE_BACKGROUND_XLARGE_LIGHT },
41 { { BlurStyle::BACKGROUND_ULTRA_THICK, ThemeColorMode::DARK },
42 MATERIAL_BLUR_STYLE::STYLE_BACKGROUND_XLARGE_DARK },
43 };
44 auto iter = mp.find({ option.blurStyle, colorMode });
45 return iter != mp.end() ? iter->second : MATERIAL_BLUR_STYLE::NO_MATERIAL;
46 }
47 } // namespace OHOS::Ace
48