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

Side by Side Diff: chrome/browser/ui/gtk/download/download_item_gtk.cc

Issue 7227027: GTK: More 2.18 goodness. Move from macros to real accessor functions. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Remove views/ Created 9 years, 5 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/ui/gtk/download/download_item_gtk.h" 5 #include "chrome/browser/ui/gtk/download/download_item_gtk.h"
6 6
7 #include "base/basictypes.h" 7 #include "base/basictypes.h"
8 #include "base/callback.h" 8 #include "base/callback.h"
9 #include "base/metrics/histogram.h" 9 #include "base/metrics/histogram.h"
10 #include "base/string_util.h" 10 #include "base/string_util.h"
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
109 body_.Own(gtk_button_new()); 109 body_.Own(gtk_button_new());
110 gtk_widget_set_app_paintable(body_.get(), TRUE); 110 gtk_widget_set_app_paintable(body_.get(), TRUE);
111 UpdateTooltip(); 111 UpdateTooltip();
112 112
113 g_signal_connect(body_.get(), "expose-event", 113 g_signal_connect(body_.get(), "expose-event",
114 G_CALLBACK(OnExposeThunk), this); 114 G_CALLBACK(OnExposeThunk), this);
115 g_signal_connect(body_.get(), "clicked", 115 g_signal_connect(body_.get(), "clicked",
116 G_CALLBACK(OnClickThunk), this); 116 G_CALLBACK(OnClickThunk), this);
117 g_signal_connect(body_.get(), "button-press-event", 117 g_signal_connect(body_.get(), "button-press-event",
118 G_CALLBACK(OnButtonPressThunk), this); 118 G_CALLBACK(OnButtonPressThunk), this);
119 GTK_WIDGET_UNSET_FLAGS(body_.get(), GTK_CAN_FOCUS); 119 gtk_widget_set_can_focus(body_.get(), FALSE);
120 // Remove internal padding on the button. 120 // Remove internal padding on the button.
121 GtkRcStyle* no_padding_style = gtk_rc_style_new(); 121 GtkRcStyle* no_padding_style = gtk_rc_style_new();
122 no_padding_style->xthickness = 0; 122 no_padding_style->xthickness = 0;
123 no_padding_style->ythickness = 0; 123 no_padding_style->ythickness = 0;
124 gtk_widget_modify_style(body_.get(), no_padding_style); 124 gtk_widget_modify_style(body_.get(), no_padding_style);
125 g_object_unref(no_padding_style); 125 g_object_unref(no_padding_style);
126 126
127 name_label_ = gtk_label_new(NULL); 127 name_label_ = gtk_label_new(NULL);
128 // Left align and vertically center the labels. 128 // Left align and vertically center the labels.
129 gtk_misc_set_alignment(GTK_MISC(name_label_), 0, 0.5); 129 gtk_misc_set_alignment(GTK_MISC(name_label_), 0, 0.5);
(...skipping 19 matching lines...) Expand all
149 G_CALLBACK(OnProgressAreaExposeThunk), this); 149 G_CALLBACK(OnProgressAreaExposeThunk), this);
150 150
151 // Put the download progress icon on the left of the labels. 151 // Put the download progress icon on the left of the labels.
152 GtkWidget* body_hbox = gtk_hbox_new(FALSE, 0); 152 GtkWidget* body_hbox = gtk_hbox_new(FALSE, 0);
153 gtk_container_add(GTK_CONTAINER(body_.get()), body_hbox); 153 gtk_container_add(GTK_CONTAINER(body_.get()), body_hbox);
154 gtk_box_pack_start(GTK_BOX(body_hbox), progress_area_.get(), FALSE, FALSE, 0); 154 gtk_box_pack_start(GTK_BOX(body_hbox), progress_area_.get(), FALSE, FALSE, 0);
155 gtk_box_pack_start(GTK_BOX(body_hbox), text_stack_, TRUE, TRUE, 0); 155 gtk_box_pack_start(GTK_BOX(body_hbox), text_stack_, TRUE, TRUE, 0);
156 156
157 menu_button_ = gtk_button_new(); 157 menu_button_ = gtk_button_new();
158 gtk_widget_set_app_paintable(menu_button_, TRUE); 158 gtk_widget_set_app_paintable(menu_button_, TRUE);
159 GTK_WIDGET_UNSET_FLAGS(menu_button_, GTK_CAN_FOCUS); 159 gtk_widget_set_can_focus(menu_button_, FALSE);
160 g_signal_connect(menu_button_, "expose-event", 160 g_signal_connect(menu_button_, "expose-event",
161 G_CALLBACK(OnExposeThunk), this); 161 G_CALLBACK(OnExposeThunk), this);
162 g_signal_connect(menu_button_, "button-press-event", 162 g_signal_connect(menu_button_, "button-press-event",
163 G_CALLBACK(OnMenuButtonPressEventThunk), this); 163 G_CALLBACK(OnMenuButtonPressEventThunk), this);
164 g_object_set_data(G_OBJECT(menu_button_), "left-align-popup", 164 g_object_set_data(G_OBJECT(menu_button_), "left-align-popup",
165 reinterpret_cast<void*>(true)); 165 reinterpret_cast<void*>(true));
166 166
167 GtkWidget* shelf_hbox = parent_shelf->GetHBox(); 167 GtkWidget* shelf_hbox = parent_shelf->GetHBox();
168 hbox_.Own(gtk_hbox_new(FALSE, 0)); 168 hbox_.Own(gtk_hbox_new(FALSE, 0));
169 g_signal_connect(hbox_.get(), "expose-event", 169 g_signal_connect(hbox_.get(), "expose-event",
(...skipping 539 matching lines...) Expand 10 before | Expand all | Expand 10 after
709 709
710 GtkAllocation right_allocation = menu_button_->allocation; 710 GtkAllocation right_allocation = menu_button_->allocation;
711 GdkRectangle right_clip = { 711 GdkRectangle right_clip = {
712 right_allocation.x, right_allocation.y, 712 right_allocation.x, right_allocation.y,
713 right_allocation.width, right_allocation.height 713 right_allocation.width, right_allocation.height
714 }; 714 };
715 715
716 GtkShadowType body_shadow = 716 GtkShadowType body_shadow =
717 GTK_BUTTON(body_.get())->depressed ? GTK_SHADOW_IN : GTK_SHADOW_OUT; 717 GTK_BUTTON(body_.get())->depressed ? GTK_SHADOW_IN : GTK_SHADOW_OUT;
718 gtk_paint_box(style, widget->window, 718 gtk_paint_box(style, widget->window,
719 static_cast<GtkStateType>(GTK_WIDGET_STATE(body_.get())), 719 gtk_widget_get_state(body_.get()),
720 body_shadow, 720 body_shadow,
721 &left_clip, widget, "button", 721 &left_clip, widget, "button",
722 x, y, width, height); 722 x, y, width, height);
723 723
724 GtkShadowType menu_shadow = 724 GtkShadowType menu_shadow =
725 GTK_BUTTON(menu_button_)->depressed ? GTK_SHADOW_IN : GTK_SHADOW_OUT; 725 GTK_BUTTON(menu_button_)->depressed ? GTK_SHADOW_IN : GTK_SHADOW_OUT;
726 gtk_paint_box(style, widget->window, 726 gtk_paint_box(style, widget->window,
727 static_cast<GtkStateType>(GTK_WIDGET_STATE(menu_button_)), 727 gtk_widget_get_state(menu_button_),
728 menu_shadow, 728 menu_shadow,
729 &right_clip, widget, "button", 729 &right_clip, widget, "button",
730 x, y, width, height); 730 x, y, width, height);
731 731
732 // Doing the math to reverse engineer where we should be drawing our line 732 // Doing the math to reverse engineer where we should be drawing our line
733 // is hard and relies on copying GTK internals, so instead steal the 733 // is hard and relies on copying GTK internals, so instead steal the
734 // allocation of the gtk arrow which is close enough (and will error on 734 // allocation of the gtk arrow which is close enough (and will error on
735 // the conservative side). 735 // the conservative side).
736 GtkAllocation arrow_allocation = arrow_->allocation; 736 GtkAllocation arrow_allocation = arrow_->allocation;
737 gtk_paint_vline(style, widget->window, 737 gtk_paint_vline(style, widget->window,
738 static_cast<GtkStateType>(GTK_WIDGET_STATE(widget)), 738 gtk_widget_get_state(widget),
739 &e->area, widget, "button", 739 &e->area, widget, "button",
740 arrow_allocation.y, 740 arrow_allocation.y,
741 arrow_allocation.y + arrow_allocation.height, 741 arrow_allocation.y + arrow_allocation.height,
742 left_allocation.x + left_allocation.width); 742 left_allocation.x + left_allocation.width);
743 } 743 }
744 } 744 }
745 return FALSE; 745 return FALSE;
746 } 746 }
747 747
748 gboolean DownloadItemGtk::OnExpose(GtkWidget* widget, GdkEventExpose* e) { 748 gboolean DownloadItemGtk::OnExpose(GtkWidget* widget, GdkEventExpose* e) {
749 if (!theme_service_->UsingNativeTheme()) { 749 if (!theme_service_->UsingNativeTheme()) {
750 bool is_body = widget == body_.get(); 750 bool is_body = widget == body_.get();
751 751
752 NineBox* nine_box = NULL; 752 NineBox* nine_box = NULL;
753 // If true, this widget is |body_|, otherwise it is |menu_button_|. 753 // If true, this widget is |body_|, otherwise it is |menu_button_|.
754 if (GTK_WIDGET_STATE(widget) == GTK_STATE_PRELIGHT) 754 if (gtk_widget_get_state(widget) == GTK_STATE_PRELIGHT)
755 nine_box = is_body ? body_nine_box_prelight_ : menu_nine_box_prelight_; 755 nine_box = is_body ? body_nine_box_prelight_ : menu_nine_box_prelight_;
756 else if (GTK_WIDGET_STATE(widget) == GTK_STATE_ACTIVE) 756 else if (gtk_widget_get_state(widget) == GTK_STATE_ACTIVE)
757 nine_box = is_body ? body_nine_box_active_ : menu_nine_box_active_; 757 nine_box = is_body ? body_nine_box_active_ : menu_nine_box_active_;
758 else 758 else
759 nine_box = is_body ? body_nine_box_normal_ : menu_nine_box_normal_; 759 nine_box = is_body ? body_nine_box_normal_ : menu_nine_box_normal_;
760 760
761 // When the button is showing, we want to draw it as active. We have to do 761 // When the button is showing, we want to draw it as active. We have to do
762 // this explicitly because the button's state will be NORMAL while the menu 762 // this explicitly because the button's state will be NORMAL while the menu
763 // has focus. 763 // has focus.
764 if (!is_body && menu_showing_) 764 if (!is_body && menu_showing_)
765 nine_box = menu_nine_box_active_; 765 nine_box = menu_nine_box_active_;
766 766
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
863 get_download()->DangerousDownloadValidated(); 863 get_download()->DangerousDownloadValidated();
864 } 864 }
865 865
866 void DownloadItemGtk::OnDangerousDecline(GtkWidget* button) { 866 void DownloadItemGtk::OnDangerousDecline(GtkWidget* button) {
867 UMA_HISTOGRAM_LONG_TIMES("clickjacking.discard_download", 867 UMA_HISTOGRAM_LONG_TIMES("clickjacking.discard_download",
868 base::Time::Now() - creation_time_); 868 base::Time::Now() - creation_time_);
869 if (get_download()->IsPartialDownload()) 869 if (get_download()->IsPartialDownload())
870 get_download()->Cancel(true); 870 get_download()->Cancel(true);
871 get_download()->Delete(DownloadItem::DELETE_DUE_TO_USER_DISCARD); 871 get_download()->Delete(DownloadItem::DELETE_DUE_TO_USER_DISCARD);
872 } 872 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/gtk/custom_button.cc ('k') | chrome/browser/ui/gtk/extensions/extension_installed_bubble_gtk.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698