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_TEST_TEST_WINDOW_H_
6#define UI_OZONE_PLATFORM_TEST_TEST_WINDOW_H_
7
8#include "base/files/file_path.h"
9#include "ui/gfx/geometry/rect.h"
10#include "ui/gfx/native_widget_types.h"
11#include "ui/platform_window/platform_window.h"
12
13namespace ui {
14
15class PlatformWindowDelegate;
16class TestWindowManager;
17
18class TestWindow : public PlatformWindow {
19 public:
20  TestWindow(PlatformWindowDelegate* delegate,
21             TestWindowManager* manager,
22             const gfx::Rect& bounds);
23  virtual ~TestWindow();
24
25  // Path for image file for this window.
26  base::FilePath path();
27
28  // PlatformWindow:
29  virtual gfx::Rect GetBounds() OVERRIDE;
30  virtual void SetBounds(const gfx::Rect& bounds) OVERRIDE;
31  virtual void Show() OVERRIDE;
32  virtual void Hide() OVERRIDE;
33  virtual void Close() OVERRIDE;
34  virtual void SetCapture() OVERRIDE;
35  virtual void ReleaseCapture() OVERRIDE;
36  virtual void ToggleFullscreen() OVERRIDE;
37  virtual void Maximize() OVERRIDE;
38  virtual void Minimize() OVERRIDE;
39  virtual void Restore() OVERRIDE;
40  virtual void SetCursor(PlatformCursor cursor) OVERRIDE;
41  virtual void MoveCursorTo(const gfx::Point& location) OVERRIDE;
42
43 private:
44  PlatformWindowDelegate* delegate_;
45  TestWindowManager* manager_;
46  gfx::Rect bounds_;
47  gfx::AcceleratedWidget widget_;
48
49  DISALLOW_COPY_AND_ASSIGN(TestWindow);
50};
51
52}  // namespace ui
53
54#endif  // UI_OZONE_PLATFORM_TEST_TEST_WINDOW_H_
55