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

Side by Side Diff: views/controls/native_control_win.cc

Issue 5144005: Converts usage of SetProp/GetProp to a map. Even after making sure we (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/chrome
Patch Set: Fix build Created 10 years, 1 month 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 | Annotate | Revision Log
« no previous file with comments | « views/controls/native_control_win.h ('k') | views/focus/focus_util_win.h » ('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) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 "views/controls/native_control_win.h" 5 #include "views/controls/native_control_win.h"
6 6
7 #include <windowsx.h> 7 #include <windowsx.h>
8 8
9 #include "app/l10n_util_win.h" 9 #include "app/l10n_util_win.h"
10 #include "app/win/scoped_prop.h" 10 #include "app/view_prop.h"
11 #include "base/logging.h" 11 #include "base/logging.h"
12 #include "base/win_util.h" 12 #include "base/win_util.h"
13 #include "views/focus/focus_manager.h" 13 #include "views/focus/focus_manager.h"
14 14
15 using app::ViewProp;
16
15 namespace views { 17 namespace views {
16 18
17 static const wchar_t* kNativeControlWinKey = L"__NATIVE_CONTROL_WIN__"; 19 static const char* const kNativeControlWinKey = "__NATIVE_CONTROL_WIN__";
18 20
19 //////////////////////////////////////////////////////////////////////////////// 21 ////////////////////////////////////////////////////////////////////////////////
20 // NativeControlWin, public: 22 // NativeControlWin, public:
21 23
22 NativeControlWin::NativeControlWin() { 24 NativeControlWin::NativeControlWin() {
23 } 25 }
24 26
25 NativeControlWin::~NativeControlWin() { 27 NativeControlWin::~NativeControlWin() {
26 HWND hwnd = native_view(); 28 HWND hwnd = native_view();
27 if (hwnd) { 29 if (hwnd) {
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
123 125
124 if (location.x() == -1 && location.y() == -1) 126 if (location.x() == -1 && location.y() == -1)
125 View::ShowContextMenu(GetKeyboardContextMenuLocation(), false); 127 View::ShowContextMenu(GetKeyboardContextMenuLocation(), false);
126 else 128 else
127 View::ShowContextMenu(location, true); 129 View::ShowContextMenu(location, true);
128 } 130 }
129 131
130 void NativeControlWin::NativeControlCreated(HWND native_control) { 132 void NativeControlWin::NativeControlCreated(HWND native_control) {
131 // Associate this object with the control's HWND so that WidgetWin can find 133 // Associate this object with the control's HWND so that WidgetWin can find
132 // this object when it receives messages from it. 134 // this object when it receives messages from it.
133 props_.push_back( 135 props_.push_back(new ViewProp(native_control, kNativeControlWinKey, this));
134 new app::win::ScopedProp(native_control, kNativeControlWinKey, this));
135 props_.push_back(ChildWindowMessageProcessor::Register(native_control, this)); 136 props_.push_back(ChildWindowMessageProcessor::Register(native_control, this));
136 137
137 // Subclass so we get WM_KEYDOWN and WM_SETFOCUS messages. 138 // Subclass so we get WM_KEYDOWN and WM_SETFOCUS messages.
138 original_wndproc_ = 139 original_wndproc_ =
139 win_util::SetWindowProc(native_control, 140 win_util::SetWindowProc(native_control,
140 &NativeControlWin::NativeControlWndProc); 141 &NativeControlWin::NativeControlWndProc);
141 142
142 Attach(native_control); 143 Attach(native_control);
143 // native_view() is now valid. 144 // native_view() is now valid.
144 145
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
189 190
190 // COLOR_BTNFACE is the default for dialog box backgrounds. 191 // COLOR_BTNFACE is the default for dialog box backgrounds.
191 return reinterpret_cast<LRESULT>(GetSysColorBrush(COLOR_BTNFACE)); 192 return reinterpret_cast<LRESULT>(GetSysColorBrush(COLOR_BTNFACE));
192 } 193 }
193 194
194 // static 195 // static
195 LRESULT NativeControlWin::NativeControlWndProc(HWND window, 196 LRESULT NativeControlWin::NativeControlWndProc(HWND window,
196 UINT message, 197 UINT message,
197 WPARAM w_param, 198 WPARAM w_param,
198 LPARAM l_param) { 199 LPARAM l_param) {
199 NativeControlWin* native_control = 200 NativeControlWin* native_control = reinterpret_cast<NativeControlWin*>(
200 static_cast<NativeControlWin*>(GetProp(window, kNativeControlWinKey)); 201 ViewProp::GetValue(window, kNativeControlWinKey));
201 DCHECK(native_control); 202 DCHECK(native_control);
202 203
203 if (message == WM_KEYDOWN && 204 if (message == WM_KEYDOWN &&
204 native_control->OnKeyDown(static_cast<int>(w_param))) { 205 native_control->OnKeyDown(static_cast<int>(w_param))) {
205 return 0; 206 return 0;
206 } else if (message == WM_SETFOCUS) { 207 } else if (message == WM_SETFOCUS) {
207 // Let the focus manager know that the focus changed. 208 // Let the focus manager know that the focus changed.
208 FocusManager* focus_manager = native_control->GetFocusManager(); 209 FocusManager* focus_manager = native_control->GetFocusManager();
209 if (focus_manager) { 210 if (focus_manager) {
210 focus_manager->SetFocusedView(native_control->focus_view()); 211 focus_manager->SetFocusedView(native_control->focus_view());
211 } else { 212 } else {
212 NOTREACHED(); 213 NOTREACHED();
213 } 214 }
214 } else if (message == WM_DESTROY) { 215 } else if (message == WM_DESTROY) {
215 native_control->props_.reset(); 216 native_control->props_.reset();
216 win_util::SetWindowProc(window, native_control->original_wndproc_); 217 win_util::SetWindowProc(window, native_control->original_wndproc_);
217 } 218 }
218 219
219 return CallWindowProc(native_control->original_wndproc_, window, message, 220 return CallWindowProc(native_control->original_wndproc_, window, message,
220 w_param, l_param); 221 w_param, l_param);
221 } 222 }
222 223
223 } // namespace views 224 } // namespace views
OLDNEW
« no previous file with comments | « views/controls/native_control_win.h ('k') | views/focus/focus_util_win.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698