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/widget/hwnd_message_handler.h" | 5 #include "ui/views/widget/hwnd_message_handler.h" |
6 | 6 |
| 7 #include "base/system_monitor/system_monitor.h" |
| 8 #include "ui/base/native_theme/native_theme_win.h" |
| 9 #include "ui/views/ime/input_method_win.h" |
7 #include "ui/views/widget/hwnd_message_handler_delegate.h" | 10 #include "ui/views/widget/hwnd_message_handler_delegate.h" |
8 #include "ui/views/widget/native_widget_win.h" | 11 #include "ui/views/widget/native_widget_win.h" |
9 | 12 |
10 namespace views { | 13 namespace views { |
11 | 14 |
12 //////////////////////////////////////////////////////////////////////////////// | 15 //////////////////////////////////////////////////////////////////////////////// |
13 // HWNDMessageHandler, public: | 16 // HWNDMessageHandler, public: |
14 | 17 |
15 HWNDMessageHandler::HWNDMessageHandler(HWNDMessageHandlerDelegate* delegate) | 18 HWNDMessageHandler::HWNDMessageHandler(HWNDMessageHandlerDelegate* delegate) |
16 : delegate_(delegate), | 19 : delegate_(delegate), |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
106 | 109 |
107 void HWNDMessageHandler::OnExitMenuLoop(BOOL is_track_popup_menu) { | 110 void HWNDMessageHandler::OnExitMenuLoop(BOOL is_track_popup_menu) { |
108 SetMsgHandled(FALSE); | 111 SetMsgHandled(FALSE); |
109 } | 112 } |
110 | 113 |
111 void HWNDMessageHandler::OnExitSizeMove() { | 114 void HWNDMessageHandler::OnExitSizeMove() { |
112 delegate_->HandleEndWMSizeMove(); | 115 delegate_->HandleEndWMSizeMove(); |
113 SetMsgHandled(FALSE); | 116 SetMsgHandled(FALSE); |
114 } | 117 } |
115 | 118 |
| 119 LRESULT HWNDMessageHandler::OnImeMessages(UINT message, |
| 120 WPARAM w_param, |
| 121 LPARAM l_param) { |
| 122 InputMethod* input_method = delegate_->GetInputMethod(); |
| 123 if (!input_method || input_method->IsMock()) { |
| 124 SetMsgHandled(FALSE); |
| 125 return 0; |
| 126 } |
| 127 |
| 128 InputMethodWin* ime_win = static_cast<InputMethodWin*>(input_method); |
| 129 BOOL handled = FALSE; |
| 130 LRESULT result = ime_win->OnImeMessages(message, w_param, l_param, &handled); |
| 131 SetMsgHandled(handled); |
| 132 return result; |
| 133 } |
| 134 |
| 135 void HWNDMessageHandler::OnInputLangChange(DWORD character_set, |
| 136 HKL input_language_id) { |
| 137 InputMethod* input_method = delegate_->GetInputMethod(); |
| 138 if (input_method && !input_method->IsMock()) { |
| 139 static_cast<InputMethodWin*>(input_method)->OnInputLangChange( |
| 140 character_set, input_language_id); |
| 141 } |
| 142 } |
| 143 |
| 144 void HWNDMessageHandler::OnMove(const CPoint& point) { |
| 145 delegate_->HandleMove(); |
| 146 SetMsgHandled(FALSE); |
| 147 } |
| 148 |
| 149 void HWNDMessageHandler::OnMoving(UINT param, const RECT* new_bounds) { |
| 150 delegate_->HandleMove(); |
| 151 } |
| 152 |
| 153 LRESULT HWNDMessageHandler::OnNCUAHDrawCaption(UINT message, |
| 154 WPARAM w_param, |
| 155 LPARAM l_param) { |
| 156 // See comment in widget_win.h at the definition of WM_NCUAHDRAWCAPTION for |
| 157 // an explanation about why we need to handle this message. |
| 158 SetMsgHandled(delegate_->IsUsingCustomFrame()); |
| 159 return 0; |
| 160 } |
| 161 |
| 162 LRESULT HWNDMessageHandler::OnNCUAHDrawFrame(UINT message, |
| 163 WPARAM w_param, |
| 164 LPARAM l_param) { |
| 165 // See comment in widget_win.h at the definition of WM_NCUAHDRAWCAPTION for |
| 166 // an explanation about why we need to handle this message. |
| 167 SetMsgHandled(delegate_->IsUsingCustomFrame()); |
| 168 return 0; |
| 169 } |
| 170 |
| 171 LRESULT HWNDMessageHandler::OnPowerBroadcast(DWORD power_event, DWORD data) { |
| 172 base::SystemMonitor* monitor = base::SystemMonitor::Get(); |
| 173 if (monitor) |
| 174 monitor->ProcessWmPowerBroadcastMessage(power_event); |
| 175 SetMsgHandled(FALSE); |
| 176 return 0; |
| 177 } |
| 178 |
| 179 void HWNDMessageHandler::OnThemeChanged() { |
| 180 ui::NativeThemeWin::instance()->CloseHandles(); |
| 181 } |
| 182 |
| 183 void HWNDMessageHandler::OnVScroll(int scroll_type, |
| 184 short position, |
| 185 HWND scrollbar) { |
| 186 SetMsgHandled(FALSE); |
| 187 } |
| 188 |
116 //////////////////////////////////////////////////////////////////////////////// | 189 //////////////////////////////////////////////////////////////////////////////// |
117 // HWNDMessageHandler, private: | 190 // HWNDMessageHandler, private: |
118 | 191 |
| 192 HWND HWNDMessageHandler::hwnd() { |
| 193 return delegate_->AsNativeWidgetWin()->hwnd(); |
| 194 } |
| 195 |
| 196 LRESULT HWNDMessageHandler::DefWindowProcWithRedrawLock(UINT message, |
| 197 WPARAM w_param, |
| 198 LPARAM l_param) { |
| 199 return delegate_->AsNativeWidgetWin()->DefWindowProcWithRedrawLock(message, |
| 200 w_param, |
| 201 l_param); |
| 202 } |
| 203 |
119 void HWNDMessageHandler::SetMsgHandled(BOOL handled) { | 204 void HWNDMessageHandler::SetMsgHandled(BOOL handled) { |
120 delegate_->AsNativeWidgetWin()->SetMsgHandled(handled); | 205 delegate_->AsNativeWidgetWin()->SetMsgHandled(handled); |
121 } | 206 } |
122 | 207 |
123 } // namespace views | 208 } // namespace views |
124 | 209 |
OLD | NEW |