device_display_info.h revision 0529e5d033099cbfc42635f6f6183833b09dff6e
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#ifndef UI_GFX_ANDROID_DEVICE_DISPLAY_INFO_H_
6#define UI_GFX_ANDROID_DEVICE_DISPLAY_INFO_H_
7
8#include <jni.h>
9#include <string>
10
11#include "base/basictypes.h"
12#include "ui/gfx/gfx_export.h"
13
14namespace gfx {
15
16// Facilitates access to device information typically only
17// available using the Android SDK, including Display properties.
18class GFX_EXPORT DeviceDisplayInfo {
19 public:
20  DeviceDisplayInfo();
21  ~DeviceDisplayInfo();
22
23  // Returns display height in physical pixels.
24  int GetDisplayHeight();
25
26  // Returns display width in physical pixels.
27  int GetDisplayWidth();
28
29  // Returns real display height in physical pixels.
30  // This version does not subtract window decorations etc.
31  // WARNING: This is only supported on JB-MR1 (sdk >= 17). Either
32  //          check the SDK-level, or check for '0' being returned.
33  int GetPhysicalDisplayHeight();
34
35  // Returns real display width in physical pixels.
36  // This version does not subtract window decorations etc.
37  // WARNING: This is only supported on JB-MR1 (sdk >= 17). Either
38  //          check the SDK-level, or check for '0' being returned.
39  int GetPhysicalDisplayWidth();
40
41  // Returns number of bits per pixel.
42  int GetBitsPerPixel();
43
44  // Returns number of bits per component.
45  int GetBitsPerComponent();
46
47  // Returns a scaling factor for Density Independent Pixel unit
48  // (1.0 is 160dpi, 0.75 is 120dpi, 2.0 is 320dpi).
49  double GetDIPScale();
50
51  // Smallest possible screen size in density-independent pixels.
52  int GetSmallestDIPWidth();
53
54  // Returns the display rotation angle from its natural orientation. Expected
55  // values are one of { 0, 90, 180, 270 }.
56  // See DeviceDispayInfo.java for more information.
57  int GetRotationDegrees();
58
59 private:
60  DISALLOW_COPY_AND_ASSIGN(DeviceDisplayInfo);
61};
62
63}  // namespace gfx
64
65#endif  // UI_GFX_ANDROID_DEVICE_DISPLAY_INFO_H_
66