1// Copyright (c) 2012 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_VIEWS_WIDGET_DESKTOP_AURA_DESKTOP_SCREEN_POSITION_CLIENT_H_
6#define UI_VIEWS_WIDGET_DESKTOP_AURA_DESKTOP_SCREEN_POSITION_CLIENT_H_
7
8#include "ui/aura/client/screen_position_client.h"
9#include "ui/views/views_export.h"
10
11namespace views {
12
13// Client that always offsets by the toplevel RootWindow of the passed
14// in child NativeWidgetAura.
15class VIEWS_EXPORT DesktopScreenPositionClient
16    : public aura::client::ScreenPositionClient {
17 public:
18  explicit DesktopScreenPositionClient(aura::Window* root_window);
19  virtual ~DesktopScreenPositionClient();
20
21  // aura::client::ScreenPositionClient overrides:
22  virtual void ConvertPointToScreen(const aura::Window* window,
23                                    gfx::Point* point) OVERRIDE;
24  virtual void ConvertPointFromScreen(const aura::Window* window,
25                                      gfx::Point* point) OVERRIDE;
26  virtual void ConvertHostPointToScreen(aura::Window* window,
27                                        gfx::Point* point) OVERRIDE;
28  virtual void SetBounds(aura::Window* window,
29                         const gfx::Rect& bounds,
30                         const gfx::Display& display) OVERRIDE;
31
32 private:
33  aura::Window* root_window_;
34
35  DISALLOW_COPY_AND_ASSIGN(DesktopScreenPositionClient);
36};
37
38}  // namespace views
39
40#endif  // UI_VIEWS_WIDGET_DESKTOP_AURA_DESKTOP_SCREEN_POSITION_CLIENT_H_
41