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

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

Issue 8402005: GTK: Fix profile selection bubble to match the chrome-theme when selected. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Comment fix Created 9 years, 2 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
« no previous file with comments | « chrome/browser/ui/gtk/avatar_menu_bubble_gtk.cc ('k') | chrome/browser/ui/gtk/avatar_menu_item_gtk.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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..6cfef490497a6b46d6fb35dea784e37d8c4e9d05 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 static highlight.
+ 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_
« no previous file with comments | « chrome/browser/ui/gtk/avatar_menu_bubble_gtk.cc ('k') | chrome/browser/ui/gtk/avatar_menu_item_gtk.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698