gtk_entry_set_text(GTK_ENTRY(commententry), cmt);
imagelabel = gtk_label_new (_("Image:"));
- imageentry = vik_file_entry_new ();
+ imageentry = vik_file_entry_new (GTK_FILE_CHOOSER_ACTION_OPEN);
{
GtkCellRenderer *r;
case VIK_LAYER_WIDGET_FILEENTRY:
if ( param->type == VIK_LAYER_PARAM_STRING )
{
- rv = vik_file_entry_new ();
+ rv = vik_file_entry_new (GTK_FILE_CHOOSER_ACTION_OPEN);
vik_file_entry_set_filename ( VIK_FILE_ENTRY(rv), data.s );
}
break;
+ case VIK_LAYER_WIDGET_FOLDERENTRY:
+ if ( param->type == VIK_LAYER_PARAM_STRING )
+ {
+ rv = vik_file_entry_new (GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER);
+ vik_file_entry_set_filename ( VIK_FILE_ENTRY(rv), data.s );
+ }
+ break;
+
case VIK_LAYER_WIDGET_FILELIST:
if ( param->type == VIK_LAYER_PARAM_STRING_LIST )
{
rv.s = gtk_entry_get_text ( GTK_ENTRY(widget) );
break;
case VIK_LAYER_WIDGET_FILEENTRY:
+ case VIK_LAYER_WIDGET_FOLDERENTRY:
rv.s = vik_file_entry_get_filename ( VIK_FILE_ENTRY(widget) );
break;
case VIK_LAYER_WIDGET_FILELIST:
VIK_LAYER_WIDGET_ENTRY,
VIK_LAYER_WIDGET_PASSWORD,
VIK_LAYER_WIDGET_FILEENTRY,
+VIK_LAYER_WIDGET_FOLDERENTRY,
VIK_LAYER_WIDGET_HSCALE,
VIK_LAYER_WIDGET_COLOR,
VIK_LAYER_WIDGET_COMBOBOX,
GtkHBox parent;
GtkWidget *entry, *button;
GtkWidget *file_selector;
+ GtkFileChooserAction action;
};
GType vik_file_entry_get_type (void)
return vs_type;
}
-GtkWidget *vik_file_entry_new ()
+GtkWidget *vik_file_entry_new (GtkFileChooserAction action)
{
VikFileEntry *vfe = VIK_FILE_ENTRY ( g_object_new ( VIK_FILE_ENTRY_TYPE, NULL ) );
vfe->entry = gtk_entry_new ();
vfe->button = gtk_button_new_with_label ( _("Browse...") );
+ vfe->action = action;
g_signal_connect_swapped ( G_OBJECT(vfe->button), "clicked", G_CALLBACK(choose_file), vfe );
gtk_box_pack_start ( GTK_BOX(vfe), vfe->entry, TRUE, TRUE, 3 );
g_assert ( (win = gtk_widget_get_toplevel(GTK_WIDGET(vfe))) );
vfe->file_selector = gtk_file_chooser_dialog_new (_("Choose file"),
GTK_WINDOW(win),
- GTK_FILE_CHOOSER_ACTION_OPEN,
+ vfe->action, /* open file or directory */
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
NULL);
GType vik_file_entry_get_type ();
-GtkWidget *vik_file_entry_new ();
+GtkWidget *vik_file_entry_new (GtkFileChooserAction action);
G_CONST_RETURN gchar *vik_file_entry_get_filename ( VikFileEntry *vfe );
void vik_file_entry_set_filename ( VikFileEntry *vfe, const gchar *filename );
yspin = gtk_spin_button_new ( (GtkAdjustment *) gtk_adjustment_new ( 4, VIK_VIEWPORT_MIN_ZOOM, VIK_VIEWPORT_MAX_ZOOM, 1, 5, 5 ), 1, 8 );
imagelabel = gtk_label_new ( _("Map Image:") );
- imageentry = vik_file_entry_new ();
+ imageentry = vik_file_entry_new (GTK_FILE_CHOOSER_ACTION_OPEN);
if (*vgl)
{
VikLayerParam maps_layer_params[] = {
{ "mode", VIK_LAYER_PARAM_UINT, VIK_LAYER_GROUP_NONE, N_("Map Type:"), VIK_LAYER_WIDGET_RADIOGROUP, NULL, NULL },
- { "directory", VIK_LAYER_PARAM_STRING, VIK_LAYER_GROUP_NONE, N_("Maps Directory (Optional):"), VIK_LAYER_WIDGET_FILEENTRY },
+ { "directory", VIK_LAYER_PARAM_STRING, VIK_LAYER_GROUP_NONE, N_("Maps Directory (Optional):"), VIK_LAYER_WIDGET_FOLDERENTRY },
{ "alpha", VIK_LAYER_PARAM_UINT, VIK_LAYER_GROUP_NONE, N_("Alpha:"), VIK_LAYER_WIDGET_HSCALE, params_scales },
{ "autodownload", VIK_LAYER_PARAM_BOOLEAN, VIK_LAYER_GROUP_NONE, N_("Autodownload maps:"), VIK_LAYER_WIDGET_CHECKBUTTON },
{ "mapzoom", VIK_LAYER_PARAM_UINT, VIK_LAYER_GROUP_NONE, N_("Zoom Level:"), VIK_LAYER_WIDGET_COMBOBOX, params_mapzooms },