[WRTjs] Refactor popup
[platform/framework/web/chromium-efl.git] / wrt / src / browser / wrt_native_window_off_screen.h
1 // Copyright 2023 Samsung Electronics. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef BROWSER_WRT_NATIVE_WINDOW_OFF_SCREEN_H_
6 #define BROWSER_WRT_NATIVE_WINDOW_OFF_SCREEN_H_
7
8 #include "wrt/src/browser/wrt_native_window_delegate.h"
9 #include "wrt/src/browser/wrt_window_tree_host.h"
10
11 namespace wrt {
12
13 class WRTNativeWindowOffScreen : public WRTNativeWindowDelegate {
14  public:
15   WRTNativeWindowOffScreen() {}
16   ~WRTNativeWindowOffScreen() override {}
17
18   static Evas_Object* CreateElmWindow();
19
20  private:
21   // WRTNativeWindowDelegate
22   Evas_Object* GetWindowEvasObject() override;
23   Evas_Object* GetTopWindow() override;
24   Evas_Object* GetConformant() override;
25
26   WRTWindowTreeHost* GetWindowTreeHost(WRTNativeWindow* native_window) override;
27   void OnNativeWindowDestroyed(WRTNativeWindow* native_window) override;
28
29   void InitRotation() override;
30   int SetRotationState(bool is_auto, int degree = -1) override;
31   void SetContentView(WRTNativeWindow* native_window,
32                       views::View* view) override;
33   void Show(WRTNativeWindow* native_window) override;
34   void Hide() override;
35   bool IsFocused(WRTNativeWindow* native_window) override;
36   void Focus(WRTNativeWindow* native_window, bool focus) override;
37
38   content::RenderWidgetHostViewAura* GetRenderWidgetHostView(
39       WRTNativeWindow* native_window);
40   Evas_Object* GetEflMainLayout(WRTNativeWindow* native_window);
41
42 #if BUILDFLAG(IS_TIZEN_TV)
43   void DidFinishNavigation() override;
44   void SetScreenOrientation(WRTNativeWindow* native_window,
45                             ScreenOrientation orientation) override;
46   void SetConformantObject(bool no_resize) override;
47   void SetWindowBorderAlpha() override;
48   void SetZoomLevel(double level, const char* style) override;
49
50   double zoom_level_ = 1.0;
51   std::string orientation_style_;
52 #endif
53
54   Evas_Object* efl_main_layout_ = nullptr;
55   static Evas_Object* elm_window_;
56   static Evas_Object* conformant_;
57   static Evas_Object* layout_;
58
59   std::map<WRTNativeWindow*, std::unique_ptr<WRTWindowTreeHost>> host_map_;
60 };
61
62 }  // namespace wrt
63
64 #endif  // BROWSER_WRT_NATIVE_WINDOW_OFF_SCREEN_H_