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/android/scoped_java_ref.h"
     12 #include "base/basictypes.h"
     13 #include "ui/base/ui_export.h"
     14 
     15 namespace gfx {
     16 
     17 // Facilitates access to device information typically only
     18 // available using the Android SDK, including Display properties.
     19 class UI_EXPORT DeviceDisplayInfo {
     20  public:
     21   DeviceDisplayInfo();
     22   ~DeviceDisplayInfo();
     23 
     24   // Returns display height in physical pixels.
     25   int GetDisplayHeight();
     26 
     27   // Returns display width in physical pixels.
     28   int GetDisplayWidth();
     29 
     30   // Returns number of bits per pixel.
     31   int GetBitsPerPixel();
     32 
     33   // Returns number of bits per component.
     34   int GetBitsPerComponent();
     35 
     36   // Returns a scaling factor for Density Independent Pixel unit
     37   // (1.0 is 160dpi, 0.75 is 120dpi, 2.0 is 320dpi).
     38   double GetDIPScale();
     39 
     40   // Registers methods with JNI and returns true if succeeded.
     41   static bool RegisterDeviceDisplayInfo(JNIEnv* env);
     42 
     43  private:
     44   base::android::ScopedJavaGlobalRef<jobject> j_device_info_;
     45 
     46   DISALLOW_COPY_AND_ASSIGN(DeviceDisplayInfo);
     47 };
     48 
     49 }  // namespace gfx
     50 
     51 #endif  // UI_GFX_ANDROID_DEVICE_DISPLAY_INFO_H_
     52