summaryrefslogtreecommitdiffstats
path: root/chrome/browser/ui/gtk/browser_window_gtk.cc
diff options
context:
space:
mode:
authordhollowa@chromium.org <dhollowa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-10-18 03:22:50 +0000
committerdhollowa@chromium.org <dhollowa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-10-18 03:22:50 +0000
commite4e15dca9f700cf5f0e9ff708622ff0cebe94100 (patch)
tree34c1e4ffc83ea2144a1b36477c8845ce7bb3b79b /chrome/browser/ui/gtk/browser_window_gtk.cc
parentb35c81cc0bd12bc4182105b40f8e2702ab684ea8 (diff)
downloadchromium_src-e4e15dca9f700cf5f0e9ff708622ff0cebe94100.zip
chromium_src-e4e15dca9f700cf5f0e9ff708622ff0cebe94100.tar.gz
chromium_src-e4e15dca9f700cf5f0e9ff708622ff0cebe94100.tar.bz2
Refactor Instant to separate out preview control
Separates out Show/Hide logic into a separate |InstantPreviewController| class. This class follows an observer pattern, observing the |InstantModel| changes. The model is held by the |InstantController|. The goal with this is to pave the way for future changes that will expand the complexity of the "view" logic, especially in the area of coordinating the animations used with --enable-instant-extended-api features. BUG=142785 TEST=No functional change. Refactoring only. R=sreeram@chromium.org, jered@chromium.org, samarth@chromium.org Review URL: https://chromiumcodereview.appspot.com/11144004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@162633 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/ui/gtk/browser_window_gtk.cc')
-rw-r--r--chrome/browser/ui/gtk/browser_window_gtk.cc64
1 files changed, 28 insertions, 36 deletions
diff --git a/chrome/browser/ui/gtk/browser_window_gtk.cc b/chrome/browser/ui/gtk/browser_window_gtk.cc
index 4ac7cf0..24fe60b 100644
--- a/chrome/browser/ui/gtk/browser_window_gtk.cc
+++ b/chrome/browser/ui/gtk/browser_window_gtk.cc
@@ -65,6 +65,7 @@
#include "chrome/browser/ui/gtk/gtk_window_util.h"
#include "chrome/browser/ui/gtk/infobars/infobar_container_gtk.h"
#include "chrome/browser/ui/gtk/infobars/infobar_gtk.h"
+#include "chrome/browser/ui/gtk/instant_preview_controller_gtk.h"
#include "chrome/browser/ui/gtk/location_bar_view_gtk.h"
#include "chrome/browser/ui/gtk/nine_box.h"
#include "chrome/browser/ui/gtk/one_click_signin_bubble_gtk.h"
@@ -1134,20 +1135,6 @@ void BrowserWindowGtk::Paste() {
window_, chrome::GetActiveWebContents(browser_.get()));
}
-void BrowserWindowGtk::ShowInstant(TabContents* preview,
- int height,
- InstantSizeUnits units) {
- // TODO(jered): Support height < 100%.
- DCHECK(height == 100 && units == INSTANT_SIZE_PERCENT);
- contents_container_->SetPreview(preview);
- MaybeShowBookmarkBar(false);
-}
-
-void BrowserWindowGtk::HideInstant() {
- contents_container_->SetPreview(NULL);
- MaybeShowBookmarkBar(false);
-}
-
gfx::Rect BrowserWindowGtk::GetInstantBounds() {
return ui::GetWidgetScreenBounds(contents_container_->widget());
}
@@ -1326,28 +1313,6 @@ extensions::ActiveTabPermissionGranter*
active_tab_permission_granter();
}
-void BrowserWindowGtk::MaybeShowBookmarkBar(bool animate) {
- TRACE_EVENT0("ui::gtk", "BrowserWindowGtk::MaybeShowBookmarkBar");
- if (!IsBookmarkBarSupported())
- return;
-
- TabContents* tab = GetDisplayedTab();
-
- if (tab)
- bookmark_bar_->SetPageNavigator(browser_.get());
-
- BookmarkBar::State state = browser_->bookmark_bar_state();
- if (contents_container_->HasPreview() && state == BookmarkBar::DETACHED)
- state = BookmarkBar::HIDDEN;
-
- toolbar_->UpdateForBookmarkBarVisibility(state == BookmarkBar::DETACHED);
- PlaceBookmarkBar(state == BookmarkBar::DETACHED);
- bookmark_bar_->SetBookmarkBarState(
- state,
- animate ? BookmarkBar::ANIMATE_STATE_CHANGE :
- BookmarkBar::DONT_ANIMATE_STATE_CHANGE);
-}
-
void BrowserWindowGtk::UpdateDevToolsForContents(WebContents* contents) {
TRACE_EVENT0("ui::gtk", "BrowserWindowGtk::UpdateDevToolsForContents");
TabContents* old_devtools = devtools_container_->tab();
@@ -1822,6 +1787,11 @@ void BrowserWindowGtk::InitWidgets() {
gtk_box_pack_end(GTK_BOX(window_vbox_), render_area_event_box_,
TRUE, TRUE, 0);
+ instant_preview_controller_.reset(
+ new InstantPreviewControllerGtk(browser_.get(),
+ this,
+ contents_container_.get()));
+
if (IsBookmarkBarSupported()) {
bookmark_bar_.reset(new BookmarkBarGtk(this,
browser_.get(),
@@ -2054,6 +2024,28 @@ int BrowserWindowGtk::GetXPositionOfLocationIcon(GtkWidget* relative_to) {
return x;
}
+void BrowserWindowGtk::MaybeShowBookmarkBar(bool animate) {
+ TRACE_EVENT0("ui::gtk", "BrowserWindowGtk::MaybeShowBookmarkBar");
+ if (!IsBookmarkBarSupported())
+ return;
+
+ TabContents* tab = GetDisplayedTab();
+
+ if (tab)
+ bookmark_bar_->SetPageNavigator(browser_.get());
+
+ BookmarkBar::State state = browser_->bookmark_bar_state();
+ if (contents_container_->HasPreview() && state == BookmarkBar::DETACHED)
+ state = BookmarkBar::HIDDEN;
+
+ toolbar_->UpdateForBookmarkBarVisibility(state == BookmarkBar::DETACHED);
+ PlaceBookmarkBar(state == BookmarkBar::DETACHED);
+ bookmark_bar_->SetBookmarkBarState(
+ state,
+ animate ? BookmarkBar::ANIMATE_STATE_CHANGE :
+ BookmarkBar::DONT_ANIMATE_STATE_CHANGE);
+}
+
void BrowserWindowGtk::OnLocationIconSizeAllocate(GtkWidget* sender,
GtkAllocation* allocation) {
// The position of the arrow may have changed, so we'll have to redraw it.