| 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..f3c4c243a90d8fdc9ec4688980efb90c6b0ae3c8 100644
|
| --- a/ui/base/touch/touch_editing_controller.cc
|
| +++ b/ui/base/touch/touch_editing_controller.cc
|
| @@ -9,6 +9,45 @@
|
| 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 = arraysize(all_x);
|
| + COMPILE_ASSERT(arraysize(all_y) == num_elements, array_size_mismatch);
|
| +
|
| + 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) {
|
|
|