1 // Copyright (c) 2011 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_VIEWS_CONTROLS_RESIZE_AREA_H_
6 #define UI_VIEWS_CONTROLS_RESIZE_AREA_H_
10 #include "ui/views/view.h"
14 class ResizeAreaDelegate
;
16 ////////////////////////////////////////////////////////////////////////////////
18 // An invisible area that acts like a horizontal resizer.
20 ////////////////////////////////////////////////////////////////////////////////
21 class VIEWS_EXPORT ResizeArea
: public View
{
23 static const char kViewClassName
[];
25 explicit ResizeArea(ResizeAreaDelegate
* delegate
);
26 virtual ~ResizeArea();
28 // Overridden from views::View:
29 virtual const char* GetClassName() const OVERRIDE
;
30 virtual gfx::NativeCursor
GetCursor(const ui::MouseEvent
& event
) OVERRIDE
;
31 virtual bool OnMousePressed(const ui::MouseEvent
& event
) OVERRIDE
;
32 virtual bool OnMouseDragged(const ui::MouseEvent
& event
) OVERRIDE
;
33 virtual void OnMouseReleased(const ui::MouseEvent
& event
) OVERRIDE
;
34 virtual void OnMouseCaptureLost() OVERRIDE
;
35 virtual void GetAccessibleState(ui::AXViewState
* state
) OVERRIDE
;
38 // Report the amount the user resized by to the delegate, accounting for
40 void ReportResizeAmount(int resize_amount
, bool last_update
);
42 // The delegate to notify when we have updates.
43 ResizeAreaDelegate
* delegate_
;
45 // The mouse position at start (in screen coordinates).
46 int initial_position_
;
48 DISALLOW_COPY_AND_ASSIGN(ResizeArea
);
53 #endif // UI_VIEWS_CONTROLS_RESIZE_AREA_H_