summaryrefslogtreecommitdiffstats
path: root/chrome/browser/gtk/go_button_gtk.h
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/gtk/go_button_gtk.h')
-rw-r--r--chrome/browser/gtk/go_button_gtk.h16
1 files changed, 15 insertions, 1 deletions
diff --git a/chrome/browser/gtk/go_button_gtk.h b/chrome/browser/gtk/go_button_gtk.h
index 0b41c6a..3ab3661 100644
--- a/chrome/browser/gtk/go_button_gtk.h
+++ b/chrome/browser/gtk/go_button_gtk.h
@@ -10,13 +10,16 @@
#include "base/basictypes.h"
#include "base/task.h"
#include "chrome/browser/gtk/custom_button.h"
+#include "chrome/common/notification_observer.h"
+#include "chrome/common/notification_registrar.h"
#include "chrome/common/owned_widget_gtk.h"
class Browser;
+class GtkThemeProvider;
class LocationBarViewGtk;
class Task;
-class GoButtonGtk {
+class GoButtonGtk : public NotificationObserver {
public:
enum Mode { MODE_GO = 0, MODE_STOP };
enum ButtonState { BS_NORMAL = 0, BS_HOT };
@@ -31,6 +34,11 @@ class GoButtonGtk {
// immediately.
void ChangeMode(Mode mode, bool force);
+ // Provide NotificationObserver implementation.
+ virtual void Observe(NotificationType type,
+ const NotificationSource& source,
+ const NotificationDetails& details);
+
private:
friend class GoButtonGtkPeer;
@@ -47,6 +55,10 @@ class GoButtonGtk {
Task* CreateButtonTimerTask();
void OnButtonTimer();
void SetTooltip();
+ void UpdateThemeButtons();
+
+ // Used to listen for theme change notifications.
+ NotificationRegistrar registrar_;
LocationBarViewGtk* const location_bar_;
@@ -66,6 +78,8 @@ class GoButtonGtk {
ButtonState state_;
+ GtkThemeProvider* theme_provider_;
+
CustomDrawButtonBase go_;
CustomDrawButtonBase stop_;