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.
5 #ifndef BROWSER_WRT_NATIVE_WINDOW_OFF_SCREEN_H_
6 #define BROWSER_WRT_NATIVE_WINDOW_OFF_SCREEN_H_
8 #include "wrt/src/browser/wrt_native_window_delegate.h"
9 #include "wrt/src/browser/wrt_window_tree_host.h"
13 class WRTNativeWindowOffScreen : public WRTNativeWindowDelegate {
15 WRTNativeWindowOffScreen() {}
16 ~WRTNativeWindowOffScreen() override {}
18 static Evas_Object* CreateElmWindow();
21 // WRTNativeWindowDelegate
22 Evas_Object* GetWindowEvasObject() override;
23 Evas_Object* GetTopWindow() override;
24 Evas_Object* GetConformant() override;
26 WRTWindowTreeHost* GetWindowTreeHost(WRTNativeWindow* native_window) override;
27 void OnNativeWindowDestroyed(WRTNativeWindow* native_window) override;
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;
35 bool IsFocused(WRTNativeWindow* native_window) override;
36 void Focus(WRTNativeWindow* native_window, bool focus) override;
38 content::RenderWidgetHostViewAura* GetRenderWidgetHostView(
39 WRTNativeWindow* native_window);
40 Evas_Object* GetEflMainLayout(WRTNativeWindow* native_window);
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;
50 double zoom_level_ = 1.0;
51 std::string orientation_style_;
54 Evas_Object* efl_main_layout_ = nullptr;
55 static Evas_Object* elm_window_;
56 static Evas_Object* conformant_;
57 static Evas_Object* layout_;
59 std::map<WRTNativeWindow*, std::unique_ptr<WRTWindowTreeHost>> host_map_;
64 #endif // BROWSER_WRT_NATIVE_WINDOW_OFF_SCREEN_H_