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

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

Issue 2263005: Linux: use web application meta tags for application shortcuts where possible. (Closed) Base URL: git://git.chromium.org/chromium.git
Patch Set: use web_app Created 10 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
« no previous file with comments | « chrome/browser/gtk/create_application_shortcuts_dialog_gtk.h ('k') | no next file » | 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) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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/create_application_shortcuts_dialog_gtk.h" 5 #include "chrome/browser/gtk/create_application_shortcuts_dialog_gtk.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "app/l10n_util.h" 9 #include "app/l10n_util.h"
10 #include "base/env_var.h" 10 #include "base/env_var.h"
11 #include "chrome/browser/chrome_thread.h" 11 #include "chrome/browser/chrome_thread.h"
12 #include "chrome/browser/gtk/gtk_util.h" 12 #include "chrome/browser/gtk/gtk_util.h"
13 #include "chrome/browser/shell_integration.h" 13 #include "chrome/browser/shell_integration.h"
14 #include "chrome/browser/tab_contents/tab_contents.h" 14 #include "chrome/browser/tab_contents/tab_contents.h"
15 #include "chrome/browser/tab_contents/tab_contents_delegate.h" 15 #include "chrome/browser/tab_contents/tab_contents_delegate.h"
16 #include "chrome/browser/web_applications/web_app.h"
16 #include "grit/chromium_strings.h" 17 #include "grit/chromium_strings.h"
17 #include "grit/generated_resources.h" 18 #include "grit/generated_resources.h"
18 #include "grit/locale_settings.h" 19 #include "grit/locale_settings.h"
19 20
20 // static 21 // static
21 void CreateApplicationShortcutsDialogGtk::Show(GtkWindow* parent, 22 void CreateApplicationShortcutsDialogGtk::Show(GtkWindow* parent,
22 TabContents* tab_contents) { 23 TabContents* tab_contents) {
23 new CreateApplicationShortcutsDialogGtk(parent, tab_contents); 24 new CreateApplicationShortcutsDialogGtk(parent, tab_contents);
24 } 25 }
25 26
26 CreateApplicationShortcutsDialogGtk::CreateApplicationShortcutsDialogGtk( 27 CreateApplicationShortcutsDialogGtk::CreateApplicationShortcutsDialogGtk(
27 GtkWindow* parent, 28 GtkWindow* parent,
28 TabContents* tab_contents) 29 TabContents* tab_contents)
29 : tab_contents_(tab_contents), 30 : tab_contents_(tab_contents),
30 url_(tab_contents->GetURL()),
31 title_(tab_contents->GetTitle()),
32 favicon_(tab_contents->FavIconIsValid() ? tab_contents->GetFavIcon() :
33 SkBitmap()),
34 error_dialog_(NULL) { 31 error_dialog_(NULL) {
35 DCHECK(ChromeThread::CurrentlyOn(ChromeThread::UI)); 32 DCHECK(ChromeThread::CurrentlyOn(ChromeThread::UI));
36 33
37 // Will be balanced by Release later. 34 // Will be balanced by Release later.
38 AddRef(); 35 AddRef();
39 36
40 // Build the dialog. 37 // Build the dialog.
41 create_dialog_ = gtk_dialog_new_with_buttons( 38 create_dialog_ = gtk_dialog_new_with_buttons(
42 l10n_util::GetStringUTF8(IDS_CREATE_SHORTCUTS_TITLE).c_str(), 39 l10n_util::GetStringUTF8(IDS_CREATE_SHORTCUTS_TITLE).c_str(),
43 parent, 40 parent,
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
91 if (error_dialog_) 88 if (error_dialog_)
92 gtk_widget_destroy(error_dialog_); 89 gtk_widget_destroy(error_dialog_);
93 } 90 }
94 91
95 void CreateApplicationShortcutsDialogGtk::OnCreateDialogResponse( 92 void CreateApplicationShortcutsDialogGtk::OnCreateDialogResponse(
96 GtkWidget* widget, int response) { 93 GtkWidget* widget, int response) {
97 DCHECK(ChromeThread::CurrentlyOn(ChromeThread::UI)); 94 DCHECK(ChromeThread::CurrentlyOn(ChromeThread::UI));
98 95
99 if (response == GTK_RESPONSE_ACCEPT) { 96 if (response == GTK_RESPONSE_ACCEPT) {
100 ShellIntegration::ShortcutInfo shortcut_info; 97 ShellIntegration::ShortcutInfo shortcut_info;
101 shortcut_info.url = url_; 98 web_app::GetShortcutInfoForTab(tab_contents_, &shortcut_info);
102 shortcut_info.title = title_;
103 shortcut_info.favicon = favicon_;
104 shortcut_info.create_on_desktop = 99 shortcut_info.create_on_desktop =
105 gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(desktop_checkbox_)); 100 gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(desktop_checkbox_));
106 shortcut_info.create_in_applications_menu = 101 shortcut_info.create_in_applications_menu =
107 gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(menu_checkbox_)); 102 gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(menu_checkbox_));
108 ChromeThread::PostTask(ChromeThread::FILE, FROM_HERE, 103 ChromeThread::PostTask(ChromeThread::FILE, FROM_HERE,
109 NewRunnableMethod(this, 104 NewRunnableMethod(this,
110 &CreateApplicationShortcutsDialogGtk::CreateDesktopShortcut, 105 &CreateApplicationShortcutsDialogGtk::CreateDesktopShortcut,
111 shortcut_info)); 106 shortcut_info));
112 107
113 if (tab_contents_->delegate()) 108 if (tab_contents_->delegate())
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
172 IDS_CREATE_SHORTCUTS_ERROR_LABEL, 167 IDS_CREATE_SHORTCUTS_ERROR_LABEL,
173 l10n_util::GetStringUTF16(IDS_PRODUCT_NAME)).c_str()); 168 l10n_util::GetStringUTF16(IDS_PRODUCT_NAME)).c_str());
174 gtk_label_set_line_wrap(GTK_LABEL(description), TRUE); 169 gtk_label_set_line_wrap(GTK_LABEL(description), TRUE);
175 gtk_misc_set_alignment(GTK_MISC(description), 0, 0); 170 gtk_misc_set_alignment(GTK_MISC(description), 0, 0);
176 gtk_box_pack_start(GTK_BOX(vbox), description, FALSE, FALSE, 0); 171 gtk_box_pack_start(GTK_BOX(vbox), description, FALSE, FALSE, 0);
177 172
178 g_signal_connect(error_dialog_, "response", 173 g_signal_connect(error_dialog_, "response",
179 G_CALLBACK(OnErrorDialogResponseThunk), this); 174 G_CALLBACK(OnErrorDialogResponseThunk), this);
180 gtk_widget_show_all(error_dialog_); 175 gtk_widget_show_all(error_dialog_);
181 } 176 }
OLDNEW
« no previous file with comments | « chrome/browser/gtk/create_application_shortcuts_dialog_gtk.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698