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

Unified Diff: chrome/browser/input_window_dialog_gtk.cc

Issue 5582002: Move:... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 10 years 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/input_window_dialog.h ('k') | chrome/browser/input_window_dialog_win.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/input_window_dialog_gtk.cc
===================================================================
--- chrome/browser/input_window_dialog_gtk.cc (revision 68008)
+++ chrome/browser/input_window_dialog_gtk.cc (working copy)
@@ -1,146 +0,0 @@
-// Copyright (c) 2010 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/browser/input_window_dialog.h"
-
-#include <gtk/gtk.h>
-
-#include "app/gtk_signal.h"
-#include "base/message_loop.h"
-#include "base/scoped_ptr.h"
-#include "base/string_piece.h"
-#include "base/utf_string_conversions.h"
-#include "chrome/browser/gtk/gtk_util.h"
-
-class InputWindowDialogGtk : public InputWindowDialog {
- public:
- // Creates a dialog. Takes ownership of |delegate|.
- InputWindowDialogGtk(GtkWindow* parent,
- const std::string& window_title,
- const std::string& label,
- const std::string& contents,
- Delegate* delegate);
- virtual ~InputWindowDialogGtk();
-
- virtual void Show();
- virtual void Close();
-
- private:
- CHROMEG_CALLBACK_0(InputWindowDialogGtk, void, OnEntryChanged, GtkEditable*);
- CHROMEGTK_CALLBACK_1(InputWindowDialogGtk, void, OnResponse, int);
- CHROMEGTK_CALLBACK_1(InputWindowDialogGtk, gboolean,
- OnWindowDeleteEvent, GdkEvent*);
- CHROMEGTK_CALLBACK_0(InputWindowDialogGtk, void, OnWindowDestroy);
-
- // The underlying gtk dialog window.
- GtkWidget* dialog_;
-
- // The GtkEntry in this form.
- GtkWidget* input_;
-
- // Our delegate. Consumes the window's output.
- scoped_ptr<InputWindowDialog::Delegate> delegate_;
-};
-
-
-InputWindowDialogGtk::InputWindowDialogGtk(GtkWindow* parent,
- const std::string& window_title,
- const std::string& label,
- const std::string& contents,
- Delegate* delegate)
- : dialog_(gtk_dialog_new_with_buttons(
- window_title.c_str(),
- parent,
- GTK_DIALOG_MODAL,
- GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT,
- GTK_STOCK_OK, GTK_RESPONSE_ACCEPT,
- NULL)),
- delegate_(delegate) {
- gtk_dialog_set_default_response(GTK_DIALOG(dialog_), GTK_RESPONSE_ACCEPT);
- gtk_dialog_set_has_separator(GTK_DIALOG(dialog_), FALSE);
-
- GtkWidget* content_area = GTK_DIALOG(dialog_)->vbox;
- gtk_box_set_spacing(GTK_BOX(content_area), 18);
-
- GtkWidget* hbox = gtk_hbox_new(FALSE, 6);
- GtkWidget* label_widget = gtk_label_new(label.c_str());
- gtk_box_pack_start(GTK_BOX(hbox), label_widget, FALSE, FALSE, 0);
-
- input_ = gtk_entry_new();
- gtk_entry_set_text(GTK_ENTRY(input_), contents.c_str());
- g_signal_connect(input_, "changed",
- G_CALLBACK(OnEntryChangedThunk), this);
- g_object_set(G_OBJECT(input_), "activates-default", TRUE, NULL);
- gtk_box_pack_start(GTK_BOX(hbox), input_, TRUE, TRUE, 0);
-
- gtk_widget_show_all(hbox);
-
- gtk_box_pack_start(GTK_BOX(content_area), hbox, FALSE, FALSE, 0);
-
- g_signal_connect(dialog_, "response",
- G_CALLBACK(OnResponseThunk), this);
- g_signal_connect(dialog_, "delete-event",
- G_CALLBACK(OnWindowDeleteEventThunk), this);
- g_signal_connect(dialog_, "destroy",
- G_CALLBACK(OnWindowDestroyThunk), this);
-}
-
-InputWindowDialogGtk::~InputWindowDialogGtk() {
-}
-
-void InputWindowDialogGtk::Show() {
- gtk_util::ShowDialog(dialog_);
-}
-
-void InputWindowDialogGtk::Close() {
- // Under the model that we've inherited from Windows, dialogs can receive
- // more than one Close() call inside the current message loop event.
- if (dialog_) {
- gtk_widget_destroy(GTK_WIDGET(dialog_));
- dialog_ = NULL;
- }
-}
-
-void InputWindowDialogGtk::OnEntryChanged(GtkEditable* entry) {
- std::wstring value(UTF8ToWide(gtk_entry_get_text(GTK_ENTRY(entry))));
- gtk_dialog_set_response_sensitive(GTK_DIALOG(dialog_),
- GTK_RESPONSE_ACCEPT,
- delegate_->IsValid(value));
-}
-
-void InputWindowDialogGtk::OnResponse(GtkWidget* dialog, int response_id) {
- if (response_id == GTK_RESPONSE_ACCEPT) {
- std::wstring value(UTF8ToWide(gtk_entry_get_text(GTK_ENTRY(input_))));
- delegate_->InputAccepted(value);
- } else {
- delegate_->InputCanceled();
- }
- Close();
-}
-
-gboolean InputWindowDialogGtk::OnWindowDeleteEvent(GtkWidget* widget,
- GdkEvent* event) {
- Close();
-
- // Return true to prevent the gtk dialog from being destroyed. Close will
- // destroy it for us and the default gtk_dialog_delete_event_handler() will
- // force the destruction without us being able to stop it.
- return TRUE;
-}
-
-void InputWindowDialogGtk::OnWindowDestroy(GtkWidget* widget) {
- MessageLoop::current()->DeleteSoon(FROM_HERE, this);
-}
-
-InputWindowDialog* InputWindowDialog::Create(gfx::NativeWindow parent,
- const std::wstring& window_title,
- const std::wstring& label,
- const std::wstring& contents,
- Delegate* delegate) {
- return new InputWindowDialogGtk(parent,
- WideToUTF8(window_title),
- WideToUTF8(label),
- WideToUTF8(contents),
- delegate);
-}
« no previous file with comments | « chrome/browser/input_window_dialog.h ('k') | chrome/browser/input_window_dialog_win.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698