Exemplo n.º 1
0
static gchar * show_dialog(GtkWindow* parent, GtkFileChooserAction action)
{
	GtkWidget * dialog;
	GtkFileFilter * filter;
	gchar * uri = NULL;

	filter = gtk_file_filter_new();
	gtk_file_filter_add_pattern(filter, "*.snsg");

	dialog = hildon_file_chooser_dialog_new_with_properties(GTK_WINDOW(parent), 
		"action", action, "local-only", FALSE, "filter", filter, NULL);

	hildon_file_chooser_dialog_set_extension(HILDON_FILE_CHOOSER_DIALOG(dialog),
		"snsg");
#if defined(MAEMO)
	{
		gchar * games_dir = g_strdup_printf("%s/.games", g_getenv("MYDOCSDIR"));
		gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(dialog), games_dir);
		g_free(games_dir);
	}
#endif

	gtk_widget_show_all(GTK_WIDGET(dialog));
	if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_OK) {
		uri = gtk_file_chooser_get_uri(GTK_FILE_CHOOSER(dialog));
	}

	gtk_widget_destroy(dialog);

	return uri;
}
Exemplo n.º 2
0
/**
 * Callback to select a certificate
 */
void select_cert(HildonButton *button, gpointer user_data)
{
	GtkWidget *selector = hildon_file_chooser_dialog_new (GTK_WINDOW (user_data), GTK_FILE_CHOOSER_ACTION_OPEN);
	GtkWidget *nocert = hildon_button_new (HILDON_SIZE_FINGER_HEIGHT |
										   HILDON_SIZE_AUTO_WIDTH,
										   HILDON_BUTTON_ARRANGEMENT_VERTICAL);
	hildon_button_set_text (HILDON_BUTTON (nocert),
							"No certificate",
							"Use system-wide CA certificates");
	hildon_button_set_alignment (HILDON_BUTTON (nocert), 0, 0.5, 1, 1);
	g_signal_connect (nocert, "clicked", G_CALLBACK (no_certificate), selector);
	hildon_file_chooser_dialog_add_extra (HILDON_FILE_CHOOSER_DIALOG (selector),
										  nocert);
	gtk_widget_show_all (selector);

	switch (gtk_dialog_run (GTK_DIALOG (selector)))
	{
		case GTK_RESPONSE_OK:
		{
			gchar *file = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (selector));
			hildon_button_set_value (button, file);
			g_free(file);
			break;
		}
		case GTK_RESPONSE_REJECT:
		{
			hildon_button_set_value (button, "None");
			break;
		}
		default:
			break;
	}
	gtk_widget_destroy (selector);
}
Exemplo n.º 3
0
ZLGtkOpenFileDialog::ZLGtkOpenFileDialog(const std::string &title, const std::string &directoryPath, const std::string &filePath, const Filter &filter) {
	myDialog = HILDON_FILE_CHOOSER_DIALOG(hildon_file_chooser_dialog_new(
		0, GTK_FILE_CHOOSER_ACTION_OPEN
	));
	/*
	myDialog = GTK_DIALOG(gtk_file_chooser_dialog_new(
		title.c_str(), 0, GTK_FILE_CHOOSER_ACTION_OPEN,
		gtkString(ZLDialogManager::buttonName(ZLDialogManager::CANCEL_BUTTON)).c_str(),
			GTK_RESPONSE_CANCEL,
		gtkString(ZLDialogManager::buttonName(ZLDialogManager::OK_BUTTON)).c_str(),
			GTK_RESPONSE_ACCEPT,
		0
	));
	*/
	GtkFileChooser *chooser = GTK_FILE_CHOOSER(myDialog);
	gtk_file_chooser_set_current_folder(chooser, directoryPath.c_str());
	gtk_file_chooser_set_filename(chooser, filePath.c_str());
	GtkFileFilter *gtkFilter = gtk_file_filter_new();
	gtk_file_filter_add_custom(gtkFilter, (GtkFileFilterFlags)(GTK_FILE_FILTER_FILENAME | GTK_FILE_FILTER_MIME_TYPE), filterHandler, (void*)&filter, 0);
	gtk_file_chooser_set_filter(chooser, gtkFilter);
}