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_H_ 6 #define UI_OZONE_PLATFORM_DRI_DRI_WINDOW_H_ 7 8 #include "base/memory/scoped_ptr.h" 9 #include "ui/events/platform/platform_event_dispatcher.h" 10 #include "ui/gfx/geometry/rect.h" 11 #include "ui/gfx/native_widget_types.h" 12 #include "ui/platform_window/platform_window.h" 13 14 namespace ui { 15 16 class DriWindowDelegate; 17 class DriWindowDelegateManager; 18 class DriWindowManager; 19 class EventFactoryEvdev; 20 21 class DriWindow : public PlatformWindow, 22 public PlatformEventDispatcher { 23 public: 24 DriWindow(PlatformWindowDelegate* delegate, 25 const gfx::Rect& bounds, 26 scoped_ptr<DriWindowDelegate> dri_window_delegate, 27 EventFactoryEvdev* event_factory, 28 DriWindowDelegateManager* window_delegate_manager, 29 DriWindowManager* window_manager); 30 virtual ~DriWindow(); 31 32 void Initialize(); 33 34 // PlatformWindow: 35 virtual void Show() OVERRIDE; 36 virtual void Hide() OVERRIDE; 37 virtual void Close() OVERRIDE; 38 virtual void SetBounds(const gfx::Rect& bounds) OVERRIDE; 39 virtual gfx::Rect GetBounds() OVERRIDE; 40 virtual void SetCapture() OVERRIDE; 41 virtual void ReleaseCapture() OVERRIDE; 42 virtual void ToggleFullscreen() OVERRIDE; 43 virtual void Maximize() OVERRIDE; 44 virtual void Minimize() OVERRIDE; 45 virtual void Restore() OVERRIDE; 46 virtual void SetCursor(PlatformCursor cursor) OVERRIDE; 47 virtual void MoveCursorTo(const gfx::Point& location) OVERRIDE; 48 49 // PlatformEventDispatcher: 50 virtual bool CanDispatchEvent(const PlatformEvent& event) OVERRIDE; 51 virtual uint32_t DispatchEvent(const PlatformEvent& event) OVERRIDE; 52 53 private: 54 PlatformWindowDelegate* delegate_; 55 gfx::Rect bounds_; 56 gfx::AcceleratedWidget widget_; 57 DriWindowDelegate* dri_window_delegate_; 58 EventFactoryEvdev* event_factory_; 59 DriWindowDelegateManager* window_delegate_manager_; 60 DriWindowManager* window_manager_; 61 62 DISALLOW_COPY_AND_ASSIGN(DriWindow); 63 }; 64 65 } // namespace ui 66 67 #endif // UI_OZONE_PLATFORM_DRI_DRI_WINDOW_H_ 68