1 /*
2  * Copyright (c) 2021-2022 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/components/common/properties/color_factory.h"
17 
18 namespace OHOS::Ace {
19 
ColorFactory()20 ColorFactory::ColorFactory()
21 {
22     colorMap_["DATA_PANEL_LIGHT_COLOR_1"] =
23         std::make_pair<Color, Color>(Color::FromString("#F7CE00"), Color::FromString("#F99B11"));
24     colorMap_["DATA_PANEL_LIGHT_COLOR_2"] =
25         std::make_pair<Color, Color>(Color::FromString("#F76223"), Color::FromString("#F2400A"));
26     colorMap_["DATA_PANEL_LIGHT_COLOR_3"] =
27         std::make_pair<Color, Color>(Color::FromString("#F772AC"), Color::FromString("#E65392"));
28     colorMap_["DATA_PANEL_LIGHT_COLOR_4"] =
29         std::make_pair<Color, Color>(Color::FromString("#A575EB"), Color::FromString("#A12DF7"));
30     colorMap_["DATA_PANEL_LIGHT_COLOR_5"] =
31         std::make_pair<Color, Color>(Color::FromString("#7B79F7"), Color::FromString("#4B48F7"));
32     colorMap_["DATA_PANEL_LIGHT_COLOR_6"] =
33         std::make_pair<Color, Color>(Color::FromString("#4B8AF3"), Color::FromString("#007DFF"));
34     colorMap_["DATA_PANEL_LIGHT_COLOR_7"] =
35         std::make_pair<Color, Color>(Color::FromString("#73C1E6"), Color::FromString("#4FB4E3"));
36     colorMap_["DATA_PANEL_LIGHT_COLOR_8"] =
37         std::make_pair<Color, Color>(Color::FromString("#A5D61D"), Color::FromString("#69D14F"));
38     colorMap_["DATA_PANEL_LIGHT_COLOR_9"] =
39         std::make_pair<Color, Color>(Color::FromString("#A2A2B0"), Color::FromString("#8E8E93"));
40 
41     colorMap_["DATA_PANEL_DARK_COLOR_1"] =
42         std::make_pair<Color, Color>(Color::FromString("#D1A738"), Color::FromString("#EB933D"));
43     colorMap_["DATA_PANEL_DARK_COLOR_2"] =
44         std::make_pair<Color, Color>(Color::FromString("#E67D50"), Color::FromString("#D9542B"));
45     colorMap_["DATA_PANEL_DARK_COLOR_3"] =
46         std::make_pair<Color, Color>(Color::FromString("#D5749E"), Color::FromString("#D6568D"));
47     colorMap_["DATA_PANEL_DARK_COLOR_4"] =
48         std::make_pair<Color, Color>(Color::FromString("#9973D1"), Color::FromString("#8639BF"));
49     colorMap_["DATA_PANEL_DARK_COLOR_5"] =
50         std::make_pair<Color, Color>(Color::FromString("#7977D9"), Color::FromString("#5552D9"));
51     colorMap_["DATA_PANEL_DARK_COLOR_6"] =
52         std::make_pair<Color, Color>(Color::FromString("#4C81D9"), Color::FromString("#217BD9"));
53     colorMap_["DATA_PANEL_DARK_COLOR_7"] =
54         std::make_pair<Color, Color>(Color::FromString("#5EA6D1"), Color::FromString("#4895C2"));
55     colorMap_["DATA_PANEL_DARK_COLOR_8"] =
56         std::make_pair<Color, Color>(Color::FromString("#91C23A"), Color::FromString("#70BA5D"));
57     colorMap_["DATA_PANEL_DARK_COLOR_9"] =
58         std::make_pair<Color, Color>(Color::FromString("#8C8C99"), Color::FromString("#6B6B76"));
59 
60     colorMap_["DATA_PANEL_PROGRESS_LIGHT_COLOR_1"] =
61         std::make_pair<Color, Color>(Color::FromString("#86C1FF"), Color::FromString("#254FF7"));
62     colorMap_["DATA_PANEL_PROGRESS_DARK_COLOR_1"] =
63         std::make_pair<Color, Color>(Color::FromString("#72A4D9"), Color::FromString("#3B61F7"));
64 }
65 
GetInstance()66 ColorFactory& ColorFactory::GetInstance()
67 {
68     // don't need lock, because of no race condition.
69     static auto instance = new ColorFactory();
70     return *instance;
71 }
72 
GetColorTuple(const std::string & colorName)73 std::pair<Color, Color> ColorFactory::GetColorTuple(const std::string& colorName)
74 {
75     auto colorPair = colorMap_.find(colorName);
76     if (colorPair != colorMap_.end()) {
77         return colorPair->second;
78     }
79     return std::make_pair<Color, Color>(Color(), Color());
80 }
81 
82 } // namespace OHOS::Ace