diff options
Diffstat (limited to 'chrome/browser/gtk/browser_window_gtk.cc')
-rw-r--r-- | chrome/browser/gtk/browser_window_gtk.cc | 87 |
1 files changed, 45 insertions, 42 deletions
diff --git a/chrome/browser/gtk/browser_window_gtk.cc b/chrome/browser/gtk/browser_window_gtk.cc index 52f0887..a7e4d44 100644 --- a/chrome/browser/gtk/browser_window_gtk.cc +++ b/chrome/browser/gtk/browser_window_gtk.cc @@ -41,7 +41,6 @@ #include "chrome/browser/gtk/bookmark_manager_gtk.h" #include "chrome/browser/gtk/browser_titlebar.h" #include "chrome/browser/gtk/browser_toolbar_gtk.h" -#include "chrome/browser/gtk/cairo_cached_surface.h" #include "chrome/browser/gtk/clear_browsing_data_dialog_gtk.h" #include "chrome/browser/gtk/download_shelf_gtk.h" #include "chrome/browser/gtk/edit_search_engine_dialog.h" @@ -340,11 +339,12 @@ gboolean OnCompactNavSpacerExpose(GtkWidget* widget, // tab strip. gfx::Point tabstrip_origin = window->tabstrip()->GetTabStripOriginForWidget(widget); - GtkThemeProvider* theme_provider = GtkThemeProvider::GetFrom( - window->browser()->profile()); - CairoCachedSurface* background = theme_provider->GetSurfaceNamed( - IDR_THEME_TOOLBAR, widget); - background->SetSource(cr, tabstrip_origin.x(), tabstrip_origin.y()); + ThemeProvider* theme_provider = + window->browser()->profile()->GetThemeProvider(); + GdkPixbuf* toolbar_background = theme_provider->GetPixbufNamed( + IDR_THEME_TOOLBAR); + gdk_cairo_set_source_pixbuf(cr, toolbar_background, tabstrip_origin.x(), + tabstrip_origin.y()); // We tile the toolbar background in both directions. cairo_pattern_set_extend(cairo_get_source(cr), CAIRO_EXTEND_REPEAT); cairo_rectangle(cr, @@ -596,8 +596,8 @@ void BrowserWindowGtk::HandleKeyboardEvent(GdkEventKey* event) { gboolean BrowserWindowGtk::OnCustomFrameExpose(GtkWidget* widget, GdkEventExpose* event, BrowserWindowGtk* window) { - GtkThemeProvider* theme_provider = GtkThemeProvider::GetFrom( - window->browser()->profile()); + ThemeProvider* theme_provider = + window->browser()->profile()->GetThemeProvider(); // Draw the default background. cairo_t* cr = gdk_cairo_create(GDK_DRAWABLE(widget->window)); @@ -613,19 +613,18 @@ gboolean BrowserWindowGtk::OnCustomFrameExpose(GtkWidget* widget, image_name = window->browser()->profile()->IsOffTheRecord() ? IDR_THEME_FRAME_INCOGNITO_INACTIVE : IDR_THEME_FRAME_INACTIVE; } - CairoCachedSurface* surface = theme_provider->GetSurfaceNamed( - image_name, widget); - surface->SetSource(cr, 0, 0); + GdkPixbuf* pixbuf = theme_provider->GetPixbufNamed(image_name); + gdk_cairo_set_source_pixbuf(cr, pixbuf, 0, 0); cairo_pattern_set_extend(cairo_get_source(cr), CAIRO_EXTEND_REPEAT); cairo_rectangle(cr, event->area.x, event->area.y, event->area.width, event->area.height); cairo_fill(cr); if (theme_provider->HasCustomImage(IDR_THEME_FRAME_OVERLAY)) { - CairoCachedSurface* theme_overlay = theme_provider->GetSurfaceNamed( + GdkPixbuf* theme_overlay = theme_provider->GetPixbufNamed( window->IsActive() ? IDR_THEME_FRAME_OVERLAY - : IDR_THEME_FRAME_OVERLAY_INACTIVE, widget); - theme_overlay->SetSource(cr, 0, 0); + : IDR_THEME_FRAME_OVERLAY_INACTIVE); + gdk_cairo_set_source_pixbuf(cr, theme_overlay, 0, 0); cairo_paint(cr); } @@ -655,20 +654,21 @@ gboolean BrowserWindowGtk::OnCustomFrameExpose(GtkWidget* widget, void BrowserWindowGtk::DrawContentShadow(cairo_t* cr, BrowserWindowGtk* window) { // Draw the shadow above the toolbar. Tabs on the tabstrip will draw over us. - GtkThemeProvider* theme_provider = GtkThemeProvider::GetFrom( - window->browser()->profile()); + ThemeProvider* theme_provider = + window->browser()->profile()->GetThemeProvider(); int left_x, top_y; gtk_widget_translate_coordinates(window->content_vbox_, GTK_WIDGET(window->window_), 0, 0, &left_x, &top_y); int width = window->content_vbox_->allocation.width; - CairoCachedSurface* top_center = theme_provider->GetSurfaceNamed( - IDR_CONTENT_TOP_CENTER, window->content_vbox_); - top_center->SetSource(cr, left_x, top_y - kContentShadowThickness); + GdkPixbuf* top_center = + theme_provider->GetPixbufNamed(IDR_CONTENT_TOP_CENTER); + gdk_cairo_set_source_pixbuf(cr, top_center, + left_x, top_y - kContentShadowThickness); cairo_pattern_set_extend(cairo_get_source(cr), CAIRO_EXTEND_REPEAT); cairo_rectangle(cr, left_x, top_y - kContentShadowThickness, width, - top_center->Height()); + gdk_pixbuf_get_height(top_center)); cairo_fill(cr); // Only draw the rest of the shadow if the user has the custom frame enabled. @@ -680,10 +680,10 @@ void BrowserWindowGtk::DrawContentShadow(cairo_t* cr, // corners extend to the base of the toolbar (one pixel above the dividing // line). int right_x = left_x + width; - CairoCachedSurface* top_left = theme_provider->GetSurfaceNamed( - IDR_CONTENT_TOP_LEFT_CORNER, window->content_vbox_); - top_left->SetSource( - cr, left_x - kContentShadowThickness, top_y - kContentShadowThickness); + GdkPixbuf* top_left = + theme_provider->GetPixbufNamed(IDR_CONTENT_TOP_LEFT_CORNER); + gdk_cairo_set_source_pixbuf(cr, top_left, + left_x - kContentShadowThickness, top_y - kContentShadowThickness); // The toolbar is shorter in location bar only mode so clip the image to the // height of the toolbar + the amount of shadow above the toolbar. int top_corner_height = @@ -696,9 +696,10 @@ void BrowserWindowGtk::DrawContentShadow(cairo_t* cr, cairo_fill(cr); // Likewise, we crop off the left column of pixels for the top right corner. - CairoCachedSurface* top_right = theme_provider->GetSurfaceNamed( - IDR_CONTENT_TOP_RIGHT_CORNER, window->content_vbox_); - top_right->SetSource(cr, right_x - 1, top_y - kContentShadowThickness); + GdkPixbuf* top_right = + theme_provider->GetPixbufNamed(IDR_CONTENT_TOP_RIGHT_CORNER); + gdk_cairo_set_source_pixbuf(cr, top_right, + right_x - 1, top_y - kContentShadowThickness); cairo_rectangle(cr, right_x, top_y - kContentShadowThickness, @@ -717,9 +718,9 @@ void BrowserWindowGtk::DrawContentShadow(cairo_t* cr, // drawn by the bottom corners. int side_height = bottom_y - side_y - 1; if (side_height > 0) { - CairoCachedSurface* left = theme_provider->GetSurfaceNamed( - IDR_CONTENT_LEFT_SIDE, window->content_vbox_); - left->SetSource(cr, left_x - kContentShadowThickness, side_y); + GdkPixbuf* left = theme_provider->GetPixbufNamed(IDR_CONTENT_LEFT_SIDE); + gdk_cairo_set_source_pixbuf(cr, left, + left_x - kContentShadowThickness, side_y); cairo_pattern_set_extend(cairo_get_source(cr), CAIRO_EXTEND_REPEAT); cairo_rectangle(cr, left_x - kContentShadowThickness, @@ -728,9 +729,8 @@ void BrowserWindowGtk::DrawContentShadow(cairo_t* cr, side_height); cairo_fill(cr); - CairoCachedSurface* right = theme_provider->GetSurfaceNamed( - IDR_CONTENT_RIGHT_SIDE, window->content_vbox_); - right->SetSource(cr, right_x - 1, side_y); + GdkPixbuf* right = theme_provider->GetPixbufNamed(IDR_CONTENT_RIGHT_SIDE); + gdk_cairo_set_source_pixbuf(cr, right, right_x - 1, side_y); cairo_pattern_set_extend(cairo_get_source(cr), CAIRO_EXTEND_REPEAT); cairo_rectangle(cr, right_x, @@ -742,21 +742,24 @@ void BrowserWindowGtk::DrawContentShadow(cairo_t* cr, // Draw the bottom corners. The bottom corners also draw the bottom row of // pixels of the side shadows. - CairoCachedSurface* bottom_left = theme_provider->GetSurfaceNamed( - IDR_CONTENT_BOTTOM_LEFT_CORNER, window->content_vbox_); - bottom_left->SetSource(cr, left_x - kContentShadowThickness, bottom_y - 1); + GdkPixbuf* bottom_left = + theme_provider->GetPixbufNamed(IDR_CONTENT_BOTTOM_LEFT_CORNER); + gdk_cairo_set_source_pixbuf(cr, bottom_left, + left_x - kContentShadowThickness, bottom_y - 1); cairo_paint(cr); - CairoCachedSurface* bottom_right = theme_provider->GetSurfaceNamed( - IDR_CONTENT_BOTTOM_RIGHT_CORNER, window->content_vbox_); - bottom_right->SetSource(cr, right_x - 1, bottom_y - 1); + GdkPixbuf* bottom_right = + theme_provider->GetPixbufNamed(IDR_CONTENT_BOTTOM_RIGHT_CORNER); + gdk_cairo_set_source_pixbuf(cr, bottom_right, + right_x - 1, bottom_y - 1); cairo_paint(cr); // Finally, draw the bottom row. Since we don't overlap the contents, we clip // the top row of pixels. - CairoCachedSurface* bottom = theme_provider->GetSurfaceNamed( - IDR_CONTENT_BOTTOM_CENTER, window->content_vbox_); - bottom->SetSource(cr, left_x + 1, bottom_y - 1); + GdkPixbuf* bottom = + theme_provider->GetPixbufNamed(IDR_CONTENT_BOTTOM_CENTER); + gdk_cairo_set_source_pixbuf(cr, bottom, + left_x + 1, bottom_y - 1); cairo_pattern_set_extend(cairo_get_source(cr), CAIRO_EXTEND_REPEAT); cairo_rectangle(cr, left_x + 1, |