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

Side by Side Diff: chrome/browser/ui/gtk/process_singleton_dialog.cc

Issue 23506011: Improve the UI for handling profile lock contention. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Improve the localizability. Created 7 years, 3 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/process_singleton_dialog.h" 5 #include "chrome/browser/ui/gtk/process_singleton_dialog.h"
6 6
7 #include <gtk/gtk.h> 7 #include <gtk/gtk.h>
8 8
9 #include "base/message_loop/message_loop.h" 9 #include "base/message_loop/message_loop.h"
10 #include "chrome/browser/ui/gtk/gtk_util.h" 10 #include "chrome/browser/ui/gtk/gtk_util.h"
11 #include "grit/chromium_strings.h" 11 #include "grit/chromium_strings.h"
12 #include "ui/base/l10n/l10n_util.h" 12 #include "ui/base/l10n/l10n_util.h"
13 13
14 // static 14 // static
15 void ProcessSingletonDialog::ShowAndRun(const std::string& message) { 15 bool ProcessSingletonDialog::ShowAndRun(const std::string& message,
16 ProcessSingletonDialog dialog(message); 16 const std::string& relaunch_text) {
17 ProcessSingletonDialog dialog(message, relaunch_text);
18 return dialog.GetResponseId() == GTK_RESPONSE_ACCEPT;
17 } 19 }
18 20
19 ProcessSingletonDialog::ProcessSingletonDialog(const std::string& message) { 21 ProcessSingletonDialog::ProcessSingletonDialog(
22 const std::string& message,
23 const std::string& relaunch_text) {
20 dialog_ = gtk_message_dialog_new( 24 dialog_ = gtk_message_dialog_new(
21 NULL, 25 NULL,
22 static_cast<GtkDialogFlags>(0), 26 static_cast<GtkDialogFlags>(0),
23 GTK_MESSAGE_ERROR, 27 GTK_MESSAGE_ERROR,
24 GTK_BUTTONS_NONE, 28 GTK_BUTTONS_NONE,
25 "%s", 29 "%s",
26 message.c_str()); 30 message.c_str());
27 gtk_util::ApplyMessageDialogQuirks(dialog_); 31 gtk_util::ApplyMessageDialogQuirks(dialog_);
28 gtk_window_set_title(GTK_WINDOW(dialog_), 32 gtk_window_set_title(GTK_WINDOW(dialog_),
29 l10n_util::GetStringUTF8(IDS_PRODUCT_NAME).c_str()); 33 l10n_util::GetStringUTF8(IDS_PRODUCT_NAME).c_str());
30 gtk_dialog_add_button(GTK_DIALOG(dialog_), GTK_STOCK_QUIT, 34 gtk_dialog_add_button(GTK_DIALOG(dialog_), GTK_STOCK_QUIT,
31 GTK_RESPONSE_REJECT); 35 GTK_RESPONSE_REJECT);
36 gtk_dialog_add_button(GTK_DIALOG(dialog_), relaunch_text.c_str(),
37 GTK_RESPONSE_ACCEPT);
38 gtk_dialog_set_default_response(GTK_DIALOG(dialog_), GTK_RESPONSE_ACCEPT);
32 39
33 g_signal_connect(dialog_, "response", G_CALLBACK(OnResponseThunk), this); 40 g_signal_connect(dialog_, "response", G_CALLBACK(OnResponseThunk), this);
34 41
35 gtk_widget_show_all(dialog_); 42 gtk_widget_show_all(dialog_);
36 base::MessageLoop::current()->Run(); 43 base::MessageLoop::current()->Run();
37 } 44 }
38 45
39 void ProcessSingletonDialog::OnResponse(GtkWidget* dialog, int response_id) { 46 void ProcessSingletonDialog::OnResponse(GtkWidget* dialog, int response_id) {
47 response_id_ = response_id;
40 gtk_widget_destroy(dialog_); 48 gtk_widget_destroy(dialog_);
41 base::MessageLoop::current()->Quit(); 49 base::MessageLoop::current()->Quit();
42 } 50 }
OLDNEW
« chrome/browser/process_singleton_linux.cc ('K') | « chrome/browser/ui/gtk/process_singleton_dialog.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698