• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
AudibleAlert()16 void FindBarHost::AudibleAlert() {
17   MessageBeep(MB_OK);
18 }
19 
GetWidgetPositionNative(gfx::Rect * avoid_overlapping_rect)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 
ShouldForwardKeyEventToWebpageNative(const views::KeyEvent & key_event)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