1// Copyright 2013 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_AURA_WINDOW_TREE_HOST_OZONE_H_ 6#define UI_AURA_WINDOW_TREE_HOST_OZONE_H_ 7 8#include "base/memory/scoped_ptr.h" 9#include "ui/aura/window_tree_host.h" 10#include "ui/events/event_source.h" 11#include "ui/gfx/rect.h" 12#include "ui/platform_window/platform_window_delegate.h" 13 14namespace ui { 15class PlatformWindow; 16} 17 18namespace aura { 19 20class AURA_EXPORT WindowTreeHostOzone : public WindowTreeHost, 21 public ui::EventSource, 22 public ui::PlatformWindowDelegate { 23 public: 24 explicit WindowTreeHostOzone(const gfx::Rect& bounds); 25 virtual ~WindowTreeHostOzone(); 26 27 private: 28 // ui::PlatformWindowDelegate: 29 virtual void OnBoundsChanged(const gfx::Rect&) OVERRIDE; 30 virtual void OnDamageRect(const gfx::Rect& damaged_region) OVERRIDE; 31 virtual void DispatchEvent(ui::Event* event) OVERRIDE; 32 virtual void OnCloseRequest() OVERRIDE; 33 virtual void OnClosed() OVERRIDE; 34 virtual void OnWindowStateChanged(ui::PlatformWindowState new_state) OVERRIDE; 35 virtual void OnLostCapture() OVERRIDE; 36 virtual void OnAcceleratedWidgetAvailable( 37 gfx::AcceleratedWidget widget) OVERRIDE; 38 virtual void OnActivationChanged(bool active) OVERRIDE; 39 40 // WindowTreeHost: 41 virtual ui::EventSource* GetEventSource() OVERRIDE; 42 virtual gfx::AcceleratedWidget GetAcceleratedWidget() OVERRIDE; 43 virtual void Show() OVERRIDE; 44 virtual void Hide() OVERRIDE; 45 virtual gfx::Rect GetBounds() const OVERRIDE; 46 virtual void SetBounds(const gfx::Rect& bounds) OVERRIDE; 47 virtual gfx::Point GetLocationOnNativeScreen() const OVERRIDE; 48 virtual void SetCapture() OVERRIDE; 49 virtual void ReleaseCapture() OVERRIDE; 50 virtual void PostNativeEvent(const base::NativeEvent& event) OVERRIDE; 51 virtual void SetCursorNative(gfx::NativeCursor cursor_type) OVERRIDE; 52 virtual void MoveCursorToNative(const gfx::Point& location) OVERRIDE; 53 virtual void OnCursorVisibilityChangedNative(bool show) OVERRIDE; 54 55 // ui::EventSource overrides. 56 virtual ui::EventProcessor* GetEventProcessor() OVERRIDE; 57 58 // Platform-specific part of this WindowTreeHost. 59 scoped_ptr<ui::PlatformWindow> platform_window_; 60 61 // The identifier used to create a compositing surface. 62 gfx::AcceleratedWidget widget_; 63 64 DISALLOW_COPY_AND_ASSIGN(WindowTreeHostOzone); 65}; 66 67} // namespace aura 68 69#endif // UI_AURA_WINDOW_TREE_HOST_OZONE_H_ 70