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_BASE_RESOURCE_INTERNAL_RESOURCE_H
17 #define FOUNDATION_ACE_FRAMEWORKS_BASE_RESOURCE_INTERNAL_RESOURCE_H
18 
19 #include <cstddef>
20 #include <cstdint>
21 
22 #include "base/utils/singleton.h"
23 
24 namespace OHOS::Ace {
25 
26 class InternalResource final : public Singleton<InternalResource> {
27     DECLARE_SINGLETON(InternalResource);
28 
29 public:
30     enum class ResourceId : uint32_t {
31         NO_ID = 0,
32         SELECT_ARROW_NORMAL_PNG,
33         SELECT_ARROW_DISABLED_PNG,
34         INDEXER_ARROW_PNG,
35         FA_CLOCK_WIDGET_HOUR,
36         FA_CLOCK_WIDGET_MINUTE,
37         FA_CLOCK_WIDGET_SECOND,
38         FA_BLACK_CLOCK_WIDGET_HOUR,
39         FA_BLACK_CLOCK_WIDGET_MINUTE,
40         FA_BLACK_CLOCK_WIDGET_SECOND,
41         CONTAINER_MODAL_WINDOW_CLOSE,
42         CONTAINER_MODAL_WINDOW_MAXIMIZE,
43         CONTAINER_MODAL_WINDOW_MINIMIZE,
44         CONTAINER_MODAL_WINDOW_RECOVER,
45         CONTAINER_MODAL_WINDOW_SPLIT_LEFT,
46         CONTAINER_MODAL_WINDOW_DEFOCUS_CLOSE,
47         CONTAINER_MODAL_WINDOW_DEFOCUS_MAXIMIZE,
48         CONTAINER_MODAL_WINDOW_DEFOCUS_MINIMIZE,
49         CONTAINER_MODAL_WINDOW_DEFOCUS_RECOVER,
50         CONTAINER_MODAL_WINDOW_DEFOCUS_SPLIT_LEFT,
51 
52         // 10000 - 20000 is reserved for SVG resource.
53         SVG_START = 10000,
54         CORRECT_SVG,
55         WRONG_SVG,
56         SEARCH_SVG,
57         CLOSE_SVG,
58         PLAY_SVG,
59         PAUSE_SVG,
60         FULLSCREEN_SVG,
61         QUIT_FULLSCREEN_SVG,
62         UP_ARROW_SVG,
63         WATCH_UP_ARROW_SVG,
64         DOWN_ARROW_SVG,
65         WATCH_DOWN_ARROW_SVG,
66         SHOW_PASSWORD_SVG,
67         HIDE_PASSWORD_SVG,
68         SEMI_MODAL_BAR_MIDDLE_SVG,
69         SEMI_MODAL_BAR_DOWN_SVG,
70         LEFT_ARROW_SVG,
71         RIGHT_ARROW_SVG,
72         STEPPER_BACK_ARROW,
73         STEPPER_NEXT_ARROW,
74         PIECE_DELETE_SVG,
75         RATE_STAR_BIG_OFF_SVG,
76         RATE_STAR_BIG_ON_SVG,
77         RATE_STAR_SMALL_OFF_SVG,
78         RATE_STAR_SMALL_ON_SVG,
79         TV_RATE_STAR_BIG_OFF_SVG,
80         TV_RATE_STAR_BIG_ON_SVG,
81         TV_RATE_STAR_SMALL_OFF_SVG,
82         TV_RATE_STAR_SMALL_ON_SVG,
83         TITLEBAR_BACK,
84         IC_BACK,
85         IC_MORE,
86         IC_MORE_DARK,
87         IC_MORE_TRANSPARENT,
88         IC_WINDOW_CLOSE,
89         IC_WINDOW_MAX,
90         IC_WINDOW_MENU_FULLSCREEN,
91         IC_WINDOW_MENU_MAXIMIZE,
92         IC_WINDOW_MENU_OK,
93         IC_WINDOW_MENU_SCREEN_L,
94         IC_WINDOW_MENU_SCREEN_N,
95         IC_WINDOW_MIN,
96         IC_WINDOW_RESTORES,
97         TRANSLATE_C2E_SVG,
98         SHARE_SVG,
99         SIDE_BAR,
100         SPINNER,
101         INPUT_SEARCH_SVG,
102         APP_BAR_BACK_SVG,
103         APP_BAR_FA_SVG,
104         APP_BAR_MENU_SVG,
105         APP_BAR_CLOSE_SVG,
106         MENU_OK_SVG,
107         SPINNER_DISABLE,
108         LOCATION_BUTTON_FILLED_SVG,
109         LOCATION_BUTTON_LINE_SVG,
110         PASTE_BUTTON_LINE_SVG,
111         SAVE_BUTTON_FILLED_SVG,
112         SAVE_BUTTON_LINE_SVG,
113         SAVE_BUTTON_PICTURE_SVG,
114         IC_PUBLIC_ARROW_LEFT_SVG,
115         IC_PUBLIC_ARROW_RIGHT_SVG,
116         IC_PUBLIC_ARROW_UP_SVG,
117         IC_PUBLIC_ARROW_DOWN_SVG,
118         IC_PUBLIC_DOUBLE_ARROW_LEFT_SVG,
119         IC_PUBLIC_DOUBLE_ARROW_RIGHT_SVG,
120         IC_CUT_SVG,
121         IC_COPY_SVG,
122         IC_PASTE_SVG,
123         IC_SELECT_ALL_SVG,
124         IC_SHARE_SVG,
125         IC_TRANSLATE_SVG,
126         IC_SEARCH_SVG,
127         IC_AI_WRITE_SVG,
128         IC_BOTTOMSHEET_CLOSE_SVG,
129         IC_CANCEL_SVG,
130         RADIO_TICK_SVG,
131         RADIO_DOT_SVG,
132         IC_TAKEPHOTO_SVG,
133         SVG_END = 20000,
134 
135         // 20001 - 30000 is reserved for i18n resource.
136         I18N_START = 20001,
137         INDEXLETTER_BAR_JSON,
138         ERRORINFO_JSON,
139         ENTRY_JSON,
140         I18N_END = 30000,
141     };
142 
143     const uint8_t* GetResource(const ResourceId id, size_t& size) const;
144 };
145 
146 } // namespace OHOS::Ace
147 
148 #endif // FOUNDATION_ACE_FRAMEWORKS_BASE_RESOURCE_INTERNAL_RESOURCE_H
149