Index: chrome/browser/views/find_bar_win.h |
=================================================================== |
--- chrome/browser/views/find_bar_win.h (revision 25765) |
+++ chrome/browser/views/find_bar_win.h (working copy) |
@@ -1,180 +0,0 @@ |
-// Copyright (c) 2006-2009 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#ifndef CHROME_BROWSER_VIEWS_FIND_BAR_WIN_H_ |
-#define CHROME_BROWSER_VIEWS_FIND_BAR_WIN_H_ |
- |
-#include "app/animation.h" |
-#include "base/gfx/rect.h" |
-#include "base/gfx/native_widget_types.h" |
-#include "base/scoped_ptr.h" |
-#include "chrome/browser/find_bar.h" |
-#include "chrome/browser/renderer_host/render_view_host_delegate.h" |
-#include "views/focus/focus_manager.h" |
- |
-class BrowserView; |
-class FindBarController; |
-class FindBarView; |
-class FindNotificationDetails; |
-class RenderViewHost; |
-class SlideAnimation; |
- |
-namespace views { |
-class ExternalFocusTracker; |
-class View; |
-} |
- |
-// TODO(sky): rename this to FindBarViews. |
- |
-//////////////////////////////////////////////////////////////////////////////// |
-// |
-// The FindBarWin implements the container window for the Windows find-in-page |
-// functionality. It uses the FindBarWin implementation to draw its content and |
-// is responsible for showing, hiding, closing, and moving the window if needed, |
-// for example if the window is obscuring the selection results. It also |
-// receives notifications about the search results and communicates that to the |
-// view. |
-// |
-// There is one FindBarWin per BrowserView, and its state is updated whenever |
-// the selected Tab is changed. The FindBarWin is created when the BrowserView |
-// is attached to the frame's Widget for the first time. |
-// |
-//////////////////////////////////////////////////////////////////////////////// |
-class FindBarWin : public views::AcceleratorTarget, |
- public views::FocusChangeListener, |
- public AnimationDelegate, |
- public FindBar, |
- public FindBarTesting { |
- public: |
- explicit FindBarWin(BrowserView* browser_view); |
- virtual ~FindBarWin(); |
- |
- // Whether we are animating the position of the Find window. |
- bool IsAnimating(); |
- |
-#if defined(OS_WIN) |
- // Forwards selected keystrokes to the renderer. This is useful to make sure |
- // that arrow keys and PageUp and PageDown result in scrolling, instead of |
- // being eaten because the FindBar has focus. Returns true if the keystroke |
- // was forwarded, false if not. |
- bool MaybeForwardKeystrokeToWebpage(UINT message, TCHAR key, UINT flags); |
-#endif |
- |
- void OnFinalMessage(); |
- |
- bool IsVisible(); |
- |
- // FindBar implementation: |
- virtual FindBarController* GetFindBarController() const { |
- return find_bar_controller_; |
- } |
- virtual void SetFindBarController(FindBarController* find_bar_controller) { |
- find_bar_controller_ = find_bar_controller; |
- } |
- virtual void Show(); |
- virtual void Hide(bool animate); |
- virtual void SetFocusAndSelection(); |
- virtual void ClearResults(const FindNotificationDetails& results); |
- virtual void StopAnimation(); |
- virtual void MoveWindowIfNecessary(const gfx::Rect& selection_rect, |
- bool no_redraw); |
- virtual void SetFindText(const string16& find_text); |
- virtual void UpdateUIForFindResult(const FindNotificationDetails& result, |
- const string16& find_text); |
- virtual void AudibleAlert(); |
- virtual gfx::Rect GetDialogPosition(gfx::Rect avoid_overlapping_rect); |
- virtual void SetDialogPosition(const gfx::Rect& new_pos, bool no_redraw); |
- virtual bool IsFindBarVisible(); |
- virtual void RestoreSavedFocus(); |
- virtual FindBarTesting* GetFindBarTesting(); |
- |
- // Overridden from views::FocusChangeListener: |
- virtual void FocusWillChange(views::View* focused_before, |
- views::View* focused_now); |
- |
- // Overridden from views::AcceleratorTarget: |
- virtual bool AcceleratorPressed(const views::Accelerator& accelerator); |
- |
- // AnimationDelegate implementation: |
- virtual void AnimationProgressed(const Animation* animation); |
- virtual void AnimationEnded(const Animation* animation); |
- |
- // FindBarTesting implementation: |
- virtual bool GetFindBarWindowInfo(gfx::Point* position, |
- bool* fully_visible); |
- |
- // Get the offset with which to paint the theme image. |
- void GetThemePosition(gfx::Rect* bounds); |
- |
- // During testing we can disable animations by setting this flag to true, |
- // so that opening and closing the Find box happens instantly, instead of |
- // having to poll it while it animates to open/closed status. |
- static bool disable_animations_during_testing_; |
- |
- private: |
- class Host; |
- |
- // Retrieves the boundaries that the find bar has to work with within the |
- // Chrome frame window. The resulting rectangle will be a rectangle that |
- // overlaps the bottom of the Chrome toolbar by one pixel (so we can create |
- // the illusion that the find bar is part of the toolbar) and covers the page |
- // area, except that we deflate the rect width by subtracting (from both |
- // sides) the width of the toolbar and some extra pixels to account for the |
- // width of the Chrome window borders. |bounds| is relative to the browser |
- // window. If the function fails to determine the browser window/client area |
- // rectangle or the rectangle for the page area then |bounds| will |
- // be an empty rectangle. |
- void GetDialogBounds(gfx::Rect* bounds); |
- |
- // The dialog needs rounded edges, so we create a polygon that corresponds to |
- // the background images for this window (and make the polygon only contain |
- // the pixels that we want to draw). The polygon is then given to SetWindowRgn |
- // which changes the window from being a rectangle in shape, to being a rect |
- // with curved edges. We also check to see if the region should be truncated |
- // to prevent from drawing onto Chrome's window border. |
- void UpdateWindowEdges(const gfx::Rect& new_pos); |
- |
- |
- // Registers this class as the handler for when Escape is pressed. We will |
- // unregister once we loose focus. See also: SetFocusChangeListener(). |
- void RegisterEscAccelerator(); |
- |
- // When we loose focus, we unregister the handler for Escape. See |
- // also: SetFocusChangeListener(). |
- void UnregisterEscAccelerator(); |
- |
- // The BrowserView that created us. |
- BrowserView* browser_view_; |
- |
- // Our view, which is responsible for drawing the UI. |
- FindBarView* view_; |
- |
- // The y position pixel offset of the window while animating the Find dialog. |
- int find_dialog_animation_offset_; |
- |
- // The animation class to use when opening the Find window. |
- scoped_ptr<SlideAnimation> animation_; |
- |
- // The focus manager we register with to keep track of focus changes. |
- views::FocusManager* focus_manager_; |
- |
- // True if the accelerator target for Esc key is registered. |
- bool esc_accel_target_registered_; |
- |
- // Tracks and stores the last focused view which is not the FindBarView |
- // or any of its children. Used to restore focus once the FindBarView is |
- // closed. |
- scoped_ptr<views::ExternalFocusTracker> focus_tracker_; |
- |
- // A pointer back to the owning controller. |
- FindBarController* find_bar_controller_; |
- |
- // Host is the Widget implementation that is created and maintained by the |
- // find bar. It contains the FindBarView. |
- scoped_ptr<Host> host_; |
- |
- DISALLOW_COPY_AND_ASSIGN(FindBarWin); |
-}; |
- |
-#endif // CHROME_BROWSER_VIEWS_FIND_BAR_WIN_H_ |