OLD | NEW |
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/win/hwnd_message_handler.h" | 5 #include "ui/views/win/hwnd_message_handler.h" |
6 | 6 |
7 #include <dwmapi.h> | 7 #include <dwmapi.h> |
8 #include <shellapi.h> | 8 #include <shellapi.h> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 370 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
381 previous_cursor_(NULL), | 381 previous_cursor_(NULL), |
382 active_mouse_tracking_flags_(0), | 382 active_mouse_tracking_flags_(0), |
383 is_right_mouse_pressed_on_caption_(false), | 383 is_right_mouse_pressed_on_caption_(false), |
384 lock_updates_count_(0), | 384 lock_updates_count_(0), |
385 ignore_window_pos_changes_(false), | 385 ignore_window_pos_changes_(false), |
386 last_monitor_(NULL), | 386 last_monitor_(NULL), |
387 use_layered_buffer_(false), | 387 use_layered_buffer_(false), |
388 layered_alpha_(255), | 388 layered_alpha_(255), |
389 waiting_for_redraw_layered_window_contents_(false), | 389 waiting_for_redraw_layered_window_contents_(false), |
390 is_first_nccalc_(true), | 390 is_first_nccalc_(true), |
| 391 menu_depth_(0), |
391 autohide_factory_(this), | 392 autohide_factory_(this), |
392 id_generator_(0) { | 393 id_generator_(0) { |
393 } | 394 } |
394 | 395 |
395 HWNDMessageHandler::~HWNDMessageHandler() { | 396 HWNDMessageHandler::~HWNDMessageHandler() { |
396 delegate_ = NULL; | 397 delegate_ = NULL; |
397 // Prevent calls back into this class via WNDPROC now that we've been | 398 // Prevent calls back into this class via WNDPROC now that we've been |
398 // destroyed. | 399 // destroyed. |
399 ClearUserData(); | 400 ClearUserData(); |
400 } | 401 } |
(...skipping 959 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1360 LPARAM l_param) { | 1361 LPARAM l_param) { |
1361 if (!delegate_->IsWidgetWindow()) { | 1362 if (!delegate_->IsWidgetWindow()) { |
1362 SetMsgHandled(FALSE); | 1363 SetMsgHandled(FALSE); |
1363 return 0; | 1364 return 0; |
1364 } | 1365 } |
1365 | 1366 |
1366 FrameTypeChanged(); | 1367 FrameTypeChanged(); |
1367 return 0; | 1368 return 0; |
1368 } | 1369 } |
1369 | 1370 |
| 1371 void HWNDMessageHandler::OnEnterMenuLoop(BOOL from_track_popup_menu) { |
| 1372 if (menu_depth_++ == 0) |
| 1373 delegate_->HandleMenuLoop(true); |
| 1374 } |
| 1375 |
1370 void HWNDMessageHandler::OnEnterSizeMove() { | 1376 void HWNDMessageHandler::OnEnterSizeMove() { |
1371 delegate_->HandleBeginWMSizeMove(); | 1377 delegate_->HandleBeginWMSizeMove(); |
1372 SetMsgHandled(FALSE); | 1378 SetMsgHandled(FALSE); |
1373 } | 1379 } |
1374 | 1380 |
1375 LRESULT HWNDMessageHandler::OnEraseBkgnd(HDC dc) { | 1381 LRESULT HWNDMessageHandler::OnEraseBkgnd(HDC dc) { |
1376 // Needed to prevent resize flicker. | 1382 // Needed to prevent resize flicker. |
1377 return 1; | 1383 return 1; |
1378 } | 1384 } |
1379 | 1385 |
| 1386 void HWNDMessageHandler::OnExitMenuLoop(BOOL is_shortcut_menu) { |
| 1387 if (--menu_depth_ == 0) |
| 1388 delegate_->HandleMenuLoop(false); |
| 1389 DCHECK_GE(0, menu_depth_); |
| 1390 } |
| 1391 |
1380 void HWNDMessageHandler::OnExitSizeMove() { | 1392 void HWNDMessageHandler::OnExitSizeMove() { |
1381 delegate_->HandleEndWMSizeMove(); | 1393 delegate_->HandleEndWMSizeMove(); |
1382 SetMsgHandled(FALSE); | 1394 SetMsgHandled(FALSE); |
1383 } | 1395 } |
1384 | 1396 |
1385 void HWNDMessageHandler::OnGetMinMaxInfo(MINMAXINFO* minmax_info) { | 1397 void HWNDMessageHandler::OnGetMinMaxInfo(MINMAXINFO* minmax_info) { |
1386 gfx::Size min_window_size; | 1398 gfx::Size min_window_size; |
1387 gfx::Size max_window_size; | 1399 gfx::Size max_window_size; |
1388 delegate_->GetMinMaxSize(&min_window_size, &max_window_size); | 1400 delegate_->GetMinMaxSize(&min_window_size, &max_window_size); |
1389 | 1401 |
(...skipping 851 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2241 SetMsgHandled(FALSE); | 2253 SetMsgHandled(FALSE); |
2242 } | 2254 } |
2243 | 2255 |
2244 void HWNDMessageHandler::HandleTouchEvents(const TouchEvents& touch_events) { | 2256 void HWNDMessageHandler::HandleTouchEvents(const TouchEvents& touch_events) { |
2245 base::WeakPtr<HWNDMessageHandler> ref(weak_factory_.GetWeakPtr()); | 2257 base::WeakPtr<HWNDMessageHandler> ref(weak_factory_.GetWeakPtr()); |
2246 for (size_t i = 0; i < touch_events.size() && ref; ++i) | 2258 for (size_t i = 0; i < touch_events.size() && ref; ++i) |
2247 delegate_->HandleTouchEvent(touch_events[i]); | 2259 delegate_->HandleTouchEvent(touch_events[i]); |
2248 } | 2260 } |
2249 | 2261 |
2250 } // namespace views | 2262 } // namespace views |
OLD | NEW |