12a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// found in the LICENSE file. 42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef UI_GFX_ANDROID_DEVICE_DISPLAY_INFO_H_ 62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define UI_GFX_ANDROID_DEVICE_DISPLAY_INFO_H_ 72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include <jni.h> 92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include <string> 102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/basictypes.h" 1258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#include "ui/gfx/gfx_export.h" 132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace gfx { 152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Facilitates access to device information typically only 172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// available using the Android SDK, including Display properties. 184e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)class GFX_EXPORT DeviceDisplayInfo { 192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public: 202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) DeviceDisplayInfo(); 212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ~DeviceDisplayInfo(); 222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Returns display height in physical pixels. 242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int GetDisplayHeight(); 252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Returns display width in physical pixels. 272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int GetDisplayWidth(); 282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 295d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // Returns real display height in physical pixels. 305d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // This version does not subtract window decorations etc. 315d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // WARNING: This is only supported on JB-MR1 (sdk >= 17). Either 325d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // check the SDK-level, or check for '0' being returned. 335d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) int GetPhysicalDisplayHeight(); 345d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 355d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // Returns real display width in physical pixels. 365d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // This version does not subtract window decorations etc. 375d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // WARNING: This is only supported on JB-MR1 (sdk >= 17). Either 385d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // check the SDK-level, or check for '0' being returned. 395d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) int GetPhysicalDisplayWidth(); 405d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Returns number of bits per pixel. 422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int GetBitsPerPixel(); 432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Returns number of bits per component. 452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int GetBitsPerComponent(); 462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Returns a scaling factor for Density Independent Pixel unit 482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // (1.0 is 160dpi, 0.75 is 120dpi, 2.0 is 320dpi). 492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) double GetDIPScale(); 502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 518bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) // Smallest possible screen size in density-independent pixels. 528bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) int GetSmallestDIPWidth(); 538bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 540529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch // Returns the display rotation angle from its natural orientation. Expected 550529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch // values are one of { 0, 90, 180, 270 }. 560529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch // See DeviceDispayInfo.java for more information. 570529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch int GetRotationDegrees(); 580529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch 592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) private: 602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(DeviceDisplayInfo); 612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}; 622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} // namespace gfx 642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif // UI_GFX_ANDROID_DEVICE_DISPLAY_INFO_H_ 66