Changeset 635

Show
Ignore:
Timestamp:
10/14/06 20:18:20 (2 years ago)
Author:
leo
Message:

Added directory browse dialog.

Location:
trunk/linux
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • trunk/linux/dialogs.h

    r176 r635  
    1818int saveprojectdlg_execute (char* filename); 
    1919int savepicturedlg_execute (void* param); 
     20int dirbrowsedlg_execute(void* param); 
    2021int msgbox_execute (const char* text, const char *caption, int flags); 
    2122int filedlg_execute(char* caption, char* filename); 
  • trunk/linux/dlgfile.cpp

    r403 r635  
    341341} 
    342342 
     343int dirbrowsedlg_execute(void* param) 
     344{ 
     345  GtkWidget *dlg; 
     346  int ret = LC_CANCEL, loop = 1; 
     347  LC_DLG_DIRECTORY_BROWSE_OPTS* opts = (LC_DLG_DIRECTORY_BROWSE_OPTS*)param; 
     348 
     349  dlg = gtk_file_selection_new(opts->Title); 
     350  gtk_window_set_transient_for (GTK_WINDOW (dlg), GTK_WINDOW (((GtkWidget*)(*main_window)))); 
     351  gtk_signal_connect (GTK_OBJECT (dlg), "delete_event", 
     352                      GTK_SIGNAL_FUNC (dialog_delete_callback), NULL); 
     353  gtk_signal_connect (GTK_OBJECT (dlg), "destroy", 
     354                      GTK_SIGNAL_FUNC (gtk_widget_destroy), NULL); 
     355  gtk_signal_connect (GTK_OBJECT (GTK_FILE_SELECTION (dlg)->ok_button), "clicked", 
     356                      GTK_SIGNAL_FUNC (dialog_button_callback), GINT_TO_POINTER (LC_OK)); 
     357  gtk_signal_connect (GTK_OBJECT (GTK_FILE_SELECTION (dlg)->cancel_button), "clicked", 
     358                      GTK_SIGNAL_FUNC (dialog_button_callback), GINT_TO_POINTER (LC_CANCEL)); 
     359  gtk_object_set_data (GTK_OBJECT (dlg), "loop", &loop); 
     360  gtk_object_set_data (GTK_OBJECT (dlg), "ret", &ret); 
     361 
     362  gtk_widget_show (dlg); 
     363  gtk_grab_add (dlg); 
     364 
     365  while (loop) 
     366    gtk_main_iteration (); 
     367 
     368  if (ret == LC_OK) 
     369    strcpy (opts->Path, gtk_file_selection_get_filename (GTK_FILE_SELECTION (dlg))); 
     370 
     371  gtk_grab_remove (dlg); 
     372  gtk_widget_destroy (dlg); 
     373 
     374  return ret; 
     375} 
     376 
    343377// ============================================================================= 
    344378// Piece Library Manager 
  • trunk/linux/system.cpp

    r591 r635  
    617617    } break; 
    618618 
     619    case LC_DLG_DIRECTORY_BROWSE: { 
     620      return dirbrowsedlg_execute(param) == LC_OK; 
     621    } break; 
     622 
    619623    case LC_DLG_ABOUT: { 
    620624      return aboutdlg_execute(param) == LC_OK;