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

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

Issue 10483010: Change the visual appearance of panel on GTK per new UI design. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Patch Created 8 years, 6 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/browser_titlebar.h
diff --git a/chrome/browser/ui/gtk/browser_titlebar.h b/chrome/browser/ui/gtk/browser_titlebar.h
index 0ed05f004277a53d1e6542d4f6e25e9fb257a873..4c46c7f13322ec16f8e501b973049a9dd020d001 100644
--- a/chrome/browser/ui/gtk/browser_titlebar.h
+++ b/chrome/browser/ui/gtk/browser_titlebar.h
@@ -16,6 +16,8 @@
#include "base/compiler_specific.h"
#include "base/memory/scoped_ptr.h"
#include "chrome/browser/prefs/pref_member.h"
+#include "chrome/browser/ui/gtk/browser_titlebar_base.h"
+#include "chrome/browser/ui/gtk/browser_titlebar_throbber.h"
#include "content/public/browser/notification_observer.h"
#include "content/public/browser/notification_registrar.h"
#include "ui/base/gtk/gtk_signal.h"
@@ -33,7 +35,8 @@ namespace content {
class WebContents;
}
-class BrowserTitlebar : public content::NotificationObserver,
+class BrowserTitlebar : public BrowserTitlebarBase,
+ public content::NotificationObserver,
public ui::ActiveWindowWatcherXObserver,
public ui::SimpleMenuModel::Delegate {
public:
@@ -44,71 +47,36 @@ class BrowserTitlebar : public content::NotificationObserver,
BrowserTitlebar(BrowserWindowGtk* browser_window, GtkWindow* window);
virtual ~BrowserTitlebar();
- // Updates the theme supplied background color and image.
- virtual void UpdateButtonBackground(CustomDrawButton* button);
-
- // Updates the title and icon when in app or popup/panel mode (no tabstrip).
- virtual void UpdateTitleAndIcon();
-
- GtkWidget* widget() {
- return container_;
- }
-
- void set_window(GtkWindow* window) { window_ = window; }
-
- // Build the titlebar, the space above the tab strip, and (maybe) the min,
- // max, close buttons. |container_| is the gtk container that we put the
- // widget into.
- void Init();
-
// Builds the buttons based on the metacity |button_string|.
void BuildButtons(const std::string& button_string);
- // Update the appearance of the title bar based on whether we're showing a
- // custom frame or not. If |use_custom_frame| is true, we show an extra
- // tall titlebar and the min/max/close buttons.
- void UpdateCustomFrame(bool use_custom_frame);
-
- // Called by the browser asking us to update the loading throbber.
- // |web_contents| is the tab that is associated with the window throbber.
- // |web_contents| can be null.
- void UpdateThrobber(content::WebContents* web_contents);
+ // Overriden from BrowserTitlebarBase.
+ virtual void Init() OVERRIDE;
+ virtual void UpdateTitleAndIcon() OVERRIDE;
+ virtual void UpdateCustomFrame(bool use_custom_frame) OVERRIDE;
+ virtual void UpdateThrobber(content::WebContents* web_contents) OVERRIDE;
+ virtual void ShowContextMenu(GdkEventButton* event) OVERRIDE;
+ virtual GtkWidget* widget() const OVERRIDE;
+ virtual void set_window(GtkWindow* window) OVERRIDE;
+ virtual AvatarMenuButtonGtk* avatar_button() const OVERRIDE;
- // On Windows, right clicking in the titlebar background brings up the system
- // menu. There's no such thing on linux, so we just show the menu items we
- // add to the menu.
- void ShowContextMenu(GdkEventButton* event);
-
- AvatarMenuButtonGtk* avatar_button() { return avatar_button_.get(); }
+ private:
+ class ContextMenuModel : public ui::SimpleMenuModel {
+ public:
+ explicit ContextMenuModel(ui::SimpleMenuModel::Delegate* delegate);
+ };
- protected:
// Builds the button as denoted by |button_token|. Returns true if the button
// is created successfully.
- virtual bool BuildButton(const std::string& button_token, bool left_side);
+ bool BuildButton(const std::string& button_token, bool left_side);
// Retrieves the 3 image ids (IDR_) and a tooltip id (IDS) for the purpose of
// painting a CustomDraw button.
- virtual void GetButtonResources(const std::string& button_name,
- int* normal_image_id,
- int* pressed_image_id,
- int* hover_image_id,
- int* tooltip_id) const;
-
- // Returns the spacing around outside of titlebar buttons.
- virtual int GetButtonOuterPadding() const;
-
- // Returns the spacing between buttons of the titlebar.
- virtual int GetButtonSpacing() const;
-
- // Called when a button is clicked.
- virtual void HandleButtonClick(GtkWidget* button);
-
- // Show the menu that the user gets from left-clicking the favicon.
- virtual void ShowFaviconMenu(GdkEventButton* event);
-
- // Updates the color of the title bar. Called whenever we have a state
- // change in the window.
- virtual void UpdateTextColor();
+ void GetButtonResources(const std::string& button_name,
+ int* normal_image_id,
+ int* pressed_image_id,
+ int* hover_image_id,
+ int* tooltip_id) const;
// Constructs a CustomDraw button given button name and left or right side of
// the titlebar where the button is placed.
@@ -121,40 +89,15 @@ class BrowserTitlebar : public content::NotificationObserver,
// settings to get absolutely horrid combinations of buttons on both sides.
GtkWidget* GetButtonHBox(bool left_side);
- CustomDrawButton* minimize_button() const { return minimize_button_.get(); }
- CustomDrawButton* maximize_button() const { return maximize_button_.get(); }
- CustomDrawButton* restore_button() const { return restore_button_.get(); }
- CustomDrawButton* close_button() const { return close_button_.get(); }
- GtkWidget* app_mode_title() const { return app_mode_title_; }
-
- GtkThemeService* theme_service() const { return theme_service_; }
-
- private:
- // A helper class to keep track of which frame of the throbber animation
- // we're showing.
- class Throbber {
- public:
- Throbber() : current_frame_(0), current_waiting_frame_(0) {}
-
- // Get the next frame in the animation. The image is owned by the throbber
- // so the caller doesn't need to unref. |is_waiting| is true if we're
- // still waiting for a response.
- GdkPixbuf* GetNextFrame(bool is_waiting);
-
- // Reset back to the first frame.
- void Reset();
- private:
- // Make sure the frames are loaded.
- static void InitFrames();
+ // Updates the theme supplied background color and image.
+ void UpdateButtonBackground(CustomDrawButton* button);
- int current_frame_;
- int current_waiting_frame_;
- };
+ // Show the menu that the user gets from left-clicking the favicon.
+ void ShowFaviconMenu(GdkEventButton* event);
jennb 2012/06/04 22:17:52 Can move this code back inline inside OnFavIconMen
jianli 2012/06/05 18:48:30 Done.
- class ContextMenuModel : public ui::SimpleMenuModel {
- public:
- explicit ContextMenuModel(ui::SimpleMenuModel::Delegate* delegate);
- };
+ // Updates the color of the title bar. Called whenever we have a state
+ // change in the window.
+ void UpdateTextColor();
// Update the titlebar spacing based on the custom frame and maximized state.
void UpdateTitlebarAlignment();
@@ -287,7 +230,7 @@ class BrowserTitlebar : public content::NotificationObserver,
scoped_ptr<PopupPageMenuModel> favicon_menu_model_;
// The throbber used when the window is in app mode or popup window mode.
- Throbber throbber_;
+ BrowserTitlebarThrobber throbber_;
// The avatar button.
scoped_ptr<AvatarMenuButtonGtk> avatar_button_;
« no previous file with comments | « no previous file | chrome/browser/ui/gtk/browser_titlebar.cc » ('j') | chrome/browser/ui/gtk/browser_titlebar_base.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698