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 ASH_DRAG_DROP_DRAG_IMAGE_VIEW_H_
6#define ASH_DRAG_DROP_DRAG_IMAGE_VIEW_H_
7
8#include "ui/views/controls/image_view.h"
9
10namespace views {
11class Widget;
12}
13
14namespace ash {
15namespace internal {
16
17class DragImageView : public views::ImageView {
18 public:
19  explicit DragImageView(gfx::NativeView context);
20  virtual ~DragImageView();
21
22  // Sets the bounds of the native widget in screen
23  // coordinates.
24  // TODO(oshima): Looks like this is root window's
25  // coordinate. Change this to screen's coordinate.
26  void SetBoundsInScreen(const gfx::Rect& bounds);
27
28  // Sets the position of the native widget.
29  void SetScreenPosition(const gfx::Point& position);
30
31  // Sets the visibility of the native widget.
32  void SetWidgetVisible(bool visible);
33
34 private:
35  // Overridden from views::ImageView.
36  virtual void OnPaint(gfx::Canvas* canvas) OVERRIDE;
37
38  scoped_ptr<views::Widget> widget_;
39  gfx::Size widget_size_;
40
41  DISALLOW_COPY_AND_ASSIGN(DragImageView);
42};
43
44}  // namespace internal
45}  // namespace ash
46
47#endif  // ASH_DRAG_DROP_DRAG_IMAGE_VIEW_H_
48