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