| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "components/view_manager/gesture_manager.h" | 5 #include "components/mus/gesture_manager.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "components/view_manager/gesture_manager_delegate.h" | 9 #include "components/mus/gesture_manager_delegate.h" |
| 10 #include "components/view_manager/public/cpp/keys.h" | 10 #include "components/mus/public/cpp/keys.h" |
| 11 #include "components/view_manager/server_view.h" | 11 #include "components/mus/server_view.h" |
| 12 #include "components/view_manager/view_coordinate_conversions.h" | 12 #include "components/mus/view_coordinate_conversions.h" |
| 13 #include "components/view_manager/view_locator.h" | 13 #include "components/mus/view_locator.h" |
| 14 #include "ui/gfx/geometry/point_f.h" | 14 #include "ui/gfx/geometry/point_f.h" |
| 15 #include "ui/mojo/events/input_events.mojom.h" | 15 #include "ui/mojo/events/input_events.mojom.h" |
| 16 | 16 |
| 17 namespace view_manager { | 17 namespace view_manager { |
| 18 | 18 |
| 19 using Views = std::vector<const ServerView*>; | 19 using Views = std::vector<const ServerView*>; |
| 20 | 20 |
| 21 namespace { | 21 namespace { |
| 22 | 22 |
| 23 GestureManager::GestureAndConnectionId MakeGestureAndConnectionId( | 23 GestureManager::GestureAndConnectionId MakeGestureAndConnectionId( |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 61 result->pointer_data->x = target_location.x(); | 61 result->pointer_data->x = target_location.x(); |
| 62 result->pointer_data->y = target_location.y(); | 62 result->pointer_data->y = target_location.y(); |
| 63 return result.Pass(); | 63 return result.Pass(); |
| 64 } | 64 } |
| 65 | 65 |
| 66 } // namespace | 66 } // namespace |
| 67 | 67 |
| 68 // GestureStateChange ---------------------------------------------------------- | 68 // GestureStateChange ---------------------------------------------------------- |
| 69 | 69 |
| 70 GestureStateChange::GestureStateChange() | 70 GestureStateChange::GestureStateChange() |
| 71 : chosen_gesture(GestureManager::kInvalidGestureId) { | 71 : chosen_gesture(GestureManager::kInvalidGestureId) {} |
| 72 } | |
| 73 | 72 |
| 74 GestureStateChange::~GestureStateChange() { | 73 GestureStateChange::~GestureStateChange() {} |
| 75 } | |
| 76 | 74 |
| 77 // ViewIterator ---------------------------------------------------------------- | 75 // ViewIterator ---------------------------------------------------------------- |
| 78 | 76 |
| 79 // Used to iterate over a set of views. | 77 // Used to iterate over a set of views. |
| 80 class ViewIterator { | 78 class ViewIterator { |
| 81 public: | 79 public: |
| 82 explicit ViewIterator(const Views& views) | 80 explicit ViewIterator(const Views& views) |
| 83 : views_(views), current_(views_.begin()) {} | 81 : views_(views), current_(views_.begin()) {} |
| 84 | 82 |
| 85 // Advances to the next view. Returns true if there are no more views (at | 83 // Advances to the next view. Returns true if there are no more views (at |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 160 } | 158 } |
| 161 | 159 |
| 162 private: | 160 private: |
| 163 const uint32_t id_; | 161 const uint32_t id_; |
| 164 State state_; | 162 State state_; |
| 165 std::set<PointerAndView> pointers_and_views_; | 163 std::set<PointerAndView> pointers_and_views_; |
| 166 | 164 |
| 167 DISALLOW_COPY_AND_ASSIGN(Gesture); | 165 DISALLOW_COPY_AND_ASSIGN(Gesture); |
| 168 }; | 166 }; |
| 169 | 167 |
| 170 GestureManager::Gesture::Gesture(uint32_t id) : id_(id), state_(STATE_INITIAL) { | 168 GestureManager::Gesture::Gesture(uint32_t id) |
| 171 } | 169 : id_(id), state_(STATE_INITIAL) {} |
| 172 | 170 |
| 173 GestureManager::Gesture::~Gesture() { | 171 GestureManager::Gesture::~Gesture() {} |
| 174 } | |
| 175 | 172 |
| 176 void GestureManager::Gesture::Attach(Pointer* pointer, const ServerView* view) { | 173 void GestureManager::Gesture::Attach(Pointer* pointer, const ServerView* view) { |
| 177 pointers_and_views_.insert(PointerAndView(pointer, view)); | 174 pointers_and_views_.insert(PointerAndView(pointer, view)); |
| 178 } | 175 } |
| 179 | 176 |
| 180 void GestureManager::Gesture::Detach(Pointer* pointer, const ServerView* view) { | 177 void GestureManager::Gesture::Detach(Pointer* pointer, const ServerView* view) { |
| 181 pointers_and_views_.erase(PointerAndView(pointer, view)); | 178 pointers_and_views_.erase(PointerAndView(pointer, view)); |
| 182 } | 179 } |
| 183 | 180 |
| 184 // Pointer --------------------------------------------------------------------- | 181 // Pointer --------------------------------------------------------------------- |
| (...skipping 316 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 501 | 498 |
| 502 private: | 499 private: |
| 503 GestureManager* manager_; | 500 GestureManager* manager_; |
| 504 | 501 |
| 505 DISALLOW_COPY_AND_ASSIGN(ScheduledDeleteProcessor); | 502 DISALLOW_COPY_AND_ASSIGN(ScheduledDeleteProcessor); |
| 506 }; | 503 }; |
| 507 | 504 |
| 508 // PointerAndView -------------------------------------------------------------- | 505 // PointerAndView -------------------------------------------------------------- |
| 509 | 506 |
| 510 GestureManager::PointerAndView::PointerAndView() | 507 GestureManager::PointerAndView::PointerAndView() |
| 511 : pointer(nullptr), view(nullptr) { | 508 : pointer(nullptr), view(nullptr) {} |
| 512 } | |
| 513 | 509 |
| 514 GestureManager::PointerAndView::PointerAndView(Pointer* pointer, | 510 GestureManager::PointerAndView::PointerAndView(Pointer* pointer, |
| 515 const ServerView* view) | 511 const ServerView* view) |
| 516 : pointer(pointer), view(view) { | 512 : pointer(pointer), view(view) {} |
| 517 } | |
| 518 | 513 |
| 519 bool GestureManager::PointerAndView::operator<( | 514 bool GestureManager::PointerAndView::operator<( |
| 520 const PointerAndView& other) const { | 515 const PointerAndView& other) const { |
| 521 if (other.pointer->pointer_id() == pointer->pointer_id()) | 516 if (other.pointer->pointer_id() == pointer->pointer_id()) |
| 522 return view->id().connection_id < other.view->id().connection_id; | 517 return view->id().connection_id < other.view->id().connection_id; |
| 523 return pointer->pointer_id() < other.pointer->pointer_id(); | 518 return pointer->pointer_id() < other.pointer->pointer_id(); |
| 524 } | 519 } |
| 525 | 520 |
| 526 // GestureManager -------------------------------------------------------------- | 521 // GestureManager -------------------------------------------------------------- |
| 527 | 522 |
| 528 // static | 523 // static |
| 529 const uint32_t GestureManager::kInvalidGestureId = 0u; | 524 const uint32_t GestureManager::kInvalidGestureId = 0u; |
| 530 | 525 |
| 531 GestureManager::GestureManager(GestureManagerDelegate* delegate, | 526 GestureManager::GestureManager(GestureManagerDelegate* delegate, |
| 532 const ServerView* root) | 527 const ServerView* root) |
| 533 : delegate_(delegate), root_view_(root) { | 528 : delegate_(delegate), root_view_(root) {} |
| 534 } | |
| 535 | 529 |
| 536 GestureManager::~GestureManager() { | 530 GestureManager::~GestureManager() { |
| 537 // Explicitly delete the pointers first as this may result in calling back to | 531 // Explicitly delete the pointers first as this may result in calling back to |
| 538 // us to cleanup and delete gestures. | 532 // us to cleanup and delete gestures. |
| 539 active_pointers_.clear(); | 533 active_pointers_.clear(); |
| 540 } | 534 } |
| 541 | 535 |
| 542 bool GestureManager::ProcessEvent(const mojo::Event& event) { | 536 bool GestureManager::ProcessEvent(const mojo::Event& event) { |
| 543 if (!event.pointer_data) | 537 if (!event.pointer_data) |
| 544 return false; | 538 return false; |
| (...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 692 void GestureManager::ScheduleDelete(Pointer* pointer) { | 686 void GestureManager::ScheduleDelete(Pointer* pointer) { |
| 693 auto iter = | 687 auto iter = |
| 694 std::find(active_pointers_.begin(), active_pointers_.end(), pointer); | 688 std::find(active_pointers_.begin(), active_pointers_.end(), pointer); |
| 695 if (iter != active_pointers_.end()) { | 689 if (iter != active_pointers_.end()) { |
| 696 active_pointers_.weak_erase(iter); | 690 active_pointers_.weak_erase(iter); |
| 697 pointers_to_delete_.push_back(pointer); | 691 pointers_to_delete_.push_back(pointer); |
| 698 } | 692 } |
| 699 } | 693 } |
| 700 | 694 |
| 701 } // namespace view_manager | 695 } // namespace view_manager |
| OLD | NEW |