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

Unified Diff: chrome/browser/gtk/repost_form_warning_gtk.cc

Issue 1247004: Revert 42474 - Make repost form warning tabmodal on Gtk.... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 10 years, 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/gtk/repost_form_warning_gtk.h ('k') | chrome/browser/tab_contents/tab_contents.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/gtk/repost_form_warning_gtk.cc
===================================================================
--- chrome/browser/gtk/repost_form_warning_gtk.cc (revision 42478)
+++ chrome/browser/gtk/repost_form_warning_gtk.cc (working copy)
@@ -9,75 +9,45 @@
#include "base/message_loop.h"
#include "chrome/browser/gtk/gtk_util.h"
#include "chrome/browser/tab_contents/navigation_controller.h"
-#include "chrome/browser/tab_contents/tab_contents.h"
#include "chrome/common/notification_service.h"
#include "grit/generated_resources.h"
-RepostFormWarningGtk::RepostFormWarningGtk(GtkWindow* parent,
- TabContents* tab_contents)
- : navigation_controller_(&tab_contents->controller()) {
- dialog_ = gtk_vbox_new(NULL, gtk_util::kContentAreaBorder);
- gtk_box_set_spacing(GTK_BOX(dialog_), gtk_util::kContentAreaSpacing);
- GtkWidget* label = gtk_label_new(
+RepostFormWarningGtk::RepostFormWarningGtk(
+ GtkWindow* parent,
+ NavigationController* navigation_controller)
+ : navigation_controller_(navigation_controller) {
+ dialog_ = gtk_message_dialog_new(
+ parent,
+ GTK_DIALOG_MODAL,
+ GTK_MESSAGE_QUESTION,
+ GTK_BUTTONS_NONE,
+ "%s",
l10n_util::GetStringUTF8(IDS_HTTP_POST_WARNING).c_str());
- GtkWidget* image = gtk_image_new_from_stock(GTK_STOCK_DIALOG_QUESTION,
- GTK_ICON_SIZE_DIALOG);
- gtk_misc_set_alignment(GTK_MISC(image), 0.5, 0.0);
+ gtk_util::ApplyMessageDialogQuirks(dialog_);
+ gtk_window_set_title(GTK_WINDOW(dialog_),
+ l10n_util::GetStringUTF8(IDS_HTTP_POST_WARNING_TITLE).c_str());
+ gtk_util::AddButtonToDialog(dialog_,
+ l10n_util::GetStringUTF8(IDS_CANCEL).c_str(),
+ GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL);
+ gtk_util::AddButtonToDialog(dialog_,
+ l10n_util::GetStringUTF8(IDS_HTTP_POST_WARNING_RESEND).c_str(),
+ GTK_STOCK_REFRESH, GTK_RESPONSE_OK);
+ gtk_util::SetWindowIcon(GTK_WINDOW(dialog_));
- gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
- gtk_label_set_selectable(GTK_LABEL(label), TRUE);
+ g_signal_connect(dialog_, "response", G_CALLBACK(OnResponse), this);
+ g_signal_connect(dialog_, "destroy", G_CALLBACK(OnWindowDestroy), this);
- GtkWidget *hbox = gtk_hbox_new(FALSE, gtk_util::kControlSpacing);
+ gtk_widget_show_all(dialog_);
- gtk_box_pack_start(GTK_BOX(hbox), image, FALSE, FALSE, 0);
-
- gtk_box_pack_start(GTK_BOX(hbox), label, TRUE, TRUE, 0);
-
- gtk_box_pack_start(GTK_BOX(dialog_), hbox, FALSE, FALSE, 0);
-
- GtkWidget* buttonBox = gtk_hbutton_box_new();
- gtk_button_box_set_layout(GTK_BUTTON_BOX(buttonBox), GTK_BUTTONBOX_END);
- gtk_box_set_spacing(GTK_BOX(buttonBox), gtk_util::kControlSpacing);
- gtk_box_pack_end(GTK_BOX(dialog_), buttonBox, FALSE, TRUE, 0);
-
- cancel_ = gtk_button_new_from_stock(GTK_STOCK_CANCEL);
- gtk_button_set_label(GTK_BUTTON(cancel_),
- l10n_util::GetStringUTF8(IDS_CANCEL).c_str());
- g_signal_connect(cancel_, "clicked", G_CALLBACK(OnCancelThunk), this);
- gtk_box_pack_end(GTK_BOX(buttonBox), cancel_, FALSE, TRUE, 0);
-
- ok_ = gtk_button_new_from_stock(GTK_STOCK_REFRESH);
- gtk_button_set_label(
- GTK_BUTTON(ok_),
- l10n_util::GetStringUTF8(IDS_HTTP_POST_WARNING_RESEND).c_str());
- g_signal_connect(ok_, "clicked", G_CALLBACK(OnRefreshThunk), this);
- gtk_box_pack_end(GTK_BOX(buttonBox), ok_, FALSE, TRUE, 0);
-
- g_signal_connect(cancel_, "hierarchy-changed",
- G_CALLBACK(OnHierarchyChangedThunk), this);
-
- window_ = tab_contents->CreateConstrainedDialog(this);
-
registrar_.Add(this, NotificationType::LOAD_START,
Source<NavigationController>(navigation_controller_));
registrar_.Add(this, NotificationType::TAB_CLOSING,
Source<NavigationController>(navigation_controller_));
- registrar_.Add(this, NotificationType::RELOADING,
- Source<NavigationController>(navigation_controller_));
-
}
RepostFormWarningGtk::~RepostFormWarningGtk() {
}
-GtkWidget* RepostFormWarningGtk::GetWidgetRoot() {
- return dialog_;
-}
-
-void RepostFormWarningGtk::DeleteDelegate() {
- MessageLoop::current()->DeleteSoon(FROM_HERE, this);
-}
-
void RepostFormWarningGtk::Observe(NotificationType type,
const NotificationSource& source,
const NotificationDetails& details) {
@@ -86,11 +56,11 @@
// a navigation controller anymore.
if (dialog_ && navigation_controller_ &&
(type == NotificationType::LOAD_START ||
- type == NotificationType::TAB_CLOSING ||
- type == NotificationType::RELOADING)) {
+ type == NotificationType::TAB_CLOSING)) {
DCHECK_EQ(Source<NavigationController>(source).ptr(),
navigation_controller_);
- OnCancel(dialog_);
+ navigation_controller_ = NULL;
+ Destroy();
}
}
@@ -99,29 +69,20 @@
gtk_widget_destroy(dialog_);
dialog_ = NULL;
}
- window_->CloseConstrainedWindow();
}
-void RepostFormWarningGtk::OnRefresh(GtkWidget* widget) {
- if (navigation_controller_) {
- navigation_controller_->ContinuePendingReload();
- // reloading the page will close the dialog.
+// static
+void RepostFormWarningGtk::OnResponse(GtkWidget* widget, int response,
+ RepostFormWarningGtk* dialog) {
+ dialog->Destroy();
+ if (response == GTK_RESPONSE_OK) {
+ if (dialog->navigation_controller_)
+ dialog->navigation_controller_->Reload(false);
}
}
-void RepostFormWarningGtk::OnCancel(GtkWidget* widget) {
- if (navigation_controller_) {
- navigation_controller_->CancelPendingReload();
- }
- Destroy();
+// static
+void RepostFormWarningGtk::OnWindowDestroy(GtkWidget* widget,
+ RepostFormWarningGtk* dialog) {
+ MessageLoop::current()->DeleteSoon(FROM_HERE, dialog);
}
-
-void RepostFormWarningGtk::OnHierarchyChanged(GtkWidget* root,
- GtkWidget* previous_toplevel) {
- DCHECK(ChromeThread::CurrentlyOn(ChromeThread::UI));
- if (!GTK_WIDGET_TOPLEVEL(gtk_widget_get_toplevel(cancel_))) {
- return;
- }
- gtk_widget_grab_focus(cancel_);
-}
-
« no previous file with comments | « chrome/browser/gtk/repost_form_warning_gtk.h ('k') | chrome/browser/tab_contents/tab_contents.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698