bval = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
value = ghb_boolean_value_new(bval);
}
+ else if (type == GTK_TYPE_TOGGLE_TOOL_BUTTON)
+ {
+ g_debug("\ttoggle_tool_button");
+ gboolean bval;
+ bval = gtk_toggle_tool_button_get_active(GTK_TOGGLE_TOOL_BUTTON(widget));
+ value = ghb_boolean_value_new(bval);
+ }
else if (type == GTK_TYPE_TOGGLE_BUTTON)
{
g_debug("\ttoggle_button");
}
else if (type == GTK_TYPE_FILE_CHOOSER_BUTTON)
{
- const gchar *str;
+ gchar *str;
str = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER(widget));
+ if (str == NULL)
+ str = gtk_file_chooser_get_current_folder(GTK_FILE_CHOOSER(widget));
value = ghb_string_value_new(str);
+ if (str != NULL)
+ g_free(str);
}
else
{
g_debug("check button");
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), ival);
}
+ else if (type == GTK_TYPE_TOGGLE_TOOL_BUTTON)
+ {
+ g_debug("toggle button");
+ gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(widget), ival);
+ }
else if (type == GTK_TYPE_TOGGLE_BUTTON)
{
g_debug("toggle button");
}
else if (type == GTK_TYPE_LABEL)
{
- gtk_label_set_text (GTK_LABEL(widget), str);
+ gtk_label_set_markup (GTK_LABEL(widget), str);
}
else if (type == GTK_TYPE_FILE_CHOOSER_BUTTON)
{
GtkFileChooserAction act;
act = gtk_file_chooser_get_action(GTK_FILE_CHOOSER(widget));
- if (act == GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER ||
+ if (str[0] == 0)
+ {
+ // Do nothing
+ ;
+ }
+ else if (act == GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER ||
act == GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER)
{
gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(widget), str);
}
- else
+ else if (act == GTK_FILE_CHOOSER_ACTION_SAVE)
{
gtk_file_chooser_set_filename (GTK_FILE_CHOOSER(widget), str);
}
+ else
+ {
+ if (g_file_test(str, G_FILE_TEST_IS_DIR))
+ {
+ gtk_file_chooser_set_current_folder(
+ GTK_FILE_CHOOSER(widget), str);
+ }
+ else if (g_file_test(str, G_FILE_TEST_EXISTS))
+ {
+ gtk_file_chooser_set_filename (GTK_FILE_CHOOSER(widget), str);
+ }
+ else
+ {
+ gchar *dirname;
+
+ dirname = g_path_get_dirname(str);
+ gtk_file_chooser_set_current_folder(
+ GTK_FILE_CHOOSER(widget), dirname);
+ g_free(dirname);
+ }
+ }
}
else
{