Index: chrome/browser/ui/gtk/tabs/tab_renderer_gtk.cc |
diff --git a/chrome/browser/ui/gtk/tabs/tab_renderer_gtk.cc b/chrome/browser/ui/gtk/tabs/tab_renderer_gtk.cc |
index d3438da0c5e28c8f143fccd0008b51d4a28ba715..7554a2780f417bc17ce24b2fd4ced1eadebd7f4d 100644 |
--- a/chrome/browser/ui/gtk/tabs/tab_renderer_gtk.cc |
+++ b/chrome/browser/ui/gtk/tabs/tab_renderer_gtk.cc |
@@ -32,6 +32,7 @@ |
#include "ui/gfx/canvas_skia_paint.h" |
#include "ui/gfx/favicon_size.h" |
#include "ui/gfx/gtk_util.h" |
+#include "ui/gfx/image/image.h" |
#include "ui/gfx/image/cairo_cached_surface.h" |
#include "ui/gfx/pango_util.h" |
#include "ui/gfx/platform_font_pango.h" |
@@ -483,9 +484,8 @@ void TabRendererGtk::PaintFaviconArea(GtkWidget* widget, cairo_t* cr) { |
} |
// Paint the background behind the favicon. |
- gfx::CairoCachedSurface* tab_bg = |
- theme_service_->GetSurfaceNamed(theme_id, widget); |
- tab_bg->SetSource(cr, widget, -x(), -offset_y); |
+ const gfx::Image* tab_bg = theme_service_->GetImageNamed(theme_id); |
+ tab_bg->ToCairo()->SetSource(cr, widget, -x(), -offset_y); |
cairo_pattern_set_extend(cairo_get_source(cr), CAIRO_EXTEND_REPEAT); |
cairo_rectangle(cr, |
favicon_bounds_.x(), favicon_bounds_.y(), |
@@ -496,9 +496,9 @@ void TabRendererGtk::PaintFaviconArea(GtkWidget* widget, cairo_t* cr) { |
double throb_value = GetThrobValue(); |
if (throb_value > 0) { |
cairo_push_group(cr); |
- gfx::CairoCachedSurface* active_bg = theme_service_->GetSurfaceNamed( |
- IDR_THEME_TOOLBAR, widget); |
- active_bg->SetSource(cr, widget, -x(), 0); |
+ const gfx::Image* active_bg = |
+ theme_service_->GetImageNamed(IDR_THEME_TOOLBAR); |
+ active_bg->ToCairo()->SetSource(cr, widget, -x(), 0); |
cairo_pattern_set_extend(cairo_get_source(cr), CAIRO_EXTEND_REPEAT); |
cairo_rectangle(cr, |
@@ -861,7 +861,7 @@ void TabRendererGtk::PaintIcon(GtkWidget* widget, cairo_t* cr) { |
gfx::CairoCachedSurface* to_display = NULL; |
if (should_display_crashed_favicon_) { |
- to_display = theme_service_->GetSurfaceNamed(IDR_SAD_FAVICON, widget); |
+ to_display = theme_service_->GetImageNamed(IDR_SAD_FAVICON)->ToCairo(); |
} else if (!data_.favicon.isNull()) { |
if (data_.is_default_favicon && theme_service_->UsingNativeTheme()) { |
to_display = theme_service_->GetCairoIcon( |
@@ -899,16 +899,17 @@ void TabRendererGtk::PaintTabBackground(GtkWidget* widget, cairo_t* cr) { |
void TabRendererGtk::DrawTabBackground( |
cairo_t* cr, |
GtkWidget* widget, |
- gfx::CairoCachedSurface* tab_bg, |
+ const gfx::Image* tab_bg, |
int offset_x, |
int offset_y) { |
- tab_bg->SetSource(cr, widget, -offset_x, -offset_y); |
+ tab_bg->ToCairo()->SetSource(cr, widget, -offset_x, -offset_y); |
cairo_pattern_set_extend(cairo_get_source(cr), CAIRO_EXTEND_REPEAT); |
+ ResourceBundle& rb = ResourceBundle::GetSharedInstance(); |
+ |
// Draw left edge |
- gfx::CairoCachedSurface* tab_l_mask = |
- theme_service_->GetSurfaceNamed(IDR_TAB_ALPHA_LEFT, widget); |
- tab_l_mask->MaskSource(cr, widget, 0, 0); |
+ gfx::Image& tab_l_mask = rb.GetNativeImageNamed(IDR_TAB_ALPHA_LEFT); |
+ tab_l_mask.ToCairo()->MaskSource(cr, widget, 0, 0); |
// Draw center |
cairo_rectangle(cr, |
@@ -918,9 +919,9 @@ void TabRendererGtk::DrawTabBackground( |
cairo_fill(cr); |
// Draw right edge |
- gfx::CairoCachedSurface* tab_r_mask = |
- theme_service_->GetSurfaceNamed(IDR_TAB_ALPHA_RIGHT, widget); |
- tab_r_mask->MaskSource(cr, widget, width() - tab_active_l_width_, 0); |
+ gfx::Image& tab_r_mask = rb.GetNativeImageNamed(IDR_TAB_ALPHA_RIGHT); |
+ tab_r_mask.ToCairo()->MaskSource(cr, widget, |
+ width() - tab_active_l_width_, 0); |
} |
void TabRendererGtk::DrawTabShadow( |
@@ -929,16 +930,17 @@ void TabRendererGtk::DrawTabShadow( |
int left_idr, |
int center_idr, |
int right_idr) { |
+ ResourceBundle& rb = ResourceBundle::GetSharedInstance(); |
+ gfx::Image& active_image_l = rb.GetNativeImageNamed(left_idr); |
+ gfx::Image& active_image_c = rb.GetNativeImageNamed(center_idr); |
+ gfx::Image& active_image_r = rb.GetNativeImageNamed(right_idr); |
+ |
// Draw left drop shadow |
- gfx::CairoCachedSurface* active_image_l = |
- theme_service_->GetSurfaceNamed(left_idr, widget); |
- active_image_l->SetSource(cr, widget, 0, 0); |
+ active_image_l.ToCairo()->SetSource(cr, widget, 0, 0); |
cairo_paint(cr); |
// Draw the center shadow |
- gfx::CairoCachedSurface* active_image_c = |
- theme_service_->GetSurfaceNamed(center_idr, widget); |
- active_image_c->SetSource(cr, widget, 0, 0); |
+ active_image_c.ToCairo()->SetSource(cr, widget, 0, 0); |
cairo_pattern_set_extend(cairo_get_source(cr), CAIRO_EXTEND_REPEAT); |
cairo_rectangle(cr, tab_active_l_width_, 0, |
width() - (2 * tab_active_l_width_), |
@@ -946,19 +948,17 @@ void TabRendererGtk::DrawTabShadow( |
cairo_fill(cr); |
// Draw right drop shadow |
- gfx::CairoCachedSurface* active_image_r = |
- theme_service_->GetSurfaceNamed(right_idr, widget); |
- active_image_r->SetSource(cr, widget, width() - active_image_r->Width(), 0); |
+ active_image_r.ToCairo()->SetSource( |
+ cr, widget, width() - active_image_r.ToCairo()->Width(), 0); |
cairo_paint(cr); |
} |
void TabRendererGtk::PaintInactiveTabBackground(GtkWidget* widget, |
- cairo_t* cr) { |
+ cairo_t* cr) { |
int theme_id = data_.incognito ? |
IDR_THEME_TAB_BACKGROUND_INCOGNITO : IDR_THEME_TAB_BACKGROUND; |
- gfx::CairoCachedSurface* tab_bg = |
- theme_service_->GetSurfaceNamed(theme_id, widget); |
+ const gfx::Image* tab_bg = theme_service_->GetImageNamed(theme_id); |
// If the theme is providing a custom background image, then its top edge |
// should be at the top of the tab. Otherwise, we assume that the background |
@@ -974,8 +974,7 @@ void TabRendererGtk::PaintInactiveTabBackground(GtkWidget* widget, |
void TabRendererGtk::PaintActiveTabBackground(GtkWidget* widget, |
cairo_t* cr) { |
- gfx::CairoCachedSurface* tab_bg = |
- theme_service_->GetSurfaceNamed(IDR_THEME_TOOLBAR, widget); |
+ const gfx::Image* tab_bg = theme_service_->GetImageNamed(IDR_THEME_TOOLBAR); |
DrawTabBackground(cr, widget, tab_bg, background_offset_x_, 0); |
DrawTabShadow(cr, widget, IDR_TAB_ACTIVE_LEFT, IDR_TAB_ACTIVE_CENTER, |
@@ -986,16 +985,15 @@ void TabRendererGtk::PaintLoadingAnimation(GtkWidget* widget, |
cairo_t* cr) { |
int id = loading_animation_.animation_state() == ANIMATION_WAITING ? |
IDR_THROBBER_WAITING : IDR_THROBBER; |
- gfx::CairoCachedSurface* throbber = |
- theme_service_->GetSurfaceNamed(id, widget); |
+ const gfx::Image* throbber = theme_service_->GetImageNamed(id); |
- const int image_size = throbber->Height(); |
+ const int image_size = throbber->ToCairo()->Height(); |
const int image_offset = loading_animation_.animation_frame() * image_size; |
DCHECK(image_size == favicon_bounds_.height()); |
DCHECK(image_size == favicon_bounds_.width()); |
- throbber->SetSource(cr, widget, favicon_bounds_.x() - image_offset, |
- favicon_bounds_.y()); |
+ throbber->ToCairo()->SetSource(cr, widget, favicon_bounds_.x() - image_offset, |
+ favicon_bounds_.y()); |
cairo_rectangle(cr, favicon_bounds_.x(), favicon_bounds_.y(), |
image_size, image_size); |
cairo_fill(cr); |
@@ -1110,12 +1108,12 @@ void TabRendererGtk::InitResources() { |
// Grab the pixel sizes of our masking images. |
ResourceBundle& rb = ResourceBundle::GetSharedInstance(); |
- SkBitmap* tab_active_l = rb.GetBitmapNamed(IDR_TAB_ACTIVE_LEFT); |
- tab_active_l_width_ = tab_active_l->width(); |
- tab_active_l_height_ = tab_active_l->height(); |
+ GdkPixbuf* tab_active_l = rb.GetNativeImageNamed(IDR_TAB_ACTIVE_LEFT); |
Elliot Glaysher
2011/12/05 22:52:16
This makes sure that the image representation of t
|
+ tab_active_l_width_ = gdk_pixbuf_get_width(tab_active_l); |
+ tab_active_l_height_ = gdk_pixbuf_get_height(tab_active_l); |
- SkBitmap* tab_inactive_l = rb.GetBitmapNamed(IDR_TAB_INACTIVE_LEFT); |
- tab_inactive_l_height_ = tab_inactive_l->height(); |
+ GdkPixbuf* tab_inactive_l = rb.GetNativeImageNamed(IDR_TAB_INACTIVE_LEFT); |
+ tab_inactive_l_height_ = gdk_pixbuf_get_height(tab_inactive_l); |
close_button_width_ = rb.GetBitmapNamed(IDR_TAB_CLOSE)->width(); |
close_button_height_ = rb.GetBitmapNamed(IDR_TAB_CLOSE)->height(); |