summaryrefslogtreecommitdiffstats
path: root/chrome/browser/gtk/edit_search_engine_dialog.h
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/gtk/edit_search_engine_dialog.h')
-rw-r--r--chrome/browser/gtk/edit_search_engine_dialog.h80
1 files changed, 80 insertions, 0 deletions
diff --git a/chrome/browser/gtk/edit_search_engine_dialog.h b/chrome/browser/gtk/edit_search_engine_dialog.h
new file mode 100644
index 0000000..c7afbef
--- /dev/null
+++ b/chrome/browser/gtk/edit_search_engine_dialog.h
@@ -0,0 +1,80 @@
+// 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.
+
+#ifndef CHROME_BROWSER_GTK_EDIT_SEARCH_ENGINE_DIALOG_H_
+#define CHROME_BROWSER_GTK_EDIT_SEARCH_ENGINE_DIALOG_H_
+
+#include <gtk/gtk.h>
+#include <string>
+
+#include "app/gtk_signal.h"
+#include "base/basictypes.h"
+#include "base/scoped_ptr.h"
+
+class AccessibleWidgetHelper;
+class EditSearchEngineController;
+class EditSearchEngineControllerDelegate;
+class Profile;
+class TemplateURL;
+
+class EditSearchEngineDialog {
+ public:
+ EditSearchEngineDialog(GtkWindow* parent_window,
+ const TemplateURL* template_url,
+ EditSearchEngineControllerDelegate* delegate,
+ Profile* profile);
+
+ private:
+ // Create and show the window.
+ void Init(GtkWindow* parent_window, Profile* profile);
+
+ // Retrieve the user input in the various fields.
+ std::wstring GetTitleInput() const;
+ std::wstring GetKeywordInput() const;
+ std::string GetURLInput() const;
+
+ // Set sensitivity of buttons based on entry state.
+ void EnableControls();
+
+ // Updates the tooltip and image of the image view based on is_valid. If
+ // is_valid is false the tooltip of the image view is set to the message with
+ // id invalid_message_id, otherwise the tooltip is set to the empty text.
+ void UpdateImage(GtkWidget* image, bool is_valid, int invalid_message_id);
+
+ // Callback for entry changes.
+ CHROMEG_CALLBACK_0(EditSearchEngineDialog, void, OnEntryChanged,
+ GtkEditable*);
+
+ // Callback for dialog buttons.
+ CHROMEG_CALLBACK_1(EditSearchEngineDialog, void, OnResponse, GtkDialog*, int);
+
+ // Callback for window destruction.
+ CHROMEGTK_CALLBACK_0(EditSearchEngineDialog, void, OnWindowDestroy);
+
+ // The dialog window.
+ GtkWidget* dialog_;
+
+ // Text entries for each field.
+ GtkWidget* title_entry_;
+ GtkWidget* keyword_entry_;
+ GtkWidget* url_entry_;
+
+ // Images showing whether each entry is okay or has errors.
+ GtkWidget* title_image_;
+ GtkWidget* keyword_image_;
+ GtkWidget* url_image_;
+
+ // The ok button (we need a reference to it so we can de-activate it when the
+ // entries are not all filled in.)
+ GtkWidget* ok_button_;
+
+ scoped_ptr<EditSearchEngineController> controller_;
+
+ // Helper object to manage accessibility metadata.
+ scoped_ptr<AccessibleWidgetHelper> accessible_widget_helper_;
+
+ DISALLOW_COPY_AND_ASSIGN(EditSearchEngineDialog);
+};
+
+#endif // CHROME_BROWSER_GTK_EDIT_SEARCH_ENGINE_DIALOG_H_