Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(337)

Side by Side Diff: ui/gfx/screen.cc

Issue 1426933002: Refactor Windows DPI Point, Rect, and Size for Multiple Monitor DPI Awareness (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed Other Unit Tests - Moved Inner Classes Outside Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ui/gfx/screen.h"
6
5 #include "base/logging.h" 7 #include "base/logging.h"
6 #include "ui/gfx/screen.h" 8 #include "ui/gfx/geometry/point.h"
9 #include "ui/gfx/geometry/size.h"
7 #include "ui/gfx/screen_type_delegate.h" 10 #include "ui/gfx/screen_type_delegate.h"
8 11
9 namespace gfx { 12 namespace gfx {
10 13
11 namespace { 14 namespace {
12 15
13 Screen* g_screen_[SCREEN_TYPE_LAST + 1]; 16 Screen* g_screen_[SCREEN_TYPE_LAST + 1];
14 ScreenTypeDelegate* g_screen_type_delegate_ = NULL; 17 ScreenTypeDelegate* g_screen_type_delegate_ = NULL;
15 18
16 } // namespace 19 } // namespace
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
48 g_screen_type_delegate_ = delegate; 51 g_screen_type_delegate_ = delegate;
49 } 52 }
50 53
51 // static 54 // static
52 Screen* Screen::GetNativeScreen() { 55 Screen* Screen::GetNativeScreen() {
53 if (!g_screen_[SCREEN_TYPE_NATIVE]) 56 if (!g_screen_[SCREEN_TYPE_NATIVE])
54 g_screen_[SCREEN_TYPE_NATIVE] = CreateNativeScreen(); 57 g_screen_[SCREEN_TYPE_NATIVE] = CreateNativeScreen();
55 return g_screen_[SCREEN_TYPE_NATIVE]; 58 return g_screen_[SCREEN_TYPE_NATIVE];
56 } 59 }
57 60
61 gfx::Rect Screen::ScreenToDIPRectInWindow(NativeView view,
62 const gfx::Rect& screen_rect) const {
63 float scale = GetDisplayNearestWindow(view).device_scale_factor();
64 return gfx::Rect(gfx::ScaleToFlooredPoint(screen_rect.origin(), 1.0f / scale),
65 gfx::ScaleToCeiledSize(screen_rect.size(), 1.0f / scale));
66 }
67
68 gfx::Rect Screen::DIPToScreenRectInWindow(NativeView view,
69 const gfx::Rect& dip_rect) const {
70 float scale = GetDisplayNearestWindow(view).device_scale_factor();
71 return gfx::Rect(gfx::ScaleToFlooredPoint(dip_rect.origin(), scale),
72 gfx::ScaleToCeiledSize(dip_rect.size(), scale));
73 }
74
58 } // namespace gfx 75 } // namespace gfx
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698