Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / ui / gfx / screen_ios.mm
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "ui/gfx/screen.h"
6
7 #import <UIKit/UIKit.h>
8
9 #include "base/logging.h"
10 #include "ui/gfx/display.h"
11
12 namespace {
13
14 class ScreenIos : public gfx::Screen {
15   virtual gfx::Point GetCursorScreenPoint() override {
16     NOTIMPLEMENTED();
17     return gfx::Point(0, 0);
18   }
19
20   virtual gfx::NativeWindow GetWindowUnderCursor() override {
21     NOTIMPLEMENTED();
22     return gfx::NativeWindow();
23   }
24
25   virtual gfx::NativeWindow GetWindowAtScreenPoint(const gfx::Point& point)
26       override {
27     NOTIMPLEMENTED();
28     return gfx::NativeWindow();
29   }
30
31   virtual int GetNumDisplays() const override {
32 #if TARGET_IPHONE_SIMULATOR
33     // UIScreen does not reliably return correct results on the simulator.
34     return 1;
35 #else
36     return [[UIScreen screens] count];
37 #endif
38   }
39
40   virtual std::vector<gfx::Display> GetAllDisplays() const override {
41     NOTIMPLEMENTED();
42     return std::vector<gfx::Display>(1, GetPrimaryDisplay());
43   }
44
45   // Returns the display nearest the specified window.
46   virtual gfx::Display GetDisplayNearestWindow(
47       gfx::NativeView view) const override {
48     NOTIMPLEMENTED();
49     return gfx::Display();
50   }
51
52   // Returns the the display nearest the specified point.
53   virtual gfx::Display GetDisplayNearestPoint(
54       const gfx::Point& point) const override {
55     NOTIMPLEMENTED();
56     return gfx::Display();
57   }
58
59   // Returns the display that most closely intersects the provided bounds.
60   virtual gfx::Display GetDisplayMatching(
61       const gfx::Rect& match_rect) const override {
62     NOTIMPLEMENTED();
63     return gfx::Display();
64   }
65
66   // Returns the primary display.
67   virtual gfx::Display GetPrimaryDisplay() const override {
68     UIScreen* mainScreen = [UIScreen mainScreen];
69     CHECK(mainScreen);
70     gfx::Display display(0, gfx::Rect(mainScreen.bounds));
71     display.set_device_scale_factor([mainScreen scale]);
72     return display;
73   }
74
75   virtual void AddObserver(gfx::DisplayObserver* observer) override {
76     // no display change on iOS.
77   }
78
79   virtual void RemoveObserver(gfx::DisplayObserver* observer) override {
80     // no display change on iOS.
81   }
82 };
83
84 }  // namespace
85
86 namespace gfx {
87
88 Screen* CreateNativeScreen() {
89   return new ScreenIos;
90 }
91
92 }  // namespace gfx