Index: ui/base/touch/touch_editing_controller.cc |
diff --git a/ui/base/touch/touch_editing_controller.cc b/ui/base/touch/touch_editing_controller.cc |
index 1b84ed929bf2af8ad365bd6974d87ec7e3866bb7..bfb301eaa6801af363893c583d22911a374ea251 100644 |
--- a/ui/base/touch/touch_editing_controller.cc |
+++ b/ui/base/touch/touch_editing_controller.cc |
@@ -10,6 +10,43 @@ namespace { |
TouchSelectionControllerFactory* g_shared_instance = NULL; |
} // namespace |
+SelectionBound::SelectionBound() |
+ : type(ui::SelectionBound::EMPTY) { |
+} |
+ |
+SelectionBound::~SelectionBound() { |
+} |
+ |
+int SelectionBound::GetHeight() const { |
+ return edge_bottom.y() - edge_top.y(); |
+} |
+ |
+bool operator==(const SelectionBound& lhs, const SelectionBound& rhs) { |
+ return lhs.type == rhs.type && lhs.edge_top == rhs.edge_top && |
+ lhs.edge_bottom == rhs.edge_bottom; |
+} |
+ |
+bool operator!=(const SelectionBound& lhs, const SelectionBound& rhs) { |
+ return !(lhs == rhs); |
+} |
+ |
+gfx::Rect RectBetweenSelectionBounds(const SelectionBound& b1, |
+ const SelectionBound& b2) { |
+ int all_x[] ={ |
+ b1.edge_top.x(), b2.edge_top.x(), b1.edge_bottom.x(), b2.edge_bottom.x() |
+ }; |
+ int all_y[] = { |
+ b1.edge_top.y(), b2.edge_top.y(), b1.edge_bottom.y(), b2.edge_bottom.y() |
+ }; |
+ const int num_elements = 4; |
sky
2014/11/14 02:02:47
How about a compile assert that the size of the ar
mfomitchev
2014/11/14 19:56:27
Done.
|
+ int left = *std::min_element(all_x, all_x + num_elements); |
+ int top = *std::min_element(all_y, all_y + num_elements); |
+ int right = *std::max_element(all_x, all_x + num_elements); |
+ int bottom = *std::max_element(all_y, all_y + num_elements); |
+ |
+ return gfx::Rect(left, top, right - left, bottom - top); |
+} |
+ |
TouchSelectionController* TouchSelectionController::create( |
TouchEditable* client_view) { |
if (g_shared_instance) |