26
27
struct _GnomeCmdPatternselDialogPrivate
30
GtkWidget *case_check;
31
GtkWidget *pattern_combo;
32
GtkWidget *pattern_entry;
31
GtkWidget *case_check;
32
GtkWidget *pattern_combo;
33
GtkWidget *pattern_entry;
38
39
static GnomeCmdDialogClass *parent_class = NULL;
43
43
on_ok (GtkButton *button, GnomeCmdPatternselDialog *dialog)
47
SearchDefaults *defaults = gnome_cmd_data_get_search_defaults ();
49
g_return_if_fail (GNOME_CMD_IS_PATTERNSEL_DIALOG (dialog));
51
s = gtk_entry_get_text (GTK_ENTRY (dialog->priv->pattern_entry));
52
case_sens = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (dialog->priv->case_check));
54
if (dialog->priv->mode)
55
gnome_cmd_file_list_select_pattern (dialog->priv->fl, s, case_sens);
57
gnome_cmd_file_list_unselect_pattern (dialog->priv->fl, s, case_sens);
59
defaults->name_patterns = string_history_add (
60
defaults->name_patterns, s, PATTERN_HISTORY_SIZE);
62
gtk_widget_hide (GTK_WIDGET (dialog));
47
SearchDefaults *defaults = gnome_cmd_data_get_search_defaults ();
49
g_return_if_fail (GNOME_CMD_IS_PATTERNSEL_DIALOG (dialog));
51
s = gtk_entry_get_text (GTK_ENTRY (dialog->priv->pattern_entry));
52
case_sens = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (dialog->priv->case_check));
54
if (dialog->priv->mode)
55
gnome_cmd_file_list_select_pattern (dialog->priv->fl, s, case_sens);
57
gnome_cmd_file_list_unselect_pattern (dialog->priv->fl, s, case_sens);
59
defaults->name_patterns = string_history_add (defaults->name_patterns, s, PATTERN_HISTORY_SIZE);
61
gtk_widget_hide (GTK_WIDGET (dialog));
67
66
on_cancel (GtkButton *button, GnomeCmdPatternselDialog *dialog)
69
gtk_widget_hide (GTK_WIDGET (dialog));
68
gtk_widget_hide (GTK_WIDGET (dialog));
78
77
destroy (GtkObject *object)
80
GnomeCmdPatternselDialog *dialog = GNOME_CMD_PATTERNSEL_DIALOG (object);
82
g_free (dialog->priv);
84
if (GTK_OBJECT_CLASS (parent_class)->destroy)
85
(*GTK_OBJECT_CLASS (parent_class)->destroy) (object);
79
GnomeCmdPatternselDialog *dialog = GNOME_CMD_PATTERNSEL_DIALOG (object);
81
g_free (dialog->priv);
83
if (GTK_OBJECT_CLASS (parent_class)->destroy)
84
(*GTK_OBJECT_CLASS (parent_class)->destroy) (object);
90
89
map (GtkWidget *widget)
92
if (GTK_WIDGET_CLASS (parent_class)->map != NULL)
93
GTK_WIDGET_CLASS (parent_class)->map (widget);
91
if (GTK_WIDGET_CLASS (parent_class)->map != NULL)
92
GTK_WIDGET_CLASS (parent_class)->map (widget);
98
97
class_init (GnomeCmdPatternselDialogClass *class)
100
GtkObjectClass *object_class;
101
GtkWidgetClass *widget_class;
103
object_class = GTK_OBJECT_CLASS (class);
104
widget_class = GTK_WIDGET_CLASS (class);
106
parent_class = gtk_type_class (gnome_cmd_dialog_get_type ());
107
object_class->destroy = destroy;
108
widget_class->map = map;
99
GtkObjectClass *object_class = GTK_OBJECT_CLASS (class);
100
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (class);
102
parent_class = gtk_type_class (gnome_cmd_dialog_get_type ());
103
object_class->destroy = destroy;
104
widget_class->map = map;
113
109
init (GnomeCmdPatternselDialog *dialog)
115
dialog->priv = g_new (GnomeCmdPatternselDialogPrivate, 1);
111
dialog->priv = g_new (GnomeCmdPatternselDialogPrivate, 1);
121
115
/***********************************
122
116
* Public functions
123
117
***********************************/
126
120
gnome_cmd_patternsel_dialog_new (GnomeCmdFileList *fl, gboolean mode)
128
GtkWidget *hbox, *vbox, *label;
129
SearchDefaults *defaults = gnome_cmd_data_get_search_defaults ();
130
GnomeCmdPatternselDialog *dialog = gtk_type_new (gnome_cmd_patternsel_dialog_get_type ());
131
dialog->priv->mode = mode;
132
dialog->priv->fl = fl;
134
gnome_cmd_dialog_setup (
135
GNOME_CMD_DIALOG (dialog),
136
mode?_("Select Using Pattern"):_("Unselect Using Pattern"));
138
gnome_cmd_dialog_add_button (
139
GNOME_CMD_DIALOG (dialog), GNOME_STOCK_BUTTON_CANCEL,
140
GTK_SIGNAL_FUNC (on_cancel), dialog);
141
gnome_cmd_dialog_add_button (
142
GNOME_CMD_DIALOG (dialog), GNOME_STOCK_BUTTON_OK,
143
GTK_SIGNAL_FUNC (on_ok), dialog);
145
vbox = create_vbox (GTK_WIDGET (dialog), FALSE, 6);
146
hbox = create_hbox (GTK_WIDGET (dialog), FALSE, 6);
147
label = create_label (GTK_WIDGET (dialog), _("Pattern:"));
149
dialog->priv->pattern_combo = create_combo (GTK_WIDGET (dialog));
150
gtk_combo_disable_activate (GTK_COMBO (dialog->priv->pattern_combo));
151
if (defaults->name_patterns)
152
gtk_combo_set_popdown_strings (GTK_COMBO (dialog->priv->pattern_combo),
153
defaults->name_patterns);
154
dialog->priv->pattern_entry = GTK_COMBO (dialog->priv->pattern_combo)->entry;
155
gnome_cmd_dialog_editable_enters (
156
GNOME_CMD_DIALOG (dialog), GTK_EDITABLE (dialog->priv->pattern_entry));
157
gtk_entry_select_region (GTK_ENTRY (dialog->priv->pattern_entry), 0, -1);
159
dialog->priv->case_check = create_check (
160
GTK_WIDGET (dialog), _("Case sensitive"), "case_sens");
162
gtk_box_pack_start (GTK_BOX (vbox), hbox, TRUE, FALSE, 0);
163
gtk_box_pack_start (GTK_BOX (hbox), label, TRUE, FALSE, 0);
164
gtk_box_pack_start (GTK_BOX (hbox), dialog->priv->pattern_combo, TRUE, FALSE, 0);
165
gtk_box_pack_start (GTK_BOX (vbox), dialog->priv->case_check, TRUE, FALSE, 0);
167
gnome_cmd_dialog_add_category (GNOME_CMD_DIALOG (dialog), vbox);
169
gtk_widget_grab_focus (dialog->priv->pattern_entry);
171
return GTK_WIDGET (dialog);
122
GtkWidget *hbox, *vbox, *label;
123
SearchDefaults *defaults = gnome_cmd_data_get_search_defaults ();
124
GnomeCmdPatternselDialog *dialog = gtk_type_new (gnome_cmd_patternsel_dialog_get_type ());
125
dialog->priv->mode = mode;
126
dialog->priv->fl = fl;
128
gnome_cmd_dialog_setup (
129
GNOME_CMD_DIALOG (dialog),
130
mode ? _("Select Using Pattern") : _("Unselect Using Pattern"));
132
gnome_cmd_dialog_add_button (GNOME_CMD_DIALOG (dialog), GNOME_STOCK_BUTTON_CANCEL, GTK_SIGNAL_FUNC (on_cancel), dialog);
133
gnome_cmd_dialog_add_button (GNOME_CMD_DIALOG (dialog), GNOME_STOCK_BUTTON_OK, GTK_SIGNAL_FUNC (on_ok), dialog);
135
vbox = create_vbox (GTK_WIDGET (dialog), FALSE, 6);
136
hbox = create_hbox (GTK_WIDGET (dialog), FALSE, 6);
137
label = create_label (GTK_WIDGET (dialog), _("Pattern:"));
139
dialog->priv->pattern_combo = create_combo (GTK_WIDGET (dialog));
140
gtk_combo_disable_activate (GTK_COMBO (dialog->priv->pattern_combo));
141
if (defaults->name_patterns)
142
gtk_combo_set_popdown_strings (GTK_COMBO (dialog->priv->pattern_combo), defaults->name_patterns);
143
dialog->priv->pattern_entry = GTK_COMBO (dialog->priv->pattern_combo)->entry;
144
gnome_cmd_dialog_editable_enters (GNOME_CMD_DIALOG (dialog), GTK_EDITABLE (dialog->priv->pattern_entry));
145
gtk_entry_select_region (GTK_ENTRY (dialog->priv->pattern_entry), 0, -1);
147
dialog->priv->case_check = create_check (GTK_WIDGET (dialog), _("Case sensitive"), "case_sens");
149
gtk_box_pack_start (GTK_BOX (vbox), hbox, TRUE, FALSE, 0);
150
gtk_box_pack_start (GTK_BOX (hbox), label, TRUE, FALSE, 0);
151
gtk_box_pack_start (GTK_BOX (hbox), dialog->priv->pattern_combo, TRUE, FALSE, 0);
152
gtk_box_pack_start (GTK_BOX (vbox), dialog->priv->case_check, TRUE, FALSE, 0);
154
gnome_cmd_dialog_add_category (GNOME_CMD_DIALOG (dialog), vbox);
156
gtk_widget_grab_focus (dialog->priv->pattern_entry);
158
return GTK_WIDGET (dialog);
177
163
gnome_cmd_patternsel_dialog_get_type (void)
179
static GtkType dlg_type = 0;
183
GtkTypeInfo dlg_info =
185
"GnomeCmdPatternselDialog",
186
sizeof (GnomeCmdPatternselDialog),
187
sizeof (GnomeCmdPatternselDialogClass),
188
(GtkClassInitFunc) class_init,
189
(GtkObjectInitFunc) init,
190
/* reserved_1 */ NULL,
191
/* reserved_2 */ NULL,
192
(GtkClassInitFunc) NULL
195
dlg_type = gtk_type_unique (gnome_cmd_dialog_get_type (), &dlg_info);
165
static GtkType dlg_type = 0;
169
GtkTypeInfo dlg_info =
171
"GnomeCmdPatternselDialog",
172
sizeof (GnomeCmdPatternselDialog),
173
sizeof (GnomeCmdPatternselDialogClass),
174
(GtkClassInitFunc) class_init,
175
(GtkObjectInitFunc) init,
176
/* reserved_1 */ NULL,
177
/* reserved_2 */ NULL,
178
(GtkClassInitFunc) NULL
181
dlg_type = gtk_type_unique (gnome_cmd_dialog_get_type (), &dlg_info);