OLD | NEW |
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(), unstarred_.Width(), | 27 gtk_widget_set_size_request(widget_.get(), |
28 unstarred_.Height()); | 28 gdk_pixbuf_get_width(unstarred_.pixbufs(0)), |
| 29 gdk_pixbuf_get_height(unstarred_.pixbufs(0))); |
29 | 30 |
30 gtk_widget_set_app_paintable(widget_.get(), TRUE); | 31 gtk_widget_set_app_paintable(widget_.get(), TRUE); |
31 // We effectively double-buffer by virtue of having only one image... | 32 // We effectively double-buffer by virtue of having only one image... |
32 gtk_widget_set_double_buffered(widget_.get(), FALSE); | 33 gtk_widget_set_double_buffered(widget_.get(), FALSE); |
33 | 34 |
34 g_signal_connect(widget(), "expose-event", | 35 g_signal_connect(widget(), "expose-event", |
35 G_CALLBACK(OnExpose), this); | 36 G_CALLBACK(OnExpose), this); |
36 GTK_WIDGET_UNSET_FLAGS(widget_.get(), GTK_CAN_FOCUS); | 37 GTK_WIDGET_UNSET_FLAGS(widget_.get(), GTK_CAN_FOCUS); |
37 | 38 |
38 gtk_drag_source_set(widget(), GDK_BUTTON1_MASK, | 39 gtk_drag_source_set(widget(), GDK_BUTTON1_MASK, |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
123 } | 124 } |
124 | 125 |
125 gtk_button_set_image( | 126 gtk_button_set_image( |
126 GTK_BUTTON(widget_.get()), | 127 GTK_BUTTON(widget_.get()), |
127 gtk_image_new_from_pixbuf(pixbuf)); | 128 gtk_image_new_from_pixbuf(pixbuf)); |
128 | 129 |
129 gtk_widget_set_size_request(widget_.get(), -1, -1); | 130 gtk_widget_set_size_request(widget_.get(), -1, -1); |
130 gtk_widget_set_app_paintable(widget_.get(), FALSE); | 131 gtk_widget_set_app_paintable(widget_.get(), FALSE); |
131 gtk_widget_set_double_buffered(widget_.get(), TRUE); | 132 gtk_widget_set_double_buffered(widget_.get(), TRUE); |
132 } else { | 133 } else { |
133 gtk_widget_set_size_request(widget_.get(), unstarred_.Width(), | 134 gtk_widget_set_size_request(widget_.get(), |
134 unstarred_.Height()); | 135 gdk_pixbuf_get_width(unstarred_.pixbufs(0)), |
| 136 gdk_pixbuf_get_height(unstarred_.pixbufs(0))); |
135 | 137 |
136 gtk_widget_set_app_paintable(widget_.get(), TRUE); | 138 gtk_widget_set_app_paintable(widget_.get(), TRUE); |
137 // We effectively double-buffer by virtue of having only one image... | 139 // We effectively double-buffer by virtue of having only one image... |
138 gtk_widget_set_double_buffered(widget_.get(), FALSE); | 140 gtk_widget_set_double_buffered(widget_.get(), FALSE); |
139 } | 141 } |
140 | 142 |
141 gtk_chrome_button_set_use_gtk_rendering( | 143 gtk_chrome_button_set_use_gtk_rendering( |
142 GTK_CHROME_BUTTON(widget_.get()), use_gtk); | 144 GTK_CHROME_BUTTON(widget_.get()), use_gtk); |
143 } | 145 } |
OLD | NEW |