| Index: ui/gfx/dpi_win.cc
|
| diff --git a/ui/gfx/dpi_win.cc b/ui/gfx/dpi_win.cc
|
| deleted file mode 100644
|
| index 51972d26727978bc7362890d658d53064aac3d5f..0000000000000000000000000000000000000000
|
| --- a/ui/gfx/dpi_win.cc
|
| +++ /dev/null
|
| @@ -1,175 +0,0 @@
|
| -// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "ui/gfx/dpi_win.h"
|
| -
|
| -#include <windows.h>
|
| -#include "base/command_line.h"
|
| -#include "base/win/scoped_hdc.h"
|
| -#include "base/win/windows_version.h"
|
| -#include "ui/base/layout.h"
|
| -#include "base/win/registry.h"
|
| -#include "ui/gfx/display.h"
|
| -#include "ui/gfx/switches.h"
|
| -#include "ui/gfx/point_conversions.h"
|
| -#include "ui/gfx/rect_conversions.h"
|
| -#include "ui/gfx/size_conversions.h"
|
| -
|
| -namespace {
|
| -
|
| -int kDefaultDPIX = 96;
|
| -int kDefaultDPIY = 96;
|
| -
|
| -// Tests to see if the command line flag "--high-dpi-support" is set.
|
| -bool IsHighDPIEnabled() {
|
| - // Default is disabled.
|
| - if (CommandLine::ForCurrentProcess()->HasSwitch(
|
| - gfx::switches::kHighDPISupport)) {
|
| - return CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
|
| - gfx::switches::kHighDPISupport).compare("1") == 0;
|
| - }
|
| - return false;
|
| -}
|
| -
|
| -// Gets the device scale factor. If support is enabled, this will return the
|
| -// best available scale based on the screen's pixel density. This can be
|
| -// affected (overridden) by --force-device-scale-factor=x
|
| -float GetDeviceScaleFactorImpl() {
|
| - if (IsHighDPIEnabled()) {
|
| - float scale = gfx::Display::HasForceDeviceScaleFactor() ?
|
| - gfx::Display::GetForcedDeviceScaleFactor() : gfx::GetDPIScale();
|
| - // Quantize to nearest supported scale factor.
|
| - scale = ui::GetScaleFactorScale(ui::GetScaleFactorFromScale(scale));
|
| - return scale;
|
| - }
|
| - return 1.0f;
|
| -}
|
| -
|
| -BOOL IsProcessDPIAwareWrapper() {
|
| - typedef BOOL(WINAPI *IsProcessDPIAwarePtr)(VOID);
|
| - IsProcessDPIAwarePtr is_process_dpi_aware_func =
|
| - reinterpret_cast<IsProcessDPIAwarePtr>(
|
| - GetProcAddress(GetModuleHandleA("user32.dll"), "IsProcessDPIAware"));
|
| - if (is_process_dpi_aware_func)
|
| - return is_process_dpi_aware_func();
|
| - return FALSE;
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -namespace gfx {
|
| -
|
| -Size GetDPI() {
|
| - static int dpi_x = 0;
|
| - static int dpi_y = 0;
|
| - static bool should_initialize = true;
|
| -
|
| - if (should_initialize) {
|
| - should_initialize = false;
|
| - base::win::ScopedGetDC screen_dc(NULL);
|
| - // This value is safe to cache for the life time of the app since the
|
| - // user must logout to change the DPI setting. This value also applies
|
| - // to all screens.
|
| - dpi_x = GetDeviceCaps(screen_dc, LOGPIXELSX);
|
| - dpi_y = GetDeviceCaps(screen_dc, LOGPIXELSY);
|
| - }
|
| - return Size(dpi_x, dpi_y);
|
| -}
|
| -
|
| -float GetDPIScale() {
|
| - if (IsHighDPIEnabled()) {
|
| - return static_cast<float>(GetDPI().width()) /
|
| - static_cast<float>(kDefaultDPIX);
|
| - }
|
| - return 1.0;
|
| -}
|
| -
|
| -bool IsInHighDPIMode() {
|
| - return GetDPIScale() > 1.0;
|
| -}
|
| -
|
| -void EnableHighDPISupport() {
|
| - if (IsHighDPIEnabled()) {
|
| - typedef BOOL(WINAPI *SetProcessDPIAwarePtr)(VOID);
|
| - SetProcessDPIAwarePtr set_process_dpi_aware_func =
|
| - reinterpret_cast<SetProcessDPIAwarePtr>(
|
| - GetProcAddress(GetModuleHandleA("user32.dll"),
|
| - "SetProcessDPIAware"));
|
| - if (set_process_dpi_aware_func)
|
| - set_process_dpi_aware_func();
|
| - }
|
| -}
|
| -
|
| -namespace win {
|
| -
|
| -float GetDeviceScaleFactor() {
|
| - static const float device_scale_factor = GetDeviceScaleFactorImpl();
|
| - return device_scale_factor;
|
| -}
|
| -
|
| -Point ScreenToDIPPoint(const Point& pixel_point) {
|
| - return ToFlooredPoint(ScalePoint(pixel_point, 1.0f / GetDeviceScaleFactor()));
|
| -}
|
| -
|
| -Point DIPToScreenPoint(const Point& dip_point) {
|
| - return ToFlooredPoint(ScalePoint(dip_point, GetDeviceScaleFactor()));
|
| -}
|
| -
|
| -Rect ScreenToDIPRect(const Rect& pixel_bounds) {
|
| - // TODO(kevers): Switch to non-deprecated method for float to int conversions.
|
| - return ToFlooredRectDeprecated(
|
| - ScaleRect(pixel_bounds, 1.0f / GetDeviceScaleFactor()));
|
| -}
|
| -
|
| -Rect DIPToScreenRect(const Rect& dip_bounds) {
|
| - // TODO(kevers): Switch to non-deprecated method for float to int conversions.
|
| - return ToFlooredRectDeprecated(
|
| - ScaleRect(dip_bounds, GetDeviceScaleFactor()));
|
| -}
|
| -
|
| -Size ScreenToDIPSize(const Size& size_in_pixels) {
|
| - return ToFlooredSize(
|
| - ScaleSize(size_in_pixels, 1.0f / GetDeviceScaleFactor()));
|
| -}
|
| -
|
| -Size DIPToScreenSize(const Size& dip_size) {
|
| - return ToFlooredSize(ScaleSize(dip_size, GetDeviceScaleFactor()));
|
| -}
|
| -
|
| -int GetSystemMetricsInDIP(int metric) {
|
| - return static_cast<int>(GetSystemMetrics(metric) /
|
| - GetDeviceScaleFactor() + 0.5);
|
| -}
|
| -
|
| -double GetUndocumentedDPIScale() {
|
| - // TODO(girard): Remove this code when chrome is DPIAware.
|
| - static double scale = -1.0;
|
| - if (scale == -1.0) {
|
| - scale = 1.0;
|
| - if (!IsProcessDPIAwareWrapper()) {
|
| - base::win::RegKey key(HKEY_CURRENT_USER,
|
| - L"Control Panel\\Desktop\\WindowMetrics",
|
| - KEY_QUERY_VALUE);
|
| - if (key.Valid()) {
|
| - DWORD value = 0;
|
| - if (key.ReadValueDW(L"AppliedDPI", &value) == ERROR_SUCCESS) {
|
| - scale = static_cast<double>(value) / kDefaultDPIX;
|
| - }
|
| - }
|
| - }
|
| - }
|
| - return scale;
|
| -}
|
| -
|
| -
|
| -double GetUndocumentedDPITouchScale() {
|
| - static double scale =
|
| - (base::win::GetVersion() < base::win::VERSION_WIN8_1) ?
|
| - GetUndocumentedDPIScale() : 1.0;
|
| - return scale;
|
| -}
|
| -
|
| -
|
| -} // namespace win
|
| -} // namespace gfx
|
|
|