| 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 "content/browser/web_contents/web_contents_view_win.h" | 5 #include "content/browser/web_contents/web_contents_view_win.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/memory/scoped_vector.h" | 8 #include "base/memory/scoped_vector.h" |
| 9 #include "content/browser/renderer_host/render_view_host_factory.h" | 9 #include "content/browser/renderer_host/render_view_host_factory.h" |
| 10 #include "content/browser/renderer_host/render_view_host_impl.h" | 10 #include "content/browser/renderer_host/render_view_host_impl.h" |
| (...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 148 const gfx::Size& initial_size, gfx::NativeView context) { | 148 const gfx::Size& initial_size, gfx::NativeView context) { |
| 149 initial_size_ = initial_size; | 149 initial_size_ = initial_size; |
| 150 | 150 |
| 151 set_window_style(WS_VISIBLE | WS_CHILD | WS_CLIPCHILDREN | WS_CLIPSIBLINGS); | 151 set_window_style(WS_VISIBLE | WS_CHILD | WS_CLIPCHILDREN | WS_CLIPSIBLINGS); |
| 152 | 152 |
| 153 Init(ui::GetHiddenWindow(), gfx::Rect(initial_size_)); | 153 Init(ui::GetHiddenWindow(), gfx::Rect(initial_size_)); |
| 154 | 154 |
| 155 // Remove the root view drop target so we can register our own. | 155 // Remove the root view drop target so we can register our own. |
| 156 RevokeDragDrop(GetNativeView()); | 156 RevokeDragDrop(GetNativeView()); |
| 157 drag_dest_ = new WebDragDest(hwnd(), web_contents_); | 157 drag_dest_ = new WebDragDest(hwnd(), web_contents_); |
| 158 if (delegate_.get()) { | 158 if (delegate_) { |
| 159 WebDragDestDelegate* delegate = delegate_->GetDragDestDelegate(); | 159 WebDragDestDelegate* delegate = delegate_->GetDragDestDelegate(); |
| 160 if (delegate) | 160 if (delegate) |
| 161 drag_dest_->set_delegate(delegate); | 161 drag_dest_->set_delegate(delegate); |
| 162 } | 162 } |
| 163 } | 163 } |
| 164 | 164 |
| 165 void WebContentsViewWin::Focus() { | 165 void WebContentsViewWin::Focus() { |
| 166 if (web_contents_->GetInterstitialPage()) { | 166 if (web_contents_->GetInterstitialPage()) { |
| 167 web_contents_->GetInterstitialPage()->Focus(); | 167 web_contents_->GetInterstitialPage()->Focus(); |
| 168 return; | 168 return; |
| 169 } | 169 } |
| 170 | 170 |
| 171 if (delegate_.get() && delegate_->Focus()) | 171 if (delegate_.get() && delegate_->Focus()) |
| 172 return; | 172 return; |
| 173 | 173 |
| 174 RenderWidgetHostView* rwhv = web_contents_->GetRenderWidgetHostView(); | 174 RenderWidgetHostView* rwhv = web_contents_->GetRenderWidgetHostView(); |
| 175 if (rwhv) | 175 if (rwhv) |
| 176 rwhv->Focus(); | 176 rwhv->Focus(); |
| 177 } | 177 } |
| 178 | 178 |
| 179 void WebContentsViewWin::SetInitialFocus() { | 179 void WebContentsViewWin::SetInitialFocus() { |
| 180 if (web_contents_->FocusLocationBarByDefault()) | 180 if (web_contents_->FocusLocationBarByDefault()) |
| 181 web_contents_->SetFocusToLocationBar(false); | 181 web_contents_->SetFocusToLocationBar(false); |
| 182 else | 182 else |
| 183 Focus(); | 183 Focus(); |
| 184 } | 184 } |
| 185 | 185 |
| 186 void WebContentsViewWin::StoreFocus() { | 186 void WebContentsViewWin::StoreFocus() { |
| 187 if (delegate_.get()) | 187 if (delegate_) |
| 188 delegate_->StoreFocus(); | 188 delegate_->StoreFocus(); |
| 189 } | 189 } |
| 190 | 190 |
| 191 void WebContentsViewWin::RestoreFocus() { | 191 void WebContentsViewWin::RestoreFocus() { |
| 192 if (delegate_.get()) | 192 if (delegate_) |
| 193 delegate_->RestoreFocus(); | 193 delegate_->RestoreFocus(); |
| 194 } | 194 } |
| 195 | 195 |
| 196 WebDropData* WebContentsViewWin::GetDropData() const { | 196 WebDropData* WebContentsViewWin::GetDropData() const { |
| 197 return drag_dest_->current_drop_data(); | 197 return drag_dest_->current_drop_data(); |
| 198 } | 198 } |
| 199 | 199 |
| 200 gfx::Rect WebContentsViewWin::GetViewBounds() const { | 200 gfx::Rect WebContentsViewWin::GetViewBounds() const { |
| 201 RECT r; | 201 RECT r; |
| 202 GetWindowRect(hwnd(), &r); | 202 GetWindowRect(hwnd(), &r); |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 239 | 239 |
| 240 void WebContentsViewWin::RenderViewSwappedIn(RenderViewHost* host) { | 240 void WebContentsViewWin::RenderViewSwappedIn(RenderViewHost* host) { |
| 241 } | 241 } |
| 242 | 242 |
| 243 void WebContentsViewWin::SetOverscrollControllerEnabled(bool enabled) { | 243 void WebContentsViewWin::SetOverscrollControllerEnabled(bool enabled) { |
| 244 } | 244 } |
| 245 | 245 |
| 246 void WebContentsViewWin::ShowContextMenu( | 246 void WebContentsViewWin::ShowContextMenu( |
| 247 const ContextMenuParams& params, | 247 const ContextMenuParams& params, |
| 248 ContextMenuSourceType type) { | 248 ContextMenuSourceType type) { |
| 249 if (delegate_.get()) | 249 if (delegate_) |
| 250 delegate_->ShowContextMenu(params, type); | 250 delegate_->ShowContextMenu(params, type); |
| 251 } | 251 } |
| 252 | 252 |
| 253 void WebContentsViewWin::ShowPopupMenu(const gfx::Rect& bounds, | 253 void WebContentsViewWin::ShowPopupMenu(const gfx::Rect& bounds, |
| 254 int item_height, | 254 int item_height, |
| 255 double item_font_size, | 255 double item_font_size, |
| 256 int selected_item, | 256 int selected_item, |
| 257 const std::vector<WebMenuItem>& items, | 257 const std::vector<WebMenuItem>& items, |
| 258 bool right_aligned, | 258 bool right_aligned, |
| 259 bool allow_multiple_selection) { | 259 bool allow_multiple_selection) { |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 303 | 303 |
| 304 LRESULT WebContentsViewWin::OnCreate( | 304 LRESULT WebContentsViewWin::OnCreate( |
| 305 UINT message, WPARAM wparam, LPARAM lparam, BOOL& handled) { | 305 UINT message, WPARAM wparam, LPARAM lparam, BOOL& handled) { |
| 306 hwnd_to_wcv_map.insert(std::make_pair(hwnd(), this)); | 306 hwnd_to_wcv_map.insert(std::make_pair(hwnd(), this)); |
| 307 AddFilterToParentHwndSubclass(hwnd(), hwnd_message_filter_.get()); | 307 AddFilterToParentHwndSubclass(hwnd(), hwnd_message_filter_.get()); |
| 308 return 0; | 308 return 0; |
| 309 } | 309 } |
| 310 | 310 |
| 311 LRESULT WebContentsViewWin::OnDestroy( | 311 LRESULT WebContentsViewWin::OnDestroy( |
| 312 UINT message, WPARAM wparam, LPARAM lparam, BOOL& handled) { | 312 UINT message, WPARAM wparam, LPARAM lparam, BOOL& handled) { |
| 313 if (drag_dest_.get()) { | 313 if (drag_dest_) { |
| 314 RevokeDragDrop(GetNativeView()); | 314 RevokeDragDrop(GetNativeView()); |
| 315 drag_dest_ = NULL; | 315 drag_dest_ = NULL; |
| 316 } | 316 } |
| 317 if (drag_handler_.get()) { | 317 if (drag_handler_) { |
| 318 drag_handler_->CancelDrag(); | 318 drag_handler_->CancelDrag(); |
| 319 drag_handler_ = NULL; | 319 drag_handler_ = NULL; |
| 320 } | 320 } |
| 321 return 0; | 321 return 0; |
| 322 } | 322 } |
| 323 | 323 |
| 324 LRESULT WebContentsViewWin::OnWindowPosChanged( | 324 LRESULT WebContentsViewWin::OnWindowPosChanged( |
| 325 UINT message, WPARAM wparam, LPARAM lparam, BOOL& handled) { | 325 UINT message, WPARAM wparam, LPARAM lparam, BOOL& handled) { |
| 326 | 326 |
| 327 // Our parent might have changed. So we re-install our hwnd message filter. | 327 // Our parent might have changed. So we re-install our hwnd message filter. |
| (...skipping 22 matching lines...) Expand all Loading... |
| 350 // size hasn't changed. | 350 // size hasn't changed. |
| 351 if (window_pos->flags & SWP_NOSIZE) | 351 if (window_pos->flags & SWP_NOSIZE) |
| 352 return 0; | 352 return 0; |
| 353 | 353 |
| 354 gfx::Size size(window_pos->cx, window_pos->cy); | 354 gfx::Size size(window_pos->cx, window_pos->cy); |
| 355 if (web_contents_->GetInterstitialPage()) | 355 if (web_contents_->GetInterstitialPage()) |
| 356 web_contents_->GetInterstitialPage()->SetSize(size); | 356 web_contents_->GetInterstitialPage()->SetSize(size); |
| 357 if (rwhv) | 357 if (rwhv) |
| 358 rwhv->SetSize(size); | 358 rwhv->SetSize(size); |
| 359 | 359 |
| 360 if (delegate_.get()) | 360 if (delegate_) |
| 361 delegate_->SizeChanged(size); | 361 delegate_->SizeChanged(size); |
| 362 | 362 |
| 363 return 0; | 363 return 0; |
| 364 } | 364 } |
| 365 | 365 |
| 366 LRESULT WebContentsViewWin::OnMouseDown( | 366 LRESULT WebContentsViewWin::OnMouseDown( |
| 367 UINT message, WPARAM wparam, LPARAM lparam, BOOL& handled) { | 367 UINT message, WPARAM wparam, LPARAM lparam, BOOL& handled) { |
| 368 // Make sure this WebContents is activated when it is clicked on. | 368 // Make sure this WebContents is activated when it is clicked on. |
| 369 if (web_contents_->GetDelegate()) | 369 if (web_contents_->GetDelegate()) |
| 370 web_contents_->GetDelegate()->ActivateContents(web_contents_); | 370 web_contents_->GetDelegate()->ActivateContents(web_contents_); |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 457 si.nPage = 10; | 457 si.nPage = 10; |
| 458 si.nPos = 50; | 458 si.nPos = 50; |
| 459 | 459 |
| 460 ::SetScrollInfo(hwnd(), SB_HORZ, &si, FALSE); | 460 ::SetScrollInfo(hwnd(), SB_HORZ, &si, FALSE); |
| 461 ::SetScrollInfo(hwnd(), SB_VERT, &si, FALSE); | 461 ::SetScrollInfo(hwnd(), SB_VERT, &si, FALSE); |
| 462 | 462 |
| 463 return 1; | 463 return 1; |
| 464 } | 464 } |
| 465 | 465 |
| 466 } // namespace content | 466 } // namespace content |
| OLD | NEW |