| 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/gtk_util.h" |
| 17 #include "chrome/common/notification_service.h" | 18 #include "chrome/common/notification_service.h" |
| 18 #include "grit/theme_resources.h" | 19 #include "grit/theme_resources.h" |
| 19 | 20 |
| 20 ToolbarStarToggleGtk::ToolbarStarToggleGtk(BrowserToolbarGtk* host) | 21 ToolbarStarToggleGtk::ToolbarStarToggleGtk(BrowserToolbarGtk* host) |
| 21 : host_(host), | 22 : host_(host), |
| 22 widget_(gtk_chrome_button_new()), | 23 widget_(gtk_chrome_button_new()), |
| 23 is_starred_(false), | 24 is_starred_(false), |
| 24 theme_provider_(GtkThemeProvider::GetFrom(host->profile())), | 25 theme_provider_(GtkThemeProvider::GetFrom(host->profile())), |
| 25 unstarred_(theme_provider_, IDR_STAR, IDR_STAR_P, IDR_STAR_H, IDR_STAR_D), | 26 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) { | 27 starred_(theme_provider_, IDR_STARRED, IDR_STARRED_P, IDR_STARRED_H, 0) { |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 60 GtkThemeProvider* provider = static_cast<GtkThemeProvider*>( | 61 GtkThemeProvider* provider = static_cast<GtkThemeProvider*>( |
| 61 Source<GtkThemeProvider>(source).ptr()); | 62 Source<GtkThemeProvider>(source).ptr()); |
| 62 DCHECK(provider == theme_provider_); | 63 DCHECK(provider == theme_provider_); |
| 63 UpdateGTKButton(); | 64 UpdateGTKButton(); |
| 64 } | 65 } |
| 65 | 66 |
| 66 void ToolbarStarToggleGtk::ShowStarBubble(const GURL& url, | 67 void ToolbarStarToggleGtk::ShowStarBubble(const GURL& url, |
| 67 bool newly_bookmarked) { | 68 bool newly_bookmarked) { |
| 68 GtkWidget* widget = widget_.get(); | 69 GtkWidget* widget = widget_.get(); |
| 69 BookmarkBubbleGtk::Show(GTK_WINDOW(gtk_widget_get_toplevel(widget)), | 70 BookmarkBubbleGtk::Show(GTK_WINDOW(gtk_widget_get_toplevel(widget)), |
| 70 gfx::Rect(widget->allocation), | 71 gtk_util::GetWidgetRectRelativeToToplevel(widget), |
| 71 host_->profile(), | 72 host_->profile(), |
| 72 url, | 73 url, |
| 73 newly_bookmarked); | 74 newly_bookmarked); |
| 74 } | 75 } |
| 75 | 76 |
| 76 void ToolbarStarToggleGtk::SetStarred(bool starred) { | 77 void ToolbarStarToggleGtk::SetStarred(bool starred) { |
| 77 is_starred_ = starred; | 78 is_starred_ = starred; |
| 78 gtk_widget_queue_draw(widget_.get()); | 79 gtk_widget_queue_draw(widget_.get()); |
| 79 UpdateGTKButton(); | 80 UpdateGTKButton(); |
| 80 } | 81 } |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 127 unstarred_.Height()); | 128 unstarred_.Height()); |
| 128 | 129 |
| 129 gtk_widget_set_app_paintable(widget_.get(), TRUE); | 130 gtk_widget_set_app_paintable(widget_.get(), TRUE); |
| 130 // We effectively double-buffer by virtue of having only one image... | 131 // We effectively double-buffer by virtue of having only one image... |
| 131 gtk_widget_set_double_buffered(widget_.get(), FALSE); | 132 gtk_widget_set_double_buffered(widget_.get(), FALSE); |
| 132 } | 133 } |
| 133 | 134 |
| 134 gtk_chrome_button_set_use_gtk_rendering( | 135 gtk_chrome_button_set_use_gtk_rendering( |
| 135 GTK_CHROME_BUTTON(widget_.get()), use_gtk); | 136 GTK_CHROME_BUTTON(widget_.get()), use_gtk); |
| 136 } | 137 } |
| OLD | NEW |