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

Unified Diff: chrome/browser/ui/gtk/bookmarks/bookmark_bar_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/bookmarks/bookmark_bar_gtk.h
diff --git a/chrome/browser/ui/gtk/bookmarks/bookmark_bar_gtk.h b/chrome/browser/ui/gtk/bookmarks/bookmark_bar_gtk.h
deleted file mode 100644
index 2df04282110914b81b70fb905b5552ed9f643a52..0000000000000000000000000000000000000000
--- a/chrome/browser/ui/gtk/bookmarks/bookmark_bar_gtk.h
+++ /dev/null
@@ -1,425 +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_BOOKMARKS_BOOKMARK_BAR_GTK_H_
-#define CHROME_BROWSER_UI_GTK_BOOKMARKS_BOOKMARK_BAR_GTK_H_
-
-#include <gtk/gtk.h>
-
-#include <vector>
-
-#include "base/compiler_specific.h"
-#include "base/gtest_prod_util.h"
-#include "base/memory/scoped_ptr.h"
-#include "base/memory/weak_ptr.h"
-#include "base/prefs/pref_member.h"
-#include "chrome/browser/bookmarks/bookmark_model_observer.h"
-#include "chrome/browser/bookmarks/bookmark_stats.h"
-#include "chrome/browser/ui/bookmarks/bookmark_bar.h"
-#include "chrome/browser/ui/bookmarks/bookmark_bar_instructions_delegate.h"
-#include "chrome/browser/ui/bookmarks/bookmark_context_menu_controller.h"
-#include "chrome/browser/ui/gtk/menu_bar_helper.h"
-#include "content/public/browser/notification_observer.h"
-#include "content/public/browser/notification_registrar.h"
-#include "ui/base/gtk/gtk_signal.h"
-#include "ui/base/gtk/owned_widget_gtk.h"
-#include "ui/gfx/animation/animation.h"
-#include "ui/gfx/animation/animation_delegate.h"
-#include "ui/gfx/animation/slide_animation.h"
-#include "ui/gfx/point.h"
-#include "ui/gfx/size.h"
-
-class BookmarkBarInstructionsGtk;
-class BookmarkMenuController;
-class Browser;
-class BrowserWindowGtk;
-class GtkThemeService;
-class MenuGtk;
-class TabstripOriginProvider;
-
-namespace content {
-class PageNavigator;
-}
-
-class BookmarkBarGtk : public gfx::AnimationDelegate,
- public BookmarkModelObserver,
- public MenuBarHelper::Delegate,
- public content::NotificationObserver,
- public BookmarkBarInstructionsDelegate,
- public BookmarkContextMenuControllerDelegate {
- public:
- BookmarkBarGtk(BrowserWindowGtk* window,
- Browser* browser,
- TabstripOriginProvider* tabstrip_origin_provider);
- virtual ~BookmarkBarGtk();
-
- // Returns the current browser.
- Browser* browser() const { return browser_; }
-
- // Returns the top level widget.
- GtkWidget* widget() const { return event_box_.get(); }
-
- // Sets the PageNavigator that is used when the user selects an entry on
- // the bookmark bar.
- void SetPageNavigator(content::PageNavigator* navigator);
-
- // Create the contents of the bookmark bar.
- void Init();
-
- // Changes the state of the bookmark bar.
- void SetBookmarkBarState(BookmarkBar::State state,
- BookmarkBar::AnimateChangeType animate_type);
-
- // Get the current height of the bookmark bar.
- int GetHeight();
-
- // Returns true if the bookmark bar is showing an animation.
- bool IsAnimating();
-
- // gfx::AnimationDelegate implementation -------------------------------------
- virtual void AnimationProgressed(const gfx::Animation* animation) OVERRIDE;
- virtual void AnimationEnded(const gfx::Animation* animation) OVERRIDE;
-
- // MenuBarHelper::Delegate implementation ------------------------------------
- virtual void PopupForButton(GtkWidget* button) OVERRIDE;
- virtual void PopupForButtonNextTo(GtkWidget* button,
- GtkMenuDirectionType dir) OVERRIDE;
-
- // BookmarkContextMenuController::Delegate implementation --------------------
- virtual void CloseMenu() OVERRIDE;
-
- const gfx::Animation* animation() { return &slide_animation_; }
-
- int max_height() const { return max_height_; }
-
- private:
- FRIEND_TEST_ALL_PREFIXES(BookmarkBarGtkUnittest, DisplaysHelpMessageOnEmpty);
- FRIEND_TEST_ALL_PREFIXES(BookmarkBarGtkUnittest,
- HidesHelpMessageWithBookmark);
- FRIEND_TEST_ALL_PREFIXES(BookmarkBarGtkUnittest, BuildsButtons);
-
- // Change the visibility of the bookmarks bar. (Starts out hidden, per GTK's
- // default behaviour). There are three visiblity states:
- //
- // Showing - bookmark bar is fully visible.
- // Hidden - bookmark bar is hidden except for a few pixels that give
- // extra padding to the bottom of the toolbar. Buttons are not
- // clickable.
- // Fullscreen - bookmark bar is fully hidden.
- void Show(BookmarkBar::State old_state,
- BookmarkBar::AnimateChangeType animate_type);
- void Hide(BookmarkBar::State old_state,
- BookmarkBar::AnimateChangeType animate_type);
-
- // Calculate maximum height of bookmark bar.
- void CalculateMaxHeight();
-
- // Helper function which generates GtkToolItems for |bookmark_toolbar_|.
- void CreateAllBookmarkButtons();
-
- // Sets the visibility of the instructional text based on whether there are
- // any bookmarks in the bookmark bar node.
- void SetInstructionState();
-
- // Sets the visibility of the overflow chevron.
- void SetChevronState();
-
- // Shows or hides the other bookmarks button depending on whether there are
- // bookmarks in it.
- void UpdateOtherBookmarksVisibility();
-
- // Destroys all the bookmark buttons in the GtkToolbar.
- void RemoveAllButtons();
-
- // Adds the "other bookmarks" and overflow buttons.
- void AddCoreButtons();
-
- // Removes and recreates all buttons in the bar.
- void ResetButtons();
-
- // Returns the number of buttons corresponding to starred urls/folders. This
- // is equivalent to the number of children the bookmark bar node from the
- // bookmark bar model has.
- int GetBookmarkButtonCount();
-
- // Returns BOOKMARK_LAUNCH_LOCATION_DETACHED_BAR or
- // BOOKMARK_LAUNCH_LOCATION_ATTACHED_BAR based on detached state.
- BookmarkLaunchLocation GetBookmarkLaunchLocation() const;
-
- // Set the appearance of the overflow button appropriately (either chromium
- // style or GTK style).
- void SetOverflowButtonAppearance();
-
- // Returns the index of the first bookmark that is not visible on the bar.
- // Returns -1 if they are all visible.
- // |extra_space| is how much extra space to give the toolbar during the
- // calculation (for the purposes of determining if ditching the chevron
- // would be a good idea).
- // If non-NULL, |showing_folders| will be packed with all the folders that are
- // showing on the bar.
- int GetFirstHiddenBookmark(int extra_space,
- std::vector<GtkWidget*>* showing_folders);
-
- // Update the detached state (either enable or disable it, or do nothing).
- void UpdateDetachedState(BookmarkBar::State old_state);
-
- // Turns on or off the app_paintable flag on |event_box_|, depending on our
- // state.
- void UpdateEventBoxPaintability();
-
- // Queue a paint on the event box.
- void PaintEventBox();
-
- // Finds the size of the current web contents, if it exists and sets |size|
- // to the correct value. Returns false if there isn't a WebContents, a
- // condition that can happen during testing.
- bool GetWebContentsSize(gfx::Size* size);
-
- // Connects to the "size-allocate" signal on the given widget, and causes it
- // to throb after allocation. This is called when a new item is added to the
- // bar. We can't call StartThrobbing directly because we don't know if it's
- // visible or not until after the widget is allocated.
- void StartThrobbingAfterAllocation(GtkWidget* item);
-
- // Used by StartThrobbingAfterAllocation.
- CHROMEGTK_CALLBACK_1(BookmarkBarGtk, void, OnItemAllocate, GtkAllocation*);
-
- // Makes the appropriate widget on the bookmark bar stop throbbing
- // (a folder, the overflow chevron, or nothing).
- void StartThrobbing(const BookmarkNode* node);
-
- // Set |throbbing_widget_| to |widget|. Also makes sure that
- // |throbbing_widget_| doesn't become stale.
- void SetThrobbingWidget(GtkWidget* widget);
-
- // An item has been dragged over the toolbar, update the drag context
- // and toolbar UI appropriately.
- gboolean ItemDraggedOverToolbar(
- GdkDragContext* context, int index, guint time);
-
- // When dragging in the middle of a folder, assume the user wants to drop
- // on the folder. Towards the edges, assume the user wants to drop on the
- // toolbar. This makes it possible to drop between two folders. This function
- // returns the index on the toolbar the drag should target, or -1 if the
- // drag should hit the folder.
- int GetToolbarIndexForDragOverFolder(GtkWidget* button, gint x);
-
- void ClearToolbarDropHighlighting();
-
- // Overridden from BookmarkModelObserver:
- virtual void BookmarkModelLoaded(BookmarkModel* model,
- bool ids_reassigned) OVERRIDE;
- virtual void BookmarkModelBeingDeleted(BookmarkModel* model) OVERRIDE;
- virtual void BookmarkNodeMoved(BookmarkModel* model,
- const BookmarkNode* old_parent,
- int old_index,
- const BookmarkNode* new_parent,
- int new_index) OVERRIDE;
- virtual void BookmarkNodeAdded(BookmarkModel* model,
- const BookmarkNode* parent,
- int index) OVERRIDE;
- virtual void BookmarkNodeRemoved(BookmarkModel* model,
- const BookmarkNode* parent,
- int old_index,
- const BookmarkNode* node) OVERRIDE;
- virtual void BookmarkAllNodesRemoved(BookmarkModel* model) OVERRIDE;
- virtual void BookmarkNodeChanged(BookmarkModel* model,
- const BookmarkNode* node) OVERRIDE;
- virtual void BookmarkNodeFaviconChanged(BookmarkModel* model,
- const BookmarkNode* node) OVERRIDE;
- virtual void BookmarkNodeChildrenReordered(BookmarkModel* model,
- const BookmarkNode* node) OVERRIDE;
-
- // Overridden from content::NotificationObserver:
- virtual void Observe(int type,
- const content::NotificationSource& source,
- const content::NotificationDetails& details) OVERRIDE;
-
- GtkWidget* CreateBookmarkButton(const BookmarkNode* node);
- GtkToolItem* CreateBookmarkToolItem(const BookmarkNode* node);
-
- void ConnectFolderButtonEvents(GtkWidget* widget, bool is_tool_item);
-
- // Finds the BookmarkNode from the model associated with |button|.
- const BookmarkNode* GetNodeForToolButton(GtkWidget* button);
-
- // Creates and displays a popup menu for BookmarkNode |node|.
- void PopupMenuForNode(GtkWidget* sender, const BookmarkNode* node,
- GdkEventButton* event);
-
- // GtkButton callbacks.
- CHROMEGTK_CALLBACK_1(BookmarkBarGtk, gboolean, OnButtonPressed,
- GdkEventButton*);
- CHROMEGTK_CALLBACK_0(BookmarkBarGtk, void, OnClicked);
- CHROMEGTK_CALLBACK_1(BookmarkBarGtk, void, OnButtonDragBegin,
- GdkDragContext*);
- CHROMEGTK_CALLBACK_1(BookmarkBarGtk, void, OnButtonDragEnd, GdkDragContext*);
- CHROMEGTK_CALLBACK_4(BookmarkBarGtk, void, OnButtonDragGet,
- GdkDragContext*, GtkSelectionData*, guint, guint);
-
- // GtkButton callbacks for folder buttons.
- CHROMEGTK_CALLBACK_0(BookmarkBarGtk, void, OnFolderClicked);
-
- // GtkButton callback for apps button.
- CHROMEGTK_CALLBACK_0(BookmarkBarGtk, void, OnAppsButtonClicked);
-
- // GtkToolbar callbacks.
- CHROMEGTK_CALLBACK_4(BookmarkBarGtk, gboolean, OnToolbarDragMotion,
- GdkDragContext*, gint, gint, guint);
- CHROMEGTK_CALLBACK_1(BookmarkBarGtk, void, OnToolbarSizeAllocate,
- GtkAllocation*);
-
- // Used for both folder buttons and the toolbar.
- CHROMEGTK_CALLBACK_6(BookmarkBarGtk, void, OnDragReceived,
- GdkDragContext*, gint, gint, GtkSelectionData*,
- guint, guint);
- CHROMEGTK_CALLBACK_2(BookmarkBarGtk, void, OnDragLeave,
- GdkDragContext*, guint);
-
- // Used for folder buttons.
- CHROMEGTK_CALLBACK_4(BookmarkBarGtk, gboolean, OnFolderDragMotion,
- GdkDragContext*, gint, gint, guint);
-
- // GtkEventBox callbacks.
- CHROMEGTK_CALLBACK_1(BookmarkBarGtk, gboolean, OnEventBoxExpose,
- GdkEventExpose*);
- CHROMEGTK_CALLBACK_0(BookmarkBarGtk, void, OnEventBoxDestroy);
-
- // Callbacks on our parent widget.
- CHROMEGTK_CALLBACK_1(BookmarkBarGtk, void, OnParentSizeAllocate,
- GtkAllocation*);
-
- // |throbbing_widget_| callback.
- CHROMEGTK_CALLBACK_0(BookmarkBarGtk, void, OnThrobbingWidgetDestroy);
-
- // Overriden from BookmarkBarInstructionsDelegate:
- virtual void ShowImportDialog() OVERRIDE;
-
- // Updates the visibility of the apps shortcut button |apps_shortcut_visible_|
- // changes.
- void OnAppsPageShortcutVisibilityChanged();
-
- // Updates the drag&drop state when |edit_bookmarks_enabled_| changes.
- void OnEditBookmarksEnabledChanged();
-
- // Used for opening urls.
- content::PageNavigator* page_navigator_;
-
- Browser* browser_;
- BrowserWindowGtk* window_;
-
- // Provides us with the offset into the background theme image.
- TabstripOriginProvider* tabstrip_origin_provider_;
-
- // Model providing details as to the starred entries/folders that should be
- // shown. This is owned by the Profile.
- BookmarkModel* model_;
-
- // Contains |bookmark_hbox_|. Event box exists to prevent leakage of
- // background color from the toplevel application window's GDK window.
- ui::OwnedWidgetGtk event_box_;
-
- // Used to detached the bookmark bar when on the NTP.
- GtkWidget* ntp_padding_box_;
-
- // Used to paint the background of the bookmark bar when in detached mode.
- GtkWidget* paint_box_;
-
- // Used to position all children.
- GtkWidget* bookmark_hbox_;
-
- // Alignment widget that is visible if there are no bookmarks on
- // the bookmar bar.
- GtkWidget* instructions_;
-
- // BookmarkBarInstructionsGtk that holds the label and the link for importing
- // bookmarks when there are no bookmarks on the bookmark bar.
- scoped_ptr<BookmarkBarInstructionsGtk> instructions_gtk_;
-
- // The apps page shortcut button.
- GtkWidget* apps_shortcut_button_;
-
- // GtkToolbar which contains all the bookmark buttons.
- ui::OwnedWidgetGtk bookmark_toolbar_;
-
- // The button that shows extra bookmarks that don't fit on the bookmark
- // bar.
- GtkWidget* overflow_button_;
-
- // A separator between the main bookmark bar area and
- // |other_bookmarks_button_|.
- GtkWidget* other_bookmarks_separator_;
-
- // The other bookmarks button.
- GtkWidget* other_bookmarks_button_;
-
- // Padding for the other bookmarks button.
- GtkWidget* other_padding_;
-
- // The BookmarkNode from the model being dragged. NULL when we aren't
- // dragging.
- const BookmarkNode* dragged_node_;
-
- // The visual representation that follows the cursor during drags.
- GtkWidget* drag_icon_;
-
- // We create a GtkToolbarItem from |dragged_node_| ;or display.
- GtkToolItem* toolbar_drop_item_;
-
- // Theme provider for building buttons.
- GtkThemeService* theme_service_;
-
- // Whether we should show the instructional text in the bookmark bar.
- bool show_instructions_;
-
- MenuBarHelper menu_bar_helper_;
-
- // The last displayed right click menu, or NULL if no menus have been
- // displayed yet.
- // The controller.
- scoped_ptr<BookmarkContextMenuController> current_context_menu_controller_;
- // The view.
- scoped_ptr<MenuGtk> current_context_menu_;
-
- // The last displayed left click menu, or NULL if no menus have been
- // displayed yet.
- scoped_ptr<BookmarkMenuController> current_menu_;
-
- gfx::SlideAnimation slide_animation_;
-
- // Used to optimize out |bookmark_toolbar_| size-allocate events we don't
- // need to respond to.
- int last_allocation_width_;
-
- content::NotificationRegistrar registrar_;
-
- // The size of the web contents last time we forced a paint. We keep track
- // of this so we don't force too many paints.
- gfx::Size last_web_contents_size_;
-
- // The last coordinates recorded by OnButtonPress; used to line up the
- // drag icon during bookmark drags.
- gfx::Point last_pressed_coordinates_;
-
- // The currently throbbing widget. This is NULL if no widget is throbbing.
- // We track it because we only want to allow one widget to throb at a time.
- GtkWidget* throbbing_widget_;
-
- // Tracks whether the apps shortcut button should be shown.
- BooleanPrefMember apps_shortcut_visible_;
-
- // Tracks whether bookmarks can be modified.
- BooleanPrefMember edit_bookmarks_enabled_;
-
- BookmarkBar::State bookmark_bar_state_;
-
- // Maximum height of the bookmark bar.
- int max_height_;
-
- base::WeakPtrFactory<BookmarkBarGtk> weak_factory_;
-
- DISALLOW_COPY_AND_ASSIGN(BookmarkBarGtk);
-};
-
-#endif // CHROME_BROWSER_UI_GTK_BOOKMARKS_BOOKMARK_BAR_GTK_H_

Powered by Google App Engine
This is Rietveld 408576698