-gtk_file_selection_init (GtkFileSelection *filesel)
-{
- GtkWidget *entry_vbox;
- GtkWidget *label;
- GtkWidget *list_hbox;
- GtkWidget *confirm_area;
- GtkWidget *vbox;
- GtkWidget *hbox;
- GtkWidget *pulldown_hbox;
- GtkWidget *scrolled_win;
- GtkWidget *mask_label;
- GtkWidget *bigframe;
- GtkWidget *label_lookingin;
- GtkWidget *up_button;
- GtkWidget *home_button;
- GtkWidget *prev_button;
- GtkWidget *next_button;
- GtkWidget *refresh_button;
-
- char *dir_title [2];
- char *file_title [2];
-
- filesel->cmpl_state = cmpl_init_state ();
-
- filesel->mask=NULL;
- filesel->prev_history=NULL;
- filesel->next_history=NULL;
- filesel->saved_entry=NULL;
-
- /* The dialog-sized vertical box */
- filesel->main_vbox = gtk_vbox_new (FALSE, 10);
- gtk_container_set_border_width (GTK_CONTAINER (filesel), 10);
- gtk_container_add (GTK_CONTAINER (filesel), filesel->main_vbox);
- gtk_widget_show (filesel->main_vbox);
-
- /* The horizontal box containing create, rename etc. buttons */
- filesel->button_area = gtk_hbutton_box_new ();
- gtk_button_box_set_layout(GTK_BUTTON_BOX(filesel->button_area), GTK_BUTTONBOX_START);
- gtk_button_box_set_spacing(GTK_BUTTON_BOX(filesel->button_area), 0);
- gtk_box_pack_start (GTK_BOX (filesel->main_vbox), filesel->button_area,
- FALSE, FALSE, 0);
- gtk_widget_show (filesel->button_area);
-
- gtk_file_selection_show_fileop_buttons(filesel);
-
- /* hbox for pulldown menu */
- pulldown_hbox = gtk_hbox_new (FALSE, 5);
- gtk_box_pack_start (GTK_BOX (filesel->main_vbox), pulldown_hbox, FALSE, FALSE, 0);
- gtk_widget_show (pulldown_hbox);
-
- /* The combo box that replaces the pulldown menu */
- label_lookingin = gtk_label_new (_("Looking in:"));
- gtk_widget_show (label_lookingin);
- gtk_box_pack_start (GTK_BOX (pulldown_hbox), label_lookingin, FALSE, FALSE, 0);
-
- filesel->history_combo = gtk_combo_new();
- gtk_widget_show(filesel->history_combo);
- gtk_combo_set_value_in_list(GTK_COMBO(filesel->history_combo),FALSE,FALSE);
- gtk_box_pack_start (GTK_BOX(pulldown_hbox),filesel->history_combo,
- TRUE,TRUE, 0);
- gtk_signal_connect(GTK_OBJECT(((GtkCombo *)filesel->history_combo)->entry),"key-press-event",
- (GtkSignalFunc) gtk_file_selection_history_combo_callback,
- (gpointer) filesel);
-
- gtk_signal_connect(GTK_OBJECT(((GtkCombo *)filesel->history_combo)->list),"button-press-event",
- (GtkSignalFunc) gtk_file_selection_history_combo_list_callback,
- (gpointer) filesel);
-
- gtk_signal_connect(GTK_OBJECT(((GtkCombo *)filesel->history_combo)->list),"key-press-event",
- (GtkSignalFunc) gtk_file_selection_history_combo_list_key_handler,
- (gpointer) filesel);
-
- /* frame to put the following hbox in */
- bigframe = gtk_frame_new (NULL);
- gtk_widget_show (bigframe);
- gtk_box_pack_start (GTK_BOX (filesel->main_vbox), bigframe, TRUE, TRUE, 0);
-
- /* The horizontal box containing the directory and file listboxes */
- list_hbox = gtk_hbox_new (FALSE, 5);
- gtk_container_add (GTK_CONTAINER(bigframe), list_hbox);
- gtk_container_set_border_width (GTK_CONTAINER (list_hbox), 5);
- gtk_widget_show (list_hbox);
-
- /* vbox to put the buttons and directory listing in */
- vbox = gtk_vbox_new (FALSE, 0);
- gtk_widget_show (vbox);
- gtk_box_pack_start (GTK_BOX (list_hbox), vbox, FALSE, FALSE, 0);
-
- hbox = gtk_hbox_new (FALSE, 0);
- gtk_widget_show (hbox);
- gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
-
- home_button = gtk_button_new_with_label (_("Home"));
- gtk_widget_show (home_button);
- gtk_signal_connect (GTK_OBJECT (home_button), "clicked",
- (GtkSignalFunc) gtk_file_selection_home_button,
- (gpointer) filesel);
- gtk_box_pack_start (GTK_BOX (hbox), home_button, TRUE,TRUE, 0);
-
- prev_button = gtk_button_new_with_label (_("Prev"));
- gtk_signal_connect (GTK_OBJECT (prev_button), "clicked",
- (GtkSignalFunc) gtk_file_selection_prev_button,
- (gpointer) filesel);
- gtk_widget_show (prev_button);
- gtk_box_pack_start (GTK_BOX (hbox), prev_button, TRUE,TRUE, 0);
-
- up_button = gtk_button_new_with_label (_("Up"));
- gtk_signal_connect (GTK_OBJECT (up_button), "clicked",
- (GtkSignalFunc) gtk_file_selection_up_button,
- (gpointer) filesel);
- gtk_widget_show (up_button);
- gtk_box_pack_start (GTK_BOX (hbox), up_button, TRUE,TRUE, 0);
-
- next_button = gtk_button_new_with_label (_("Next"));
- gtk_widget_show (next_button);
- gtk_signal_connect (GTK_OBJECT (next_button), "clicked",
- (GtkSignalFunc) gtk_file_selection_next_button,
- (gpointer) filesel);
- gtk_box_pack_start (GTK_BOX (hbox), next_button, TRUE,TRUE, 0);
-
- refresh_button = gtk_button_new_with_label (_("Refresh"));
- gtk_widget_show (refresh_button);
- gtk_signal_connect (GTK_OBJECT (refresh_button), "clicked",
- (GtkSignalFunc) gtk_file_selection_refresh_button,
- (gpointer) filesel);
- gtk_box_pack_start (GTK_BOX (hbox), refresh_button, TRUE, TRUE, 0);
-
- /* The directories clist */
- dir_title[0] = _("Directories");
- dir_title[1] = NULL;
- filesel->dir_list = gtk_clist_new_with_titles (1, (gchar**) dir_title);
- gtk_widget_set_usize (filesel->dir_list, DIR_LIST_WIDTH, DIR_LIST_HEIGHT);
- gtk_signal_connect (GTK_OBJECT (filesel->dir_list), "select_row",
- (GtkSignalFunc) gtk_file_selection_dir_button,
- (gpointer) filesel);
- gtk_signal_connect (GTK_OBJECT (filesel->dir_list), "unselect_row",
- (GtkSignalFunc) gtk_file_selection_undir_button,
- (gpointer) filesel);
- gtk_clist_column_titles_passive (GTK_CLIST (filesel->dir_list));
-
- scrolled_win = gtk_scrolled_window_new (NULL, NULL);
- gtk_container_add (GTK_CONTAINER (scrolled_win), filesel->dir_list);
- gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_win),
- GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
- gtk_box_pack_start (GTK_BOX (vbox), scrolled_win, TRUE,TRUE, 5);
- gtk_widget_show (filesel->dir_list);
- gtk_widget_show (scrolled_win);
-
- /* vbox area for mask entry and files clist */
- vbox = gtk_vbox_new (FALSE, 0);
- gtk_widget_show (vbox);
- gtk_box_pack_start (GTK_BOX (list_hbox), vbox, TRUE, TRUE, 0);
-
- hbox = gtk_hbox_new (FALSE, 5);
- gtk_widget_show (hbox);
- gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
-
- mask_label = gtk_label_new (_("Mask:"));
- gtk_widget_show (mask_label);
- gtk_box_pack_start (GTK_BOX (hbox), mask_label, FALSE, FALSE, 0);
-
- filesel->mask_entry = gtk_entry_new ();
- gtk_widget_show (filesel->mask_entry);
- gtk_signal_connect(GTK_OBJECT(filesel->mask_entry),"activate",
- (GtkSignalFunc) gtk_file_selection_mask_entry_callback,
- (gpointer) filesel);
- gtk_box_pack_start (GTK_BOX (hbox),filesel->mask_entry, TRUE, TRUE, 0);
-
-
- /* The files clist */
- file_title[0] = _("Files");
- file_title[1] = NULL;
- filesel->file_list = gtk_clist_new_with_titles (1, (gchar**) file_title);
- gtk_widget_set_usize (filesel->file_list, FILE_LIST_WIDTH, FILE_LIST_HEIGHT);
- gtk_signal_connect (GTK_OBJECT (filesel->file_list), "select_row",
- (GtkSignalFunc) gtk_file_selection_file_button,
- (gpointer) filesel);
- gtk_clist_column_titles_passive (GTK_CLIST (filesel->file_list));
-
- scrolled_win = gtk_scrolled_window_new (NULL, NULL);
- gtk_container_add (GTK_CONTAINER (scrolled_win), filesel->file_list);
- gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_win),
- GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
- gtk_box_pack_start (GTK_BOX (vbox), scrolled_win, TRUE, TRUE, 5);
- gtk_widget_show (filesel->file_list);
- gtk_widget_show (scrolled_win);
-
- /* action area for packing buttons into. */
- filesel->action_area = gtk_hbox_new (TRUE, 0);
- gtk_box_pack_start (GTK_BOX (filesel->main_vbox), filesel->action_area,
- FALSE, FALSE, 0);
- gtk_widget_show (filesel->action_area);
-
- /* The OK/Cancel button area */
- confirm_area = gtk_hbutton_box_new ();
- gtk_button_box_set_layout(GTK_BUTTON_BOX(confirm_area), GTK_BUTTONBOX_END);
- gtk_button_box_set_spacing(GTK_BUTTON_BOX(confirm_area), 5);
- gtk_box_pack_end (GTK_BOX (filesel->main_vbox), confirm_area, FALSE, FALSE, 0);
- gtk_widget_show (confirm_area);
-
- /* The OK button */
- filesel->ok_button = gtk_button_new_with_label (_("OK"));
- GTK_WIDGET_SET_FLAGS (filesel->ok_button, GTK_CAN_DEFAULT);
- gtk_box_pack_start (GTK_BOX (confirm_area), filesel->ok_button, TRUE, TRUE, 0);
- gtk_widget_grab_default (filesel->ok_button);
- gtk_widget_show (filesel->ok_button);
-
- /* The Cancel button */
- filesel->cancel_button = gtk_button_new_with_label (_("Cancel"));
- GTK_WIDGET_SET_FLAGS (filesel->cancel_button, GTK_CAN_DEFAULT);
- gtk_box_pack_start (GTK_BOX (confirm_area), filesel->cancel_button, TRUE, TRUE, 0);
- gtk_widget_show (filesel->cancel_button);
-
- /* The selection entry widget */
- entry_vbox = gtk_vbox_new (FALSE, 2);
- gtk_box_pack_end (GTK_BOX (filesel->main_vbox), entry_vbox, FALSE, FALSE, 0);
- gtk_widget_show (entry_vbox);
-
- filesel->selection_text = label = gtk_label_new ("");
- gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
- gtk_box_pack_start (GTK_BOX (entry_vbox), label, FALSE, FALSE, 0);
- gtk_widget_show (label);
-
- filesel->selection_entry = gtk_entry_new ();
- gtk_signal_connect (GTK_OBJECT (filesel->selection_entry), "key_press_event",
- (GtkSignalFunc) gtk_file_selection_key_press, filesel);
- gtk_signal_connect_object (GTK_OBJECT (filesel->selection_entry), "focus_in_event",
- (GtkSignalFunc) gtk_widget_grab_default,
- GTK_OBJECT (filesel->ok_button));
- gtk_signal_connect_object (GTK_OBJECT (filesel->selection_entry), "activate",
- (GtkSignalFunc) gtk_button_clicked,
- GTK_OBJECT (filesel->ok_button));
- gtk_box_pack_start (GTK_BOX (entry_vbox), filesel->selection_entry, TRUE, TRUE, 0);
- gtk_widget_show (filesel->selection_entry);
-
- if (!cmpl_state_okay (filesel->cmpl_state))
- {
- gchar err_buf[256];
-
- sprintf (err_buf, _("Directory unreadable: %s"), cmpl_strerror (cmpl_errno));
-
- gtk_label_set_text (GTK_LABEL (filesel->selection_text), err_buf);
- }
- else
- {
- gtk_file_selection_populate (filesel, "", FALSE);
- }
-
- gtk_widget_grab_focus (filesel->selection_entry);
+gtk_file_selection_init( GtkFileSelection *filesel ){
+ GtkWidget *entry_vbox;
+ GtkWidget *label;
+ GtkWidget *list_hbox;
+ GtkWidget *confirm_area;
+ GtkWidget *vbox;
+ GtkWidget *hbox;
+ GtkWidget *pulldown_hbox;
+ GtkWidget *scrolled_win;
+ GtkWidget *mask_label;
+ GtkWidget *bigframe;
+ GtkWidget *label_lookingin;
+ GtkWidget *up_button;
+ GtkWidget *home_button;
+ GtkWidget *prev_button;
+ GtkWidget *next_button;
+ GtkWidget *refresh_button;
+
+ char *dir_title [2];
+ char *file_title [2];
+
+ filesel->cmpl_state = cmpl_init_state();
+
+ filesel->mask = NULL;
+ filesel->prev_history = NULL;
+ filesel->next_history = NULL;
+ filesel->saved_entry = NULL;
+
+ /* The dialog-sized vertical box */
+ filesel->main_vbox = gtk_vbox_new( FALSE, 10 );
+ gtk_container_set_border_width( GTK_CONTAINER( filesel ), 10 );
+ gtk_container_add( GTK_CONTAINER( filesel ), filesel->main_vbox );
+ gtk_widget_show( filesel->main_vbox );
+
+ /* The horizontal box containing create, rename etc. buttons */
+ filesel->button_area = gtk_hbutton_box_new();
+ gtk_button_box_set_layout( GTK_BUTTON_BOX( filesel->button_area ), GTK_BUTTONBOX_START );
+ gtk_button_box_set_spacing( GTK_BUTTON_BOX( filesel->button_area ), 0 );
+ gtk_box_pack_start( GTK_BOX( filesel->main_vbox ), filesel->button_area,
+ FALSE, FALSE, 0 );
+ gtk_widget_show( filesel->button_area );
+
+ gtk_file_selection_show_fileop_buttons( filesel );
+
+ /* hbox for pulldown menu */
+ pulldown_hbox = gtk_hbox_new( FALSE, 5 );
+ gtk_box_pack_start( GTK_BOX( filesel->main_vbox ), pulldown_hbox, FALSE, FALSE, 0 );
+ gtk_widget_show( pulldown_hbox );
+
+ /* The combo box that replaces the pulldown menu */
+ label_lookingin = gtk_label_new( _( "Looking in:" ) );
+ gtk_widget_show( label_lookingin );
+ gtk_box_pack_start( GTK_BOX( pulldown_hbox ), label_lookingin, FALSE, FALSE, 0 );
+
+ filesel->history_combo = gtk_combo_new();
+ gtk_widget_show( filesel->history_combo );
+ gtk_combo_set_value_in_list( GTK_COMBO( filesel->history_combo ),FALSE,FALSE );
+ gtk_box_pack_start( GTK_BOX( pulldown_hbox ),filesel->history_combo,
+ TRUE,TRUE, 0 );
+ gtk_signal_connect( GTK_OBJECT( ( (GtkCombo *)filesel->history_combo )->entry ),"key-press-event",
+ (GtkSignalFunc) gtk_file_selection_history_combo_callback,
+ (gpointer) filesel );
+
+ gtk_signal_connect( GTK_OBJECT( ( (GtkCombo *)filesel->history_combo )->list ),"button-press-event",
+ (GtkSignalFunc) gtk_file_selection_history_combo_list_callback,
+ (gpointer) filesel );
+
+ gtk_signal_connect( GTK_OBJECT( ( (GtkCombo *)filesel->history_combo )->list ),"key-press-event",
+ (GtkSignalFunc) gtk_file_selection_history_combo_list_key_handler,
+ (gpointer) filesel );
+
+ /* frame to put the following hbox in */
+ bigframe = gtk_frame_new( NULL );
+ gtk_widget_show( bigframe );
+ gtk_box_pack_start( GTK_BOX( filesel->main_vbox ), bigframe, TRUE, TRUE, 0 );
+
+ /* The horizontal box containing the directory and file listboxes */
+ list_hbox = gtk_hbox_new( FALSE, 5 );
+ gtk_container_add( GTK_CONTAINER( bigframe ), list_hbox );
+ gtk_container_set_border_width( GTK_CONTAINER( list_hbox ), 5 );
+ gtk_widget_show( list_hbox );
+
+ /* vbox to put the buttons and directory listing in */
+ vbox = gtk_vbox_new( FALSE, 0 );
+ gtk_widget_show( vbox );
+ gtk_box_pack_start( GTK_BOX( list_hbox ), vbox, FALSE, FALSE, 0 );
+
+ hbox = gtk_hbox_new( FALSE, 0 );
+ gtk_widget_show( hbox );
+ gtk_box_pack_start( GTK_BOX( vbox ), hbox, FALSE, FALSE, 0 );
+
+ home_button = gtk_button_new_with_label( _( "Home" ) );
+ gtk_widget_show( home_button );
+ gtk_signal_connect( GTK_OBJECT( home_button ), "clicked",
+ (GtkSignalFunc) gtk_file_selection_home_button,
+ (gpointer) filesel );
+ gtk_box_pack_start( GTK_BOX( hbox ), home_button, TRUE,TRUE, 0 );
+
+ prev_button = gtk_button_new_with_label( _( "Prev" ) );
+ gtk_signal_connect( GTK_OBJECT( prev_button ), "clicked",
+ (GtkSignalFunc) gtk_file_selection_prev_button,
+ (gpointer) filesel );
+ gtk_widget_show( prev_button );
+ gtk_box_pack_start( GTK_BOX( hbox ), prev_button, TRUE,TRUE, 0 );
+
+ up_button = gtk_button_new_with_label( _( "Up" ) );
+ gtk_signal_connect( GTK_OBJECT( up_button ), "clicked",
+ (GtkSignalFunc) gtk_file_selection_up_button,
+ (gpointer) filesel );
+ gtk_widget_show( up_button );
+ gtk_box_pack_start( GTK_BOX( hbox ), up_button, TRUE,TRUE, 0 );
+
+ next_button = gtk_button_new_with_label( _( "Next" ) );
+ gtk_widget_show( next_button );
+ gtk_signal_connect( GTK_OBJECT( next_button ), "clicked",
+ (GtkSignalFunc) gtk_file_selection_next_button,
+ (gpointer) filesel );
+ gtk_box_pack_start( GTK_BOX( hbox ), next_button, TRUE,TRUE, 0 );
+
+ refresh_button = gtk_button_new_with_label( _( "Refresh" ) );
+ gtk_widget_show( refresh_button );
+ gtk_signal_connect( GTK_OBJECT( refresh_button ), "clicked",
+ (GtkSignalFunc) gtk_file_selection_refresh_button,
+ (gpointer) filesel );
+ gtk_box_pack_start( GTK_BOX( hbox ), refresh_button, TRUE, TRUE, 0 );
+
+ /* The directories clist */
+ dir_title[0] = _( "Directories" );
+ dir_title[1] = NULL;
+ filesel->dir_list = gtk_clist_new_with_titles( 1, (gchar**) dir_title );
+ gtk_widget_set_usize( filesel->dir_list, DIR_LIST_WIDTH, DIR_LIST_HEIGHT );
+ gtk_signal_connect( GTK_OBJECT( filesel->dir_list ), "select_row",
+ (GtkSignalFunc) gtk_file_selection_dir_button,
+ (gpointer) filesel );
+ gtk_signal_connect( GTK_OBJECT( filesel->dir_list ), "unselect_row",
+ (GtkSignalFunc) gtk_file_selection_undir_button,
+ (gpointer) filesel );
+ gtk_clist_column_titles_passive( GTK_CLIST( filesel->dir_list ) );
+
+ scrolled_win = gtk_scrolled_window_new( NULL, NULL );
+ gtk_container_add( GTK_CONTAINER( scrolled_win ), filesel->dir_list );
+ gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW( scrolled_win ),
+ GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS );
+ gtk_box_pack_start( GTK_BOX( vbox ), scrolled_win, TRUE,TRUE, 5 );
+ gtk_widget_show( filesel->dir_list );
+ gtk_widget_show( scrolled_win );
+
+ /* vbox area for mask entry and files clist */
+ vbox = gtk_vbox_new( FALSE, 0 );
+ gtk_widget_show( vbox );
+ gtk_box_pack_start( GTK_BOX( list_hbox ), vbox, TRUE, TRUE, 0 );
+
+ hbox = gtk_hbox_new( FALSE, 5 );
+ gtk_widget_show( hbox );
+ gtk_box_pack_start( GTK_BOX( vbox ), hbox, FALSE, FALSE, 0 );
+
+ mask_label = gtk_label_new( _( "Mask:" ) );
+ gtk_widget_show( mask_label );
+ gtk_box_pack_start( GTK_BOX( hbox ), mask_label, FALSE, FALSE, 0 );
+
+ filesel->mask_entry = gtk_entry_new();
+ gtk_widget_show( filesel->mask_entry );
+ gtk_signal_connect( GTK_OBJECT( filesel->mask_entry ),"activate",
+ (GtkSignalFunc) gtk_file_selection_mask_entry_callback,
+ (gpointer) filesel );
+ gtk_box_pack_start( GTK_BOX( hbox ),filesel->mask_entry, TRUE, TRUE, 0 );
+
+
+ /* The files clist */
+ file_title[0] = _( "Files" );
+ file_title[1] = NULL;
+ filesel->file_list = gtk_clist_new_with_titles( 1, (gchar**) file_title );
+ gtk_widget_set_usize( filesel->file_list, FILE_LIST_WIDTH, FILE_LIST_HEIGHT );
+ gtk_signal_connect( GTK_OBJECT( filesel->file_list ), "select_row",
+ (GtkSignalFunc) gtk_file_selection_file_button,
+ (gpointer) filesel );
+ gtk_clist_column_titles_passive( GTK_CLIST( filesel->file_list ) );
+
+ scrolled_win = gtk_scrolled_window_new( NULL, NULL );
+ gtk_container_add( GTK_CONTAINER( scrolled_win ), filesel->file_list );
+ gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW( scrolled_win ),
+ GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS );
+ gtk_box_pack_start( GTK_BOX( vbox ), scrolled_win, TRUE, TRUE, 5 );
+ gtk_widget_show( filesel->file_list );
+ gtk_widget_show( scrolled_win );
+
+ /* action area for packing buttons into. */
+ filesel->action_area = gtk_hbox_new( TRUE, 0 );
+ gtk_box_pack_start( GTK_BOX( filesel->main_vbox ), filesel->action_area,
+ FALSE, FALSE, 0 );
+ gtk_widget_show( filesel->action_area );
+
+ /* The OK/Cancel button area */
+ confirm_area = gtk_hbutton_box_new();
+ gtk_button_box_set_layout( GTK_BUTTON_BOX( confirm_area ), GTK_BUTTONBOX_END );
+ gtk_button_box_set_spacing( GTK_BUTTON_BOX( confirm_area ), 5 );
+ gtk_box_pack_end( GTK_BOX( filesel->main_vbox ), confirm_area, FALSE, FALSE, 0 );
+ gtk_widget_show( confirm_area );
+
+ /* The OK button */
+ filesel->ok_button = gtk_button_new_with_label( _( "OK" ) );
+ GTK_WIDGET_SET_FLAGS( filesel->ok_button, GTK_CAN_DEFAULT );
+ gtk_box_pack_start( GTK_BOX( confirm_area ), filesel->ok_button, TRUE, TRUE, 0 );
+ gtk_widget_grab_default( filesel->ok_button );
+ gtk_widget_show( filesel->ok_button );
+
+ /* The Cancel button */
+ filesel->cancel_button = gtk_button_new_with_label( _( "Cancel" ) );
+ GTK_WIDGET_SET_FLAGS( filesel->cancel_button, GTK_CAN_DEFAULT );
+ gtk_box_pack_start( GTK_BOX( confirm_area ), filesel->cancel_button, TRUE, TRUE, 0 );
+ gtk_widget_show( filesel->cancel_button );
+
+ /* The selection entry widget */
+ entry_vbox = gtk_vbox_new( FALSE, 2 );
+ gtk_box_pack_end( GTK_BOX( filesel->main_vbox ), entry_vbox, FALSE, FALSE, 0 );
+ gtk_widget_show( entry_vbox );
+
+ filesel->selection_text = label = gtk_label_new( "" );
+ gtk_misc_set_alignment( GTK_MISC( label ), 0.0, 0.5 );
+ gtk_box_pack_start( GTK_BOX( entry_vbox ), label, FALSE, FALSE, 0 );
+ gtk_widget_show( label );
+
+ filesel->selection_entry = gtk_entry_new();
+ gtk_signal_connect( GTK_OBJECT( filesel->selection_entry ), "key_press_event",
+ (GtkSignalFunc) gtk_file_selection_key_press, filesel );
+ gtk_signal_connect_object( GTK_OBJECT( filesel->selection_entry ), "focus_in_event",
+ (GtkSignalFunc) gtk_widget_grab_default,
+ GTK_OBJECT( filesel->ok_button ) );
+ gtk_signal_connect_object( GTK_OBJECT( filesel->selection_entry ), "activate",
+ (GtkSignalFunc) gtk_button_clicked,
+ GTK_OBJECT( filesel->ok_button ) );
+ gtk_box_pack_start( GTK_BOX( entry_vbox ), filesel->selection_entry, TRUE, TRUE, 0 );
+ gtk_widget_show( filesel->selection_entry );
+
+ if ( !cmpl_state_okay( filesel->cmpl_state ) ) {
+ gchar err_buf[256];
+
+ sprintf( err_buf, _( "Directory unreadable: %s" ), cmpl_strerror( cmpl_errno ) );
+
+ gtk_label_set_text( GTK_LABEL( filesel->selection_text ), err_buf );
+ }
+ else
+ {
+ gtk_file_selection_populate( filesel, "", FALSE );
+ }
+
+ gtk_widget_grab_focus( filesel->selection_entry );