32
32
struct _GnomeCmdCmdlinePrivate
42
42
update_history_combo (GnomeCmdCmdline *cmdline)
44
GList *tmp = cmdline->priv->history;
46
gnome_cmd_combo_clear (GNOME_CMD_COMBO (cmdline->priv->combo));
49
gchar *command = (gchar*)tmp->data;
55
gnome_cmd_combo_append (GNOME_CMD_COMBO (cmdline->priv->combo), text, command);
59
gtk_clist_select_row (GTK_CLIST (GNOME_CMD_COMBO (cmdline->priv->combo)->list), 0, 0);
44
GList *tmp = cmdline->priv->history;
46
gnome_cmd_combo_clear (GNOME_CMD_COMBO (cmdline->priv->combo));
49
gchar *command = (gchar*)tmp->data;
55
gnome_cmd_combo_append (GNOME_CMD_COMBO (cmdline->priv->combo), text, command);
59
gtk_clist_select_row (GTK_CLIST (GNOME_CMD_COMBO (cmdline->priv->combo)->list), 0, 0);
64
64
add_to_history (GnomeCmdCmdline *cmdline, const gchar *command)
66
cmdline->priv->history = string_history_add (
67
cmdline->priv->history,
69
gnome_cmd_data_get_cmdline_history_length());
71
update_history_combo (cmdline);
66
cmdline->priv->history = string_history_add (
67
cmdline->priv->history,
69
gnome_cmd_data_get_cmdline_history_length());
71
update_history_combo (cmdline);
76
76
on_exec (GnomeCmdCmdline *cmdline, gboolean term)
79
GnomeCmdFileSelector *fs = gnome_cmd_main_win_get_active_fs (main_win);
81
text = gtk_entry_get_text (GTK_ENTRY (GNOME_CMD_COMBO (cmdline->priv->combo)->entry));
82
text = g_strstrip (g_strdup (text));
84
if (strlen (text) > 3 && strncmp (text, "cd ", 3) == 0) {
85
const gchar *dir = text + 3;
86
dir = g_strstrip (g_strdup (dir));
87
gnome_cmd_file_selector_goto_directory (fs, dir);
89
else if (strcmp (text, "cd") == 0) {
90
gnome_cmd_file_selector_goto_directory (fs, "~");
93
if (gnome_cmd_con_is_local (gnome_cmd_file_selector_get_connection (fs))) {
94
GnomeCmdDir *dir = gnome_cmd_file_selector_get_directory (fs);
95
gchar *fpath = gnome_cmd_file_get_real_path (GNOME_CMD_FILE (dir));
97
run_command_indir (text, fpath, term);
102
add_to_history (cmdline, text);
103
gnome_cmd_cmdline_set_text (cmdline, "");
79
GnomeCmdFileSelector *fs = gnome_cmd_main_win_get_active_fs (main_win);
81
text = gtk_entry_get_text (GTK_ENTRY (GNOME_CMD_COMBO (cmdline->priv->combo)->entry));
82
text = g_strstrip (g_strdup (text));
84
if (strlen (text) > 3 && strncmp (text, "cd ", 3) == 0) {
85
const gchar *dir = text + 3;
86
dir = g_strstrip (g_strdup (dir));
87
gnome_cmd_file_selector_goto_directory (fs, dir);
89
else if (strcmp (text, "cd") == 0) {
90
gnome_cmd_file_selector_goto_directory (fs, "~");
93
if (gnome_cmd_con_is_local (gnome_cmd_file_selector_get_connection (fs))) {
94
GnomeCmdDir *dir = gnome_cmd_file_selector_get_directory (fs);
95
gchar *fpath = gnome_cmd_file_get_real_path (GNOME_CMD_FILE (dir));
97
run_command_indir (text, fpath, term);
102
add_to_history (cmdline, text);
103
gnome_cmd_cmdline_set_text (cmdline, "");
108
108
on_key_pressed (GtkWidget *entry,
110
GnomeCmdCmdline *cmdline)
110
GnomeCmdCmdline *cmdline)
112
switch (event->keyval) {
120
return gnome_cmd_cmdline_keypressed (cmdline, event);
123
if (gnome_cmd_cmdline_keypressed (cmdline, event))
125
else if (gnome_cmd_main_win_keypressed (main_win, event))
112
switch (event->keyval) {
120
return gnome_cmd_cmdline_keypressed (cmdline, event);
123
if (gnome_cmd_cmdline_keypressed (cmdline, event))
125
else if (gnome_cmd_main_win_keypressed (main_win, event))
133
133
on_combo_item_selected (GnomeCmdCombo *combo,
134
const gchar *command,
135
GnomeCmdCmdline *cmdline)
134
const gchar *command,
135
GnomeCmdCmdline *cmdline)
137
g_return_if_fail (GNOME_CMD_IS_COMBO (combo));
138
g_return_if_fail (GNOME_CMD_IS_CMDLINE (cmdline));
139
g_return_if_fail (command != NULL);
137
g_return_if_fail (GNOME_CMD_IS_COMBO (combo));
138
g_return_if_fail (GNOME_CMD_IS_CMDLINE (cmdline));
139
g_return_if_fail (command != NULL);
141
gnome_cmd_cmdline_set_text (cmdline, command);
142
gtk_widget_grab_focus (combo->entry);
141
gnome_cmd_cmdline_set_text (cmdline, command);
142
gtk_widget_grab_focus (combo->entry);
147
147
on_combo_popwin_hidden (GnomeCmdCombo *combo, GnomeCmdCmdline *cmdline)
149
g_return_if_fail (GNOME_CMD_IS_COMBO (combo));
150
g_return_if_fail (GNOME_CMD_IS_CMDLINE (cmdline));
152
gtk_widget_grab_focus (combo->entry);
149
g_return_if_fail (GNOME_CMD_IS_COMBO (combo));
150
g_return_if_fail (GNOME_CMD_IS_CMDLINE (cmdline));
152
gtk_widget_grab_focus (combo->entry);
157
157
on_switch_fs (GnomeCmdMainWin *mw, GnomeCmdFileSelector *fs, GnomeCmdCmdline *cmdline)
161
g_return_if_fail (GNOME_CMD_IS_MAIN_WIN (mw));
162
g_return_if_fail (GNOME_CMD_IS_FILE_SELECTOR (fs));
163
g_return_if_fail (GNOME_CMD_IS_CMDLINE (cmdline));
165
dpath = gnome_cmd_dir_get_display_path (
166
gnome_cmd_file_selector_get_directory (fs));
168
gnome_cmd_cmdline_set_dir (cmdline, dpath);
161
g_return_if_fail (GNOME_CMD_IS_MAIN_WIN (mw));
162
g_return_if_fail (GNOME_CMD_IS_FILE_SELECTOR (fs));
163
g_return_if_fail (GNOME_CMD_IS_CMDLINE (cmdline));
165
dpath = gnome_cmd_dir_get_display_path (
166
gnome_cmd_file_selector_get_directory (fs));
168
gnome_cmd_cmdline_set_dir (cmdline, dpath);
174
174
on_fs_changed_dir (GnomeCmdFileSelector *fs, GnomeCmdDir *dir, GnomeCmdCmdline *cmdline)
178
g_return_if_fail (GNOME_CMD_IS_FILE_SELECTOR (fs));
179
g_return_if_fail (dir != NULL);
180
g_return_if_fail (GNOME_CMD_IS_CMDLINE (cmdline));
182
if (fs != gnome_cmd_main_win_get_active_fs (main_win)) return;
184
dpath = gnome_cmd_dir_get_display_path (dir);
185
gnome_cmd_cmdline_set_dir (cmdline, dpath);
178
g_return_if_fail (GNOME_CMD_IS_FILE_SELECTOR (fs));
179
g_return_if_fail (dir != NULL);
180
g_return_if_fail (GNOME_CMD_IS_CMDLINE (cmdline));
182
if (fs != gnome_cmd_main_win_get_active_fs (main_win)) return;
184
dpath = gnome_cmd_dir_get_display_path (dir);
185
gnome_cmd_cmdline_set_dir (cmdline, dpath);
195
195
destroy (GtkObject *object)
197
gtk_signal_disconnect_by_func (
198
GTK_OBJECT (main_win), GTK_SIGNAL_FUNC (on_switch_fs), object);
199
gtk_signal_disconnect_by_func (
200
GTK_OBJECT (gnome_cmd_main_win_get_left_fs (main_win)),
201
GTK_SIGNAL_FUNC (on_fs_changed_dir), object);
202
gtk_signal_disconnect_by_func (
203
GTK_OBJECT (gnome_cmd_main_win_get_right_fs (main_win)),
204
GTK_SIGNAL_FUNC (on_fs_changed_dir), object);
206
if (GTK_OBJECT_CLASS (parent_class)->destroy)
207
(*GTK_OBJECT_CLASS (parent_class)->destroy) (object);
197
gtk_signal_disconnect_by_func (
198
GTK_OBJECT (main_win), GTK_SIGNAL_FUNC (on_switch_fs), object);
199
gtk_signal_disconnect_by_func (
200
GTK_OBJECT (gnome_cmd_main_win_get_left_fs (main_win)),
201
GTK_SIGNAL_FUNC (on_fs_changed_dir), object);
202
gtk_signal_disconnect_by_func (
203
GTK_OBJECT (gnome_cmd_main_win_get_right_fs (main_win)),
204
GTK_SIGNAL_FUNC (on_fs_changed_dir), object);
206
if (GTK_OBJECT_CLASS (parent_class)->destroy)
207
(*GTK_OBJECT_CLASS (parent_class)->destroy) (object);
212
212
map (GtkWidget *widget)
214
if (GTK_WIDGET_CLASS (parent_class)->map != NULL)
215
GTK_WIDGET_CLASS (parent_class)->map (widget);
214
if (GTK_WIDGET_CLASS (parent_class)->map != NULL)
215
GTK_WIDGET_CLASS (parent_class)->map (widget);
220
220
class_init (GnomeCmdCmdlineClass *class)
222
GtkObjectClass *object_class;
223
GtkWidgetClass *widget_class;
225
object_class = GTK_OBJECT_CLASS (class);
226
widget_class = GTK_WIDGET_CLASS (class);
228
parent_class = gtk_type_class (gtk_hbox_get_type ());
229
object_class->destroy = destroy;
230
widget_class->map = map;
222
GtkObjectClass *object_class;
223
GtkWidgetClass *widget_class;
225
object_class = GTK_OBJECT_CLASS (class);
226
widget_class = GTK_WIDGET_CLASS (class);
228
parent_class = gtk_type_class (gtk_hbox_get_type ());
229
object_class->destroy = destroy;
230
widget_class->map = map;
235
235
init (GnomeCmdCmdline *cmdline)
239
g_return_if_fail (GNOME_CMD_IS_CMDLINE (cmdline));
241
cmdline->priv = g_new (GnomeCmdCmdlinePrivate, 1);
242
cmdline->priv->history = NULL;
244
cmdline->priv->cwd = gtk_label_new ("cwd");
245
gtk_widget_ref (cmdline->priv->cwd);
246
gtk_object_set_data_full (GTK_OBJECT (cmdline), "cwdlabel", cmdline->priv->cwd,
247
(GtkDestroyNotify) gtk_widget_unref);
248
gtk_widget_show (cmdline->priv->cwd);
249
gtk_box_pack_start (GTK_BOX (cmdline), cmdline->priv->cwd,
251
gtk_label_set_selectable (GTK_LABEL (cmdline->priv->cwd), TRUE);
253
label = gtk_label_new ("#");
254
gtk_widget_ref (label);
255
gtk_object_set_data_full (GTK_OBJECT (cmdline), "label", label,
256
(GtkDestroyNotify) gtk_widget_unref);
257
gtk_widget_show (label);
258
gtk_box_pack_start (GTK_BOX (cmdline), label, FALSE, FALSE, 0);
260
cmdline->priv->combo = gnome_cmd_combo_new (1, 0, NULL);
261
gtk_widget_ref (cmdline->priv->combo);
262
gtk_object_set_data_full (GTK_OBJECT (cmdline), "combo", cmdline->priv->combo,
263
(GtkDestroyNotify) gtk_widget_unref);
264
gtk_clist_set_column_width (
265
GTK_CLIST (GNOME_CMD_COMBO (cmdline->priv->combo)->list), 0, 500);
266
gtk_box_pack_start (GTK_BOX (cmdline), cmdline->priv->combo, TRUE, TRUE, 2);
267
gtk_widget_show (cmdline->priv->combo);
268
gtk_entry_set_editable (GTK_ENTRY (GNOME_CMD_COMBO (cmdline->priv->combo)->entry), TRUE);
269
GTK_WIDGET_UNSET_FLAGS (GNOME_CMD_COMBO (cmdline->priv->combo)->button, GTK_CAN_FOCUS);
270
GTK_WIDGET_SET_FLAGS (GNOME_CMD_COMBO (cmdline->priv->combo)->entry, GTK_CAN_FOCUS);
272
gtk_signal_connect (GTK_OBJECT (GNOME_CMD_COMBO (cmdline->priv->combo)->entry),
274
GTK_SIGNAL_FUNC (on_key_pressed), cmdline);
275
gtk_signal_connect (GTK_OBJECT (cmdline->priv->combo), "item-selected",
276
GTK_SIGNAL_FUNC (on_combo_item_selected), cmdline);
277
gtk_signal_connect (GTK_OBJECT (cmdline->priv->combo), "popwin-hidden",
278
GTK_SIGNAL_FUNC (on_combo_popwin_hidden), cmdline);
279
gtk_signal_connect_after (GTK_OBJECT (main_win), "switch-fs",
280
GTK_SIGNAL_FUNC (on_switch_fs), cmdline);
281
gtk_signal_connect (GTK_OBJECT (gnome_cmd_main_win_get_left_fs (main_win)),
282
"changed-dir", GTK_SIGNAL_FUNC (on_fs_changed_dir), cmdline);
283
gtk_signal_connect (GTK_OBJECT (gnome_cmd_main_win_get_right_fs (main_win)),
284
"changed-dir", GTK_SIGNAL_FUNC (on_fs_changed_dir), cmdline);
286
gnome_cmd_cmdline_update_style (cmdline);
239
g_return_if_fail (GNOME_CMD_IS_CMDLINE (cmdline));
241
cmdline->priv = g_new (GnomeCmdCmdlinePrivate, 1);
242
cmdline->priv->history = NULL;
244
cmdline->priv->cwd = gtk_label_new ("cwd");
245
gtk_widget_ref (cmdline->priv->cwd);
246
gtk_object_set_data_full (GTK_OBJECT (cmdline), "cwdlabel", cmdline->priv->cwd,
247
(GtkDestroyNotify) gtk_widget_unref);
248
gtk_widget_show (cmdline->priv->cwd);
249
gtk_box_pack_start (GTK_BOX (cmdline), cmdline->priv->cwd,
251
gtk_label_set_selectable (GTK_LABEL (cmdline->priv->cwd), TRUE);
253
label = gtk_label_new ("#");
254
gtk_widget_ref (label);
255
gtk_object_set_data_full (GTK_OBJECT (cmdline), "label", label,
256
(GtkDestroyNotify) gtk_widget_unref);
257
gtk_widget_show (label);
258
gtk_box_pack_start (GTK_BOX (cmdline), label, FALSE, FALSE, 0);
260
cmdline->priv->combo = gnome_cmd_combo_new (1, 0, NULL);
261
gtk_widget_ref (cmdline->priv->combo);
262
gtk_object_set_data_full (GTK_OBJECT (cmdline), "combo", cmdline->priv->combo,
263
(GtkDestroyNotify) gtk_widget_unref);
264
gtk_clist_set_column_width (
265
GTK_CLIST (GNOME_CMD_COMBO (cmdline->priv->combo)->list), 0, 500);
266
gtk_box_pack_start (GTK_BOX (cmdline), cmdline->priv->combo, TRUE, TRUE, 2);
267
gtk_widget_show (cmdline->priv->combo);
268
gtk_entry_set_editable (GTK_ENTRY (GNOME_CMD_COMBO (cmdline->priv->combo)->entry), TRUE);
269
GTK_WIDGET_UNSET_FLAGS (GNOME_CMD_COMBO (cmdline->priv->combo)->button, GTK_CAN_FOCUS);
270
GTK_WIDGET_SET_FLAGS (GNOME_CMD_COMBO (cmdline->priv->combo)->entry, GTK_CAN_FOCUS);
272
gtk_signal_connect (GTK_OBJECT (GNOME_CMD_COMBO (cmdline->priv->combo)->entry),
274
GTK_SIGNAL_FUNC (on_key_pressed), cmdline);
275
gtk_signal_connect (GTK_OBJECT (cmdline->priv->combo), "item-selected",
276
GTK_SIGNAL_FUNC (on_combo_item_selected), cmdline);
277
gtk_signal_connect (GTK_OBJECT (cmdline->priv->combo), "popwin-hidden",
278
GTK_SIGNAL_FUNC (on_combo_popwin_hidden), cmdline);
279
gtk_signal_connect_after (GTK_OBJECT (main_win), "switch-fs",
280
GTK_SIGNAL_FUNC (on_switch_fs), cmdline);
281
gtk_signal_connect (GTK_OBJECT (gnome_cmd_main_win_get_left_fs (main_win)),
282
"changed-dir", GTK_SIGNAL_FUNC (on_fs_changed_dir), cmdline);
283
gtk_signal_connect (GTK_OBJECT (gnome_cmd_main_win_get_right_fs (main_win)),
284
"changed-dir", GTK_SIGNAL_FUNC (on_fs_changed_dir), cmdline);
286
gnome_cmd_cmdline_update_style (cmdline);
310
310
gnome_cmd_cmdline_get_type (void)
312
static GtkType dlg_type = 0;
316
GtkTypeInfo dlg_info =
319
sizeof (GnomeCmdCmdline),
320
sizeof (GnomeCmdCmdlineClass),
321
(GtkClassInitFunc) class_init,
322
(GtkObjectInitFunc) init,
323
/* reserved_1 */ NULL,
324
/* reserved_2 */ NULL,
325
(GtkClassInitFunc) NULL
328
dlg_type = gtk_type_unique (gtk_hbox_get_type (), &dlg_info);
312
static GtkType dlg_type = 0;
316
GtkTypeInfo dlg_info =
319
sizeof (GnomeCmdCmdline),
320
sizeof (GnomeCmdCmdlineClass),
321
(GtkClassInitFunc) class_init,
322
(GtkObjectInitFunc) init,
323
/* reserved_1 */ NULL,
324
/* reserved_2 */ NULL,
325
(GtkClassInitFunc) NULL
328
dlg_type = gtk_type_unique (gtk_hbox_get_type (), &dlg_info);
335
335
gnome_cmd_cmdline_set_dir (GnomeCmdCmdline *cmdline, const gchar *cwd)
339
g_return_if_fail (cmdline != NULL);
340
g_return_if_fail (cmdline->priv != NULL);
343
gtk_label_set_text (GTK_LABEL (cmdline->priv->cwd), s);
339
g_return_if_fail (cmdline != NULL);
340
g_return_if_fail (cmdline->priv != NULL);
343
gtk_label_set_text (GTK_LABEL (cmdline->priv->cwd), s);
349
349
gnome_cmd_cmdline_append_text (GnomeCmdCmdline *cmdline, const gchar *text)
351
const gchar *curtext;
355
g_return_if_fail (cmdline != NULL);
356
g_return_if_fail (cmdline->priv != NULL);
357
g_return_if_fail (cmdline->priv->combo != NULL);
359
entry = GTK_ENTRY (GNOME_CMD_COMBO (cmdline->priv->combo)->entry);
360
curtext = gtk_entry_get_text (entry);
361
if (curtext[strlen(curtext)-1] != ' ' && strlen(curtext) > 0)
362
gtk_entry_append_text (entry, " ");
363
curpos = gtk_editable_get_position (GTK_EDITABLE (entry));
364
gtk_entry_append_text (entry, text);
365
gtk_editable_set_position (GTK_EDITABLE (entry), curpos + strlen (text));
351
const gchar *curtext;
355
g_return_if_fail (cmdline != NULL);
356
g_return_if_fail (cmdline->priv != NULL);
357
g_return_if_fail (cmdline->priv->combo != NULL);
359
entry = GTK_ENTRY (GNOME_CMD_COMBO (cmdline->priv->combo)->entry);
360
curtext = gtk_entry_get_text (entry);
361
if (curtext[strlen(curtext)-1] != ' ' && strlen(curtext) > 0)
362
gtk_entry_append_text (entry, " ");
363
curpos = gtk_editable_get_position (GTK_EDITABLE (entry));
364
gtk_entry_append_text (entry, text);
365
gtk_editable_set_position (GTK_EDITABLE (entry), curpos + strlen (text));
370
370
gnome_cmd_cmdline_insert_text (GnomeCmdCmdline *cmdline, const gchar *text)
375
g_return_if_fail (cmdline != NULL);
376
g_return_if_fail (cmdline->priv != NULL);
377
g_return_if_fail (cmdline->priv->combo != NULL);
379
entry = GTK_ENTRY (GNOME_CMD_COMBO (cmdline->priv->combo)->entry);
380
curpos = gtk_editable_get_position (GTK_EDITABLE (entry));
382
gtk_editable_insert_text (GTK_EDITABLE (entry), text, strlen (text), &tmp);
383
gtk_editable_set_position (GTK_EDITABLE (entry), curpos + strlen (text));
375
g_return_if_fail (cmdline != NULL);
376
g_return_if_fail (cmdline->priv != NULL);
377
g_return_if_fail (cmdline->priv->combo != NULL);
379
entry = GTK_ENTRY (GNOME_CMD_COMBO (cmdline->priv->combo)->entry);
380
curpos = gtk_editable_get_position (GTK_EDITABLE (entry));
382
gtk_editable_insert_text (GTK_EDITABLE (entry), text, strlen (text), &tmp);
383
gtk_editable_set_position (GTK_EDITABLE (entry), curpos + strlen (text));
388
388
gnome_cmd_cmdline_set_text (GnomeCmdCmdline *cmdline, const gchar *text)
390
g_return_if_fail (cmdline != NULL);
391
g_return_if_fail (cmdline->priv != NULL);
392
g_return_if_fail (cmdline->priv->combo != NULL);
390
g_return_if_fail (cmdline != NULL);
391
g_return_if_fail (cmdline->priv != NULL);
392
g_return_if_fail (cmdline->priv->combo != NULL);
394
gtk_entry_set_text (GTK_ENTRY (GNOME_CMD_COMBO (cmdline->priv->combo)->entry), text);
394
gtk_entry_set_text (GTK_ENTRY (GNOME_CMD_COMBO (cmdline->priv->combo)->entry), text);
399
399
gnome_cmd_cmdline_is_empty (GnomeCmdCmdline *cmdline)
401
const gchar *text = gtk_entry_get_text (GTK_ENTRY (GNOME_CMD_COMBO (cmdline->priv->combo)->entry));
403
if (text == NULL || strcmp (text, ""))
401
const gchar *text = gtk_entry_get_text (GTK_ENTRY (GNOME_CMD_COMBO (cmdline->priv->combo)->entry));
403
if (text == NULL || strcmp (text, ""))
411
411
gnome_cmd_cmdline_exec (GnomeCmdCmdline *cmdline)
413
on_exec (cmdline, FALSE);
413
on_exec (cmdline, FALSE);
418
418
gnome_cmd_cmdline_focus (GnomeCmdCmdline *cmdline)
420
g_return_if_fail (GNOME_CMD_IS_CMDLINE (cmdline));
421
g_return_if_fail (cmdline->priv->combo != NULL);
420
g_return_if_fail (GNOME_CMD_IS_CMDLINE (cmdline));
421
g_return_if_fail (cmdline->priv->combo != NULL);
423
gtk_widget_grab_focus (GTK_WIDGET (GNOME_CMD_COMBO (cmdline->priv->combo)->entry));
424
gtk_editable_set_position (GTK_EDITABLE (GNOME_CMD_COMBO (cmdline->priv->combo)->entry), -1);
423
gtk_widget_grab_focus (GTK_WIDGET (GNOME_CMD_COMBO (cmdline->priv->combo)->entry));
424
gtk_editable_set_position (GTK_EDITABLE (GNOME_CMD_COMBO (cmdline->priv->combo)->entry), -1);
429
429
gnome_cmd_cmdline_update_style (GnomeCmdCmdline *cmdline)
431
g_return_if_fail (GNOME_CMD_IS_CMDLINE (cmdline));
431
g_return_if_fail (GNOME_CMD_IS_CMDLINE (cmdline));
433
gnome_cmd_combo_update_style (GNOME_CMD_COMBO (cmdline->priv->combo));
433
gnome_cmd_combo_update_style (GNOME_CMD_COMBO (cmdline->priv->combo));
438
438
gnome_cmd_cmdline_show_history (GnomeCmdCmdline *cmdline)
440
g_return_if_fail (GNOME_CMD_IS_CMDLINE (cmdline));
442
gnome_cmd_combo_popup_list (GNOME_CMD_COMBO (cmdline->priv->combo));
440
g_return_if_fail (GNOME_CMD_IS_CMDLINE (cmdline));
442
gnome_cmd_combo_popup_list (GNOME_CMD_COMBO (cmdline->priv->combo));
447
447
gnome_cmd_cmdline_get_history (GnomeCmdCmdline *cmdline)
449
g_return_val_if_fail (GNOME_CMD_IS_CMDLINE (cmdline), NULL);
451
return cmdline->priv->history;
449
g_return_val_if_fail (GNOME_CMD_IS_CMDLINE (cmdline), NULL);
451
return cmdline->priv->history;
456
456
gnome_cmd_cmdline_set_history (GnomeCmdCmdline *cmdline, GList *history)
460
g_return_if_fail (GNOME_CMD_IS_CMDLINE (cmdline));
462
/* free the old history */
463
tmp = cmdline->priv->history;
469
cmdline->priv->history = history;
460
g_return_if_fail (GNOME_CMD_IS_CMDLINE (cmdline));
462
/* free the old history */
463
tmp = cmdline->priv->history;
469
cmdline->priv->history = history;
474
474
gnome_cmd_cmdline_get_entry (GnomeCmdCmdline *cmdline)
476
g_return_val_if_fail (GNOME_CMD_IS_CMDLINE (cmdline), NULL);
476
g_return_val_if_fail (GNOME_CMD_IS_CMDLINE (cmdline), NULL);
478
return GNOME_CMD_COMBO (cmdline->priv->combo)->entry;
478
return GNOME_CMD_COMBO (cmdline->priv->combo)->entry;
483
483
gnome_cmd_cmdline_keypressed (GnomeCmdCmdline *cmdline,
486
g_return_val_if_fail (GNOME_CMD_IS_CMDLINE (cmdline), FALSE);
487
g_return_val_if_fail (event != NULL, FALSE);
489
if (state_is_ctrl (event->state)) {
490
switch (event->keyval)
493
gnome_cmd_cmdline_show_history (cmdline);
497
event->string[0] = '\0';
501
else if (state_is_shift (event->state)) {
502
switch (event->keyval)
505
on_exec (cmdline, TRUE);
506
event->keyval = GDK_Escape;
510
else if (state_is_ctrl_shift (event->state)) {
511
switch (event->keyval)
514
event->string[0] = '\0';
518
else if (state_is_blank (event->state))
520
switch (event->keyval)
523
on_exec (cmdline, FALSE);
524
event->keyval = GDK_Escape;
528
gnome_cmd_cmdline_set_text (cmdline, "");
529
gnome_cmd_main_win_focus_file_lists (main_win);
537
GnomeCmdFileSelector *fs = gnome_cmd_main_win_get_active_fs (main_win);
538
GtkWidget *file_list = fs->list_widget;
540
gtk_widget_grab_focus (file_list);
541
gnome_cmd_file_selector_set_active (fs, TRUE);
543
memcpy (&event2, event, sizeof (GdkEventKey));
544
gtk_signal_emit_by_name (
545
GTK_OBJECT (file_list), "key-press-event", &event2, &ret);
486
g_return_val_if_fail (GNOME_CMD_IS_CMDLINE (cmdline), FALSE);
487
g_return_val_if_fail (event != NULL, FALSE);
489
if (state_is_ctrl (event->state)) {
490
switch (event->keyval)
493
gnome_cmd_cmdline_show_history (cmdline);
497
event->string[0] = '\0';
501
else if (state_is_shift (event->state)) {
502
switch (event->keyval)
505
on_exec (cmdline, TRUE);
506
event->keyval = GDK_Escape;
510
else if (state_is_ctrl_shift (event->state)) {
511
switch (event->keyval)
514
event->string[0] = '\0';
518
else if (state_is_blank (event->state))
520
switch (event->keyval)
523
on_exec (cmdline, FALSE);
524
event->keyval = GDK_Escape;
528
gnome_cmd_cmdline_set_text (cmdline, "");
529
gnome_cmd_main_win_focus_file_lists (main_win);
537
GnomeCmdFileSelector *fs = gnome_cmd_main_win_get_active_fs (main_win);
538
GtkWidget *file_list = fs->list_widget;
540
gtk_widget_grab_focus (file_list);
541
gnome_cmd_file_selector_set_active (fs, TRUE);
543
memcpy (&event2, event, sizeof (GdkEventKey));
544
gtk_signal_emit_by_name (
545
GTK_OBJECT (file_list), "key-press-event", &event2, &ret);