1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "chrome/browser/ui/views/find_bar_host.h" 6 7 #include "chrome/browser/ui/find_bar/find_bar_controller.h" 8 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" 9 #include "chrome/browser/ui/views/frame/browser_view.h" 10 #include "content/browser/renderer_host/render_view_host.h" 11 #include "content/browser/tab_contents/tab_contents.h" 12 #include "content/browser/tab_contents/tab_contents_view.h" 13 #include "views/controls/scrollbar/native_scroll_bar.h" 14 #include "views/widget/widget_win.h" 15 16 void FindBarHost::AudibleAlert() { 17 MessageBeep(MB_OK); 18 } 19 20 void FindBarHost::GetWidgetPositionNative(gfx::Rect* avoid_overlapping_rect) { 21 RECT frame_rect = {0}, webcontents_rect = {0}; 22 ::GetWindowRect( 23 static_cast<views::WidgetWin*>(host())->GetParent(), &frame_rect); 24 ::GetWindowRect( 25 find_bar_controller_-> 26 tab_contents()->tab_contents()->view()->GetNativeView(), 27 &webcontents_rect); 28 avoid_overlapping_rect->Offset(0, webcontents_rect.top - frame_rect.top); 29 } 30 31 bool FindBarHost::ShouldForwardKeyEventToWebpageNative( 32 const views::KeyEvent& key_event) { 33 // We specifically ignore WM_CHAR. See http://crbug.com/10509. 34 return key_event.native_event().message == WM_KEYDOWN || 35 key_event.native_event().message == WM_KEYUP; 36 } 37