Chromium Code Reviews| 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) |