Index: chrome/browser/gtk/location_bar_view_gtk.h |
diff --git a/chrome/browser/gtk/location_bar_view_gtk.h b/chrome/browser/gtk/location_bar_view_gtk.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..50b0775bd714e285e30ca8fa9971425baff70de9 |
--- /dev/null |
+++ b/chrome/browser/gtk/location_bar_view_gtk.h |
@@ -0,0 +1,88 @@ |
+// Copyright (c) 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_GTK_LOCATION_BAR_VIEW_GTK_H_ |
+#define CHROME_BROWSER_GTK_LOCATION_BAR_VIEW_GTK_H_ |
+ |
+#include <gtk/gtk.h> |
+ |
+#include <string> |
+ |
+#include "base/basictypes.h" |
+#include "chrome/browser/autocomplete/autocomplete_edit.h" |
+#include "chrome/browser/location_bar.h" |
+#include "chrome/common/page_transition_types.h" |
+#include "webkit/glue/window_open_disposition.h" |
+ |
+class AutocompleteEditViewGtk; |
+class CommandUpdater; |
+class Profile; |
+class SkBitmap; |
+class TabContents; |
+class ToolbarModel; |
+ |
+class LocationBarViewGtk : public AutocompleteEditController, |
+ public LocationBar { |
+ public: |
+ LocationBarViewGtk(CommandUpdater* command_updater, |
+ ToolbarModel* toolbar_model); |
+ ~LocationBarViewGtk(); |
+ |
+ void Init(); |
+ |
+ void SetProfile(Profile* profile); |
+ |
+ // Return the native vbox widget. You must call Init() first, or the result |
+ // will be NULL. This is the widget that an embedder should host. |
+ GtkWidget* widget() { return vbox_; } |
+ |
+ // Updates the location bar. We also reset the bar's permanent text and |
+ // security style, and, if |tab_for_state_restoring| is non-NULL, also |
+ // restore saved state that the tab holds. |
+ void Update(const TabContents* tab_for_state_restoring); |
+ |
+ // Implement the AutocompleteEditController interface. |
+ virtual void OnAutocompleteAccept(const GURL& url, |
+ WindowOpenDisposition disposition, |
+ PageTransition::Type transition, |
+ const GURL& alternate_nav_url); |
+ virtual void OnChanged(); |
+ virtual void OnInputInProgress(bool in_progress); |
+ virtual SkBitmap GetFavIcon() const; |
+ virtual std::wstring GetTitle() const; |
+ |
+ // Implement the LocationBar interface. |
+ virtual void ShowFirstRunBubble(); |
+ virtual std::wstring GetInputString() const; |
+ virtual WindowOpenDisposition GetWindowOpenDisposition() const; |
+ virtual PageTransition::Type GetPageTransition() const; |
+ virtual void AcceptInput(); |
+ virtual void FocusLocation(); |
+ virtual void FocusSearch(); |
+ virtual void SaveStateToContents(TabContents* contents); |
+ |
+ private: |
+ GtkWidget* vbox_; |
+ |
+ scoped_ptr<AutocompleteEditViewGtk> edit_view_; |
+ |
+ Profile* profile_; |
+ CommandUpdater* command_updater_; |
+ ToolbarModel* toolbar_model_; |
+ |
+ // When we get an OnAutocompleteAccept notification from the autocomplete |
+ // edit, we save the input string so we can give it back to the browser on |
+ // the LocationBar interface via GetInputString(). |
+ std::wstring location_input_; |
+ |
+ // The user's desired disposition for how their input should be opened |
+ WindowOpenDisposition disposition_; |
+ |
+ // The transition type to use for the navigation |
+ PageTransition::Type transition_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(LocationBarViewGtk); |
+}; |
+ |
+#endif // CHROME_BROWSER_GTK_LOCATION_BAR_VIEW_GTK_H_ |