diff options
author | pkasting@chromium.org <pkasting@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-07-27 01:00:27 +0000 |
---|---|---|
committer | pkasting@chromium.org <pkasting@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-07-27 01:00:27 +0000 |
commit | d851106a4c47f58ff714c4f4e2d05b41490947ac (patch) | |
tree | 34166dbdd4d219dfe32c591a973d87fd25fa7fc2 /views/controls/resize_area.h | |
parent | 596650852ec1016cf7c5af66ed4236c9cb546c05 (diff) | |
download | chromium_src-d851106a4c47f58ff714c4f4e2d05b41490947ac.zip chromium_src-d851106a4c47f58ff714c4f4e2d05b41490947ac.tar.gz chromium_src-d851106a4c47f58ff714c4f4e2d05b41490947ac.tar.bz2 |
Make the resize gripper invisible.
BUG=50107
TEST=Resize gripper nest to browser actions container should no longer appear
Review URL: http://codereview.chromium.org/3052011
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@53732 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'views/controls/resize_area.h')
-rw-r--r-- | views/controls/resize_area.h | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/views/controls/resize_area.h b/views/controls/resize_area.h new file mode 100644 index 0000000..cea7d0f --- /dev/null +++ b/views/controls/resize_area.h @@ -0,0 +1,68 @@ +// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef VIEWS_CONTROLS_RESIZE_AREA_H_ +#define VIEWS_CONTROLS_RESIZE_AREA_H_ +#pragma once + +#include <string> + +#include "views/view.h" + +namespace views { + +//////////////////////////////////////////////////////////////////////////////// +// +// An invisible area that acts like a horizontal resizer. +// +//////////////////////////////////////////////////////////////////////////////// +class ResizeArea : public View { + public: + ////////////////////////////////////////////////////////////////////////////// + // + // The interface needed for getting notified about the resize event. + // + ////////////////////////////////////////////////////////////////////////////// + class ResizeAreaDelegate { + public: + // OnResize is sent when resizing is detected. |resize_amount| specifies the + // number of pixels that the user wants to resize by, and can be negative or + // positive (depending on direction of dragging and flips according to + // locale directionality: dragging to the left in LTR locales gives negative + // |resize_amount| but positive amount for RTL). |done_resizing| is true if + // the user has released the mouse. + virtual void OnResize(int resize_amount, bool done_resizing) = 0; + }; + + static const char kViewClassName[]; + + explicit ResizeArea(ResizeAreaDelegate* delegate); + virtual ~ResizeArea(); + + // Overridden from views::View: + virtual std::string GetClassName() const; + virtual gfx::NativeCursor GetCursorForPoint(Event::EventType event_type, + const gfx::Point& p); + virtual bool OnMousePressed(const views::MouseEvent& event); + virtual bool OnMouseDragged(const views::MouseEvent& event); + virtual void OnMouseReleased(const views::MouseEvent& event, bool canceled); + virtual bool GetAccessibleRole(AccessibilityTypes::Role* role); + + private: + // Report the amount the user resized by to the delegate, accounting for + // directionality. + void ReportResizeAmount(int resize_amount, bool last_update); + + // The delegate to notify when we have updates. + ResizeAreaDelegate* delegate_; + + // The mouse position at start (in screen coordinates). + int initial_position_; + + DISALLOW_COPY_AND_ASSIGN(ResizeArea); +}; + +} // namespace views + +#endif // VIEWS_CONTROLS_RESIZE_AREA_H_ |