blob: 08d0d921b171106439039de2e348b1aadea7c064 [file] [log] [blame]
// Copyright (c) 2012 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/display/screen.h"
#import <UIKit/UIKit.h>
#include "base/logging.h"
#include "ui/display/display.h"
namespace display {
namespace {
class ScreenIos : public Screen {
gfx::Point GetCursorScreenPoint() override {
NOTIMPLEMENTED();
return gfx::Point(0, 0);
}
bool IsWindowUnderCursor(gfx::NativeWindow window) override {
NOTIMPLEMENTED();
return false;
}
gfx::NativeWindow GetWindowAtScreenPoint(const gfx::Point& point) override {
NOTIMPLEMENTED();
return gfx::NativeWindow();
}
int GetNumDisplays() const override {
#if TARGET_IPHONE_SIMULATOR
// UIScreen does not reliably return correct results on the simulator.
return 1;
#else
return [[UIScreen screens] count];
#endif
}
std::vector<Display> GetAllDisplays() const override {
NOTIMPLEMENTED();
return std::vector<Display>(1, GetPrimaryDisplay());
}
// Returns the display nearest the specified window.
Display GetDisplayNearestWindow(gfx::NativeView view) const override {
NOTIMPLEMENTED();
return Display();
}
// Returns the the display nearest the specified point.
Display GetDisplayNearestPoint(const gfx::Point& point) const override {
NOTIMPLEMENTED();
return Display();
}
// Returns the display that most closely intersects the provided bounds.
Display GetDisplayMatching(const gfx::Rect& match_rect) const override {
NOTIMPLEMENTED();
return Display();
}
// Returns the primary display.
Display GetPrimaryDisplay() const override {
UIScreen* mainScreen = [UIScreen mainScreen];
CHECK(mainScreen);
Display display(0, gfx::Rect(mainScreen.bounds));
display.set_device_scale_factor([mainScreen scale]);
return display;
}
void AddObserver(DisplayObserver* observer) override {
// no display change on iOS.
}
void RemoveObserver(DisplayObserver* observer) override {
// no display change on iOS.
}
};
} // namespace
Screen* CreateNativeScreen() {
return new ScreenIos;
}
} // namespace gfx