Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(145)

Side by Side Diff: chrome/browser/gtk/toolbar_star_toggle_gtk.cc

Issue 199077: Reapplies the GdkPixbuf -> cairo surface patch. (Closed)
Patch Set: Created 11 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « chrome/browser/gtk/gtk_theme_provider.cc ('k') | chrome/chrome.gyp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/gtk/toolbar_star_toggle_gtk.h" 5 #include "chrome/browser/gtk/toolbar_star_toggle_gtk.h"
6 6
7 #include "app/gtk_dnd_util.h" 7 #include "app/gtk_dnd_util.h"
8 #include "app/resource_bundle.h" 8 #include "app/resource_bundle.h"
9 #include "base/gfx/rect.h" 9 #include "base/gfx/rect.h"
10 #include "chrome/browser/browser.h" 10 #include "chrome/browser/browser.h"
11 #include "chrome/browser/gtk/bookmark_bubble_gtk.h" 11 #include "chrome/browser/gtk/bookmark_bubble_gtk.h"
12 #include "chrome/browser/gtk/browser_toolbar_gtk.h" 12 #include "chrome/browser/gtk/browser_toolbar_gtk.h"
13 #include "chrome/browser/gtk/gtk_chrome_button.h" 13 #include "chrome/browser/gtk/gtk_chrome_button.h"
14 #include "chrome/browser/gtk/gtk_theme_provider.h" 14 #include "chrome/browser/gtk/gtk_theme_provider.h"
15 #include "chrome/browser/profile.h" 15 #include "chrome/browser/profile.h"
16 #include "chrome/browser/tab_contents/tab_contents.h" 16 #include "chrome/browser/tab_contents/tab_contents.h"
17 #include "chrome/common/notification_service.h" 17 #include "chrome/common/notification_service.h"
18 #include "grit/theme_resources.h" 18 #include "grit/theme_resources.h"
19 19
20 ToolbarStarToggleGtk::ToolbarStarToggleGtk(BrowserToolbarGtk* host) 20 ToolbarStarToggleGtk::ToolbarStarToggleGtk(BrowserToolbarGtk* host)
21 : host_(host), 21 : host_(host),
22 widget_(gtk_chrome_button_new()), 22 widget_(gtk_chrome_button_new()),
23 is_starred_(false), 23 is_starred_(false),
24 theme_provider_(GtkThemeProvider::GetFrom(host->profile())), 24 theme_provider_(GtkThemeProvider::GetFrom(host->profile())),
25 unstarred_(theme_provider_, IDR_STAR, IDR_STAR_P, IDR_STAR_H, IDR_STAR_D), 25 unstarred_(theme_provider_, IDR_STAR, IDR_STAR_P, IDR_STAR_H, IDR_STAR_D),
26 starred_(theme_provider_, IDR_STARRED, IDR_STARRED_P, IDR_STARRED_H, 0) { 26 starred_(theme_provider_, IDR_STARRED, IDR_STARRED_P, IDR_STARRED_H, 0) {
27 gtk_widget_set_size_request(widget_.get(), 27 gtk_widget_set_size_request(widget_.get(), unstarred_.Width(),
28 gdk_pixbuf_get_width(unstarred_.pixbufs(0)), 28 unstarred_.Height());
29 gdk_pixbuf_get_height(unstarred_.pixbufs(0)));
30 29
31 gtk_widget_set_app_paintable(widget_.get(), TRUE); 30 gtk_widget_set_app_paintable(widget_.get(), TRUE);
32 // We effectively double-buffer by virtue of having only one image... 31 // We effectively double-buffer by virtue of having only one image...
33 gtk_widget_set_double_buffered(widget_.get(), FALSE); 32 gtk_widget_set_double_buffered(widget_.get(), FALSE);
34 33
35 g_signal_connect(widget(), "expose-event", 34 g_signal_connect(widget(), "expose-event",
36 G_CALLBACK(OnExpose), this); 35 G_CALLBACK(OnExpose), this);
37 GTK_WIDGET_UNSET_FLAGS(widget_.get(), GTK_CAN_FOCUS); 36 GTK_WIDGET_UNSET_FLAGS(widget_.get(), GTK_CAN_FOCUS);
38 37
39 gtk_drag_source_set(widget(), GDK_BUTTON1_MASK, 38 gtk_drag_source_set(widget(), GDK_BUTTON1_MASK,
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
124 } 123 }
125 124
126 gtk_button_set_image( 125 gtk_button_set_image(
127 GTK_BUTTON(widget_.get()), 126 GTK_BUTTON(widget_.get()),
128 gtk_image_new_from_pixbuf(pixbuf)); 127 gtk_image_new_from_pixbuf(pixbuf));
129 128
130 gtk_widget_set_size_request(widget_.get(), -1, -1); 129 gtk_widget_set_size_request(widget_.get(), -1, -1);
131 gtk_widget_set_app_paintable(widget_.get(), FALSE); 130 gtk_widget_set_app_paintable(widget_.get(), FALSE);
132 gtk_widget_set_double_buffered(widget_.get(), TRUE); 131 gtk_widget_set_double_buffered(widget_.get(), TRUE);
133 } else { 132 } else {
134 gtk_widget_set_size_request(widget_.get(), 133 gtk_widget_set_size_request(widget_.get(), unstarred_.Width(),
135 gdk_pixbuf_get_width(unstarred_.pixbufs(0)), 134 unstarred_.Height());
136 gdk_pixbuf_get_height(unstarred_.pixbufs(0)));
137 135
138 gtk_widget_set_app_paintable(widget_.get(), TRUE); 136 gtk_widget_set_app_paintable(widget_.get(), TRUE);
139 // We effectively double-buffer by virtue of having only one image... 137 // We effectively double-buffer by virtue of having only one image...
140 gtk_widget_set_double_buffered(widget_.get(), FALSE); 138 gtk_widget_set_double_buffered(widget_.get(), FALSE);
141 } 139 }
142 140
143 gtk_chrome_button_set_use_gtk_rendering( 141 gtk_chrome_button_set_use_gtk_rendering(
144 GTK_CHROME_BUTTON(widget_.get()), use_gtk); 142 GTK_CHROME_BUTTON(widget_.get()), use_gtk);
145 } 143 }
OLDNEW
« no previous file with comments | « chrome/browser/gtk/gtk_theme_provider.cc ('k') | chrome/chrome.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698