Chromium Code Reviews| 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 "base/gfx/rect.h" | |
| 8 #include "chrome/browser/gtk/bookmark_bubble_gtk.h" | |
| 7 #include "chrome/common/resource_bundle.h" | 9 #include "chrome/common/resource_bundle.h" |
| 8 #include "grit/theme_resources.h" | 10 #include "grit/theme_resources.h" |
| 9 | 11 |
| 10 ToolbarStarToggleGtk::ToolbarStarToggleGtk() | 12 ToolbarStarToggleGtk::ToolbarStarToggleGtk() |
| 11 : widget_(gtk_button_new()), | 13 : widget_(gtk_button_new()), |
| 12 is_starred_(false), | 14 is_starred_(false), |
| 13 unstarred_(IDR_STAR, IDR_STAR_P, IDR_STAR_H, IDR_STAR_D), | 15 unstarred_(IDR_STAR, IDR_STAR_P, IDR_STAR_H, IDR_STAR_D), |
| 14 starred_(IDR_STARRED, IDR_STARRED_P, IDR_STARRED_H, 0) { | 16 starred_(IDR_STARRED, IDR_STARRED_P, IDR_STARRED_H, 0) { |
| 15 gtk_widget_set_size_request(widget_.get(), | 17 gtk_widget_set_size_request(widget_.get(), |
| 16 gdk_pixbuf_get_width(unstarred_.pixbufs(0)), | 18 gdk_pixbuf_get_width(unstarred_.pixbufs(0)), |
| 17 gdk_pixbuf_get_height(unstarred_.pixbufs(0))); | 19 gdk_pixbuf_get_height(unstarred_.pixbufs(0))); |
| 18 | 20 |
| 19 gtk_widget_set_app_paintable(widget_.get(), TRUE); | 21 gtk_widget_set_app_paintable(widget_.get(), TRUE); |
| 20 // We effectively double-buffer by virtue of having only one image... | 22 // We effectively double-buffer by virtue of having only one image... |
| 21 gtk_widget_set_double_buffered(widget_.get(), FALSE); | 23 gtk_widget_set_double_buffered(widget_.get(), FALSE); |
| 22 g_signal_connect(G_OBJECT(widget_.get()), "expose-event", | 24 g_signal_connect(G_OBJECT(widget_.get()), "expose-event", |
| 23 G_CALLBACK(OnExpose), this); | 25 G_CALLBACK(OnExpose), this); |
| 24 } | 26 } |
| 25 | 27 |
| 26 ToolbarStarToggleGtk::~ToolbarStarToggleGtk() { | 28 ToolbarStarToggleGtk::~ToolbarStarToggleGtk() { |
| 27 widget_.Destroy(); | 29 widget_.Destroy(); |
| 28 } | 30 } |
| 29 | 31 |
| 32 void ToolbarStarToggleGtk::ShowStarBubble(const GURL& url, | |
| 33 bool newly_bookmarked) { | |
| 34 GtkWidget* widget = widget_.get(); | |
| 35 gint x, y; | |
|
ecattell
2009/04/30 19:55:37
Please initialize basic types (like ints)
Dean McNamee
2009/05/01 15:01:46
It is initialized on the next line, do you still t
| |
| 36 gdk_window_get_origin(widget->window, &x, &y); | |
| 37 x += widget->allocation.x; | |
| 38 y += widget->allocation.y; | |
| 39 gint width = widget->allocation.width; | |
| 40 gint height = widget->allocation.height; | |
| 41 | |
| 42 BookmarkBubbleGtk::Show(gfx::Rect(x, y, width, height), | |
| 43 NULL, | |
| 44 url, | |
| 45 newly_bookmarked); | |
| 46 } | |
| 47 | |
| 30 void ToolbarStarToggleGtk::SetStarred(bool starred) { | 48 void ToolbarStarToggleGtk::SetStarred(bool starred) { |
| 31 is_starred_ = starred; | 49 is_starred_ = starred; |
| 32 gtk_widget_queue_draw(widget_.get()); | 50 gtk_widget_queue_draw(widget_.get()); |
| 33 } | 51 } |
| 34 | 52 |
| 35 // static | 53 // static |
| 36 gboolean ToolbarStarToggleGtk::OnExpose(GtkWidget* widget, GdkEventExpose* e, | 54 gboolean ToolbarStarToggleGtk::OnExpose(GtkWidget* widget, GdkEventExpose* e, |
| 37 ToolbarStarToggleGtk* button) { | 55 ToolbarStarToggleGtk* button) { |
| 38 if (button->is_starred_) { | 56 if (button->is_starred_) { |
| 39 return button->starred_.OnExpose(widget, e); | 57 return button->starred_.OnExpose(widget, e); |
| 40 } else { | 58 } else { |
| 41 return button->unstarred_.OnExpose(widget, e); | 59 return button->unstarred_.OnExpose(widget, e); |
| 42 } | 60 } |
| 43 } | 61 } |
| OLD | NEW |