[WRTjs] Refactor popup
[platform/framework/web/chromium-efl.git] / wrt / src / browser / basic_splash_screen_off_screen.h
1 /*
2  * Copyright (c) 2023 Samsung Electronics Co., Ltd All Rights Reserved
3  *
4  *    Licensed under the Apache License, Version 2.0 (the "License");
5  *    you may not use this file except in compliance with the License.
6  *    You may obtain a copy of the License at
7  *
8  *        http://www.apache.org/licenses/LICENSE-2.0
9  *
10  *    Unless required by applicable law or agreed to in writing, software
11  *    distributed under the License is distributed on an "AS IS" BASIS,
12  *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  *    See the License for the specific language governing permissions and
14  *    limitations under the License.
15  */
16
17 #ifndef BROWSER_BASIC_SPLASH_SCREEN_OFF_SCREEN_H_
18 #define BROWSER_BASIC_SPLASH_SCREEN_OFF_SCREEN_H_
19
20 #include "ui/gfx/geometry/size.h"
21 #include "wrt/src/browser/basic_splash_screen.h"
22
23 typedef struct _Eo_Opaque Evas_Object;
24
25 namespace wrt {
26
27 class BasicSplashScreenOffScreen : public BasicSplashScreen {
28  public:
29   BasicSplashScreenOffScreen(std::unique_ptr<SplashScreenDelegate> delegate);
30   ~BasicSplashScreenOffScreen() override = default;
31
32  protected:
33   void Init() override;
34   void Hide() override;
35
36  private:
37   void CreateBackground(Evas_Object* window, const gfx::Size& size,
38                         SplashScreenData* splash_screen_data);
39   void CreateImageBorder(const gfx::Size& size,
40                          SplashScreenData* splash_screen_data);
41   void CreateImage(const gfx::Size& size,
42                    SplashScreenData* splash_screen_data);
43
44   Evas_Object* background_ = nullptr;
45   Evas_Object* image_border_ = nullptr;
46   Evas_Object* image_ = nullptr;
47 };
48
49 }  // namespace wrt
50
51 #endif  // BROWSER_BASIC_SPLASH_SCREEN_OFF_SCREEN_H_