OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/mus/public/cpp/window.h" | 5 #include "components/mus/public/cpp/window.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include <set> | 10 #include <set> |
(...skipping 290 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
301 void Window::Reorder(Window* relative, mojom::OrderDirection direction) { | 301 void Window::Reorder(Window* relative, mojom::OrderDirection direction) { |
302 if (!LocalReorder(relative, direction)) | 302 if (!LocalReorder(relative, direction)) |
303 return; | 303 return; |
304 if (connection_) | 304 if (connection_) |
305 tree_client()->Reorder(this, relative->id(), direction); | 305 tree_client()->Reorder(this, relative->id(), direction); |
306 } | 306 } |
307 | 307 |
308 void Window::MoveToFront() { | 308 void Window::MoveToFront() { |
309 if (!parent_ || parent_->children_.back() == this) | 309 if (!parent_ || parent_->children_.back() == this) |
310 return; | 310 return; |
311 Reorder(parent_->children_.back(), mojom::ORDER_DIRECTION_ABOVE); | 311 Reorder(parent_->children_.back(), mojom::OrderDirection::ABOVE); |
312 } | 312 } |
313 | 313 |
314 void Window::MoveToBack() { | 314 void Window::MoveToBack() { |
315 if (!parent_ || parent_->children_.front() == this) | 315 if (!parent_ || parent_->children_.front() == this) |
316 return; | 316 return; |
317 Reorder(parent_->children_.front(), mojom::ORDER_DIRECTION_BELOW); | 317 Reorder(parent_->children_.front(), mojom::OrderDirection::BELOW); |
318 } | 318 } |
319 | 319 |
320 bool Window::Contains(Window* child) const { | 320 bool Window::Contains(Window* child) const { |
321 if (!child) | 321 if (!child) |
322 return false; | 322 return false; |
323 if (child == this) | 323 if (child == this) |
324 return true; | 324 return true; |
325 if (connection_) | 325 if (connection_) |
326 CHECK_EQ(child->connection(), connection_); | 326 CHECK_EQ(child->connection(), connection_); |
327 for (Window* p = child->parent(); p; p = p->parent()) { | 327 for (Window* p = child->parent(); p; p = p->parent()) { |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
361 return nullptr; | 361 return nullptr; |
362 } | 362 } |
363 | 363 |
364 void Window::SetTextInputState(mojo::TextInputStatePtr state) { | 364 void Window::SetTextInputState(mojo::TextInputStatePtr state) { |
365 if (connection_) | 365 if (connection_) |
366 tree_client()->SetWindowTextInputState(id_, std::move(state)); | 366 tree_client()->SetWindowTextInputState(id_, std::move(state)); |
367 } | 367 } |
368 | 368 |
369 void Window::SetImeVisibility(bool visible, mojo::TextInputStatePtr state) { | 369 void Window::SetImeVisibility(bool visible, mojo::TextInputStatePtr state) { |
370 // SetImeVisibility() shouldn't be used if the window is not editable. | 370 // SetImeVisibility() shouldn't be used if the window is not editable. |
371 DCHECK(state.is_null() || state->type != mojo::TEXT_INPUT_TYPE_NONE); | 371 DCHECK(state.is_null() || state->type != mojo::TextInputType::NONE); |
372 if (connection_) | 372 if (connection_) |
373 tree_client()->SetImeVisibility(id_, visible, std::move(state)); | 373 tree_client()->SetImeVisibility(id_, visible, std::move(state)); |
374 } | 374 } |
375 | 375 |
376 void Window::SetFocus() { | 376 void Window::SetFocus() { |
377 if (connection_ && IsDrawn()) | 377 if (connection_ && IsDrawn()) |
378 tree_client()->SetFocus(this); | 378 tree_client()->SetFocus(this); |
379 } | 379 } |
380 | 380 |
381 bool Window::HasFocus() const { | 381 bool Window::HasFocus() const { |
382 return connection_ && connection_->GetFocusedWindow() == this; | 382 return connection_ && connection_->GetFocusedWindow() == this; |
383 } | 383 } |
384 | 384 |
385 void Window::SetCanFocus(bool can_focus) { | 385 void Window::SetCanFocus(bool can_focus) { |
386 if (connection_) | 386 if (connection_) |
387 tree_client()->SetCanFocus(id_, can_focus); | 387 tree_client()->SetCanFocus(id_, can_focus); |
388 } | 388 } |
389 | 389 |
390 void Window::Embed(mus::mojom::WindowTreeClientPtr client) { | 390 void Window::Embed(mus::mojom::WindowTreeClientPtr client) { |
391 Embed(std::move(client), mus::mojom::WindowTree::ACCESS_POLICY_DEFAULT, | 391 Embed(std::move(client), mus::mojom::WindowTree::kAccessPolicyDefault, |
392 base::Bind(&EmptyEmbedCallback)); | 392 base::Bind(&EmptyEmbedCallback)); |
393 } | 393 } |
394 | 394 |
395 void Window::Embed(mus::mojom::WindowTreeClientPtr client, | 395 void Window::Embed(mus::mojom::WindowTreeClientPtr client, |
396 uint32_t policy_bitmask, | 396 uint32_t policy_bitmask, |
397 const EmbedCallback& callback) { | 397 const EmbedCallback& callback) { |
398 if (PrepareForEmbed()) | 398 if (PrepareForEmbed()) |
399 tree_client()->Embed(id_, std::move(client), policy_bitmask, callback); | 399 tree_client()->Embed(id_, std::move(client), policy_bitmask, callback); |
400 else | 400 else |
401 callback.Run(false, 0); | 401 callback.Run(false, 0); |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
476 | 476 |
477 Window::Window(WindowTreeConnection* connection, Id id) | 477 Window::Window(WindowTreeConnection* connection, Id id) |
478 : connection_(connection), | 478 : connection_(connection), |
479 id_(id), | 479 id_(id), |
480 parent_(nullptr), | 480 parent_(nullptr), |
481 stacking_target_(nullptr), | 481 stacking_target_(nullptr), |
482 transient_parent_(nullptr), | 482 transient_parent_(nullptr), |
483 input_event_handler_(nullptr), | 483 input_event_handler_(nullptr), |
484 viewport_metrics_(CreateEmptyViewportMetrics()), | 484 viewport_metrics_(CreateEmptyViewportMetrics()), |
485 visible_(false), | 485 visible_(false), |
486 cursor_id_(mojom::CURSOR_NULL), | 486 cursor_id_(mojom::Cursor::CURSOR_NULL), |
487 drawn_(false) {} | 487 drawn_(false) {} |
488 | 488 |
489 WindowTreeClientImpl* Window::tree_client() { | 489 WindowTreeClientImpl* Window::tree_client() { |
490 return static_cast<WindowTreeClientImpl*>(connection_); | 490 return static_cast<WindowTreeClientImpl*>(connection_); |
491 } | 491 } |
492 | 492 |
493 void Window::SetSharedPropertyInternal(const std::string& name, | 493 void Window::SetSharedPropertyInternal(const std::string& name, |
494 const std::vector<uint8_t>* value) { | 494 const std::vector<uint8_t>* value) { |
495 if (!OwnsWindowOrIsRoot(this)) | 495 if (!OwnsWindowOrIsRoot(this)) |
496 return; | 496 return; |
(...skipping 287 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
784 window->stacking_target_)) | 784 window->stacking_target_)) |
785 return false; | 785 return false; |
786 | 786 |
787 const size_t child_i = std::find(window->parent_->children_.begin(), | 787 const size_t child_i = std::find(window->parent_->children_.begin(), |
788 window->parent_->children_.end(), window) - | 788 window->parent_->children_.end(), window) - |
789 window->parent_->children_.begin(); | 789 window->parent_->children_.begin(); |
790 const size_t target_i = | 790 const size_t target_i = |
791 std::find(window->parent_->children_.begin(), | 791 std::find(window->parent_->children_.begin(), |
792 window->parent_->children_.end(), relative) - | 792 window->parent_->children_.end(), relative) - |
793 window->parent_->children_.begin(); | 793 window->parent_->children_.begin(); |
794 if ((direction == mojom::ORDER_DIRECTION_ABOVE && child_i == target_i + 1) || | 794 if ((direction == mojom::OrderDirection::ABOVE && child_i == target_i + 1) || |
795 (direction == mojom::ORDER_DIRECTION_BELOW && child_i + 1 == target_i)) { | 795 (direction == mojom::OrderDirection::BELOW && child_i + 1 == target_i)) { |
796 return false; | 796 return false; |
797 } | 797 } |
798 | 798 |
799 if (notifier) | 799 if (notifier) |
800 notifier->NotifyWindowReordering(); | 800 notifier->NotifyWindowReordering(); |
801 | 801 |
802 const size_t dest_i = direction == mojom::ORDER_DIRECTION_ABOVE | 802 const size_t dest_i = direction == mojom::OrderDirection::ABOVE |
803 ? (child_i < target_i ? target_i : target_i + 1) | 803 ? (child_i < target_i ? target_i : target_i + 1) |
804 : (child_i < target_i ? target_i - 1 : target_i); | 804 : (child_i < target_i ? target_i - 1 : target_i); |
805 window->parent_->children_.erase(window->parent_->children_.begin() + | 805 window->parent_->children_.erase(window->parent_->children_.begin() + |
806 child_i); | 806 child_i); |
807 window->parent_->children_.insert(window->parent_->children_.begin() + dest_i, | 807 window->parent_->children_.insert(window->parent_->children_.begin() + dest_i, |
808 window); | 808 window); |
809 | 809 |
810 window->NotifyWindowStackingChanged(); | 810 window->NotifyWindowStackingChanged(); |
811 | 811 |
812 if (notifier) | 812 if (notifier) |
813 notifier->NotifyWindowReordered(); | 813 notifier->NotifyWindowReordered(); |
814 | 814 |
815 return true; | 815 return true; |
816 } | 816 } |
817 | 817 |
818 // static | 818 // static |
819 Window** Window::GetStackingTarget(Window* window) { | 819 Window** Window::GetStackingTarget(Window* window) { |
820 return &window->stacking_target_; | 820 return &window->stacking_target_; |
821 } | 821 } |
822 } // namespace mus | 822 } // namespace mus |
OLD | NEW |