diff options
Diffstat (limited to 'chrome/browser/gtk/nine_box.h')
-rw-r--r-- | chrome/browser/gtk/nine_box.h | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/chrome/browser/gtk/nine_box.h b/chrome/browser/gtk/nine_box.h index dfdfafb..4ceea54 100644 --- a/chrome/browser/gtk/nine_box.h +++ b/chrome/browser/gtk/nine_box.h @@ -7,6 +7,10 @@ #include <gtk/gtk.h> +#include "chrome/common/notification_observer.h" +#include "chrome/common/notification_registrar.h" +#include "chrome/common/notification_type.h" + class ThemeProvider; // A NineBox manages a set of source images representing a 3x3 grid, where @@ -20,7 +24,7 @@ class ThemeProvider; // // TODO(port): add support for caching server-side pixmaps of prerendered // nineboxes. -class NineBox { +class NineBox : public NotificationObserver { public: // Construct a NineBox with nine images. Images are specified using resource // ids that will be passed to the resource bundle. Use 0 for no image. @@ -52,8 +56,20 @@ class NineBox { // needed). void ContourWidget(GtkWidget* widget) const; + // Provide NotificationObserver implementation. + virtual void Observe(NotificationType type, + const NotificationSource& source, + const NotificationDetails& details); private: GdkPixbuf* images_[9]; + + // We need to remember the image ids that the user passes in and the theme + // provider so we can reload images if the user changes theme. + int image_ids_[9]; + ThemeProvider* theme_provider_; + + // Used to listen for theme change notifications. + NotificationRegistrar registrar_; }; #endif // CHROME_BROWSER_GTK_NINE_BOX_H_ |