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

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

Issue 100203: Implement a mostly working InfoBubble with a shim BookmarkBubble. (Closed)
Patch Set: Comments Created 11 years, 7 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
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 "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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698