Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / ui / ozone / platform / dri / dri_window_delegate_impl.h
1 // Copyright 2014 The Chromium Authors. 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 UI_OZONE_PLATFORM_DRI_DRI_WINDOW_DELEGATE_IMPL_H_
6 #define UI_OZONE_PLATFORM_DRI_DRI_WINDOW_DELEGATE_IMPL_H_
7
8 #include "base/memory/weak_ptr.h"
9 #include "ui/gfx/native_widget_types.h"
10 #include "ui/ozone/platform/dri/dri_window_delegate.h"
11
12 namespace gfx {
13 class Rect;
14 }  // namespace gfx
15
16 namespace ui {
17
18 class HardwareDisplayController;
19 class ScreenManager;
20
21 class DriWindowDelegateImpl : public DriWindowDelegate {
22  public:
23   DriWindowDelegateImpl(gfx::AcceleratedWidget widget,
24                         ScreenManager* screen_manager);
25   virtual ~DriWindowDelegateImpl();
26
27   // DriWindowDelegate:
28   virtual void Initialize() OVERRIDE;
29   virtual void Shutdown() OVERRIDE;
30   virtual gfx::AcceleratedWidget GetAcceleratedWidget() OVERRIDE;
31   virtual HardwareDisplayController* GetController() OVERRIDE;
32   virtual void OnBoundsChanged(const gfx::Rect& bounds) OVERRIDE;
33
34  private:
35   gfx::AcceleratedWidget widget_;
36
37   ScreenManager* screen_manager_;  // Not owned.
38
39   base::WeakPtr<HardwareDisplayController> controller_;
40
41   DISALLOW_COPY_AND_ASSIGN(DriWindowDelegateImpl);
42 };
43
44 }  // namespace ui
45
46 #endif  // UI_OZONE_PLATFORM_DRI_DRI_WINDOW_DELEGATE_IMPL_H_