From b0c728d35ba559726c6c0059d2ff40832dbceee6 Mon Sep 17 00:00:00 2001 From: perry.werneck@gmail.com Date: Sun, 1 Apr 2012 14:04:58 +0000 Subject: [PATCH] Salvando tamanho do papel no registry, retirando mensagems de erro na finalizacao --- src/gtk/mainwindow.c | 7 +++++++ src/gtk/print.c | 20 +++++++++++++++++--- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/src/gtk/mainwindow.c b/src/gtk/mainwindow.c index e072629..67b5c98 100644 --- a/src/gtk/mainwindow.c +++ b/src/gtk/mainwindow.c @@ -117,6 +117,12 @@ return 0; } + static gboolean window_destroy(GtkWidget *window, GtkWidget *widget) + { + if(widget) + v3270_disconnect(widget); + } + static void disconnected(GtkWidget *widget, GtkActionGroup **group) { gtk_action_group_set_sensitive(group[ACTION_GROUP_PASTE],FALSE); @@ -333,6 +339,7 @@ // Connect window signals g_signal_connect(window,"window_state_event",G_CALLBACK(window_state_event),terminal); + g_signal_connect(window,"destroy",G_CALLBACK(window_destroy),terminal); // Connect widget signals g_signal_connect(terminal,"toggle_changed",G_CALLBACK(toggle_changed),window); diff --git a/src/gtk/print.c b/src/gtk/print.c index 27346db..56a088e 100644 --- a/src/gtk/print.c +++ b/src/gtk/print.c @@ -211,10 +211,24 @@ static gchar * enum_to_string(GType type, guint enum_value) if(RegCreateKeyEx(hKey,"papersize",0,NULL,REG_OPTION_NON_VOLATILE,KEY_SET_VALUE,NULL,&hPaperSize,&disp) == ERROR_SUCCESS) { - GtkPaperSize *paper_size = gtk_page_setup_get_paper_size (setup); - if(paper_size) + GtkPaperSize *size = gtk_page_setup_get_paper_size(setup); + if(size) { - #warning Implement it + // From http://git.gnome.org/browse/gtk+/tree/gtk/gtkpapersize.c + const gchar *name = gtk_paper_size_get_name(size); + const gchar *display_name = gtk_paper_size_get_display_name(size); + const gchar *ppd_name = gtk_paper_size_get_ppd_name(size); + + if (ppd_name != NULL) + save_string(hPaperSize,"PPDName", ppd_name); + else + save_string(hPaperSize,"Name", name); + + if (display_name) + save_string(hPaperSize,"DisplayName", display_name); + + save_double(hPaperSize, "Width", gtk_paper_size_get_width (size, GTK_UNIT_MM)); + save_double(hPaperSize, "Height", gtk_paper_size_get_height (size, GTK_UNIT_MM)); } RegCloseKey(hPaperSize); } -- libgit2 0.21.2