merge-requests/6/head
thierry1970 2022-06-13 15:20:01 +02:00
rodzic 2265e3cec4
commit 4676a37ad7
4 zmienionych plików z 64 dodań i 75 usunięć

Wyświetl plik

@ -86,17 +86,11 @@ unit_string (SANE_Unit unit)
}
static void
set_tooltip (GtkTooltip * tooltips, GtkWidget * widget, const char *desc)
set_tooltip (GtkWidget * widget, const char *desc)
{
/*
if (desc && desc[0])
#ifdef HAVE_GTK_TOOLTIPS_SET_TIPS
// pre 0.99.4:
gtk_tooltips_set_tips (tooltips, widget, (char *) desc);
#else
gtk_tooltips_set_tip (tooltips, widget, desc, 0);
#endif
*/
gtk_widget_set_tooltip_text (widget, desc);
}
int
@ -210,9 +204,7 @@ set_option (GSGDialog * dialog, int opt_num, void *val, SANE_Action action)
SANE_Int info;
char buf[256];
fprintf(stdout, "%d) %s\n", __LINE__, __FILE__); fflush (stdout);
status = sane_control_option (dialog->dev, opt_num, action, val, &info);
fprintf(stdout, "%d) %s\n", __LINE__, __FILE__); fflush (stdout);
if (status != SANE_STATUS_GOOD)
{
snprintf (buf, sizeof (buf), "Failed to set value of option %s: %s.",
@ -221,20 +213,14 @@ set_option (GSGDialog * dialog, int opt_num, void *val, SANE_Action action)
gsg_error (buf);
return;
}
fprintf(stdout, "%d) %s\n", __LINE__, __FILE__); fflush (stdout);
if (info & SANE_INFO_RELOAD_OPTIONS)
{
fprintf(stdout, "%d) %s\n", __LINE__, __FILE__); fflush (stdout);
panel_rebuild (dialog);
fprintf(stdout, "%d) %s\n", __LINE__, __FILE__); fflush (stdout);
if (dialog->option_reload_callback)
(*dialog->option_reload_callback) (dialog, dialog->option_reload_arg);
fprintf(stdout, "%d) %s\n", __LINE__, __FILE__); fflush (stdout);
}
fprintf(stdout, "%d) %s\n", __LINE__, __FILE__); fflush (stdout);
if ((info & SANE_INFO_RELOAD_PARAMS) && dialog->param_change_callback)
(*dialog->param_change_callback) (dialog, dialog->param_change_arg);
fprintf(stdout, "%d) %s\n", __LINE__, __FILE__); fflush (stdout);
}
void
@ -257,6 +243,7 @@ gsg_message (gchar * title, gchar * message)
}
gsg_message_dialog_active = 1;
message_dialog = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_position (GTK_WINDOW (message_dialog), GTK_WIN_POS_MOUSE);
gtk_window_set_title (GTK_WINDOW (message_dialog), title);
/* create the main vbox */
@ -367,7 +354,7 @@ autobutton_update (GtkWidget * widget, GSGDialogElement * elem)
static void
autobutton_new (GtkWidget * parent, GSGDialogElement * elem,
GtkWidget * label, GtkTooltip * tooltips)
GtkWidget * label)
{
GtkWidget *button;
@ -376,9 +363,7 @@ autobutton_new (GtkWidget * parent, GSGDialogElement * elem,
gtk_widget_set_size_request (button, 20, 20);
g_signal_connect (G_OBJECT (button), "toggled",
G_CALLBACK (autobutton_update), elem);
set_tooltip (tooltips, button, "Turns on automatic mode.");
// alignment = gtk_alignment_new (0.0, 1.0, 0.5, 0.5); // => button
set_tooltip (button, "Turns on automatic mode.");
gtk_box_pack_end (GTK_BOX (parent), label, FALSE, FALSE, 0);
gtk_box_pack_end (GTK_BOX (parent), button, FALSE, FALSE, 2);
@ -414,7 +399,7 @@ button_new (GtkWidget * parent, const char *name, SANE_Word val,
if (!is_settable)
gtk_widget_set_sensitive (GTK_WIDGET (button), FALSE);
gtk_widget_show (button);
set_tooltip (tooltips, button, desc);
set_tooltip (button, desc);
elem->widget = button;
}
@ -498,7 +483,7 @@ value_changed:
static void
scale_new (GtkWidget * parent, const char *name, gfloat val,
gfloat min, gfloat max, gfloat quant, int automatic,
GSGDialogElement * elem, GtkTooltip * tooltips, const char *desc,
GSGDialogElement * elem, const char *desc,
gint is_settable)
{
GtkWidget *hbox, *label, *scale;
@ -515,11 +500,11 @@ scale_new (GtkWidget * parent, const char *name, gfloat val,
scale = gtk_scale_new_with_range (GTK_ORIENTATION_HORIZONTAL, min, max, quant);
elem->data = gtk_range_get_adjustment (GTK_RANGE (scale));
gtk_scale_set_value_pos (GTK_SCALE (scale), val);
set_tooltip (tooltips, scale, desc);
set_tooltip (scale, desc);
gtk_widget_set_size_request (scale, 200, 0);
if (automatic)
autobutton_new (hbox, elem, scale, tooltips);
autobutton_new (hbox, elem, scale);
else
gtk_box_pack_end (GTK_BOX (hbox), scale, FALSE, FALSE, 0);
@ -535,8 +520,8 @@ scale_new (GtkWidget * parent, const char *name, gfloat val,
gtk_widget_show (label);
gtk_widget_show (scale);
if (!is_settable)
gtk_widget_set_sensitive (GTK_WIDGET (hbox), FALSE);
//if (!is_settable)
// gtk_widget_set_sensitive (GTK_WIDGET (hbox), FALSE);
gtk_widget_show (hbox);
@ -605,7 +590,7 @@ option_menu_callback (GtkWidget * widget, gpointer data)
static void
option_menu_new (GtkWidget * parent, const char *name, char *str_list[],
const char *val, GSGDialogElement * elem,
GtkTooltip * tooltips, const char *desc, gint is_settable)
const char *desc, gint is_settable)
{
GtkWidget *hbox, *label, *option_menu;
GSGMenuItem *menu_items;
@ -634,7 +619,7 @@ option_menu_new (GtkWidget * parent, const char *name, char *str_list[],
}
gtk_box_pack_end (GTK_BOX (hbox), option_menu, FALSE, FALSE, 2);
gtk_combo_box_set_active (GTK_COMBO_BOX (option_menu), selected);
set_tooltip (tooltips, option_menu, desc);
set_tooltip (option_menu, desc);
gtk_widget_show (label);
gtk_widget_show (option_menu);
if (!is_settable)
@ -679,7 +664,7 @@ text_entry_callback (GtkWidget * w, gpointer data)
static void
text_entry_new (GtkWidget * parent, const char *name, const char *val,
GSGDialogElement * elem,
GtkTooltip * tooltips, const char *desc, gint is_settable)
const char *desc, gint is_settable)
{
GtkWidget *hbox, *text, *label;
@ -695,7 +680,7 @@ text_entry_new (GtkWidget * parent, const char *name, const char *val,
gtk_box_pack_start (GTK_BOX (hbox), text, FALSE, TRUE, 0);
g_signal_connect (G_OBJECT (text), "changed",
G_CALLBACK (text_entry_callback), elem);
set_tooltip (tooltips, text, desc);
set_tooltip (text, desc);
gtk_widget_show (hbox);
if (!is_settable)
@ -849,11 +834,6 @@ panel_destroy (GSGDialog * dialog)
GSGDialogElement *elem;
int i, j;
fprintf(stdout, "%d) %s\n", __LINE__, __FILE__); fflush (stdout);
if (dialog->tooltips)
g_object_unref (G_OBJECT (dialog->tooltips));
fprintf(stdout, "%d) %s\n", __LINE__, __FILE__); fflush (stdout);
gtk_widget_destroy (dialog->main_hbox);
/* free the menu labels of integer/fix-point word-lists: */
@ -924,23 +904,9 @@ panel_build (GSGDialog * dialog)
advanced_vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
gtk_box_set_homogeneous (GTK_BOX (advanced_vbox), FALSE);
gtk_box_pack_start (GTK_BOX (option_vbox), advanced_vbox, TRUE, TRUE, 0);
dialog->tooltips = NULL;
/*
// use black as foreground:
dialog->tooltips = gtk_tooltips_new ();
dialog->tooltips_fg.red = 0;
dialog->tooltips_fg.green = 0;
dialog->tooltips_fg.blue = 0;
// postit yellow (khaki) as background:
gdk_color_alloc (gtk_widget_get_colormap (main_hbox), &dialog->tooltips_fg);
dialog->tooltips_bg.red = 61669;
dialog->tooltips_bg.green = 59113;
dialog->tooltips_bg.blue = 35979;
gdk_color_alloc (gtk_widget_get_colormap (main_hbox), &dialog->tooltips_bg);
gsg_set_tooltips (dialog, preferences.tooltips_enabled);
*/
gsg_set_tooltips (preferences.tooltips_enabled);
gtk_container_add (GTK_CONTAINER (dialog->window), main_hbox);
dialog->main_hbox = main_hbox;
dialog->advanced_vbox = advanced_vbox;
@ -1047,7 +1013,7 @@ panel_build (GSGDialog * dialog)
opt->constraint.range->min,
opt->constraint.range->max, quant,
(opt->cap & SANE_CAP_AUTOMATIC), elem,
dialog->tooltips, opt->desc,
opt->desc,
SANE_OPTION_IS_SETTABLE (opt->cap));
gtk_widget_show (gtk_widget_get_parent (parent));
break;
@ -1074,7 +1040,7 @@ panel_build (GSGDialog * dialog)
val = opt->constraint.word_list[1];
sprintf (str, "%d", val);
option_menu_new (parent, title, str_list, str, elem,
dialog->tooltips, opt->desc,
opt->desc,
SANE_OPTION_IS_SETTABLE (opt->cap));
free (str_list);
gtk_widget_show (gtk_widget_get_parent (parent));
@ -1127,7 +1093,7 @@ panel_build (GSGDialog * dialog)
}
scale_new (parent, title, dval, dmin, dmax, dquant,
(opt->cap & SANE_CAP_AUTOMATIC), elem,
dialog->tooltips, opt->desc,
opt->desc,
SANE_OPTION_IS_SETTABLE (opt->cap));
gtk_widget_show (gtk_widget_get_parent (parent));
break;
@ -1145,7 +1111,7 @@ panel_build (GSGDialog * dialog)
str_list[j] = 0;
sprintf (str, "%g", SANE_UNFIX (val));
option_menu_new (parent, title, str_list, str, elem,
dialog->tooltips, opt->desc,
opt->desc,
SANE_OPTION_IS_SETTABLE (opt->cap));
free (str_list);
gtk_widget_show (gtk_widget_get_parent (parent));
@ -1183,14 +1149,14 @@ panel_build (GSGDialog * dialog)
/* use a "list-selection" widget */
option_menu_new (parent, title,
(char **) opt->constraint.string_list, buf,
elem, dialog->tooltips, opt->desc,
elem, opt->desc,
SANE_OPTION_IS_SETTABLE (opt->cap));
gtk_widget_show (gtk_widget_get_parent (parent));
break;
case SANE_CONSTRAINT_NONE:
text_entry_new (parent, title, buf, elem,
dialog->tooltips, opt->desc,
opt->desc,
SANE_OPTION_IS_SETTABLE (opt->cap));
gtk_widget_show (gtk_widget_get_parent (parent));
break;
@ -1211,7 +1177,7 @@ panel_build (GSGDialog * dialog)
"clicked",
G_CALLBACK (push_button_callback),
elem);
set_tooltip (dialog->tooltips, button, opt->desc);
set_tooltip (button, opt->desc);
label = gtk_label_new (title);
gtk_container_add (GTK_CONTAINER (button), label);
@ -1261,11 +1227,8 @@ panel_build (GSGDialog * dialog)
static void
panel_rebuild (GSGDialog * dialog)
{
fprintf(stdout, "%d) %s\n", __LINE__, __FILE__); fflush (stdout);
panel_destroy (dialog);
fprintf(stdout, "%d) %s\n", __LINE__, __FILE__); fflush (stdout);
panel_build (dialog);
fprintf(stdout, "%d) %s\n", __LINE__, __FILE__); fflush (stdout);
}
GSGDialog *
@ -1413,8 +1376,13 @@ gsg_sync (GSGDialog * dialog)
if (opt->size == sizeof (SANE_Word))
continue;
/* ok, we're dealing with an active vector */
/*
// If curves is hidden (advanced option perhaps) then nothing to do.
if (!dialog->element[i].widget)
continue;
// ok, we're dealing with an active vector
optlen = opt->size / sizeof (SANE_Word);
optval = alloca (optlen * sizeof (optval[0]));
vector = alloca (optlen * sizeof (vector[0]));
@ -1442,17 +1410,38 @@ gsg_set_advanced (GSGDialog * dialog, int advanced)
panel_rebuild (dialog);
}
static GtkCssProvider *css_prov = NULL;
void
gsg_set_tooltips (GSGDialog * dialog, int enable)
gsg_set_tooltips (int enable)
{
if (!dialog->tooltips)
return;
/*
if (enable)
gtk_tooltips_enable (dialog->tooltips);
{
if (css_prov) {
gtk_style_context_remove_provider_for_screen(gdk_screen_get_default(), GTK_STYLE_PROVIDER(css_prov));
g_object_unref(css_prov);
}
css_prov = gtk_css_provider_new();
const gchar style[] = "tooltip {opacity:1;}";
gtk_css_provider_load_from_data(css_prov, style, -1, NULL);
gtk_style_context_add_provider_for_screen(gdk_screen_get_default(), GTK_STYLE_PROVIDER(css_prov),
GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
}
else
gtk_tooltips_disable (dialog->tooltips);
*/
{
if (css_prov) {
gtk_style_context_remove_provider_for_screen(gdk_screen_get_default(), GTK_STYLE_PROVIDER(css_prov));
g_object_unref(css_prov);
}
css_prov = gtk_css_provider_new();
const gchar style[] = "tooltip {opacity:0;}";
gtk_css_provider_load_from_data(css_prov, style, -1, NULL);
gtk_style_context_add_provider_for_screen(gdk_screen_get_default(), GTK_STYLE_PROVIDER(css_prov),
GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
}
}
void

Wyświetl plik

@ -111,7 +111,7 @@ extern void gsg_sync (GSGDialog *dialog);
extern void gsg_refresh_dialog (GSGDialog *dialog);
extern void gsg_update_scan_window (GSGDialog *dialog);
extern void gsg_set_advanced (GSGDialog *dialog, int advanced);
extern void gsg_set_tooltips (GSGDialog *dialog, int enable);
extern void gsg_set_tooltips (int enable);
extern void gsg_set_twocolumn (GSGDialog *dialog, int enable);
extern void gsg_set_sensitivity (GSGDialog *dialog, int sensitive);
extern void gsg_destroy_dialog (GSGDialog * dialog);

Wyświetl plik

@ -842,7 +842,7 @@ static void
pref_toggle_tooltips (GtkWidget * widget, gpointer data)
{
preferences.tooltips_enabled = (gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)) != 0);
gsg_set_tooltips (dialog, preferences.tooltips_enabled);
gsg_set_tooltips (preferences.tooltips_enabled);
pref_xcam_save ();
}

Wyświetl plik

@ -630,7 +630,7 @@ scan_win_delete (GtkWidget * w, gpointer data)
static void
preview_window_destroyed (GtkWidget * widget, gpointer call_data)
{
// gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (call_data), FALSE);
gtk_widget_set_sensitive (GTK_WIDGET (call_data), FALSE);
}
/* Invoked when the preview button is pressed. */
@ -1432,7 +1432,7 @@ update_int_callback (GtkWidget * widget, gpointer data)
{
int *valuep = data;
*valuep = (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON (widget)) != 0);
*valuep = (gtk_widget_get_sensitive ( widget) != 0);
}
static void
@ -1632,7 +1632,7 @@ static void
pref_toggle_tooltips (GtkWidget * widget, gpointer data)
{
preferences.tooltips_enabled = gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM (widget));
gsg_set_tooltips (dialog, preferences.tooltips_enabled);
gsg_set_tooltips (preferences.tooltips_enabled);
pref_xscanimage_save ();
}