Commit 62d067ad authored by Paolo Borelli's avatar Paolo Borelli

Use a template for the replace dialog

parent 0dd64da4
......@@ -20,14 +20,6 @@
* Boston, MA 02111-1307, USA.
*/
/*
* Modified by the gedit Team, 2005. See the AUTHORS file for a
* list of people on the gedit Team.
* See the ChangeLog files for a list of changes.
*
* $Id$
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
......@@ -42,10 +34,6 @@
#include "gedit-marshal.h"
#include "gedit-dirs.h"
#define GEDIT_REPLACE_DIALOG_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE ((object), \
GEDIT_TYPE_REPLACE_DIALOG, \
GeditReplaceDialogPrivate))
struct _GeditReplaceDialogPrivate
{
GtkWidget *grid;
......@@ -131,11 +119,25 @@ static void
gedit_replace_dialog_class_init (GeditReplaceDialogClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
GtkWidgetClass *gtkwidget_class = GTK_WIDGET_CLASS (klass);
GtkDialogClass *gtkdialog_class = GTK_DIALOG_CLASS (klass);
gtkwidget_class->delete_event = gedit_replace_dialog_delete_event;
gtkdialog_class->response = gedit_replace_dialog_response;
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
GtkDialogClass *dialog_class = GTK_DIALOG_CLASS (klass);
widget_class->delete_event = gedit_replace_dialog_delete_event;
dialog_class->response = gedit_replace_dialog_response;
/* Bind class to template */
gtk_widget_class_set_template_from_resource (widget_class,
"/org/gnome/gedit/ui/gedit-replace-dialog.ui");
gtk_widget_class_bind_child (widget_class, GeditReplaceDialogPrivate, grid);
gtk_widget_class_bind_child (widget_class, GeditReplaceDialogPrivate, search_label);
gtk_widget_class_bind_child (widget_class, GeditReplaceDialogPrivate, replace_label);
gtk_widget_class_bind_child (widget_class, GeditReplaceDialogPrivate, match_case_checkbutton);
gtk_widget_class_bind_child (widget_class, GeditReplaceDialogPrivate, entire_word_checkbutton);
gtk_widget_class_bind_child (widget_class, GeditReplaceDialogPrivate, backwards_checkbutton);
gtk_widget_class_bind_child (widget_class, GeditReplaceDialogPrivate, wrap_around_checkbutton);
gtk_widget_class_bind_child (widget_class, GeditReplaceDialogPrivate, find_button);
gtk_widget_class_bind_child (widget_class, GeditReplaceDialogPrivate, replace_button);
gtk_widget_class_bind_child (widget_class, GeditReplaceDialogPrivate, replace_all_button);
g_type_class_add_private (object_class, sizeof (GeditReplaceDialogPrivate));
}
......@@ -206,54 +208,16 @@ search_text_entry_changed (GtkEditable *editable,
static void
gedit_replace_dialog_init (GeditReplaceDialog *dlg)
{
GtkWidget *content;
GtkBuilder *builder;
gchar *root_objects[] = {
"replace_dialog_content",
NULL
};
dlg->priv = GEDIT_REPLACE_DIALOG_GET_PRIVATE (dlg);
gtk_window_set_resizable (GTK_WINDOW (dlg), FALSE);
gtk_window_set_destroy_with_parent (GTK_WINDOW (dlg), TRUE);
gtk_window_set_title (GTK_WINDOW (dlg), _("Replace"));
gtk_dialog_add_buttons (GTK_DIALOG (dlg),
GTK_STOCK_CLOSE, GTK_RESPONSE_CANCEL,
NULL);
/* HIG defaults */
gtk_container_set_border_width (GTK_CONTAINER (dlg), 5);
gtk_box_set_spacing (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (dlg))),
2); /* 2 * 5 + 2 = 12 */
gtk_container_set_border_width (GTK_CONTAINER (gtk_dialog_get_action_area (GTK_DIALOG (dlg))),
5);
gtk_box_set_spacing (GTK_BOX (gtk_dialog_get_action_area (GTK_DIALOG (dlg))),
6);
builder = gtk_builder_new ();
gtk_builder_add_objects_from_resource (builder, "/org/gnome/gedit/ui/gedit-replace-dialog.ui",
root_objects, NULL);
content = GTK_WIDGET (gtk_builder_get_object (builder, "replace_dialog_content"));
g_object_ref (content);
dlg->priv->grid = GTK_WIDGET (gtk_builder_get_object (builder, "grid"));
dlg->priv->search_label = GTK_WIDGET (gtk_builder_get_object (builder, "search_label"));
dlg->priv->replace_label = GTK_WIDGET (gtk_builder_get_object (builder, "replace_with_label"));
dlg->priv->match_case_checkbutton = GTK_WIDGET (gtk_builder_get_object (builder, "match_case_checkbutton"));
dlg->priv->entire_word_checkbutton = GTK_WIDGET (gtk_builder_get_object (builder, "entire_word_checkbutton"));
dlg->priv->backwards_checkbutton = GTK_WIDGET (gtk_builder_get_object (builder, "search_backwards_checkbutton"));
dlg->priv->wrap_around_checkbutton = GTK_WIDGET (gtk_builder_get_object (builder, "wrap_around_checkbutton"));
g_object_unref (builder);
dlg->priv = G_TYPE_INSTANCE_GET_PRIVATE (dlg, GEDIT_TYPE_REPLACE_DIALOG, GeditReplaceDialogPrivate);
gtk_widget_init_template (GTK_WIDGET (dlg));
dlg->priv->search_entry = gedit_history_entry_new ("search-for-entry", TRUE);
gtk_widget_set_size_request (dlg->priv->search_entry, 300, -1);
gedit_history_entry_set_escape_func
(GEDIT_HISTORY_ENTRY (dlg->priv->search_entry),
(GeditHistoryEntryEscapeFunc) gedit_utils_escape_search_text);
gedit_history_entry_set_escape_func (GEDIT_HISTORY_ENTRY (dlg->priv->search_entry),
(GeditHistoryEntryEscapeFunc) gedit_utils_escape_search_text);
gtk_widget_set_hexpand (GTK_WIDGET (dlg->priv->search_entry), TRUE);
dlg->priv->search_text_entry = gedit_history_entry_get_entry
(GEDIT_HISTORY_ENTRY (dlg->priv->search_entry));
dlg->priv->search_text_entry = gedit_history_entry_get_entry (GEDIT_HISTORY_ENTRY (dlg->priv->search_entry));
gtk_entry_set_activates_default (GTK_ENTRY (dlg->priv->search_text_entry), TRUE);
gtk_grid_attach_next_to (GTK_GRID (dlg->priv->grid),
dlg->priv->search_entry,
......@@ -261,12 +225,10 @@ gedit_replace_dialog_init (GeditReplaceDialog *dlg)
GTK_POS_RIGHT, 1, 1);
dlg->priv->replace_entry = gedit_history_entry_new ("replace-with-entry", TRUE);
gedit_history_entry_set_escape_func
(GEDIT_HISTORY_ENTRY (dlg->priv->replace_entry),
(GeditHistoryEntryEscapeFunc) gedit_utils_escape_search_text);
gedit_history_entry_set_escape_func (GEDIT_HISTORY_ENTRY (dlg->priv->replace_entry),
(GeditHistoryEntryEscapeFunc) gedit_utils_escape_search_text);
gtk_widget_set_hexpand (GTK_WIDGET (dlg->priv->replace_entry), TRUE);
dlg->priv->replace_text_entry = gedit_history_entry_get_entry
(GEDIT_HISTORY_ENTRY (dlg->priv->replace_entry));
dlg->priv->replace_text_entry = gedit_history_entry_get_entry (GEDIT_HISTORY_ENTRY (dlg->priv->replace_entry));
gtk_entry_set_activates_default (GTK_ENTRY (dlg->priv->replace_text_entry), TRUE);
gtk_grid_attach_next_to (GTK_GRID (dlg->priv->grid),
dlg->priv->replace_entry,
......@@ -278,24 +240,6 @@ gedit_replace_dialog_init (GeditReplaceDialog *dlg)
gtk_label_set_mnemonic_widget (GTK_LABEL (dlg->priv->replace_label),
dlg->priv->replace_entry);
dlg->priv->find_button = gtk_button_new_from_stock (GTK_STOCK_FIND);
dlg->priv->replace_all_button = gtk_button_new_with_mnemonic (_("Replace _All"));
dlg->priv->replace_button = gedit_gtk_button_new_with_stock_icon (_("_Replace"),
GTK_STOCK_FIND_AND_REPLACE);
gtk_dialog_add_action_widget (GTK_DIALOG (dlg),
dlg->priv->replace_all_button,
GEDIT_REPLACE_DIALOG_REPLACE_ALL_RESPONSE);
gtk_dialog_add_action_widget (GTK_DIALOG (dlg),
dlg->priv->replace_button,
GEDIT_REPLACE_DIALOG_REPLACE_RESPONSE);
gtk_dialog_add_action_widget (GTK_DIALOG (dlg),
dlg->priv->find_button,
GEDIT_REPLACE_DIALOG_FIND_RESPONSE);
g_object_set (G_OBJECT (dlg->priv->find_button),
"can-default", TRUE,
NULL);
gtk_dialog_set_default_response (GTK_DIALOG (dlg),
GEDIT_REPLACE_DIALOG_FIND_RESPONSE);
......@@ -310,11 +254,6 @@ gedit_replace_dialog_init (GeditReplaceDialog *dlg)
GEDIT_REPLACE_DIALOG_REPLACE_ALL_RESPONSE,
FALSE);
gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (dlg))),
content, FALSE, FALSE, 0);
g_object_unref (content);
gtk_container_set_border_width (GTK_CONTAINER (content), 5);
g_signal_connect (dlg->priv->search_text_entry,
"insert_text",
G_CALLBACK (insert_text_handler),
......@@ -370,9 +309,7 @@ gedit_replace_dialog_set_search_text (GeditReplaceDialog *dialog,
(text != '\0'));
}
/*
* The text must be unescaped before searching.
*/
/* The text must be unescaped before searching */
const gchar *
gedit_replace_dialog_get_search_text (GeditReplaceDialog *dialog)
{
......
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<!-- interface-requires gtk+ 3.0 -->
<object class="GtkDialog" id="dialog">
<template class="GeditReplaceDialog" parent="GtkDialog">
<property name="can_focus">False</property>
<property name="title" translatable="yes">Replace</property>
<property name="resizable">False</property>
<property name="destroy_with_parent">True</property>
<property name="type_hint">dialog</property>
<property name="border_width">5</property>
<child internal-child="vbox">
<object class="GtkBox" id="dialog-vbox1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">8</property>
<property name="spacing">2</property>
<child internal-child="action_area">
<object class="GtkButtonBox" id="dialog-action_area1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="border_width">5</property>
<property name="spacing">6</property>
<child>
<object class="GtkButton" id="close_button">
<property name="label">gtk-close</property>
......@@ -35,7 +39,7 @@
</child>
<child>
<object class="GtkButton" id="replace_all_button">
<property name="label" translatable="yes">Replace All</property>
<property name="label" translatable="yes">Replace _All</property>
<property name="use_action_appearance">False</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
......@@ -52,7 +56,7 @@
</child>
<child>
<object class="GtkButton" id="replace_button">
<property name="label" translatable="yes">Replace</property>
<property name="label" translatable="yes">_Replace</property>
<property name="use_action_appearance">False</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
......@@ -68,7 +72,7 @@
</packing>
</child>
<child>
<object class="GtkButton" id="find_next_button">
<object class="GtkButton" id="find_button">
<property name="label">gtk-find</property>
<property name="use_action_appearance">False</property>
<property name="visible">True</property>
......@@ -105,6 +109,7 @@
<property name="can_focus">False</property>
<property name="row_spacing">12</property>
<property name="column_spacing">12</property>
<property name="border_width">5</property>
<child>
<object class="GtkLabel" id="search_label">
<property name="visible">True</property>
......@@ -121,7 +126,7 @@
</packing>
</child>
<child>
<object class="GtkLabel" id="replace_with_label">
<object class="GtkLabel" id="replace_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xalign">0</property>
......@@ -191,7 +196,7 @@
</packing>
</child>
<child>
<object class="GtkCheckButton" id="search_backwards_checkbutton">
<object class="GtkCheckButton" id="backwards_checkbutton">
<property name="label" translatable="yes">Search _backwards</property>
<property name="use_action_appearance">False</property>
<property name="visible">True</property>
......@@ -247,7 +252,7 @@
<action-widget response="0">close_button</action-widget>
<action-widget response="0">replace_all_button</action-widget>
<action-widget response="0">replace_button</action-widget>
<action-widget response="0">find_next_button</action-widget>
<action-widget response="0">find_button</action-widget>
</action-widgets>
</object>
</template>
</interface>
......@@ -31,6 +31,7 @@ gedit/gedit-preferences-dialog.c
gedit/gedit-print-job.c
[type: gettext/glade]gedit/gedit-print-preferences.ui
gedit/gedit-print-preview.c
[type: gettext/glade]gedit/gedit-print-preview.ui
gedit/gedit-replace-dialog.c
[type: gettext/glade]gedit/gedit-replace-dialog.ui
gedit/gedit-statusbar.c
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment