Index: chrome/browser/gtk/extension_shelf_gtk.cc |
=================================================================== |
--- chrome/browser/gtk/extension_shelf_gtk.cc (revision 23643) |
+++ chrome/browser/gtk/extension_shelf_gtk.cc (working copy) |
@@ -8,8 +8,8 @@ |
#include "chrome/browser/gtk/browser_window_gtk.h" |
#include "chrome/browser/gtk/gtk_theme_provider.h" |
#include "chrome/browser/gtk/nine_box.h" |
+#include "chrome/browser/gtk/tabs/tab_strip_gtk.h" |
#include "chrome/browser/profile.h" |
-#include "chrome/common/notification_service.h" |
#include "grit/app_resources.h" |
#include "grit/generated_resources.h" |
#include "grit/theme_resources.h" |
@@ -65,9 +65,6 @@ |
theme_provider_(GtkThemeProvider::GetFrom(profile)), |
model_(browser->extension_shelf_model()) { |
Init(profile); |
- |
- registrar_.Add(this, NotificationType::BROWSER_THEME_CHANGED, |
- NotificationService::AllSources()); |
} |
ExtensionShelfGtk::~ExtensionShelfGtk() { |
@@ -161,25 +158,6 @@ |
model_->AddObserver(this); |
} |
-void ExtensionShelfGtk::Observe(NotificationType type, |
- const NotificationSource& source, |
- const NotificationDetails& details) { |
- if (type == NotificationType::BROWSER_THEME_CHANGED) { |
- // TODO(phajdan.jr): Handle theme changes. |
- } else { |
- NOTREACHED() << "unexpected notification"; |
- } |
-} |
- |
-void ExtensionShelfGtk::InitBackground() { |
- if (background_ninebox_.get()) |
- return; |
- |
- background_ninebox_.reset(new NineBox( |
- browser_->profile()->GetThemeProvider(), |
- 0, IDR_THEME_TOOLBAR, 0, 0, 0, 0, 0, 0, 0)); |
-} |
- |
void ExtensionShelfGtk::AdjustHeight() { |
if (model_->empty() || toolstrips_.empty()) { |
// It's possible that |model_| is not empty, but |toolstrips_| are empty |
@@ -213,10 +191,18 @@ |
cairo_rectangle(cr, event->area.x, event->area.y, |
event->area.width, event->area.height); |
cairo_clip(cr); |
- bar->InitBackground(); |
- bar->background_ninebox_->RenderTopCenterStrip( |
- cr, event->area.x, event->area.y, |
- event->area.x + event->area.width); |
+ gfx::Point tabstrip_origin = |
+ static_cast<BrowserWindowGtk*>(bar->browser_->window())-> |
+ tabstrip()->GetTabStripOriginForWidget(widget); |
+ GdkPixbuf* background = bar->browser_->profile()->GetThemeProvider()-> |
+ GetPixbufNamed(IDR_THEME_TOOLBAR); |
+ gdk_cairo_set_source_pixbuf(cr, background, |
+ tabstrip_origin.x(), tabstrip_origin.y()); |
+ cairo_pattern_set_extend(cairo_get_source(cr), CAIRO_EXTEND_REPEAT); |
+ cairo_rectangle(cr, tabstrip_origin.x(), tabstrip_origin.y(), |
+ event->area.x + event->area.width - tabstrip_origin.x(), |
+ gdk_pixbuf_get_height(background)); |
+ cairo_fill(cr); |
cairo_destroy(cr); |
return FALSE; // Propagate expose to children. |
Property changes on: chrome/browser/gtk/extension_shelf_gtk.cc |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |