summaryrefslogtreecommitdiffstats
path: root/views/controls/resize_area.h
diff options
context:
space:
mode:
authorpkasting@chromium.org <pkasting@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-07-27 01:00:27 +0000
committerpkasting@chromium.org <pkasting@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-07-27 01:00:27 +0000
commitd851106a4c47f58ff714c4f4e2d05b41490947ac (patch)
tree34166dbdd4d219dfe32c591a973d87fd25fa7fc2 /views/controls/resize_area.h
parent596650852ec1016cf7c5af66ed4236c9cb546c05 (diff)
downloadchromium_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.h68
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_