| Index: ui/views/mus/screen_mus.cc
|
| diff --git a/ui/views/mus/screen_mus.cc b/ui/views/mus/screen_mus.cc
|
| deleted file mode 100644
|
| index 2a0234905120ea293ec0375ee1066afaa94c9868..0000000000000000000000000000000000000000
|
| --- a/ui/views/mus/screen_mus.cc
|
| +++ /dev/null
|
| @@ -1,203 +0,0 @@
|
| -// Copyright 2016 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "ui/views/mus/screen_mus.h"
|
| -
|
| -#include "mojo/converters/geometry/geometry_type_converters.h"
|
| -#include "mojo/shell/public/cpp/application_connection.h"
|
| -#include "mojo/shell/public/cpp/application_impl.h"
|
| -#include "ui/gfx/display_finder.h"
|
| -#include "ui/gfx/display_observer.h"
|
| -
|
| -namespace mojo {
|
| -
|
| -template <>
|
| -struct TypeConverter<gfx::Display, mus::mojom::DisplayPtr> {
|
| - static gfx::Display Convert(const mus::mojom::DisplayPtr& input) {
|
| - gfx::Display result(input->id, input->bounds.To<gfx::Rect>());
|
| - result.set_work_area(input->work_area.To<gfx::Rect>());
|
| - result.set_device_scale_factor(input->device_pixel_ratio);
|
| - switch (input->rotation) {
|
| - case mus::mojom::Rotation::VALUE_0:
|
| - result.set_rotation(gfx::Display::ROTATE_0);
|
| - break;
|
| - case mus::mojom::Rotation::VALUE_90:
|
| - result.set_rotation(gfx::Display::ROTATE_90);
|
| - break;
|
| - case mus::mojom::Rotation::VALUE_180:
|
| - result.set_rotation(gfx::Display::ROTATE_180);
|
| - break;
|
| - case mus::mojom::Rotation::VALUE_270:
|
| - result.set_rotation(gfx::Display::ROTATE_270);
|
| - break;
|
| - }
|
| - switch (input->touch_support) {
|
| - case mus::mojom::TouchSupport::UNKNOWN:
|
| - result.set_touch_support(gfx::Display::TOUCH_SUPPORT_UNKNOWN);
|
| - break;
|
| - case mus::mojom::TouchSupport::AVAILABLE:
|
| - result.set_touch_support(gfx::Display::TOUCH_SUPPORT_AVAILABLE);
|
| - break;
|
| - case mus::mojom::TouchSupport::UNAVAILABLE:
|
| - result.set_touch_support(gfx::Display::TOUCH_SUPPORT_UNAVAILABLE);
|
| - break;
|
| - }
|
| - return result;
|
| - }
|
| -};
|
| -
|
| -} // namespace mojo
|
| -
|
| -namespace views {
|
| -
|
| -ScreenMus::ScreenMus()
|
| - : primary_display_index_(0), display_manager_observer_binding_(this) {}
|
| -
|
| -ScreenMus::~ScreenMus() {}
|
| -
|
| -void ScreenMus::Init(mojo::ApplicationImpl* app) {
|
| - gfx::Screen::SetScreenInstance(gfx::SCREEN_TYPE_NATIVE, this);
|
| -
|
| - app->ConnectToService("mojo:mus", &display_manager_);
|
| -
|
| - display_manager_->AddObserver(
|
| - display_manager_observer_binding_.CreateInterfacePtrAndBind());
|
| - // We need the set of displays before we can continue. Wait for it.
|
| - display_manager_observer_binding_.WaitForIncomingMethodCall();
|
| -
|
| - // The WaitForIncomingMethodCall() should have supplied the set of Displays.
|
| - DCHECK(displays_.size());
|
| -}
|
| -
|
| -int ScreenMus::FindDisplayIndexById(int64_t id) const {
|
| - for (size_t i = 0; i < displays_.size(); ++i) {
|
| - if (displays_[i].id() == id)
|
| - return static_cast<int>(i);
|
| - }
|
| - return -1;
|
| -}
|
| -
|
| -void ScreenMus::ProcessDisplayChanged(const gfx::Display& changed_display,
|
| - bool is_primary) {
|
| - const int display_index = FindDisplayIndexById(changed_display.id());
|
| - if (display_index == -1) {
|
| - displays_.push_back(changed_display);
|
| - if (is_primary)
|
| - primary_display_index_ = static_cast<int>(displays_.size()) - 1;
|
| - FOR_EACH_OBSERVER(gfx::DisplayObserver, observers_,
|
| - OnDisplayAdded(changed_display));
|
| - return;
|
| - }
|
| -
|
| - gfx::Display* local_display = &displays_[display_index];
|
| - uint32_t changed_values = 0;
|
| - if (is_primary && display_index != primary_display_index_) {
|
| - primary_display_index_ = display_index;
|
| - // ash::DisplayManager only notifies for the Display gaining primary, not
|
| - // the one losing it.
|
| - changed_values |= gfx::DisplayObserver::DISPLAY_METRIC_PRIMARY;
|
| - }
|
| - if (local_display->bounds() != changed_display.bounds()) {
|
| - local_display->set_bounds(changed_display.bounds());
|
| - changed_values |= gfx::DisplayObserver::DISPLAY_METRIC_BOUNDS;
|
| - }
|
| - if (local_display->work_area() != changed_display.work_area()) {
|
| - local_display->set_work_area(changed_display.work_area());
|
| - changed_values |= gfx::DisplayObserver::DISPLAY_METRIC_WORK_AREA;
|
| - }
|
| - if (local_display->rotation() != changed_display.rotation()) {
|
| - local_display->set_rotation(changed_display.rotation());
|
| - changed_values |= gfx::DisplayObserver::DISPLAY_METRIC_ROTATION;
|
| - }
|
| - if (local_display->device_scale_factor() !=
|
| - changed_display.device_scale_factor()) {
|
| - local_display->set_device_scale_factor(
|
| - changed_display.device_scale_factor());
|
| - changed_values |= gfx::DisplayObserver::DISPLAY_METRIC_DEVICE_SCALE_FACTOR;
|
| - }
|
| - FOR_EACH_OBSERVER(gfx::DisplayObserver, observers_,
|
| - OnDisplayMetricsChanged(*local_display, changed_values));
|
| -}
|
| -
|
| -gfx::Point ScreenMus::GetCursorScreenPoint() {
|
| - NOTIMPLEMENTED();
|
| - return gfx::Point();
|
| -}
|
| -
|
| -gfx::NativeWindow ScreenMus::GetWindowUnderCursor() {
|
| - NOTIMPLEMENTED();
|
| - return nullptr;
|
| -}
|
| -
|
| -gfx::NativeWindow ScreenMus::GetWindowAtScreenPoint(const gfx::Point& point) {
|
| - NOTIMPLEMENTED();
|
| - return nullptr;
|
| -}
|
| -
|
| -gfx::Display ScreenMus::GetPrimaryDisplay() const {
|
| - return displays_[primary_display_index_];
|
| -}
|
| -
|
| -gfx::Display ScreenMus::GetDisplayNearestWindow(gfx::NativeView view) const {
|
| - NOTIMPLEMENTED();
|
| - return GetPrimaryDisplay();
|
| -}
|
| -
|
| -gfx::Display ScreenMus::GetDisplayNearestPoint(const gfx::Point& point) const {
|
| - return *gfx::FindDisplayNearestPoint(displays_, point);
|
| -}
|
| -
|
| -int ScreenMus::GetNumDisplays() const {
|
| - return static_cast<int>(displays_.size());
|
| -}
|
| -
|
| -std::vector<gfx::Display> ScreenMus::GetAllDisplays() const {
|
| - return displays_;
|
| -}
|
| -
|
| -gfx::Display ScreenMus::GetDisplayMatching(const gfx::Rect& match_rect) const {
|
| - const gfx::Display* match =
|
| - gfx::FindDisplayWithBiggestIntersection(displays_, match_rect);
|
| - return match ? *match : GetPrimaryDisplay();
|
| -}
|
| -
|
| -void ScreenMus::AddObserver(gfx::DisplayObserver* observer) {
|
| - observers_.AddObserver(observer);
|
| -}
|
| -
|
| -void ScreenMus::RemoveObserver(gfx::DisplayObserver* observer) {
|
| - observers_.RemoveObserver(observer);
|
| -}
|
| -
|
| -void ScreenMus::OnDisplays(mojo::Array<mus::mojom::DisplayPtr> displays) {
|
| - // This should only be called once from Init() before any observers have been
|
| - // added.
|
| - DCHECK(displays_.empty());
|
| - displays_ = displays.To<std::vector<gfx::Display>>();
|
| - for (size_t i = 0; i < displays.size(); ++i) {
|
| - if (displays[i]->is_primary)
|
| - primary_display_index_ = static_cast<int>(i);
|
| - }
|
| -}
|
| -
|
| -void ScreenMus::OnDisplaysChanged(
|
| - mojo::Array<mus::mojom::DisplayPtr> transport_displays) {
|
| - for (size_t i = 0; i < transport_displays.size(); ++i) {
|
| - const bool is_primary = transport_displays[i]->is_primary;
|
| - ProcessDisplayChanged(transport_displays[i].To<gfx::Display>(), is_primary);
|
| - }
|
| -}
|
| -
|
| -void ScreenMus::OnDisplayRemoved(int64_t id) {
|
| - const int index = FindDisplayIndexById(id);
|
| - DCHECK_NE(-1, index);
|
| - // Another display must become primary before the existing primary is
|
| - // removed.
|
| - DCHECK_NE(index, primary_display_index_);
|
| - const gfx::Display display = displays_[index];
|
| - FOR_EACH_OBSERVER(gfx::DisplayObserver, observers_,
|
| - OnDisplayRemoved(display));
|
| -}
|
| -
|
| -} // namespace views
|
|
|