Home | History | Annotate | Download | only in android
      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 
     14 namespace gfx {
     15 
     16 // Facilitates access to device information typically only
     17 // available using the Android SDK, including Display properties.
     18 class 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