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

Unified Diff: chrome/browser/chromeos/compact_location_bar.h

Issue 341008: CompactLocationBar (Closed)
Patch Set: comment updated Created 11 years, 2 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/chromeos/compact_location_bar.h
diff --git a/chrome/browser/chromeos/compact_location_bar.h b/chrome/browser/chromeos/compact_location_bar.h
new file mode 100644
index 0000000000000000000000000000000000000000..6d70e75f10ca3c31a755bce136053856c8a6f4e0
--- /dev/null
+++ b/chrome/browser/chromeos/compact_location_bar.h
@@ -0,0 +1,111 @@
+// 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_CHROMEOS_COMPACT_LOCATION_BAR_H_
+#define CHROME_BROWSER_CHROMEOS_COMPACT_LOCATION_BAR_H_
+
+#include "base/basictypes.h"
+#include "base/timer.h"
+#include "chrome/browser/bubble_positioner.h"
+#include "chrome/browser/autocomplete/autocomplete_edit.h"
+#include "views/controls/button/button.h"
+#include "views/view.h"
+
+class AutocompleteEditViewGtk;
+class Browser;
+class BrowserView;
+class ToolbarStarToggleGtk;
+class Tab;
+class TabContents;
+class TabStrip;
+
+namespace views {
+class ImageButton;
+class NativeViewHost;
+} // namespace views
+
+// CompactLocationBar is a version of location bar that is shown under
+// a tab for short priod of used when Chrome is in the compact
+// navigation bar mode.
+// TODO(oshima): re-implement w/o using a popup, like a FindBar.
+class CompactLocationBar : public views::View,
+ public views::ButtonListener,
+ public AutocompleteEditController,
+ public BubblePositioner {
+ public:
+ explicit CompactLocationBar(BrowserView* browser_view);
+ ~CompactLocationBar();
+
+ // Returns the bounds to locale the compact location bar under the tab.
+ gfx::Rect GetBoundsUnderTab(const Tab* tab) const;
+
+ // (Re)Starts the popup timer that hides the popup after X seconds.
+ void StartPopupTimer();
+
+ // Updates the content and the location of the compact location bar.
+ void Update(const Tab* tab, const TabContents* contents);
+
+ // Updates the location of the location bar popup under the given tab.
+ void UpdateBounds(const Tab* tab);
+
+ private:
+ Browser* browser() const;
+
+ // Cancels the popup timer.
+ void CancelPopupTimer();
+
+ // Hides the popup window.
+ void HidePopup();
+
+ // Called when the view is added to the tree to initialize the
+ // CompactLocationBar.
+ void Init();
+
+ // Overridden from views::View.
+ virtual gfx::Size GetPreferredSize();
+ virtual void Layout();
+ virtual void Paint(gfx::Canvas* canvas);
+ virtual void ViewHierarchyChanged(bool is_add, views::View* parent,
+ views::View* child);
+ virtual void OnMouseEntered(const views::MouseEvent& event);
+ virtual void OnMouseExited(const views::MouseEvent& event);
+
+ // Overridden from views::ButtonListener:
+ virtual void ButtonPressed(views::Button* sender, const views::Event& event);
+
+ // AutocompleteEditController implementation.
+ virtual void OnAutocompleteAccept(const GURL& url,
+ WindowOpenDisposition disposition,
+ PageTransition::Type transition,
+ const GURL& alternate_nav_url);
+ virtual void OnChanged();
+ virtual void OnKillFocus() {}
+ virtual void OnSetFocus() {}
+ virtual void OnInputInProgress(bool in_progress);
+ virtual SkBitmap GetFavIcon() const;
+ virtual std::wstring GetTitle() const;
+
+ // BubblePositioner implementation.
+ virtual gfx::Rect GetLocationStackBounds() const;
+
+ BrowserView* browser_view_;
+ const TabContents* current_contents_;
+
+ views::ImageButton* reload_;
+ scoped_ptr<AutocompleteEditViewGtk> location_entry_;
+ views::NativeViewHost* location_entry_view_;
+
+ // scoped_ptr<ToolbarStarToggleGtk> star_;
+ views::NativeViewHost* star_view_;
+
+ scoped_ptr<base::OneShotTimer<CompactLocationBar> > popup_timer_;
+
+ // A popup window to show the compact location bar.
+ views::Widget* popup_;
+
+ DISALLOW_COPY_AND_ASSIGN(CompactLocationBar);
+};
+
+#endif // CHROME_BROWSER_CHROMEOS_COMPACT_LOCATION_BAR_H_
+
« no previous file with comments | « chrome/browser/chromeos/chromeos_browser_extenders.cc ('k') | chrome/browser/chromeos/compact_location_bar.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698