| Index: chrome/browser/ui/gtk/location_bar_view_gtk.h
|
| diff --git a/chrome/browser/ui/gtk/location_bar_view_gtk.h b/chrome/browser/ui/gtk/location_bar_view_gtk.h
|
| deleted file mode 100644
|
| index 0de4e02555fc4971d92e9156a0b8fc6977a75f08..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/ui/gtk/location_bar_view_gtk.h
|
| +++ /dev/null
|
| @@ -1,510 +0,0 @@
|
| -// Copyright (c) 2012 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_UI_GTK_LOCATION_BAR_VIEW_GTK_H_
|
| -#define CHROME_BROWSER_UI_GTK_LOCATION_BAR_VIEW_GTK_H_
|
| -
|
| -#include <gtk/gtk.h>
|
| -
|
| -#include <map>
|
| -#include <string>
|
| -
|
| -#include "base/basictypes.h"
|
| -#include "base/callback.h"
|
| -#include "base/compiler_specific.h"
|
| -#include "base/memory/scoped_ptr.h"
|
| -#include "base/memory/scoped_vector.h"
|
| -#include "base/memory/weak_ptr.h"
|
| -#include "base/prefs/pref_member.h"
|
| -#include "chrome/browser/extensions/extension_action.h"
|
| -#include "chrome/browser/extensions/extension_action_icon_factory.h"
|
| -#include "chrome/browser/extensions/extension_context_menu_model.h"
|
| -#include "chrome/browser/ui/gtk/bubble/bubble_gtk.h"
|
| -#include "chrome/browser/ui/gtk/menu_gtk.h"
|
| -#include "chrome/browser/ui/omnibox/location_bar.h"
|
| -#include "chrome/browser/ui/omnibox/omnibox_edit_controller.h"
|
| -#include "chrome/browser/ui/view_ids.h"
|
| -#include "chrome/common/content_settings_types.h"
|
| -#include "content/public/browser/notification_observer.h"
|
| -#include "content/public/browser/notification_registrar.h"
|
| -#include "content/public/common/page_transition_types.h"
|
| -#include "ui/base/gtk/gtk_signal.h"
|
| -#include "ui/base/gtk/owned_widget_gtk.h"
|
| -#include "ui/base/window_open_disposition.h"
|
| -#include "ui/gfx/animation/animation_delegate.h"
|
| -#include "ui/gfx/animation/slide_animation.h"
|
| -#include "url/gurl.h"
|
| -
|
| -class Browser;
|
| -class CommandUpdater;
|
| -class ContentSettingImageModel;
|
| -class ContentSettingBubbleGtk;
|
| -class ExtensionAction;
|
| -class GtkThemeService;
|
| -class OmniboxViewGtk;
|
| -
|
| -namespace content {
|
| -class WebContents;
|
| -}
|
| -
|
| -namespace gfx {
|
| -class Image;
|
| -}
|
| -
|
| -namespace ui {
|
| -class Accelerator;
|
| -}
|
| -
|
| -class LocationBarViewGtk : public OmniboxEditController,
|
| - public LocationBar,
|
| - public LocationBarTesting,
|
| - public content::NotificationObserver {
|
| - public:
|
| - explicit LocationBarViewGtk(Browser* browser);
|
| - virtual ~LocationBarViewGtk();
|
| -
|
| - void Init(bool popup_window_mode);
|
| -
|
| - // Returns the widget the caller should host. You must call Init() first.
|
| - GtkWidget* widget() { return hbox_.get(); }
|
| -
|
| - // Returns the widget the page info bubble should point to.
|
| - GtkWidget* location_icon_widget() const { return location_icon_image_; }
|
| -
|
| - // Returns the widget the extension installed bubble should point to.
|
| - GtkWidget* location_entry_widget() const { return entry_box_; }
|
| -
|
| - Browser* browser() const { return browser_; }
|
| -
|
| - // Sets |preview_enabled| for the PageActionViewGtk associated with this
|
| - // |page_action|. If |preview_enabled| is true, the view will display the
|
| - // page action's icon even though it has not been activated by the extension.
|
| - // This is used by the ExtensionInstalledBubbleGtk to preview what the icon
|
| - // will look like for the user upon installation of the extension.
|
| - void SetPreviewEnabledPageAction(ExtensionAction *page_action,
|
| - bool preview_enabled);
|
| -
|
| - // Retrieves the GtkWidget which is associated with PageActionView
|
| - // corresponding to |page_action|.
|
| - GtkWidget* GetPageActionWidget(ExtensionAction* page_action);
|
| -
|
| - // Show the bookmark bubble.
|
| - void ShowStarBubble(const GURL& url, bool newly_boomkarked);
|
| -
|
| - // Happens when the zoom changes for the active tab. |can_show_bubble| will be
|
| - // true if it was a user action and a bubble could be shown.
|
| - void ZoomChangedForActiveTab(bool can_show_bubble);
|
| -
|
| - // Returns the zoom widget. Used by the zoom bubble for an anchor.
|
| - GtkWidget* zoom_widget() { return zoom_.get(); }
|
| -
|
| - // Returns the manage passwords widget. Used by the manage passwords bubble
|
| - // for an anchor.
|
| - GtkWidget* manage_passwords_icon_widget() {
|
| - return manage_passwords_icon_.get();
|
| - }
|
| -
|
| - // Set the starred state of the bookmark star.
|
| - void SetStarred(bool starred);
|
| -
|
| - // OmniboxEditController:
|
| - virtual void Update(const content::WebContents* contents) OVERRIDE;
|
| - virtual void OnChanged() OVERRIDE;
|
| - virtual void OnSetFocus() OVERRIDE;
|
| - virtual void ShowURL() OVERRIDE;
|
| - virtual InstantController* GetInstant() OVERRIDE;
|
| - virtual content::WebContents* GetWebContents() OVERRIDE;
|
| - virtual ToolbarModel* GetToolbarModel() OVERRIDE;
|
| - virtual const ToolbarModel* GetToolbarModel() const OVERRIDE;
|
| -
|
| - // LocationBar:
|
| - virtual void ShowFirstRunBubble() OVERRIDE;
|
| - virtual GURL GetDestinationURL() const OVERRIDE;
|
| - virtual WindowOpenDisposition GetWindowOpenDisposition() const OVERRIDE;
|
| - virtual content::PageTransition GetPageTransition() const OVERRIDE;
|
| - virtual void AcceptInput() OVERRIDE;
|
| - virtual void FocusLocation(bool select_all) OVERRIDE;
|
| - virtual void FocusSearch() OVERRIDE;
|
| - virtual void UpdateContentSettingsIcons() OVERRIDE;
|
| - virtual void UpdateManagePasswordsIconAndBubble() OVERRIDE;
|
| - virtual void UpdatePageActions() OVERRIDE;
|
| - virtual void InvalidatePageActions() OVERRIDE;
|
| - virtual void UpdateOpenPDFInReaderPrompt() OVERRIDE;
|
| - virtual void UpdateGeneratedCreditCardView() OVERRIDE;
|
| - virtual void SaveStateToContents(content::WebContents* contents) OVERRIDE;
|
| - virtual void Revert() OVERRIDE;
|
| - virtual const OmniboxView* GetOmniboxView() const OVERRIDE;
|
| - virtual OmniboxView* GetOmniboxView() OVERRIDE;
|
| - virtual LocationBarTesting* GetLocationBarForTesting() OVERRIDE;
|
| -
|
| - // LocationBarTesting:
|
| - virtual int PageActionCount() OVERRIDE;
|
| - virtual int PageActionVisibleCount() OVERRIDE;
|
| - virtual ExtensionAction* GetPageAction(size_t index) OVERRIDE;
|
| - virtual ExtensionAction* GetVisiblePageAction(size_t index) OVERRIDE;
|
| - virtual void TestPageActionPressed(size_t index) OVERRIDE;
|
| - virtual bool GetBookmarkStarVisibility() OVERRIDE;
|
| -
|
| - // content::NotificationObserver:
|
| - virtual void Observe(int type,
|
| - const content::NotificationSource& source,
|
| - const content::NotificationDetails& details) OVERRIDE;
|
| -
|
| - // Edit background color.
|
| - static const GdkColor kBackgroundColor;
|
| -
|
| - // Superclass for content settings icons shown at the left side of the
|
| - // location bar.
|
| - class PageToolViewGtk : public gfx::AnimationDelegate {
|
| - public:
|
| - PageToolViewGtk();
|
| - virtual ~PageToolViewGtk();
|
| -
|
| - GtkWidget* widget() { return alignment_.get(); }
|
| -
|
| - bool IsVisible();
|
| -
|
| - virtual void Update(content::WebContents* web_contents) = 0;
|
| -
|
| - // Overridden from gfx::AnimationDelegate:
|
| - virtual void AnimationProgressed(const gfx::Animation* animation) OVERRIDE;
|
| - virtual void AnimationEnded(const gfx::Animation* animation) OVERRIDE;
|
| - virtual void AnimationCanceled(const gfx::Animation* animation) OVERRIDE;
|
| -
|
| - protected:
|
| - // Theme constants for solid background elements.
|
| - virtual GdkColor GetButtonBorderColor() const = 0;
|
| - virtual GdkColor GetGradientTopColor() const = 0;
|
| - virtual GdkColor GetGradientBottomColor() const = 0;
|
| -
|
| - // Delegate for ButtonPressed message.
|
| - virtual void OnClick(GtkWidget* sender) = 0;
|
| -
|
| - // Start the process of showing the label.
|
| - void StartAnimating();
|
| -
|
| - // Slide the label shut.
|
| - void CloseAnimation();
|
| -
|
| - CHROMEGTK_CALLBACK_1(PageToolViewGtk, gboolean, OnButtonPressed, GdkEvent*);
|
| - CHROMEGTK_CALLBACK_1(PageToolViewGtk, gboolean, OnExpose, GdkEventExpose*);
|
| -
|
| - // The widgets for this view.
|
| - ui::OwnedWidgetGtk alignment_;
|
| - ui::OwnedWidgetGtk event_box_;
|
| - GtkWidget* hbox_;
|
| - ui::OwnedWidgetGtk image_;
|
| -
|
| - // Explanatory text (e.g. "popup blocked").
|
| - ui::OwnedWidgetGtk label_;
|
| -
|
| - // When we show explanatory text, we slide it in/out.
|
| - gfx::SlideAnimation animation_;
|
| -
|
| - // The label's default requisition (cached so we can animate accordingly).
|
| - GtkRequisition label_req_;
|
| -
|
| - base::WeakPtrFactory<PageToolViewGtk> weak_factory_;
|
| -
|
| - private:
|
| - DISALLOW_COPY_AND_ASSIGN(PageToolViewGtk);
|
| - };
|
| -
|
| - private:
|
| - // OmniboxEditController:
|
| - virtual void HideURL() OVERRIDE;
|
| -
|
| - class PageActionViewGtk :
|
| - public ExtensionActionIconFactory::Observer,
|
| - public content::NotificationObserver,
|
| - public ExtensionContextMenuModel::PopupDelegate {
|
| - public:
|
| - PageActionViewGtk(LocationBarViewGtk* owner, ExtensionAction* page_action);
|
| - virtual ~PageActionViewGtk();
|
| -
|
| - GtkWidget* widget() { return event_box_.get(); }
|
| -
|
| - ExtensionAction* page_action() { return page_action_; }
|
| -
|
| - void set_preview_enabled(bool preview_enabled) {
|
| - preview_enabled_ = preview_enabled;
|
| - }
|
| -
|
| - bool IsVisible();
|
| -
|
| - // Called to notify the PageAction that it should determine whether to be
|
| - // visible or hidden. |contents| is the WebContents that is active, |url|
|
| - // is the current page URL.
|
| - void UpdateVisibility(content::WebContents* contents, const GURL& url);
|
| -
|
| - // Overriden from ExtensionActionIconFactory::Observer.
|
| - virtual void OnIconUpdated() OVERRIDE;
|
| -
|
| - // Simulate left mouse click on the page action button.
|
| - void TestActivatePageAction();
|
| -
|
| - // Implement the content::NotificationObserver interface.
|
| - virtual void Observe(int type,
|
| - const content::NotificationSource& source,
|
| - const content::NotificationDetails& details) OVERRIDE;
|
| -
|
| - // Overridden from ExtensionContextMenuModel::PopupDelegate:
|
| - virtual void InspectPopup(ExtensionAction* action) OVERRIDE;
|
| -
|
| - private:
|
| - // Connect the accelerator for the page action popup.
|
| - void ConnectPageActionAccelerator();
|
| -
|
| - // Disconnect the accelerator for the page action popup.
|
| - void DisconnectPageActionAccelerator();
|
| -
|
| - CHROMEGTK_CALLBACK_1(PageActionViewGtk, gboolean, OnButtonPressed,
|
| - GdkEventButton*);
|
| - CHROMEGTK_CALLBACK_1(PageActionViewGtk, gboolean, OnExposeEvent,
|
| - GdkEventExpose*);
|
| - CHROMEGTK_CALLBACK_0(PageActionViewGtk, void, OnRealize);
|
| -
|
| - // The accelerator handler for when the shortcuts to open the popup is
|
| - // struck.
|
| - static gboolean OnGtkAccelerator(GtkAccelGroup* accel_group,
|
| - GObject* acceleratable,
|
| - guint keyval,
|
| - GdkModifierType modifier,
|
| - void* user_data);
|
| -
|
| - // The location bar view that owns us.
|
| - LocationBarViewGtk* owner_;
|
| -
|
| - // The PageAction that this view represents. The PageAction is not owned by
|
| - // us, it resides in the extension of this particular profile.
|
| - ExtensionAction* page_action_;
|
| -
|
| - // The object that will be used to get the extension action icon for us.
|
| - // It may load the icon asynchronously (in which case the initial icon
|
| - // returned by the factory will be transparent), so we have to observe it
|
| - // for updates to the icon.
|
| - scoped_ptr<ExtensionActionIconFactory> icon_factory_;
|
| -
|
| - // The widgets for this page action.
|
| - ui::OwnedWidgetGtk event_box_;
|
| - ui::OwnedWidgetGtk image_;
|
| -
|
| - // The tab id we are currently showing the icon for.
|
| - int current_tab_id_;
|
| -
|
| - // The URL we are currently showing the icon for.
|
| - GURL current_url_;
|
| -
|
| - // The native browser window of the location bar that owns us.
|
| - gfx::NativeWindow window_;
|
| -
|
| - // The Notification registrar.
|
| - content::NotificationRegistrar registrar_;
|
| -
|
| - // The accelerator group used to handle accelerators, owned by this object.
|
| - GtkAccelGroup* accel_group_;
|
| -
|
| - // The keybinding accelerator registered to show the page action popup.
|
| - scoped_ptr<ui::Accelerator> page_action_keybinding_;
|
| -
|
| - // This is used for post-install visual feedback. The page_action icon
|
| - // is briefly shown even if it hasn't been enabled by its extension.
|
| - bool preview_enabled_;
|
| -
|
| - // The context menu view and model for this extension action.
|
| - scoped_ptr<MenuGtk> context_menu_;
|
| - scoped_refptr<ExtensionContextMenuModel> context_menu_model_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(PageActionViewGtk);
|
| - };
|
| - friend class PageActionViewGtk;
|
| -
|
| - // Creates, initializes, and packs the location icon, EV certificate name,
|
| - // and optional border.
|
| - void BuildSiteTypeArea();
|
| -
|
| - // Enable or disable the location icon/EV certificate as a drag source for
|
| - // the URL.
|
| - void SetSiteTypeDragSource();
|
| -
|
| - GtkWidget* site_type_area() { return site_type_alignment_; }
|
| -
|
| - CHROMEGTK_CALLBACK_1(LocationBarViewGtk, gboolean, HandleExpose,
|
| - GdkEventExpose*);
|
| - CHROMEGTK_CALLBACK_1(LocationBarViewGtk, gboolean, OnIconReleased,
|
| - GdkEventButton*);
|
| - CHROMEGTK_CALLBACK_4(LocationBarViewGtk, void, OnIconDragData,
|
| - GdkDragContext*, GtkSelectionData*, guint, guint);
|
| - CHROMEGTK_CALLBACK_1(LocationBarViewGtk, void, OnIconDragBegin,
|
| - GdkDragContext*);
|
| - CHROMEGTK_CALLBACK_1(LocationBarViewGtk, void, OnIconDragEnd,
|
| - GdkDragContext*);
|
| - CHROMEGTK_CALLBACK_1(LocationBarViewGtk, void, OnHboxSizeAllocate,
|
| - GtkAllocation*);
|
| - CHROMEGTK_CALLBACK_1(LocationBarViewGtk, void, OnEntryBoxSizeAllocate,
|
| - GtkAllocation*);
|
| - CHROMEGTK_CALLBACK_1(LocationBarViewGtk, gboolean, OnZoomButtonPress,
|
| - GdkEventButton*);
|
| - CHROMEGTK_CALLBACK_1(LocationBarViewGtk, gboolean,
|
| - OnManagePasswordsIconButtonPress, GdkEventButton*);
|
| - CHROMEGTK_CALLBACK_1(LocationBarViewGtk, void, OnStarButtonSizeAllocate,
|
| - GtkAllocation*);
|
| - CHROMEGTK_CALLBACK_1(LocationBarViewGtk, gboolean, OnStarButtonPress,
|
| - GdkEventButton*);
|
| -
|
| - // Updates the site type area: changes the icon and shows/hides the EV
|
| - // certificate information.
|
| - void UpdateSiteTypeArea();
|
| -
|
| - // Updates the maximum size of the EV certificate label.
|
| - void UpdateEVCertificateLabelSize();
|
| -
|
| - // Set the keyword text for the Search BLAH: keyword box.
|
| - void SetKeywordLabel(const base::string16& keyword);
|
| -
|
| - // Set the keyword text for the "Press tab to search BLAH" hint box.
|
| - void SetKeywordHintLabel(const base::string16& keyword);
|
| -
|
| - void ShowFirstRunBubbleInternal();
|
| -
|
| - // Shows the zoom bubble.
|
| - void ShowZoomBubble();
|
| -
|
| - // Shows the manage password bubble.
|
| - void ShowManagePasswordsBubble();
|
| -
|
| - // Show or hide |tab_to_search_box_| and |tab_to_search_hint_| according to
|
| - // the value of |show_selected_keyword_|, |show_keyword_hint_|, and the
|
| - // available horizontal space in the location bar.
|
| - void AdjustChildrenVisibility();
|
| -
|
| - // Helpers to build create the various buttons that show up in the location
|
| - // bar.
|
| - GtkWidget* CreateIconButton(
|
| - GtkWidget** image,
|
| - int image_id,
|
| - ViewID debug_id,
|
| - int tooltip_id,
|
| - gboolean (click_callback)(GtkWidget*, GdkEventButton*, gpointer));
|
| - void CreateZoomButton();
|
| - void CreateManagePasswordsIconButton();
|
| - void CreateStarButton();
|
| -
|
| - // Helpers to update state of the various buttons that show up in the
|
| - // location bar.
|
| - void UpdateZoomIcon();
|
| - void UpdateManagePasswordsIcon();
|
| - void UpdateStarIcon();
|
| -
|
| - // Shows the managepassword bubble in case there is a password to be saved.
|
| - void ShowManagePasswordsBubbleIfNeeded();
|
| -
|
| - // Returns true if we should only show the URL and none of the extras like
|
| - // the star button or page actions.
|
| - bool ShouldOnlyShowLocation();
|
| -
|
| - // The outermost widget we want to be hosted.
|
| - ui::OwnedWidgetGtk hbox_;
|
| -
|
| - // Zoom button.
|
| - ui::OwnedWidgetGtk zoom_;
|
| - GtkWidget* zoom_image_;
|
| -
|
| - // Manage passwords button.
|
| - ui::OwnedWidgetGtk manage_passwords_icon_;
|
| - GtkWidget* manage_passwords_icon_image_;
|
| -
|
| - // Star button.
|
| - ui::OwnedWidgetGtk star_;
|
| - GtkWidget* star_image_;
|
| - bool starred_;
|
| - bool star_sized_; // True after a size-allocate signal to the star widget.
|
| -
|
| - // Action to execute after the star icon has been sized, can refer to a NULL
|
| - // function to indicate no such action should be taken.
|
| - base::Closure on_star_sized_;
|
| -
|
| - // An icon to the left of the address bar.
|
| - GtkWidget* site_type_alignment_;
|
| - GtkWidget* site_type_event_box_;
|
| - GtkWidget* location_icon_image_;
|
| - GtkWidget* drag_icon_;
|
| - bool enable_location_drag_;
|
| - // TODO(pkasting): Split this label off and move the rest of the items to the
|
| - // left of the address bar.
|
| - GtkWidget* security_info_label_;
|
| -
|
| - // Content setting icons.
|
| - ui::OwnedWidgetGtk content_setting_hbox_;
|
| - ScopedVector<PageToolViewGtk> content_setting_views_;
|
| -
|
| - // Extension page actions.
|
| - std::vector<ExtensionAction*> page_actions_;
|
| -
|
| - // Extension page action icons.
|
| - ui::OwnedWidgetGtk page_action_hbox_;
|
| - ScopedVector<PageActionViewGtk> page_action_views_;
|
| -
|
| - // The widget that contains our tab hints and the location bar.
|
| - GtkWidget* entry_box_;
|
| -
|
| - // Area on the left shown when in tab to search mode.
|
| - GtkWidget* tab_to_search_alignment_;
|
| - GtkWidget* tab_to_search_box_;
|
| - GtkWidget* tab_to_search_magnifier_;
|
| - GtkWidget* tab_to_search_full_label_;
|
| - GtkWidget* tab_to_search_partial_label_;
|
| -
|
| - // Hint to user that they can tab-to-search by hitting tab.
|
| - GtkWidget* tab_to_search_hint_;
|
| - GtkWidget* tab_to_search_hint_leading_label_;
|
| - GtkWidget* tab_to_search_hint_icon_;
|
| - GtkWidget* tab_to_search_hint_trailing_label_;
|
| -
|
| - scoped_ptr<OmniboxViewGtk> omnibox_view_;
|
| -
|
| - // Alignment used to wrap |omnibox_view_|.
|
| - GtkWidget* omnibox_view_alignment_;
|
| -
|
| - Browser* browser_;
|
| -
|
| - // When true, the location bar view is read only and also is has a slightly
|
| - // different presentation (font size / color). This is used for popups.
|
| - bool popup_window_mode_;
|
| -
|
| - // Provides colors and rendering mode.
|
| - GtkThemeService* theme_service_;
|
| -
|
| - content::NotificationRegistrar registrar_;
|
| -
|
| - // Width of the main |hbox_|. Used to properly elide the EV certificate.
|
| - int hbox_width_;
|
| -
|
| - // Width of the hbox that holds |tab_to_search_box_|, |omnibox_view_| and
|
| - // |tab_to_search_hint_|.
|
| - int entry_box_width_;
|
| -
|
| - // Indicate if |tab_to_search_box_| should be shown.
|
| - bool show_selected_keyword_;
|
| -
|
| - // Indicate if |tab_to_search_hint_| should be shown.
|
| - bool show_keyword_hint_;
|
| -
|
| - // The last search keyword that was shown via the |tab_to_search_box_|.
|
| - base::string16 last_keyword_;
|
| -
|
| - // Used to change the visibility of the star decoration.
|
| - BooleanPrefMember edit_bookmarks_enabled_;
|
| -
|
| - // Used to remember the URL and title text when drag&drop has begun.
|
| - GURL drag_url_;
|
| - base::string16 drag_title_;
|
| -
|
| - // Used to schedule a task for the first run bubble.
|
| - base::WeakPtrFactory<LocationBarViewGtk> weak_ptr_factory_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(LocationBarViewGtk);
|
| -};
|
| -
|
| -#endif // CHROME_BROWSER_UI_GTK_LOCATION_BAR_VIEW_GTK_H_
|
|
|