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 |