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

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

Issue 326017: GTK: Compute infobubble rects correctly. (Closed)
Patch Set: Created 11 years, 2 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
« no previous file with comments | « chrome/browser/gtk/location_bar_view_gtk.cc ('k') | chrome/common/gtk_util.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "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
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
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 }
OLDNEW
« no previous file with comments | « chrome/browser/gtk/location_bar_view_gtk.cc ('k') | chrome/common/gtk_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698