screen_mojo.cc revision 010d83a9304c5a91596085d917d248abff47903a
1d2d19ea51fa3575a8d014a69a9b835c335728817Christoph Bumiller// Copyright (c) 2014 The Chromium Authors. All rights reserved.
2d2d19ea51fa3575a8d014a69a9b835c335728817Christoph Bumiller// Use of this source code is governed by a BSD-style license that can be
3d2d19ea51fa3575a8d014a69a9b835c335728817Christoph Bumiller// found in the LICENSE file.
4d2d19ea51fa3575a8d014a69a9b835c335728817Christoph Bumiller
5d2d19ea51fa3575a8d014a69a9b835c335728817Christoph Bumiller#include "mojo/aura/screen_mojo.h"
6d2d19ea51fa3575a8d014a69a9b835c335728817Christoph Bumiller
7d2d19ea51fa3575a8d014a69a9b835c335728817Christoph Bumiller#include "ui/gfx/native_widget_types.h"
8d2d19ea51fa3575a8d014a69a9b835c335728817Christoph Bumiller#include "ui/gfx/rect_conversions.h"
9d2d19ea51fa3575a8d014a69a9b835c335728817Christoph Bumiller
10d2d19ea51fa3575a8d014a69a9b835c335728817Christoph Bumillernamespace mojo {
11d2d19ea51fa3575a8d014a69a9b835c335728817Christoph Bumiller
12d2d19ea51fa3575a8d014a69a9b835c335728817Christoph Bumiller// static
13d2d19ea51fa3575a8d014a69a9b835c335728817Christoph BumillerScreenMojo* ScreenMojo::Create() {
14d2d19ea51fa3575a8d014a69a9b835c335728817Christoph Bumiller  return new ScreenMojo(gfx::Rect(0, 0, 800, 600));
15d2d19ea51fa3575a8d014a69a9b835c335728817Christoph Bumiller}
16d2d19ea51fa3575a8d014a69a9b835c335728817Christoph Bumiller
17d2d19ea51fa3575a8d014a69a9b835c335728817Christoph BumillerScreenMojo::~ScreenMojo() {
18d2d19ea51fa3575a8d014a69a9b835c335728817Christoph Bumiller}
19d2d19ea51fa3575a8d014a69a9b835c335728817Christoph Bumiller
20d2d19ea51fa3575a8d014a69a9b835c335728817Christoph Bumillerbool ScreenMojo::IsDIPEnabled() {
21d2d19ea51fa3575a8d014a69a9b835c335728817Christoph Bumiller  NOTIMPLEMENTED();
2257594065c30feec9376be9b2132659f7d87362eeChristoph Bumiller  return true;
2357594065c30feec9376be9b2132659f7d87362eeChristoph Bumiller}
2457594065c30feec9376be9b2132659f7d87362eeChristoph Bumiller
2557594065c30feec9376be9b2132659f7d87362eeChristoph Bumillergfx::Point ScreenMojo::GetCursorScreenPoint() {
2657594065c30feec9376be9b2132659f7d87362eeChristoph Bumiller  NOTIMPLEMENTED();
2757594065c30feec9376be9b2132659f7d87362eeChristoph Bumiller  return gfx::Point();
2857594065c30feec9376be9b2132659f7d87362eeChristoph Bumiller}
2957594065c30feec9376be9b2132659f7d87362eeChristoph Bumiller
3057594065c30feec9376be9b2132659f7d87362eeChristoph Bumillergfx::NativeWindow ScreenMojo::GetWindowUnderCursor() {
3157594065c30feec9376be9b2132659f7d87362eeChristoph Bumiller  return GetWindowAtScreenPoint(GetCursorScreenPoint());
3256d40aa51b34b77791cc3a49d7e86473a7459b72Francisco Jerez}
3357594065c30feec9376be9b2132659f7d87362eeChristoph Bumiller
3457594065c30feec9376be9b2132659f7d87362eeChristoph Bumillergfx::NativeWindow ScreenMojo::GetWindowAtScreenPoint(const gfx::Point& point) {
3557594065c30feec9376be9b2132659f7d87362eeChristoph Bumiller  NOTIMPLEMENTED();
3657594065c30feec9376be9b2132659f7d87362eeChristoph Bumiller  return NULL;
3757594065c30feec9376be9b2132659f7d87362eeChristoph Bumiller}
3857594065c30feec9376be9b2132659f7d87362eeChristoph Bumiller
3957594065c30feec9376be9b2132659f7d87362eeChristoph Bumillerint ScreenMojo::GetNumDisplays() const {
4057594065c30feec9376be9b2132659f7d87362eeChristoph Bumiller  return 1;
4157594065c30feec9376be9b2132659f7d87362eeChristoph Bumiller}
4257594065c30feec9376be9b2132659f7d87362eeChristoph Bumiller
4357594065c30feec9376be9b2132659f7d87362eeChristoph Bumillerstd::vector<gfx::Display> ScreenMojo::GetAllDisplays() const {
4457594065c30feec9376be9b2132659f7d87362eeChristoph Bumiller  return std::vector<gfx::Display>(1, display_);
4557594065c30feec9376be9b2132659f7d87362eeChristoph Bumiller}
4657594065c30feec9376be9b2132659f7d87362eeChristoph Bumiller
4757594065c30feec9376be9b2132659f7d87362eeChristoph Bumillergfx::Display ScreenMojo::GetDisplayNearestWindow(
4856cf2da02226aee6b7476675c0e05ac7c218756eChristoph Bumiller    gfx::NativeWindow window) const {
49322bc7ed68ed92233c97168c036d0aa50c11a20eChristoph Bumiller  return display_;
50322bc7ed68ed92233c97168c036d0aa50c11a20eChristoph Bumiller}
5157594065c30feec9376be9b2132659f7d87362eeChristoph Bumiller
5257594065c30feec9376be9b2132659f7d87362eeChristoph Bumillergfx::Display ScreenMojo::GetDisplayNearestPoint(const gfx::Point& point) const {
5357594065c30feec9376be9b2132659f7d87362eeChristoph Bumiller  return display_;
5457594065c30feec9376be9b2132659f7d87362eeChristoph Bumiller}
5557594065c30feec9376be9b2132659f7d87362eeChristoph Bumiller
5657594065c30feec9376be9b2132659f7d87362eeChristoph Bumillergfx::Display ScreenMojo::GetDisplayMatching(const gfx::Rect& match_rect) const {
5757594065c30feec9376be9b2132659f7d87362eeChristoph Bumiller  return display_;
5857594065c30feec9376be9b2132659f7d87362eeChristoph Bumiller}
5957594065c30feec9376be9b2132659f7d87362eeChristoph Bumiller
6057594065c30feec9376be9b2132659f7d87362eeChristoph Bumillergfx::Display ScreenMojo::GetPrimaryDisplay() const {
6157594065c30feec9376be9b2132659f7d87362eeChristoph Bumiller  return display_;
6257594065c30feec9376be9b2132659f7d87362eeChristoph Bumiller}
6357594065c30feec9376be9b2132659f7d87362eeChristoph Bumiller
6457594065c30feec9376be9b2132659f7d87362eeChristoph Bumillervoid ScreenMojo::AddObserver(gfx::DisplayObserver* observer) {
6557594065c30feec9376be9b2132659f7d87362eeChristoph Bumiller}
6657594065c30feec9376be9b2132659f7d87362eeChristoph Bumiller
6757594065c30feec9376be9b2132659f7d87362eeChristoph Bumillervoid ScreenMojo::RemoveObserver(gfx::DisplayObserver* observer) {
6852c8c52b222e1fdb4c1f4ca3dedde9cd7b9c321fChristoph Bumiller}
6957594065c30feec9376be9b2132659f7d87362eeChristoph Bumiller
7057594065c30feec9376be9b2132659f7d87362eeChristoph BumillerScreenMojo::ScreenMojo(const gfx::Rect& screen_bounds) {
7157594065c30feec9376be9b2132659f7d87362eeChristoph Bumiller  static int64 synthesized_display_id = 2000;
7257594065c30feec9376be9b2132659f7d87362eeChristoph Bumiller  display_.set_id(synthesized_display_id++);
73bb0482a55bbebfdd4b06954fbfacf5a57a04b1f3Christoph Bumiller  display_.SetScaleAndBounds(1.0f, screen_bounds);
74bb0482a55bbebfdd4b06954fbfacf5a57a04b1f3Christoph Bumiller}
75bb0482a55bbebfdd4b06954fbfacf5a57a04b1f3Christoph Bumiller
7657594065c30feec9376be9b2132659f7d87362eeChristoph Bumiller}  // namespace mojo
7757594065c30feec9376be9b2132659f7d87362eeChristoph Bumiller