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

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

Issue 112064: Linux: call xdg-open on downloaded files to open them. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: fix typos 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 | Annotate | Revision Log
« no previous file with comments | « chrome/browser/gtk/download_item_gtk.h ('k') | chrome/common/platform_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/download_item_gtk.h" 5 #include "chrome/browser/gtk/download_item_gtk.h"
6 6
7 #include "app/l10n_util.h" 7 #include "app/l10n_util.h"
8 #include "app/gfx/canvas.h" 8 #include "app/gfx/canvas.h"
9 #include "app/gfx/font.h" 9 #include "app/gfx/font.h"
10 #include "app/gfx/text_elider.h" 10 #include "app/gfx/text_elider.h"
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
174 bounding_widget_(parent_shelf->GetRightBoundingWidget()), 174 bounding_widget_(parent_shelf->GetRightBoundingWidget()),
175 dangerous_prompt_(NULL), 175 dangerous_prompt_(NULL),
176 icon_(NULL) { 176 icon_(NULL) {
177 InitNineBoxes(); 177 InitNineBoxes();
178 LoadIcon(); 178 LoadIcon();
179 179
180 body_ = gtk_button_new(); 180 body_ = gtk_button_new();
181 gtk_widget_set_app_paintable(body_, TRUE); 181 gtk_widget_set_app_paintable(body_, TRUE);
182 g_signal_connect(body_, "expose-event", 182 g_signal_connect(body_, "expose-event",
183 G_CALLBACK(OnExpose), this); 183 G_CALLBACK(OnExpose), this);
184 g_signal_connect(body_, "clicked",
185 G_CALLBACK(OnClick), this);
184 GTK_WIDGET_UNSET_FLAGS(body_, GTK_CAN_FOCUS); 186 GTK_WIDGET_UNSET_FLAGS(body_, GTK_CAN_FOCUS);
185 // Remove internal padding on the button. 187 // Remove internal padding on the button.
186 GtkRcStyle* no_padding_style = gtk_rc_style_new(); 188 GtkRcStyle* no_padding_style = gtk_rc_style_new();
187 no_padding_style->xthickness = 0; 189 no_padding_style->xthickness = 0;
188 no_padding_style->ythickness = 0; 190 no_padding_style->ythickness = 0;
189 gtk_widget_modify_style(body_, no_padding_style); 191 gtk_widget_modify_style(body_, no_padding_style);
190 g_object_unref(no_padding_style); 192 g_object_unref(no_padding_style);
191 193
192 name_label_ = gtk_label_new(NULL); 194 name_label_ = gtk_label_new(NULL);
193 195
(...skipping 364 matching lines...) Expand 10 before | Expand all | Expand 10 after
558 nine_box->RenderToWidget(widget); 560 nine_box->RenderToWidget(widget);
559 561
560 GtkWidget* child = gtk_bin_get_child(GTK_BIN(widget)); 562 GtkWidget* child = gtk_bin_get_child(GTK_BIN(widget));
561 if (child) 563 if (child)
562 gtk_container_propagate_expose(GTK_CONTAINER(widget), child, e); 564 gtk_container_propagate_expose(GTK_CONTAINER(widget), child, e);
563 565
564 return TRUE; 566 return TRUE;
565 } 567 }
566 568
567 // static 569 // static
570 void DownloadItemGtk::OnClick(GtkWidget* widget, DownloadItemGtk* item) {
571 DownloadItem* download = item->get_download();
572
573 // TODO(estade): add clickjacking histogram stuff.
574 if (download->state() == DownloadItem::IN_PROGRESS) {
575 download->set_open_when_complete(
576 !download->open_when_complete());
577 } else if (download->state() == DownloadItem::COMPLETE) {
578 download_util::OpenDownload(download);
579 }
580 }
581
582 // static
568 gboolean DownloadItemGtk::OnProgressAreaExpose(GtkWidget* widget, 583 gboolean DownloadItemGtk::OnProgressAreaExpose(GtkWidget* widget,
569 GdkEventExpose* event, DownloadItemGtk* download_item) { 584 GdkEventExpose* event, DownloadItemGtk* download_item) {
570 // Create a transparent canvas. 585 // Create a transparent canvas.
571 gfx::CanvasPaint canvas(event, false); 586 gfx::CanvasPaint canvas(event, false);
572 if (download_item->complete_animation_.get()) { 587 if (download_item->complete_animation_.get()) {
573 if (download_item->complete_animation_->IsAnimating()) { 588 if (download_item->complete_animation_->IsAnimating()) {
574 download_util::PaintDownloadComplete(&canvas, 589 download_util::PaintDownloadComplete(&canvas,
575 widget->allocation.x, widget->allocation.y, 590 widget->allocation.x, widget->allocation.y,
576 download_item->complete_animation_->GetCurrentValue(), 591 download_item->complete_animation_->GetCurrentValue(),
577 download_util::SMALL); 592 download_util::SMALL);
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
648 item->get_download()); 663 item->get_download());
649 } 664 }
650 665
651 // static 666 // static
652 void DownloadItemGtk::OnDangerousDecline(GtkWidget* button, 667 void DownloadItemGtk::OnDangerousDecline(GtkWidget* button,
653 DownloadItemGtk* item) { 668 DownloadItemGtk* item) {
654 if (item->get_download()->state() == DownloadItem::IN_PROGRESS) 669 if (item->get_download()->state() == DownloadItem::IN_PROGRESS)
655 item->get_download()->Cancel(true); 670 item->get_download()->Cancel(true);
656 item->get_download()->Remove(true); 671 item->get_download()->Remove(true);
657 } 672 }
OLDNEW
« no previous file with comments | « chrome/browser/gtk/download_item_gtk.h ('k') | chrome/common/platform_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698