Chromium Code Reviews| Index: chrome/browser/ui/gtk/avatar_menu_item_gtk.h |
| diff --git a/chrome/browser/ui/gtk/avatar_menu_item_gtk.h b/chrome/browser/ui/gtk/avatar_menu_item_gtk.h |
| index 62ff3782a52d87ca9767f8b45f9ce87b73b84525..619bd7c2383c059e4ab764da4f9f80c9bcc4ad00 100644 |
| --- a/chrome/browser/ui/gtk/avatar_menu_item_gtk.h |
| +++ b/chrome/browser/ui/gtk/avatar_menu_item_gtk.h |
| @@ -10,6 +10,8 @@ |
| #include "base/memory/weak_ptr.h" |
| #include "chrome/browser/profiles/avatar_menu_model.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" |
| @@ -19,7 +21,7 @@ class GtkThemeService; |
| // to be displayed in the AvatarMenuBubble. Clicking the profile will open a new |
| // browser window, and when the user hovers over an active profile item, a link |
| // is displayed that will allow editing the profile. |
| -class AvatarMenuItemGtk { |
| +class AvatarMenuItemGtk : public content::NotificationObserver { |
| public: |
| // Delegates opening or editing a profile. |
| class Delegate { |
| @@ -43,6 +45,11 @@ class AvatarMenuItemGtk { |
| // Returns the root widget for this menu item. |
| GtkWidget* widget() { return widget_.get(); } |
| + // content::NotificationObserver implementation. |
| + virtual void Observe(int type, |
| + const content::NotificationSource& source, |
| + const content::NotificationDetails& details) OVERRIDE; |
| + |
| private: |
| CHROMEGTK_CALLBACK_1(AvatarMenuItemGtk, gboolean, OnProfileClick, |
| GdkEventButton*); |
| @@ -68,6 +75,9 @@ class AvatarMenuItemGtk { |
| // The root widget for this menu item. |
| ui::OwnedWidgetGtk widget_; |
| + // Provides colors. |
| + GtkThemeService* theme_service_; |
| + |
| // A weak pointer to a label that displays the sync status. It is not shown |
| // when the user is hovering over the item if the profile is the active |
| // profile. |
| @@ -77,7 +87,23 @@ class AvatarMenuItemGtk { |
| // when the user is hovering over the active profile. |
| GtkWidget* link_alignment_; |
| + // A weak pointer to a GtkChromeLinkButton so we can keep the use_gtk_theme |
| + // property up to date. |
| + GtkWidget* edit_profile_link_; |
| + |
| + // The highlighted color. Depending on the theme, this is either |widget|'s |
| + // bg[GTK_STATE_SELECTED] or a pointer to a static highlight. |
|
binji
2011/10/26 22:55:12
it's not "a pointer to..."
maybe "a copy of..."?
|
| + GdkColor highlighted_color_; |
| + |
| + // The unhighlighted color. Depending on the theme, this is either NULL or a |
| + // pointer to static data. |
| + const GdkColor* unhighlighted_color_; |
| + |
| base::WeakPtrFactory<AvatarMenuItemGtk> weak_factory_; |
| + |
| + content::NotificationRegistrar registrar_; |
| + |
| + DISALLOW_COPY_AND_ASSIGN(AvatarMenuItemGtk); |
| }; |
| #endif // CHROME_BROWSER_UI_GTK_AVATAR_MENU_ITEM_GTK_H_ |