Commit fb68580e authored by Victor Ananjevsky's avatar Victor Ananjevsky

add --scroll to progress dialog. reorganize scrolling policy

parent c21ff288
...@@ -920,6 +920,9 @@ Kill parent process if cancel button is pressed. ...@@ -920,6 +920,9 @@ Kill parent process if cancel button is pressed.
.B \-\-pulsate .B \-\-pulsate
Pulsate progress bar. This option works only in \fIsingle-bar\fP mode. Pulsate progress bar. This option works only in \fIsingle-bar\fP mode.
.TP .TP
.B \-\-scroll
Make layout scrollable.
.TP
.B \-\-enable-log\fI[=TEXT]\fP .B \-\-enable-log\fI[=TEXT]\fP
Show log window. This window gathers all of lines from stdin, started from \fI#\fP instead of setting appropriate progress text. Show log window. This window gathers all of lines from stdin, started from \fI#\fP instead of setting appropriate progress text.
Optional argument \fITEXT\fP is a text label for window expander. Optional argument \fITEXT\fP is a text label for window expander.
......
...@@ -149,7 +149,7 @@ color_create_widget (GtkWidget * dlg) ...@@ -149,7 +149,7 @@ color_create_widget (GtkWidget * dlg)
/* create color list */ /* create color list */
sw = gtk_scrolled_window_new (NULL, NULL); sw = gtk_scrolled_window_new (NULL, NULL);
gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw), GTK_SHADOW_ETCHED_IN); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw), GTK_SHADOW_ETCHED_IN);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), options.hscroll_policy, options.vscroll_policy); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), options.data.hscroll_policy, options.data.vscroll_policy);
gtk_widget_set_size_request (sw, -1, 75); gtk_widget_set_size_request (sw, -1, 75);
gtk_container_add (GTK_CONTAINER (exp), sw); gtk_container_add (GTK_CONTAINER (exp), sw);
gtk_widget_set_vexpand (sw, TRUE); gtk_widget_set_vexpand (sw, TRUE);
......
...@@ -818,11 +818,11 @@ form_create_widget (GtkWidget * dlg) ...@@ -818,11 +818,11 @@ form_create_widget (GtkWidget * dlg)
gtk_grid_set_row_homogeneous (GTK_GRID (tbl), options.form_data.homogeneous); gtk_grid_set_row_homogeneous (GTK_GRID (tbl), options.form_data.homogeneous);
if (options.form_data.scroll) if (options.common_data.scroll)
{ {
GtkWidget *sw = gtk_scrolled_window_new (NULL, NULL); GtkWidget *sw = gtk_scrolled_window_new (NULL, NULL);
gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw), GTK_SHADOW_NONE); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw), GTK_SHADOW_NONE);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), options.hscroll_policy, options.vscroll_policy); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), options.data.hscroll_policy, options.data.vscroll_policy);
gtk_container_add (GTK_CONTAINER (sw), tbl); gtk_container_add (GTK_CONTAINER (sw), tbl);
w = sw; w = sw;
} }
...@@ -1266,7 +1266,7 @@ form_create_widget (GtkWidget * dlg) ...@@ -1266,7 +1266,7 @@ form_create_widget (GtkWidget * dlg)
sw = gtk_scrolled_window_new (NULL, NULL); sw = gtk_scrolled_window_new (NULL, NULL);
gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw), GTK_SHADOW_ETCHED_IN); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw), GTK_SHADOW_ETCHED_IN);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), options.hscroll_policy, options.vscroll_policy); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), options.data.hscroll_policy, options.data.vscroll_policy);
gtk_box_pack_start (GTK_BOX (b), sw, TRUE, TRUE, 0); gtk_box_pack_start (GTK_BOX (b), sw, TRUE, TRUE, 0);
e = gtk_text_view_new (); e = gtk_text_view_new ();
......
...@@ -430,7 +430,7 @@ html_create_widget (GtkWidget * dlg) ...@@ -430,7 +430,7 @@ html_create_widget (GtkWidget * dlg)
w = gtk_box_new (GTK_ORIENTATION_VERTICAL, 2); w = gtk_box_new (GTK_ORIENTATION_VERTICAL, 2);
sw = gtk_scrolled_window_new (NULL, NULL); sw = gtk_scrolled_window_new (NULL, NULL);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), options.hscroll_policy, options.vscroll_policy); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), options.data.hscroll_policy, options.data.vscroll_policy);
gtk_box_pack_start (GTK_BOX (w), sw, TRUE, TRUE, 0); gtk_box_pack_start (GTK_BOX (w), sw, TRUE, TRUE, 0);
view = WEBKIT_WEB_VIEW (webkit_web_view_new ()); view = WEBKIT_WEB_VIEW (webkit_web_view_new ());
......
...@@ -444,7 +444,7 @@ icons_create_widget (GtkWidget * dlg) ...@@ -444,7 +444,7 @@ icons_create_widget (GtkWidget * dlg)
w = gtk_scrolled_window_new (NULL, NULL); w = gtk_scrolled_window_new (NULL, NULL);
gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (w), GTK_SHADOW_ETCHED_IN); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (w), GTK_SHADOW_ETCHED_IN);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (w), options.hscroll_policy, options.vscroll_policy); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (w), options.data.hscroll_policy, options.data.vscroll_policy);
store = gtk_list_store_new (NUM_COLS, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, store = gtk_list_store_new (NUM_COLS, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING,
GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_BOOLEAN); GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_BOOLEAN);
......
...@@ -494,7 +494,7 @@ cell_set_data (GtkTreeIter *it, guint num, gchar *data) ...@@ -494,7 +494,7 @@ cell_set_data (GtkTreeIter *it, guint num, gchar *data)
case YAD_COLUMN_IMAGE: case YAD_COLUMN_IMAGE:
{ {
GdkPixbuf *pb; GdkPixbuf *pb;
if (g_file_test (data, G_FILE_TEST_EXISTS)) if (g_file_test (data, G_FILE_TEST_EXISTS))
pb = get_pixbuf (data, YAD_SMALL_ICON, FALSE); pb = get_pixbuf (data, YAD_SMALL_ICON, FALSE);
else else
...@@ -1312,7 +1312,7 @@ list_create_widget (GtkWidget *dlg) ...@@ -1312,7 +1312,7 @@ list_create_widget (GtkWidget *dlg)
/* create widget */ /* create widget */
w = gtk_scrolled_window_new (NULL, NULL); w = gtk_scrolled_window_new (NULL, NULL);
gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (w), GTK_SHADOW_ETCHED_IN); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (w), GTK_SHADOW_ETCHED_IN);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (w), options.hscroll_policy, options.vscroll_policy); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (w), options.data.hscroll_policy, options.data.vscroll_policy);
model = create_model (); model = create_model ();
......
...@@ -226,6 +226,8 @@ static GOptionEntry common_options[] = { ...@@ -226,6 +226,8 @@ static GOptionEntry common_options[] = {
N_("Set extended completion for entries (any, all, or regex)"), N_("TYPE") }, N_("Set extended completion for entries (any, all, or regex)"), N_("TYPE") },
{ "bool-fmt", 0, 0, G_OPTION_ARG_CALLBACK, set_bool_fmt_type, { "bool-fmt", 0, 0, G_OPTION_ARG_CALLBACK, set_bool_fmt_type,
N_("Set type of output for boolean values (T, t, Y, y, O, o, 1)"), N_("TYPE") }, N_("Set type of output for boolean values (T, t, Y, y, O, o, 1)"), N_("TYPE") },
{ "scroll", 0, 0, G_OPTION_ARG_NONE, &options.common_data.scroll,
N_("Make main widget scrollable"), NULL },
{ "disable-search", 0, G_OPTION_FLAG_REVERSE, G_OPTION_ARG_NONE, &options.common_data.enable_search, { "disable-search", 0, G_OPTION_FLAG_REVERSE, G_OPTION_ARG_NONE, &options.common_data.enable_search,
N_("Disable search in text and html dialogs"), NULL }, N_("Disable search in text and html dialogs"), NULL },
#if GLIB_CHECK_VERSION(2,30,0) #if GLIB_CHECK_VERSION(2,30,0)
...@@ -375,8 +377,6 @@ static GOptionEntry form_options[] = { ...@@ -375,8 +377,6 @@ static GOptionEntry form_options[] = {
N_("Set alignment of filed labels (left, center or right)"), N_("TYPE") }, N_("Set alignment of filed labels (left, center or right)"), N_("TYPE") },
{ "columns", 0, 0, G_OPTION_ARG_INT, &options.form_data.columns, { "columns", 0, 0, G_OPTION_ARG_INT, &options.form_data.columns,
N_("Set number of columns in form"), N_("NUMBER") }, N_("Set number of columns in form"), N_("NUMBER") },
{ "scroll", 0, 0, G_OPTION_ARG_NONE, &options.form_data.scroll,
N_("Make form scrollable"), NULL },
{ "homogeneous", 0, 0, G_OPTION_ARG_NONE, &options.form_data.homogeneous, { "homogeneous", 0, 0, G_OPTION_ARG_NONE, &options.form_data.homogeneous,
N_("Make form fields same height"), NULL }, N_("Make form fields same height"), NULL },
{ "output-by-row", 0, 0, G_OPTION_ARG_NONE, &options.form_data.output_by_row, { "output-by-row", 0, 0, G_OPTION_ARG_NONE, &options.form_data.output_by_row,
...@@ -1325,9 +1325,9 @@ set_scroll_policy (const gchar * option_name, const gchar * value, gpointer data ...@@ -1325,9 +1325,9 @@ set_scroll_policy (const gchar * option_name, const gchar * value, gpointer data
g_printerr (_("Unknown scrollbar policy type: %s\n"), value); g_printerr (_("Unknown scrollbar policy type: %s\n"), value);
if (strcmp (option_name, "--hscroll-policy") == 0) if (strcmp (option_name, "--hscroll-policy") == 0)
options.hscroll_policy = pt; options.data.hscroll_policy = pt;
else else
options.vscroll_policy = pt; options.data.vscroll_policy = pt;
return TRUE; return TRUE;
} }
...@@ -1563,9 +1563,6 @@ yad_options_init (void) ...@@ -1563,9 +1563,6 @@ yad_options_init (void)
options.debug = FALSE; options.debug = FALSE;
#endif #endif
options.hscroll_policy = GTK_POLICY_AUTOMATIC;
options.vscroll_policy = GTK_POLICY_AUTOMATIC;
/* plug settings */ /* plug settings */
options.plug = -1; options.plug = -1;
options.tabnum = 0; options.tabnum = 0;
...@@ -1592,6 +1589,8 @@ yad_options_init (void) ...@@ -1592,6 +1589,8 @@ yad_options_init (void)
options.data.expander = NULL; options.data.expander = NULL;
options.data.timeout = 0; options.data.timeout = 0;
options.data.to_indicator = NULL; options.data.to_indicator = NULL;
options.data.hscroll_policy = GTK_POLICY_AUTOMATIC;
options.data.vscroll_policy = GTK_POLICY_AUTOMATIC;
options.data.buttons = NULL; options.data.buttons = NULL;
options.data.no_buttons = FALSE; options.data.no_buttons = FALSE;
options.data.buttons_layout = GTK_BUTTONBOX_END; options.data.buttons_layout = GTK_BUTTONBOX_END;
...@@ -1663,6 +1662,7 @@ yad_options_init (void) ...@@ -1663,6 +1662,7 @@ yad_options_init (void)
options.common_data.bool_fmt = YAD_BOOL_FMT_UT; options.common_data.bool_fmt = YAD_BOOL_FMT_UT;
options.common_data.complete = YAD_COMPLETE_SIMPLE; options.common_data.complete = YAD_COMPLETE_SIMPLE;
options.common_data.icon_size = 0; options.common_data.icon_size = 0;
options.common_data.scroll = FALSE;
options.common_data.enable_search = TRUE; options.common_data.enable_search = TRUE;
#if GLIB_CHECK_VERSION(2,30,0) #if GLIB_CHECK_VERSION(2,30,0)
options.common_data.size_fmt = G_FORMAT_SIZE_DEFAULT; options.common_data.size_fmt = G_FORMAT_SIZE_DEFAULT;
...@@ -1733,7 +1733,6 @@ yad_options_init (void) ...@@ -1733,7 +1733,6 @@ yad_options_init (void)
/* Initialize form data */ /* Initialize form data */
options.form_data.fields = NULL; options.form_data.fields = NULL;
options.form_data.columns = 1; options.form_data.columns = 1;
options.form_data.scroll = FALSE;
options.form_data.output_by_row = FALSE; options.form_data.output_by_row = FALSE;
options.form_data.focus_field = 1; options.form_data.focus_field = 1;
options.form_data.cycle_read = FALSE; options.form_data.cycle_read = FALSE;
......
...@@ -259,7 +259,7 @@ picture_create_widget (GtkWidget * dlg) ...@@ -259,7 +259,7 @@ picture_create_widget (GtkWidget * dlg)
sw = gtk_scrolled_window_new (NULL, NULL); sw = gtk_scrolled_window_new (NULL, NULL);
gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw), GTK_SHADOW_NONE); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw), GTK_SHADOW_NONE);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), options.hscroll_policy, options.vscroll_policy); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), options.data.hscroll_policy, options.data.vscroll_policy);
viewport = gtk_viewport_new (gtk_scrolled_window_get_hadjustment (GTK_SCROLLED_WINDOW (sw)), viewport = gtk_viewport_new (gtk_scrolled_window_get_hadjustment (GTK_SCROLLED_WINDOW (sw)),
gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (sw))); gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (sw)));
......
...@@ -234,7 +234,7 @@ handle_stdin (GIOChannel *channel, GIOCondition condition, gpointer data) ...@@ -234,7 +234,7 @@ handle_stdin (GIOChannel *channel, GIOCondition condition, gpointer data)
GtkWidget * GtkWidget *
progress_create_widget (GtkWidget *dlg) progress_create_widget (GtkWidget *dlg)
{ {
GtkWidget *table; GtkWidget *table, *w = NULL;
GIOChannel *channel; GIOChannel *channel;
GSList *b; GSList *b;
gint i = 0; gint i = 0;
...@@ -269,6 +269,17 @@ progress_create_widget (GtkWidget *dlg) ...@@ -269,6 +269,17 @@ progress_create_widget (GtkWidget *dlg)
gtk_grid_set_row_spacing (GTK_GRID (table), 2); gtk_grid_set_row_spacing (GTK_GRID (table), 2);
gtk_grid_set_column_spacing (GTK_GRID (table), 2); gtk_grid_set_column_spacing (GTK_GRID (table), 2);
if (options.common_data.scroll)
{
GtkWidget *sw = gtk_scrolled_window_new (NULL, NULL);
gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw), GTK_SHADOW_NONE);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), options.data.hscroll_policy, options.data.vscroll_policy);
gtk_container_add (GTK_CONTAINER (sw), table);
w = sw;
}
else
w = table;
for (b = options.progress_data.bars; b; b = b->next) for (b = options.progress_data.bars; b; b = b->next)
{ {
GtkWidget *l, *w; GtkWidget *l, *w;
...@@ -343,7 +354,7 @@ progress_create_widget (GtkWidget *dlg) ...@@ -343,7 +354,7 @@ progress_create_widget (GtkWidget *dlg)
sw = gtk_scrolled_window_new (NULL, NULL); sw = gtk_scrolled_window_new (NULL, NULL);
gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw), GTK_SHADOW_ETCHED_IN); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw), GTK_SHADOW_ETCHED_IN);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), options.hscroll_policy, options.vscroll_policy); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), options.data.hscroll_policy, options.data.vscroll_policy);
gtk_scrolled_window_set_propagate_natural_height (GTK_SCROLLED_WINDOW (sw), TRUE); gtk_scrolled_window_set_propagate_natural_height (GTK_SCROLLED_WINDOW (sw), TRUE);
gtk_container_add (GTK_CONTAINER (ex), sw); gtk_container_add (GTK_CONTAINER (ex), sw);
...@@ -365,5 +376,5 @@ progress_create_widget (GtkWidget *dlg) ...@@ -365,5 +376,5 @@ progress_create_widget (GtkWidget *dlg)
g_io_channel_set_flags (channel, G_IO_FLAG_NONBLOCK, NULL); g_io_channel_set_flags (channel, G_IO_FLAG_NONBLOCK, NULL);
g_io_add_watch (channel, G_IO_IN | G_IO_HUP, handle_stdin, dlg); g_io_add_watch (channel, G_IO_IN | G_IO_HUP, handle_stdin, dlg);
return table; return w;
} }
...@@ -625,7 +625,7 @@ text_create_widget (GtkWidget * dlg) ...@@ -625,7 +625,7 @@ text_create_widget (GtkWidget * dlg)
sw = gtk_scrolled_window_new (NULL, NULL); sw = gtk_scrolled_window_new (NULL, NULL);
gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw), GTK_SHADOW_ETCHED_IN); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw), GTK_SHADOW_ETCHED_IN);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), options.hscroll_policy, options.vscroll_policy); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), options.data.hscroll_policy, options.data.vscroll_policy);
gtk_box_pack_start (GTK_BOX (w), sw, TRUE, TRUE, 0); gtk_box_pack_start (GTK_BOX (w), sw, TRUE, TRUE, 0);
#ifdef HAVE_SOURCEVIEW #ifdef HAVE_SOURCEVIEW
......
...@@ -28,7 +28,8 @@ trap "rm -f $res1 $res2" EXIT ...@@ -28,7 +28,8 @@ trap "rm -f $res1 $res2" EXIT
KEY=$RANDOM KEY=$RANDOM
# first tab (values at the end due to possible hyphens) # first tab (values at the end due to possible hyphens)
yad --plug=$KEY --tabnum=1 --bool-fmt=t --quoted-output --separator=" " --form --scroll \ yad --plug=$KEY --tabnum=1 --bool-fmt=t --quoted-output --separator=" " \
--form --scroll --homogeneous \
--text=$"Main YAD settings and default values\n\n" \ --text=$"Main YAD settings and default values\n\n" \
--field=$"Width of dialog window::NUM" \ --field=$"Width of dialog window::NUM" \
--field=$"Height of dialog window::NUM" \ --field=$"Height of dialog window::NUM" \
......
...@@ -236,6 +236,8 @@ typedef struct { ...@@ -236,6 +236,8 @@ typedef struct {
gchar *icon_theme; gchar *icon_theme;
gchar *expander; gchar *expander;
gint borders; gint borders;
GtkPolicyType hscroll_policy;
GtkPolicyType vscroll_policy;
GSList *buttons; GSList *buttons;
gboolean no_buttons; gboolean no_buttons;
gboolean no_markup; gboolean no_markup;
...@@ -335,7 +337,6 @@ typedef struct { ...@@ -335,7 +337,6 @@ typedef struct {
typedef struct { typedef struct {
GSList *fields; GSList *fields;
guint columns; guint columns;
gboolean scroll;
gboolean output_by_row; gboolean output_by_row;
guint focus_field; guint focus_field;
gboolean cycle_read; gboolean cycle_read;
...@@ -524,6 +525,7 @@ typedef struct { ...@@ -524,6 +525,7 @@ typedef struct {
gboolean hide_text; gboolean hide_text;
gint icon_size; gint icon_size;
gboolean enable_search; gboolean enable_search;
gboolean scroll;
#if GLIB_CHECK_VERSION(2,30,0) #if GLIB_CHECK_VERSION(2,30,0)
GFormatSizeFlags size_fmt; GFormatSizeFlags size_fmt;
#endif #endif
...@@ -574,9 +576,6 @@ typedef struct { ...@@ -574,9 +576,6 @@ typedef struct {
gchar *css; gchar *css;
gchar *gtkrc_file; gchar *gtkrc_file;
GtkPolicyType hscroll_policy;
GtkPolicyType vscroll_policy;
gchar *rest_file; gchar *rest_file;
gchar **extra_data; gchar **extra_data;
......
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