Commit f0df09c7 authored by Vladislav's avatar Vladislav

added DSW,DCHK,DCB,DCBE fields, --gui-type=settings-shortcut now have all gui-type functions

parent 6d138517
......@@ -85,15 +85,19 @@ expand_action (gchar * cmd)
break;
}
case YAD_FIELD_CHECK:
case YAD_FIELD_DISABLE_CHECK:
arg = g_strdup (print_bool_val (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (g_slist_nth_data (fields, num)))));
break;
case YAD_FIELD_COMBO:
case YAD_FIELD_COMBO_ENTRY:
case YAD_FIELD_DISABLE_COMBO:
case YAD_FIELD_DISABLE_COMBO_ENTRY:
buf = gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT (g_slist_nth_data (fields, num)));
arg = g_shell_quote (buf ? buf : "");
g_free (buf);
break;
case YAD_FIELD_SWITCH:
case YAD_FIELD_DISABLE_SWITCH:
arg = g_strdup (print_bool_val (gtk_switch_get_state (GTK_SWITCH (g_slist_nth_data (fields, num)))));
break;
case YAD_FIELD_SCALE:
......@@ -250,6 +254,16 @@ set_field_value (guint num, gchar *value)
gtk_switch_set_state (GTK_SWITCH (w), get_bool_val (value));
break;
case YAD_FIELD_DISABLE_CHECK:
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (w), get_bool_val (value));
gtk_widget_set_sensitive (w, FALSE);
break;
case YAD_FIELD_DISABLE_SWITCH:
gtk_switch_set_state (GTK_SWITCH (w), get_bool_val (value));
gtk_widget_set_sensitive (w, FALSE);
break;
case YAD_FIELD_COMPLETE:
{
GtkEntryCompletion *c;
......@@ -314,6 +328,38 @@ set_field_value (guint num, gchar *value)
break;
}
case YAD_FIELD_DISABLE_COMBO:
case YAD_FIELD_DISABLE_COMBO_ENTRY:
{
GtkTreeModel *m;
gint i = 0, def = 0;
/* cleanup previous values */
m = gtk_combo_box_get_model (GTK_COMBO_BOX (w));
gtk_list_store_clear (GTK_LIST_STORE (m));
s = g_strsplit (value, options.common_data.item_separator, -1);
while (s[i])
{
gchar *buf;
if (s[i][0] == '^')
{
buf = g_strcompress (s[i] + 1);
def = i;
}
else
buf = g_strcompress (s[i]);
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (w), buf);
g_free (buf);
i++;
}
gtk_combo_box_set_active (GTK_COMBO_BOX (w), def);
gtk_widget_set_sensitive (w, FALSE);
g_strfreev (s);
break;
}
case YAD_FIELD_DIR:
gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (w), value);
case YAD_FIELD_FILE:
......@@ -965,6 +1011,7 @@ form_create_widget (GtkWidget * dlg)
break;
case YAD_FIELD_CHECK:
case YAD_FIELD_DISABLE_CHECK:
{
gchar *buf;
if (fld->name)
......@@ -989,6 +1036,7 @@ form_create_widget (GtkWidget * dlg)
break;
case YAD_FIELD_SWITCH:
case YAD_FIELD_DISABLE_SWITCH:
{
e = gtk_switch_new ();
gtk_widget_set_name (e, "yad-form-switch");
......@@ -1009,6 +1057,7 @@ form_create_widget (GtkWidget * dlg)
break;
case YAD_FIELD_COMBO:
case YAD_FIELD_DISABLE_COMBO:
e = gtk_combo_box_text_new ();
gtk_widget_set_name (e, "yad-form-combo");
if (fld->tip)
......@@ -1026,6 +1075,7 @@ form_create_widget (GtkWidget * dlg)
break;
case YAD_FIELD_COMBO_ENTRY:
case YAD_FIELD_DISABLE_COMBO_ENTRY:
e = gtk_combo_box_text_new_with_entry ();
gtk_widget_set_name (e, "yad-form-edit-combo");
if (fld->tip)
......@@ -1429,6 +1479,7 @@ form_print_field (guint fn)
break;
}
case YAD_FIELD_CHECK:
case YAD_FIELD_DISABLE_CHECK:
if (options.common_data.quoted_output)
g_printf ("'%s'%s", print_bool_val (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (g_slist_nth_data (fields, fn)))),
options.common_data.separator);
......@@ -1437,6 +1488,7 @@ form_print_field (guint fn)
options.common_data.separator);
break;
case YAD_FIELD_SWITCH:
case YAD_FIELD_DISABLE_SWITCH:
if (options.common_data.quoted_output)
g_printf ("'%s'%s", print_bool_val (gtk_switch_get_state (GTK_SWITCH (g_slist_nth_data (fields, fn)))),
options.common_data.separator);
......@@ -1446,6 +1498,8 @@ form_print_field (guint fn)
break;
case YAD_FIELD_COMBO:
case YAD_FIELD_COMBO_ENTRY:
case YAD_FIELD_DISABLE_COMBO:
case YAD_FIELD_DISABLE_COMBO_ENTRY:
if (options.common_data.num_output && fld->type == YAD_FIELD_COMBO)
g_printf ("%d%s", gtk_combo_box_get_active (GTK_COMBO_BOX (g_slist_nth_data (fields, fn))) + 1,
options.common_data.separator);
......
......@@ -407,14 +407,14 @@ create_layout (GtkWidget *dlg)
gtk_box_pack_start (GTK_BOX (box), imw, TRUE, TRUE, options.data.gui_type_height);
break;
case YAD_GUI_SETTINGS_SHORTCUT:
layout = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5);
box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5);
layout = gtk_box_new (GTK_ORIENTATION_VERTICAL, options.data.gui_type_layout);
box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, options.data.gui_type_box);
if (text)
gtk_box_pack_start (GTK_BOX (layout), text, FALSE, FALSE, 2);
gtk_box_pack_start (GTK_BOX (layout), text, FALSE, FALSE, options.data.gui_type_text);
gtk_box_pack_start (GTK_BOX (layout), box, FALSE, FALSE, options.data.gui_type_width);
if (image)
gtk_box_pack_start (GTK_BOX (box), image, FALSE, FALSE, 2);
gtk_box_pack_start (GTK_BOX (box), image, FALSE, FALSE, options.data.gui_type_images);
if (imw)
gtk_box_pack_start (GTK_BOX (box), imw, TRUE, TRUE, options.data.gui_type_height);
break;
......
......@@ -916,12 +916,14 @@ add_field (const gchar * option_name, const gchar * value, gpointer data, GError
fld->type = YAD_FIELD_READ_ONLY;
else if (strcasecmp (fstr[1], "NUM") == 0)
fld->type = YAD_FIELD_NUM;
else if (strcasecmp (fstr[1], "CHK") == 0)
fld->type = YAD_FIELD_CHECK;
else if (strcasecmp (fstr[1], "CB") == 0)
fld->type = YAD_FIELD_COMBO;
else if (strcasecmp (fstr[1], "CBE") == 0)
fld->type = YAD_FIELD_COMBO_ENTRY;
else if (strcasecmp (fstr[1], "DCB") == 0)
fld->type = YAD_FIELD_DISABLE_COMBO;
else if (strcasecmp (fstr[1], "DCBE") == 0)
fld->type = YAD_FIELD_DISABLE_COMBO_ENTRY;
else if (strcasecmp (fstr[1], "CE") == 0)
fld->type = YAD_FIELD_COMPLETE;
else if (strcasecmp (fstr[1], "FL") == 0)
......@@ -948,8 +950,14 @@ add_field (const gchar * option_name, const gchar * value, gpointer data, GError
fld->type = YAD_FIELD_DATE;
else if (strcasecmp (fstr[1], "SCL") == 0)
fld->type = YAD_FIELD_SCALE;
else if (strcasecmp (fstr[1], "CHK") == 0)
fld->type = YAD_FIELD_CHECK;
else if (strcasecmp (fstr[1], "SW") == 0)
fld->type = YAD_FIELD_SWITCH;
else if (strcasecmp (fstr[1], "DCHK") == 0)
fld->type = YAD_FIELD_DISABLE_CHECK;
else if (strcasecmp (fstr[1], "DSW") == 0)
fld->type = YAD_FIELD_DISABLE_SWITCH;
else if (strcasecmp (fstr[1], "BTN") == 0)
fld->type = YAD_FIELD_BUTTON;
else if (strcasecmp (fstr[1], "FBTN") == 0)
......
......@@ -112,8 +112,12 @@ typedef enum {
YAD_FIELD_NUM,
YAD_FIELD_CHECK,
YAD_FIELD_SWITCH,
YAD_FIELD_DISABLE_CHECK,
YAD_FIELD_DISABLE_SWITCH,
YAD_FIELD_COMBO,
YAD_FIELD_COMBO_ENTRY,
YAD_FIELD_DISABLE_COMBO,
YAD_FIELD_DISABLE_COMBO_ENTRY,
YAD_FIELD_FILE,
YAD_FIELD_FILE_SAVE,
YAD_FIELD_MFILE,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment