Example #1
0
void
on_load1_activate                      (GtkMenuItem     *menuitem,
                                        gpointer         user_data)
{
    fileselection1 = create_fileselection1();
    gtk_widget_show(fileselection1);


}
Example #2
0
int bsv_init(const char* config_path)
{
	config_win_ptr	= create_dialog1();
	file_select_ptr	= create_fileselection1();
	if( !config_win_ptr || !file_select_ptr ) {
		sprintf(errstr.Error, "bsv_init: Error: Could not create dialog\n");
		return -1;
	}

	c_load(config_path);

	return 0;
}
void GUI_FileSel(const char *label, SELFILE_CB * cb, int rw,char **rname)
{				/* Create the selector */

    	GtkWidget *dialog;
	char *name=NULL;
	char *tmpname;
	gchar *selected_filename;

	if(rname)
		*rname=NULL;

	dialog=create_fileselection1();
	gtk_window_set_title (GTK_WINDOW (dialog),label);
	gtk_transient(dialog);
	if( prefs->get(LASTDIR,&tmpname))
	{
	//	printf("tmpname : %s\n",tmpname);
		char *str=PathCanonize(tmpname);

	//	printf("tmpname : %s\n",str);
		PathStripName(str);

	//	printf("tmpname : *%s*\n",str);
		gtk_file_selection_set_filename(GTK_FILE_SELECTION(dialog),(gchar *)str);
		delete [] str;
	}
	if(gtk_dialog_run(GTK_DIALOG(dialog))==GTK_RESPONSE_OK)
	{

			selected_filename= (gchar *) 	gtk_file_selection_get_filename(GTK_FILE_SELECTION(dialog));
			 if (*(selected_filename + strlen(selected_filename) - 1) == '/')
      	  					GUI_Alert("Cannot open directory as file !");
			else
			{
						name=strdup(selected_filename);

						char *str=PathCanonize(name);
						PathStripName(str);
						prefs->set(LASTDIR,str);			
						delete [] str;

			}
	}
	gtk_widget_destroy(dialog);

	if(name)
	{

		if(cb)
		{

			if(rw==0) // read
			{
				// try to open it..
				FILE *fd;
				fd=fopen(name,"rb");
				if(!fd)
				{
						GUI_Alert("Cannot open this file !");
						return;
				}
				fclose(fd);
				cb(name);
				free(name);

			}
			else // write
			{
				FILE *fd;
				fd=fopen(name,"rb");
				if(fd)
					{
							fclose(fd);
							if(!GUI_Question("Overwrite file ?"))
								return;
					}
				// check we have right access to it
				fd=fopen(name,"wb");
				if(!fd)
					{
						GUI_Alert("No write access to that file !");
						return;
					}
				fclose(fd);


				cb(name);
				free(name);
			}
		} // no callback -> return value
		else
		{

			*rname=name;


		}


	}

}