Index: ui/base/touch/selection_bound.h |
diff --git a/ui/base/touch/selection_bound.h b/ui/base/touch/selection_bound.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..f7f0f97870a6a9b23417be692a21468b6c421d90 |
--- /dev/null |
+++ b/ui/base/touch/selection_bound.h |
@@ -0,0 +1,75 @@ |
+// Copyright 2014 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 UI_BASE_TOUCH_SELECTION_BOUND_H_ |
+#define UI_BASE_TOUCH_SELECTION_BOUND_H_ |
+ |
+#include "ui/base/ui_base_export.h" |
+#include "ui/gfx/point.h" |
+#include "ui/gfx/point_f.h" |
+ |
+namespace cc { |
+struct ViewportSelectionBound; |
+} |
+ |
+namespace gfx { |
+class Rect; |
+} |
+ |
+namespace ui { |
+ |
+// Bound of a selection end-point. |
+class UI_BASE_EXPORT SelectionBound { |
+ public: |
+ enum Type { |
+ LEFT, |
+ RIGHT, |
+ CENTER, |
+ EMPTY, |
+ LAST = EMPTY |
+ }; |
+ |
+ SelectionBound(); |
+ explicit SelectionBound(const cc::ViewportSelectionBound& bound); |
+ ~SelectionBound(); |
+ |
+ Type type() const { return type_; } |
+ void set_type(Type value) { type_ = value; } |
+ |
+ const gfx::PointF& edge_top() const { return edge_top_; } |
+ const gfx::Point& edge_top_rounded() const { return edge_top_rounded_; } |
+ void SetEdgeTop(const gfx::PointF& value); |
+ |
+ const gfx::PointF& edge_bottom() const { return edge_bottom_; } |
+ const gfx::Point& edge_bottom_rounded() const { return edge_bottom_rounded_; } |
+ void SetEdgeBottom(const gfx::PointF& value); |
+ |
+ void SetEdge(const gfx::PointF& top, const gfx::PointF& bottom); |
+ |
+ bool visible() const { return visible_; } |
+ void set_visible(bool value) { visible_ = value; } |
+ |
+ // Returns the vertical difference between rounded top and bottom. |
+ int GetHeight() const; |
+ |
+ private: |
+ Type type_; |
+ gfx::PointF edge_top_; |
+ gfx::PointF edge_bottom_; |
+ gfx::Point edge_top_rounded_; |
+ gfx::Point edge_bottom_rounded_; |
+ bool visible_; |
+}; |
+ |
+UI_BASE_EXPORT bool operator==(const SelectionBound& lhs, |
+ const SelectionBound& rhs); |
+UI_BASE_EXPORT bool operator!=(const SelectionBound& lhs, |
+ const SelectionBound& rhs); |
+ |
+UI_BASE_EXPORT gfx::Rect RectBetweenSelectionBounds(const SelectionBound& b1, |
+ const SelectionBound& b2); |
+ |
+} // namespace ui |
+ |
+#endif // UI_BASE_TOUCH_SELECTION_BOUND_H_ |