kopia lustrzana https://gitlab.com/sane-project/frontends
Readd previous functions and fix device search
rodzic
96d99e4a79
commit
afb72fcba6
215
src/xscanimage.c
215
src/xscanimage.c
|
@ -52,6 +52,7 @@
|
|||
#include "progress.h"
|
||||
#include "preferences.h"
|
||||
#include "preview.h"
|
||||
#include "../libgtk/utils-gtk.h"
|
||||
|
||||
#ifndef PATH_MAX
|
||||
# define PATH_MAX 1024
|
||||
|
@ -87,6 +88,8 @@
|
|||
# endif /* ENABLE_GIMP_1_2 */
|
||||
# endif
|
||||
|
||||
static GtkApplication *app = NULL;
|
||||
|
||||
static void query (void);
|
||||
#ifndef ENABLE_GIMP_1_2
|
||||
static void run (const gchar * name, gint nparams, const GimpParam * param,
|
||||
|
@ -119,7 +122,7 @@ enum
|
|||
struct scan_win_t
|
||||
{
|
||||
GtkWidget *shell;
|
||||
GtkWidget *menubar;
|
||||
GMenu *menubar;
|
||||
GtkWidget *hruler;
|
||||
GtkWidget *vruler;
|
||||
GtkWidget *info_label;
|
||||
|
@ -154,7 +157,7 @@ struct scan_win_t
|
|||
scan_win;
|
||||
|
||||
static const char *prog_name;
|
||||
static GtkWidget *choose_device_dialog;
|
||||
static GtkWidget *choose_device_dialog = NULL;
|
||||
static GSGDialog *dialog;
|
||||
static const SANE_Device **devlist;
|
||||
static gint seldev = -1; /* The selected device */
|
||||
|
@ -1013,7 +1016,8 @@ scan_done (void)
|
|||
if (scan_win.preview)
|
||||
gtk_widget_set_sensitive (scan_win.preview->preview, TRUE);
|
||||
gtk_widget_set_sensitive (scan_win.scan_button, TRUE);
|
||||
gtk_widget_set_sensitive (scan_win.menubar, TRUE);
|
||||
// gtk_widget_set_sensitive (scan_win.menubar, TRUE);
|
||||
|
||||
|
||||
if (scan_win.input_tag >= 0)
|
||||
{
|
||||
|
@ -1091,7 +1095,7 @@ scan_start (void)
|
|||
if (scan_win.preview)
|
||||
gtk_widget_set_sensitive (scan_win.preview->preview, FALSE);
|
||||
gtk_widget_set_sensitive (scan_win.scan_button, FALSE);
|
||||
gtk_widget_set_sensitive (scan_win.menubar, FALSE);
|
||||
// gtk_widget_set_sensitive (scan_win.menubar, FALSE);
|
||||
|
||||
#ifdef HAVE_LIBGIMP_GIMP_H
|
||||
if (scan_win.mode == SANE_GIMP_EXTENSION && scan_win.tile)
|
||||
|
@ -1450,24 +1454,29 @@ files_exit_callback (GtkWidget * widget, gpointer data)
|
|||
quit_xscanimage ();
|
||||
}
|
||||
|
||||
static GtkWidget *
|
||||
static GMenu *
|
||||
files_build_menu (void)
|
||||
{
|
||||
GtkWidget *menu; //, *item;
|
||||
GMenu *menu; //, *item;
|
||||
GMenu *section;
|
||||
GMenuItem *menu_item_quit;
|
||||
DBG (DBG_debug, "files_build_menu\n");
|
||||
/*
|
||||
menu = gtk_menu_new ();
|
||||
|
||||
item = gtk_menu_item_new ();
|
||||
gtk_container_add (GTK_CONTAINER (menu), item);
|
||||
gtk_widget_show (item);
|
||||
// GSimpleAction *act_quit = g_simple_action_new ("quit", NULL);
|
||||
// g_signal_connect_swapped (act_quit, "activate", G_CALLBACK (files_exit_callback), NULL);
|
||||
// g_action_map_add_action (G_ACTION_MAP (app), G_ACTION (act_quit));
|
||||
|
||||
item = gtk_menu_item_new_with_label ("Exit");
|
||||
gtk_container_add (GTK_CONTAINER (menu), item);
|
||||
g_signal_connect (G_OBJECT (item), "activate",
|
||||
G_CALLBACK (files_exit_callback), 0);
|
||||
gtk_widget_show (item);
|
||||
*/
|
||||
menu = g_menu_new ();
|
||||
|
||||
section = g_menu_new ();
|
||||
menu_item_quit = g_menu_item_new ("Exit", "app.quit");
|
||||
|
||||
g_menu_append_item (section, menu_item_quit);
|
||||
g_object_unref (menu_item_quit);
|
||||
|
||||
g_menu_append_section (menu, NULL, G_MENU_MODEL (section));
|
||||
|
||||
g_object_unref (menu_item_quit);
|
||||
DBG (DBG_debug, "files_build_menu: finished\n");
|
||||
return menu;
|
||||
}
|
||||
|
@ -1575,14 +1584,14 @@ preview_options_dialog (GtkWidget * widget, gpointer data)
|
|||
|
||||
hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 2);
|
||||
gtk_box_set_homogeneous (GTK_BOX (hbox), FALSE);
|
||||
gtk_box_append (GTK_BOX (vbox), hbox);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), hbox, TRUE, TRUE, 2);
|
||||
button = gtk_check_button_new_with_label ("Preserve preview image");
|
||||
g_signal_connect (G_OBJECT (button), "toggled",
|
||||
G_CALLBACK (update_int_callback),
|
||||
&preferences.preserve_preview);
|
||||
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button),
|
||||
gtk_check_button_set_active(GTK_CHECK_BUTTON(button),
|
||||
preferences.preserve_preview);
|
||||
gtk_box_append (GTK_BOX (hbox), button);
|
||||
gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, TRUE, 2);
|
||||
|
||||
gtk_widget_show (button);
|
||||
gtk_widget_show (hbox);
|
||||
|
@ -1591,14 +1600,14 @@ preview_options_dialog (GtkWidget * widget, gpointer data)
|
|||
|
||||
hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 2);
|
||||
gtk_box_set_homogeneous (GTK_BOX (hbox), FALSE);
|
||||
gtk_box_append (GTK_BOX (vbox), hbox);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), hbox, TRUE, TRUE, 2);
|
||||
button = gtk_check_button_new_with_label ("Use private colormap");
|
||||
g_signal_connect (G_OBJECT (button), "toggled",
|
||||
G_CALLBACK (update_int_callback),
|
||||
&preferences.preview_own_cmap);
|
||||
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button),
|
||||
gtk_check_button_set_active(GTK_CHECK_BUTTON (button),
|
||||
preferences.preview_own_cmap);
|
||||
gtk_box_append (GTK_BOX (hbox), button);
|
||||
gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, TRUE, 2);
|
||||
|
||||
gtk_widget_show (button);
|
||||
gtk_widget_show (hbox);
|
||||
|
@ -1607,18 +1616,17 @@ preview_options_dialog (GtkWidget * widget, gpointer data)
|
|||
|
||||
hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 2);
|
||||
gtk_box_set_homogeneous (GTK_BOX (hbox), FALSE);
|
||||
gtk_box_append (GTK_BOX (vbox), hbox);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), hbox, TRUE, TRUE, 2);
|
||||
gtk_widget_show (hbox);
|
||||
|
||||
label = gtk_label_new ("Gamma correction value");
|
||||
gtk_box_append (GTK_BOX (hbox), label);
|
||||
gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 2);
|
||||
gtk_widget_show (label);
|
||||
|
||||
sprintf (buf, "%g", preferences.preview_gamma);
|
||||
text = gtk_entry_new ();
|
||||
gtk_editable_set_text (GTK_EDITABLE (text), buf);
|
||||
|
||||
gtk_box_append (GTK_BOX (hbox), text);
|
||||
gtk_box_pack_start (GTK_BOX (hbox), text, TRUE, TRUE, 2);
|
||||
g_signal_connect (G_OBJECT (text), "changed",
|
||||
G_CALLBACK (update_double_callback),
|
||||
&preferences.preview_gamma);
|
||||
|
@ -1716,10 +1724,16 @@ pref_toggle_twocolumn (GtkWidget * widget, gpointer data)
|
|||
*/
|
||||
}
|
||||
|
||||
static GtkWidget *
|
||||
static GMenu *
|
||||
pref_build_menu (void)
|
||||
{
|
||||
GtkWidget *menu; // , *item, *submenu;
|
||||
GMenu *menu; // , *item, *submenu;
|
||||
|
||||
DBG (DBG_debug, "pref_build_menu\n");
|
||||
menu = g_menu_new ();
|
||||
// g_object_unref (section);
|
||||
|
||||
return menu;
|
||||
/*
|
||||
GtkWidget *unit_mm, *unit_cm, *unit_in;
|
||||
GSList *units_group = NULL;
|
||||
|
@ -1867,7 +1881,6 @@ device_dialog (void)
|
|||
devname = devlist[seldev]->name;
|
||||
|
||||
/* create the dialog box */
|
||||
scan_win.shell = gtk_dialog_new ();
|
||||
gtk_window_set_title (GTK_WINDOW (scan_win.shell), (char *) devname);
|
||||
gtk_window_set_resizable (GTK_WINDOW (scan_win.shell), TRUE);
|
||||
gtk_window_set_default_size (GTK_WINDOW (scan_win.shell), 400, 400);
|
||||
|
@ -1875,12 +1888,12 @@ device_dialog (void)
|
|||
G_CALLBACK (scan_win_delete), NULL);
|
||||
|
||||
/* create the main vbox */
|
||||
vbox = gtk_dialog_get_content_area(GTK_DIALOG (scan_win.shell));
|
||||
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 2);
|
||||
if (GTK_IS_WINDOW(scan_win.shell))
|
||||
gtk_window_set_child(GTK_WINDOW(scan_win.shell), vbox);
|
||||
else
|
||||
g_message("%d) %s\n", __LINE__, __FUNCTION__);
|
||||
|
||||
/* create the menubar */
|
||||
|
||||
// scan_win.menubar = gtk_menu_bar_new ();
|
||||
gtk_box_append (GTK_BOX (vbox), scan_win.menubar);
|
||||
|
||||
/* "Files" submenu: */
|
||||
/*
|
||||
|
@ -1890,6 +1903,7 @@ device_dialog (void)
|
|||
files_build_menu ());
|
||||
gtk_widget_show (menubar_item);
|
||||
*/
|
||||
g_menu_append_submenu (scan_win.menubar, "File", G_MENU_MODEL (files_build_menu ()));
|
||||
|
||||
/* "Preferences" submenu: */
|
||||
/*
|
||||
|
@ -1899,6 +1913,7 @@ device_dialog (void)
|
|||
pref_build_menu ());
|
||||
gtk_widget_show (menubar_item);
|
||||
*/
|
||||
g_menu_append_submenu (scan_win.menubar, "Preferences", G_MENU_MODEL (pref_build_menu ()));
|
||||
|
||||
// gtk_widget_show (scan_win.menubar);
|
||||
|
||||
|
@ -1907,7 +1922,7 @@ device_dialog (void)
|
|||
{
|
||||
frame = gtk_frame_new ("Output");
|
||||
// gtk_container_set_border_width (GTK_CONTAINER (frame), 4);
|
||||
gtk_box_append (GTK_BOX (vbox), frame);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0);
|
||||
|
||||
hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 2);
|
||||
gtk_box_set_homogeneous (GTK_BOX (hbox), FALSE);
|
||||
|
@ -1915,18 +1930,18 @@ device_dialog (void)
|
|||
gtk_frame_set_child (GTK_FRAME (frame), hbox);
|
||||
|
||||
label = gtk_label_new ("Filename");
|
||||
gtk_box_append (GTK_BOX (hbox), label);
|
||||
gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 2);
|
||||
|
||||
text = gtk_entry_new ();
|
||||
gtk_editable_set_text (GTK_EDITABLE (text), (char *) preferences.filename);
|
||||
gtk_box_append (GTK_BOX (hbox), text);
|
||||
gtk_box_pack_start (GTK_BOX (hbox), text, TRUE, TRUE, 2);
|
||||
g_signal_connect (G_OBJECT (text), "changed",
|
||||
G_CALLBACK (filename_changed_callback), 0);
|
||||
|
||||
scan_win.filename_entry = text;
|
||||
|
||||
button = gtk_button_new_with_label ("Browse");
|
||||
gtk_box_append (GTK_BOX (hbox), button);
|
||||
gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, FALSE, 2);
|
||||
g_signal_connect (G_OBJECT (button), "clicked",
|
||||
G_CALLBACK (browse_filename_callback), 0);
|
||||
|
||||
|
@ -1945,9 +1960,9 @@ device_dialog (void)
|
|||
GTK_CORNER_TOP_RIGHT);
|
||||
dialog_window = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
|
||||
gtk_box_set_homogeneous (GTK_BOX (dialog_window), FALSE);
|
||||
gtk_window_set_child(GTK_WINDOW (scrolled_window), dialog_window);
|
||||
gtk_scrolled_window_set_child(GTK_SCROLLED_WINDOW (scrolled_window), dialog_window);
|
||||
|
||||
gtk_box_append (GTK_BOX (vbox), scrolled_window);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), scrolled_window, TRUE, TRUE, 0);
|
||||
gtk_widget_show (scrolled_window);
|
||||
gtk_widget_show (dialog_window);
|
||||
|
||||
|
@ -1959,35 +1974,39 @@ device_dialog (void)
|
|||
/* The info row */
|
||||
hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 3);
|
||||
gtk_box_set_homogeneous (GTK_BOX (hbox), FALSE);
|
||||
// gtk_container_set_border_width (GTK_CONTAINER (hbox), 3);
|
||||
gtk_box_append (GTK_BOX (vbox), hbox);
|
||||
gtk_container_set_border_width (GTK_WIDGET (hbox), 3);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
|
||||
gtk_widget_show (hbox);
|
||||
|
||||
frame = gtk_frame_new (NULL);
|
||||
gtk_box_append (GTK_BOX (hbox), frame);
|
||||
gtk_box_pack_start (GTK_BOX (hbox), frame, FALSE, FALSE, 0);
|
||||
gtk_widget_show (frame);
|
||||
|
||||
hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5);
|
||||
gtk_box_set_homogeneous (GTK_BOX (hbox), FALSE);
|
||||
// gtk_container_set_border_width (GTK_CONTAINER (hbox), 2);
|
||||
gtk_frame_set_child(GTK_FRAME (frame), hbox);
|
||||
gtk_container_set_border_width (GTK_WIDGET (hbox), 2);
|
||||
gtk_frame_set_child (GTK_FRAME (frame), hbox);
|
||||
gtk_widget_show (hbox);
|
||||
|
||||
scan_win.info_label = gtk_label_new ("0x0: 0KB");
|
||||
gtk_box_append (GTK_BOX (hbox), scan_win.info_label);
|
||||
gtk_box_pack_start (GTK_BOX (hbox), scan_win.info_label, FALSE, FALSE, 0);
|
||||
gtk_widget_show (scan_win.info_label);
|
||||
|
||||
update_param (dialog, 0);
|
||||
|
||||
GtkWidget *bbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 3);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), bbox, FALSE, TRUE, 0);
|
||||
|
||||
/* The Scan button */
|
||||
scan_win.scan_button = gtk_dialog_add_button (GTK_DIALOG (scan_win.shell), "Scan", GTK_RESPONSE_OK);
|
||||
scan_win.scan_button = gtk_button_new_with_label("Scan");
|
||||
gtk_box_pack_start (GTK_BOX (bbox), scan_win.scan_button, TRUE, TRUE, 0);
|
||||
g_signal_connect (G_OBJECT (scan_win.scan_button), "clicked",
|
||||
G_CALLBACK (scan_dialog), scan_win.shell);
|
||||
gtk_widget_show (scan_win.scan_button);
|
||||
|
||||
/* The Preview button */
|
||||
scan_win.preview_button = gtk_dialog_add_button (GTK_DIALOG (scan_win.shell), "Preview Window", GTK_RESPONSE_ACCEPT);
|
||||
scan_win.preview_button = gtk_button_new_with_label("Preview Window");
|
||||
gtk_box_pack_start (GTK_BOX (bbox), scan_win.preview_button, TRUE, TRUE, 0);
|
||||
g_signal_connect (G_OBJECT (scan_win.preview_button), "clicked",
|
||||
G_CALLBACK (scan_preview), scan_win.shell);
|
||||
gtk_widget_show (scan_win.preview_button);
|
||||
|
@ -2007,14 +2026,14 @@ device_dialog (void)
|
|||
#endif
|
||||
|
||||
pref_device_restore (); /* restore device-settings */
|
||||
gtk_widget_show (scan_win.shell);
|
||||
gtk_window_present(GTK_WINDOW(scan_win.shell));
|
||||
DBG (DBG_debug, "device_dialog: finished\n");
|
||||
}
|
||||
|
||||
static void
|
||||
ok_choose_dialog_callback (void)
|
||||
{
|
||||
gtk_window_destroy (GTK_WINDOW(choose_device_dialog));
|
||||
gtk_widget_hide (GTK_WIDGET(choose_device_dialog));
|
||||
device_dialog ();
|
||||
}
|
||||
|
||||
|
@ -2025,83 +2044,88 @@ select_device_callback (GtkWidget * widget, gpointer data)
|
|||
}
|
||||
|
||||
static void
|
||||
group_change_callback (GtkToggleButton* button, gpointer data)
|
||||
group_change_callback (GtkCheckButton* button, gpointer data)
|
||||
{
|
||||
if (gtk_toggle_button_get_active(button))
|
||||
if (gtk_check_button_get_active(button))
|
||||
{
|
||||
seldev = (long) data;
|
||||
}
|
||||
}
|
||||
|
||||
static gint32
|
||||
static gint
|
||||
choose_device (void)
|
||||
{
|
||||
GtkWidget *main_vbox, *vbox, *button, *group = NULL;
|
||||
GtkWidget *main_vbox, *vbox, *bbox, *button, *group = NULL;
|
||||
const SANE_Device *adev;
|
||||
gint i;
|
||||
|
||||
DBG (DBG_debug, "choose_device\n");
|
||||
choose_device_dialog = gtk_dialog_new ();
|
||||
choose_device_dialog = scan_win.shell;
|
||||
gtk_window_set_title (GTK_WINDOW (choose_device_dialog), "Select device");
|
||||
g_signal_connect (G_OBJECT (choose_device_dialog), "delete_event",
|
||||
G_CALLBACK (files_exit_callback), NULL);
|
||||
|
||||
main_vbox = gtk_dialog_get_content_area(GTK_DIALOG (choose_device_dialog));
|
||||
gtk_window_set_modal (GTK_WINDOW (choose_device_dialog), TRUE);
|
||||
// g_signal_connect (G_OBJECT (choose_device_dialog), "delete_event", G_CALLBACK (files_exit_callback), NULL);
|
||||
|
||||
main_vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 2);
|
||||
if (GTK_IS_WINDOW(choose_device_dialog))
|
||||
gtk_window_set_child (GTK_WINDOW (choose_device_dialog), main_vbox);
|
||||
else
|
||||
g_message("%d) %s\n", __LINE__, __FUNCTION__);
|
||||
/* The list of drivers */
|
||||
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5);
|
||||
gtk_box_set_homogeneous (GTK_BOX (vbox), FALSE);
|
||||
// gtk_container_set_border_width (GTK_CONTAINER (vbox), 3);
|
||||
gtk_box_append (GTK_BOX (main_vbox), vbox);
|
||||
gtk_container_set_border_width (GTK_WIDGET (vbox), 3);
|
||||
gtk_box_pack_start (GTK_BOX (main_vbox), vbox, TRUE, TRUE, 0);
|
||||
gtk_widget_show (vbox);
|
||||
|
||||
/* The radio buttons */
|
||||
button = NULL;
|
||||
group = NULL;
|
||||
for (i = 0; i < ndevs; i++)
|
||||
{
|
||||
adev = devlist[i];
|
||||
|
||||
if (button == NULL)
|
||||
button = gtk_check_button_new_with_label ((char *) adev->name);
|
||||
if (group == NULL)
|
||||
{
|
||||
button = gtk_check_button_new_with_label ((char *) adev->name);
|
||||
group = button;
|
||||
}
|
||||
/*
|
||||
else
|
||||
{
|
||||
gtk_check_button_set_label( GTK_CHECK_BUTTON(button), adev->name );
|
||||
group = button;
|
||||
}*/
|
||||
gtk_check_button_set_group (GTK_CHECK_BUTTON (button), GTK_CHECK_BUTTON (group));
|
||||
}
|
||||
/*
|
||||
g_signal_connect (G_OBJECT (button), "clicked",
|
||||
G_CALLBACK (select_device_callback),
|
||||
(void *) (long) i);
|
||||
*/
|
||||
g_signal_connect (G_OBJECT (button), "toggled",
|
||||
G_CALLBACK (group_change_callback),
|
||||
(void *) (long) i);
|
||||
gtk_box_append (GTK_BOX (vbox), button);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), button, TRUE, TRUE, 0);
|
||||
gtk_widget_show (button);
|
||||
if (i == defdev) {
|
||||
gtk_check_button_set_group (GTK_CHECK_BUTTON (button), GTK_CHECK_BUTTON (group));
|
||||
gtk_check_button_set_active (GTK_CHECK_BUTTON (group), TRUE);
|
||||
gtk_check_button_set_active(GTK_CHECK_BUTTON(button), TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
bbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 2);
|
||||
gtk_box_pack_start (GTK_BOX (main_vbox), bbox, FALSE, TRUE, 0);
|
||||
|
||||
/* The OK button */
|
||||
button = gtk_dialog_add_button (GTK_DIALOG (choose_device_dialog), "OK", GTK_RESPONSE_OK);
|
||||
button = gtk_button_new_with_label ("Ok");
|
||||
gtk_window_set_default_widget (GTK_WINDOW (choose_device_dialog), button);
|
||||
g_signal_connect (G_OBJECT (button), "clicked",
|
||||
G_CALLBACK (ok_choose_dialog_callback), NULL);
|
||||
|
||||
gtk_widget_show (button);
|
||||
gtk_box_pack_start (GTK_BOX (bbox), button, TRUE, TRUE, 0);
|
||||
|
||||
/* The Cancel button */
|
||||
button = gtk_dialog_add_button (GTK_DIALOG (choose_device_dialog), "Cancel", GTK_RESPONSE_OK);
|
||||
button = gtk_button_new_with_label ("Cancel");
|
||||
g_signal_connect (G_OBJECT (button), "clicked",
|
||||
G_CALLBACK (files_exit_callback), NULL);
|
||||
gtk_widget_show (button);
|
||||
gtk_box_pack_start (GTK_BOX (bbox), button, TRUE, TRUE, 0);
|
||||
|
||||
gtk_widget_show (choose_device_dialog);
|
||||
gtk_window_present(GTK_WINDOW(choose_device_dialog));
|
||||
DBG (DBG_debug, "choose_device: finished\n");
|
||||
return 0;
|
||||
}
|
||||
|
@ -2124,11 +2148,11 @@ init (int argc, char **argv)
|
|||
//char filename[PATH_MAX];
|
||||
//struct stat st;
|
||||
SANE_Status status;
|
||||
scan_win.info_label = NULL;
|
||||
|
||||
DBG_INIT ();
|
||||
|
||||
DBG (DBG_debug, "init\n");
|
||||
gtk_init ();
|
||||
/*
|
||||
#ifdef HAVE_LIBGIMP_GIMP_H
|
||||
gtk_rc_parse (gimp_gtkrc ());
|
||||
|
@ -2228,13 +2252,8 @@ init (int argc, char **argv)
|
|||
}
|
||||
|
||||
static void
|
||||
interface (int argc, char **argv)
|
||||
interface_app (void)
|
||||
{
|
||||
scan_win.info_label = NULL;
|
||||
|
||||
DBG (DBG_debug, "interface\n");
|
||||
init (argc, argv);
|
||||
|
||||
for (ndevs = 0; devlist[ndevs]; ++ndevs);
|
||||
|
||||
if (seldev >= 0)
|
||||
|
@ -2282,6 +2301,25 @@ interface (int argc, char **argv)
|
|||
DBG (DBG_debug, "interface: finished\n");
|
||||
}
|
||||
|
||||
static void
|
||||
interface (int argc, char **argv)
|
||||
{
|
||||
|
||||
DBG (DBG_debug, "interface\n");
|
||||
init (argc, argv);
|
||||
interface_app ();
|
||||
}
|
||||
|
||||
static void
|
||||
activate(GApplication *app, gpointer *data) {
|
||||
/* create the menubar */
|
||||
scan_win.menubar = g_menu_new ();
|
||||
scan_win.shell = gtk_application_window_new(GTK_APPLICATION(app));
|
||||
interface_app ();
|
||||
gtk_application_set_menubar (GTK_APPLICATION (app), G_MENU_MODEL (scan_win.menubar));
|
||||
gtk_application_window_set_show_menubar(GTK_APPLICATION_WINDOW(gtk_application_window_new(GTK_APPLICATION(app))), TRUE);
|
||||
}
|
||||
|
||||
int
|
||||
main (int argc, char **argv)
|
||||
{
|
||||
|
@ -2323,12 +2361,15 @@ main (int argc, char **argv)
|
|||
# endif /* !ENABLE_GIMP_1_2 */
|
||||
g_set_print_handler (old_print_func);
|
||||
g_set_printerr_handler (old_printerr_func);
|
||||
if (result)
|
||||
interface (argc, argv);
|
||||
if (!result)
|
||||
exit(-1);
|
||||
}
|
||||
#else
|
||||
interface (argc, argv);
|
||||
#endif /* HAVE_LIBGIMP_GIMP_H */
|
||||
init (argc, argv);
|
||||
app = gtk_application_new("com.scan2vcard", G_APPLICATION_FLAGS_NONE);
|
||||
g_signal_connect(app, "activate", G_CALLBACK(activate), NULL);
|
||||
g_application_run(G_APPLICATION(app), argc, argv);
|
||||
g_object_unref(app);
|
||||
DBG (DBG_debug, "main: finished\n");
|
||||
return 0;
|
||||
}
|
||||
|
|
Ładowanie…
Reference in New Issue