Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(29)

Unified Diff: chrome/browser/views/find_bar_host.h

Issue 200035: First cut at implementation of FindBar for views / gtk... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/views/find_bar_host.h
===================================================================
--- chrome/browser/views/find_bar_host.h (revision 25582)
+++ chrome/browser/views/find_bar_host.h (working copy)
@@ -2,8 +2,8 @@
// 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_
+#ifndef CHROME_BROWSER_VIEWS_FIND_BAR_HOST_H_
+#define CHROME_BROWSER_VIEWS_FIND_BAR_HOST_H_
#include "app/animation.h"
#include "base/gfx/rect.h"
@@ -11,7 +11,9 @@
#include "base/scoped_ptr.h"
#include "chrome/browser/find_bar.h"
#include "chrome/browser/renderer_host/render_view_host_delegate.h"
+#include "views/controls/textfield/textfield.h"
#include "views/focus/focus_manager.h"
+#include "views/widget/widget.h"
class BrowserView;
class FindBarController;
@@ -25,41 +27,40 @@
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,
+// The FindBarHost implements the container window for the
+// find-in-page functionality. It uses the appropriate implementation from
+// find_bar_host_win.cc or find_bar_host_gtk.cc 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.
+// 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.
+// There is one FindBarHost per BrowserView, and its state is updated
+// whenever the selected Tab is changed. The FindBarHost is created when
+// the BrowserView is attached to the frame's Widget for the first time.
//
////////////////////////////////////////////////////////////////////////////////
-class FindBarWin : public views::AcceleratorTarget,
+class FindBarHost : public views::AcceleratorTarget,
public views::FocusChangeListener,
public AnimationDelegate,
public FindBar,
public FindBarTesting {
public:
- explicit FindBarWin(BrowserView* browser_view);
- virtual ~FindBarWin();
+ explicit FindBarHost(BrowserView* browser_view);
+ virtual ~FindBarHost();
// 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
+ bool MaybeForwardKeystrokeToWebpage(
+ const views::Textfield::Keystroke& key_stroke);
void OnFinalMessage();
@@ -113,8 +114,6 @@
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
@@ -144,6 +143,19 @@
// also: SetFocusChangeListener().
void UnregisterEscAccelerator();
+ // Creates and returns the native Widget.
+ views::Widget* CreateHost();
+ // Allows implementation to tweak dialog position.
+ void SetDialogPositionNative(const gfx::Rect& new_pos, bool no_redraw);
+ // Allows implementation to tweak dialog position.
+ void GetDialogPositionNative(gfx::Rect* avoid_overlapping_rect);
+ // Returns the native view (is a child of the window widget in gtk).
+ gfx::NativeView GetNativeView(BrowserView* browser_view);
+ // Returns a keyboard event suitable for fowarding.
+ NativeWebKeyboardEvent GetKeyboardEvent(
+ const TabContents* contents,
sky 2009/09/09 22:49:41 It looks like you're at 5 now.
+ const views::Textfield::Keystroke& key_stroke);
+
// The BrowserView that created us.
BrowserView* browser_view_;
@@ -172,9 +184,10 @@
// Host is the Widget implementation that is created and maintained by the
// find bar. It contains the FindBarView.
- scoped_ptr<Host> host_;
+ scoped_ptr<views::Widget> host_;
- DISALLOW_COPY_AND_ASSIGN(FindBarWin);
+ DISALLOW_COPY_AND_ASSIGN(FindBarHost);
};
-#endif // CHROME_BROWSER_VIEWS_FIND_BAR_WIN_H_
+#endif // CHROME_BROWSER_VIEWS_FIND_BAR_HOST_H_
+

Powered by Google App Engine
This is Rietveld 408576698