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

Unified Diff: chrome/browser/ui/gtk/location_bar_view_gtk.h

Issue 231733005: Delete the GTK+ port of Chrome. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Remerge to ToT Created 6 years, 8 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/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_

Powered by Google App Engine
This is Rietveld 408576698