[WRTjs] Refactor popup
[platform/framework/web/chromium-efl.git] / wrt / src / browser / wrt_native_window_on_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_ON_SCREEN_H_
6 #define BROWSER_WRT_NATIVE_WINDOW_ON_SCREEN_H_
7
8 #include "wrt/src/browser/wrt_native_window_delegate.h"
9
10 typedef struct _Ecore_Event_Handler Ecore_Event_Handler;
11
12 namespace wrt {
13
14 class WRTNativeWindowOnScreen : public WRTNativeWindowDelegate {
15  public:
16   WRTNativeWindowOnScreen();
17   ~WRTNativeWindowOnScreen() override {}
18
19  private:
20   Evas_Object* GetWindowEvasObject() override;
21   Evas_Object* GetTopWindow() override;
22   Evas_Object* GetConformant() override {
23     // TODO(songdh)
24     LOG(WARNING) << "conformant is not created in on-screen";
25     return nullptr;
26   }
27
28   WRTWindowTreeHost* GetWindowTreeHost(WRTNativeWindow* native_window) override;
29   void OnNativeWindowDestroyed(WRTNativeWindow* native_window) override;
30
31   void ClearHandlers() override;
32   void InitRotation() override;
33   int SetRotationState(bool is_auto, int degree = -1) override;
34   void SetContentView(WRTNativeWindow* native_window,
35                       views::View* view) override;
36   void Show(WRTNativeWindow* native_window) override;
37   void Hide() override;
38   bool IsFocused(WRTNativeWindow* native_window) override;
39   void Focus(WRTNativeWindow* native_window, bool focus) override;
40   void OnConformantChange() override;
41
42   void ActiveAuraWindow(bool active);
43   void CheckAndResetWidgetClient(WRTNativeWindow* native_window);
44   void RemoveWidgetClient(WRTNativeWindow* native_window) override;
45
46   std::unique_ptr<WRTWindowTreeHost> host_;
47   std::vector<Ecore_Event_Handler*> handlers_;
48 };
49
50 }  // namespace wrt
51
52 #endif  // BROWSER_WRT_NATIVE_WINDOW_ON_SCREEN_H_