Update of /cvsroot/htoolkit/port/src/cbits/GTK
In directory sc8-pr-cvs1:/tmp/cvs-serv4266/port/src/cbits/GTK
Modified Files:
FileDialog.c
Log Message:
The InputFileDialog, OutputFileDialog and SelectDirectory dialogs has extended functionality
Index: FileDialog.c
===================================================================
RCS file: /cvsroot/htoolkit/port/src/cbits/GTK/FileDialog.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** FileDialog.c 2 Apr 2003 19:32:07 -0000 1.4
--- FileDialog.c 26 Apr 2003 10:00:47 -0000 1.5
***************
*** 2,8 ****
#include "Internals.h"
! char *osSelectDirectory()
{
! GtkWidget *file_selector = gtk_file_selection_new("Select directory");
gtk_window_set_transient_for(GTK_WINDOW(file_selector), GTK_WINDOW(gFrameWidget));
--- 2,8 ----
#include "Internals.h"
! char *osSelectDirectory(char *title)
{
! GtkWidget *file_selector = gtk_file_selection_new(title);
gtk_window_set_transient_for(GTK_WINDOW(file_selector), GTK_WINDOW(gFrameWidget));
***************
*** 39,45 ****
}
! char *osSelectInputFile()
{
! GtkWidget *file_selector = gtk_file_selection_new("Open");
gtk_window_set_transient_for(GTK_WINDOW(file_selector), GTK_WINDOW(gFrameWidget));
--- 39,45 ----
}
! char *osSelectInputFile(char *title, char *filter)
{
! GtkWidget *file_selector = gtk_file_selection_new(title);
gtk_window_set_transient_for(GTK_WINDOW(file_selector), GTK_WINDOW(gFrameWidget));
***************
*** 90,96 ****
}
! char *osSelectOutputFile(char *promptptr, char *nameptr)
{
! GtkWidget *file_selector = gtk_file_selection_new(promptptr);
gtk_window_set_transient_for(GTK_WINDOW(file_selector), GTK_WINDOW(gFrameWidget));
--- 90,173 ----
}
! char *osSelectInputFiles(char *title, char *filter)
{
! GtkWidget *file_selector = gtk_file_selection_new(title);
! gtk_window_set_transient_for(GTK_WINDOW(file_selector), GTK_WINDOW(gFrameWidget));
! gtk_file_selection_set_select_multiple(GTK_FILE_SELECTION(file_selector), gtk_true());
!
! for (;;)
! {
! if (gtk_dialog_run(GTK_DIALOG(file_selector)) == GTK_RESPONSE_OK)
! {
! int pos_size;
! gchar *buffer;
! gchar **fname, **files = gtk_file_selection_get_selections(GTK_FILE_SELECTION(file_selector));
!
! pos_size = 1;
! for (fname = files; *fname; fname++)
! {
! if (!g_file_test(*fname, G_FILE_TEST_EXISTS))
! {
! GtkWidget *dialog =
! gtk_message_dialog_new (GTK_WINDOW(file_selector),
! GTK_DIALOG_DESTROY_WITH_PARENT,
! GTK_MESSAGE_ERROR,
! GTK_BUTTONS_OK,
! "%s file not found",
! *fname);
! gtk_dialog_run (GTK_DIALOG (dialog));
! gtk_widget_destroy (dialog);
! break;
! }
!
! if (g_file_test(*fname, G_FILE_TEST_IS_DIR))
! {
! GtkWidget *dialog =
! gtk_message_dialog_new (GTK_WINDOW(file_selector),
! GTK_DIALOG_DESTROY_WITH_PARENT,
! GTK_MESSAGE_ERROR,
! GTK_BUTTONS_OK,
! "Path %s is a directory",
! *fname);
! gtk_dialog_run (GTK_DIALOG (dialog));
! gtk_widget_destroy (dialog);
! break;
! }
!
! pos_size += strlen(*fname)+1;
! }
!
! if (*fname)
! {
! g_strfreev(files);
! continue;
! }
!
! buffer = malloc(pos_size);
! if (!buffer)
! return NULL;
!
! pos_size = 0;
! for (fname = files; *fname; fname++)
! {
! strcpy(buffer+pos_size,*fname);
! pos_size += strlen(*fname)+1;
! }
!
! gtk_widget_destroy(file_selector);
! g_strfreev(files);
! return buffer;
! }
! else
! {
! gtk_widget_destroy(file_selector);
! return NULL;
! }
! }
! }
!
! char *osSelectOutputFile(char *title, char *filter, char *nameptr)
! {
! GtkWidget *file_selector = gtk_file_selection_new(title);
gtk_window_set_transient_for(GTK_WINDOW(file_selector), GTK_WINDOW(gFrameWidget));
|