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

Side by Side Diff: ui/views/controls/native/native_view_host.cc

Issue 16336027: Enable high dpi in win/views. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Cleanup Created 7 years, 6 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
« no previous file with comments | « ui/gfx/canvas_paint_win.h ('k') | ui/views/widget/aero_tooltip_manager.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 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/views/controls/native/native_view_host.h" 5 #include "ui/views/controls/native/native_view_host.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "ui/gfx/canvas.h" 8 #include "ui/gfx/canvas.h"
9 #include "ui/views/controls/native/native_view_host_wrapper.h" 9 #include "ui/views/controls/native/native_view_host_wrapper.h"
10 #include "ui/views/widget/widget.h" 10 #include "ui/views/widget/widget.h"
11 11
12 #if defined (OS_WIN)
13 #include "ui/base/win/dpi.h"
14 #endif
15
12 namespace views { 16 namespace views {
13 17
14 // static 18 // static
15 const char NativeViewHost::kViewClassName[] = "NativeViewHost"; 19 const char NativeViewHost::kViewClassName[] = "NativeViewHost";
16 20
17 #if defined(USE_AURA) 21 #if defined(USE_AURA)
18 // Views implmenetatxion draws the focus. 22 // Views implementation draws the focus.
19 // TODO(oshima): Eliminate this flag and consolidate 23 // TODO(oshima): Eliminate this flag and consolidate
20 // the focus border code. 24 // the focus border code.
21 const bool NativeViewHost::kRenderNativeControlFocus = false; 25 const bool NativeViewHost::kRenderNativeControlFocus = false;
22 #else 26 #else
23 // static 27 // static
24 const bool NativeViewHost::kRenderNativeControlFocus = true; 28 const bool NativeViewHost::kRenderNativeControlFocus = true;
25 #endif 29 #endif
26 30
27 //////////////////////////////////////////////////////////////////////////////// 31 ////////////////////////////////////////////////////////////////////////////////
28 // NativeViewHost, public: 32 // NativeViewHost, public:
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
93 } 97 }
94 } 98 }
95 99
96 if (visible) { 100 if (visible) {
97 // Since widgets know nothing about the View hierarchy (they are direct 101 // Since widgets know nothing about the View hierarchy (they are direct
98 // children of the Widget that hosts our View hierarchy) they need to be 102 // children of the Widget that hosts our View hierarchy) they need to be
99 // positioned in the coordinate system of the Widget, not the current 103 // positioned in the coordinate system of the Widget, not the current
100 // view. Also, they should be positioned respecting the border insets 104 // view. Also, they should be positioned respecting the border insets
101 // of the native view. 105 // of the native view.
102 gfx::Rect local_bounds = ConvertRectToWidget(GetContentsBounds()); 106 gfx::Rect local_bounds = ConvertRectToWidget(GetContentsBounds());
107 #if defined(OS_WIN) && !defined(USE_AURA)
Ben Goodger (Google) 2013/06/11 16:10:43 this file doesn't really have platform stuff in it
girard 2013/06/11 19:12:13 Done. Thanks.
108 gfx::Rect mapped_bounds = ui::win::DIPToScreenRect(local_bounds);
109 native_wrapper_->ShowWidget(mapped_bounds.x(), mapped_bounds.y(),
110 mapped_bounds.width(),
111 mapped_bounds.height());
112 #else
103 native_wrapper_->ShowWidget(local_bounds.x(), local_bounds.y(), 113 native_wrapper_->ShowWidget(local_bounds.x(), local_bounds.y(),
104 local_bounds.width(), 114 local_bounds.width(),
105 local_bounds.height()); 115 local_bounds.height());
116 #endif
106 } else { 117 } else {
107 native_wrapper_->HideWidget(); 118 native_wrapper_->HideWidget();
108 } 119 }
109 fast_resize_at_last_layout_ = visible && fast_resize_; 120 fast_resize_at_last_layout_ = visible && fast_resize_;
110 } 121 }
111 122
112 void NativeViewHost::OnPaint(gfx::Canvas* canvas) { 123 void NativeViewHost::OnPaint(gfx::Canvas* canvas) {
113 // Paint background if there is one. NativeViewHost needs to paint 124 // Paint background if there is one. NativeViewHost needs to paint
114 // a background when it is hosted in a TabbedPane. For Gtk implementation, 125 // a background when it is hosted in a TabbedPane. For Gtk implementation,
115 // NativeTabbedPaneGtk uses a NativeWidgetGtk as page container and because 126 // NativeTabbedPaneGtk uses a NativeWidgetGtk as page container and because
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
211 Widget::GetAllChildWidgets(native_view(), &widgets); 222 Widget::GetAllChildWidgets(native_view(), &widgets);
212 for (Widget::Widgets::iterator i = widgets.begin(); i != widgets.end(); ++i) { 223 for (Widget::Widgets::iterator i = widgets.begin(); i != widgets.end(); ++i) {
213 focus_manager->ViewRemoved((*i)->GetRootView()); 224 focus_manager->ViewRemoved((*i)->GetRootView());
214 if (!focus_manager->GetFocusedView()) 225 if (!focus_manager->GetFocusedView())
215 return; 226 return;
216 } 227 }
217 } 228 }
218 229
219 230
220 } // namespace views 231 } // namespace views
OLDNEW
« no previous file with comments | « ui/gfx/canvas_paint_win.h ('k') | ui/views/widget/aero_tooltip_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698