Explicitly add python-numpy dependency to install-build-deps.
[chromium-blink-merge.git] / ui / ozone / platform / dri / dri_window_manager.h
blob5a03957b8cfcba18cf7c7a0841b5c844d3e2ab45
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.
5 #ifndef UI_OZONE_PLATFORM_DRI_DRI_WINDOW_MANAGER_H_
6 #define UI_OZONE_PLATFORM_DRI_DRI_WINDOW_MANAGER_H_
8 #include <map>
10 #include "base/memory/scoped_ptr.h"
11 #include "ui/gfx/native_widget_types.h"
13 namespace ui {
15 class DriCursor;
16 class DriWindow;
17 class HardwareCursorDelegate;
19 // Responsible for keeping the mapping between the allocated widgets and
20 // windows.
21 class DriWindowManager {
22 public:
23 explicit DriWindowManager(HardwareCursorDelegate* cursor_delegate);
24 ~DriWindowManager();
26 gfx::AcceleratedWidget NextAcceleratedWidget();
28 // Adds a window for |widget|. Note: |widget| should not be associated when
29 // calling this function.
30 void AddWindow(gfx::AcceleratedWidget widget, DriWindow* window);
32 // Removes the window association for |widget|. Note: |widget| must be
33 // associated with a window when calling this function.
34 void RemoveWindow(gfx::AcceleratedWidget widget);
36 // Returns the window associated with |widget|. Note: This function should
37 // only be called if a valid window has been associated.
38 DriWindow* GetWindow(gfx::AcceleratedWidget widget);
40 DriCursor* cursor() const { return cursor_.get(); }
42 private:
43 // Reset the cursor location based on the list of active windows.
44 void ResetCursorLocation();
46 typedef std::map<gfx::AcceleratedWidget, DriWindow*> WidgetToWindowMap;
48 gfx::AcceleratedWidget last_allocated_widget_;
49 WidgetToWindowMap window_map_;
51 scoped_ptr<DriCursor> cursor_;
53 DISALLOW_COPY_AND_ASSIGN(DriWindowManager);
56 } // namespace ui
58 #endif // UI_OZONE_PLATFORM_DRI_DRI_WINDOW_MANAGER_H_