Commit ed3e5b279bb7e61423c481ed5d3b878190e5a822

Authored by perry.werneck@gmail.com
1 parent 0bd2c878

Incluindo ajuste automatico de fonte

Showing 1 changed file with 11 additions and 13 deletions   Show diff stats
src/pw3270/print.c
@@ -42,20 +42,16 @@ @@ -42,20 +42,16 @@
42 PW3270_SRC src; 42 PW3270_SRC src;
43 43
44 H3270 * session; 44 H3270 * session;
45 -/*  
46 - gchar * font;  
47 - guint fontsize;  
48 - cairo_font_weight_t fontweight;  
49 -*/ 45 +
50 int baddr; 46 int baddr;
51 int rows; 47 int rows;
52 - int cols; 48 + int cols; /**< Max line width */
53 int pages; 49 int pages;
54 - int lpp; /**< Lines per page */ 50 + int lpp; /**< Lines per page */
55 cairo_font_extents_t extents; 51 cairo_font_extents_t extents;
56 double left; 52 double left;
57 - double width; /**< Report width */  
58 - double height; /**< Report height (all pages) */ 53 + double width; /**< Report width */
  54 + double height; /**< Report height (all pages) */
59 cairo_scaled_font_t * font_scaled; 55 cairo_scaled_font_t * font_scaled;
60 56
61 gchar **text; 57 gchar **text;
@@ -94,7 +90,7 @@ @@ -94,7 +90,7 @@
94 90
95 // Setup font 91 // Setup font
96 92
97 - if(font) 93 + if(*font)
98 { 94 {
99 PangoFontDescription * descr = pango_font_description_from_string(font); 95 PangoFontDescription * descr = pango_font_description_from_string(font);
100 if(descr) 96 if(descr)
@@ -103,12 +99,12 @@ @@ -103,12 +99,12 @@
103 CAIRO_FONT_SLANT_NORMAL, 99 CAIRO_FONT_SLANT_NORMAL,
104 pango_font_description_get_weight(descr) == PANGO_WEIGHT_BOLD ? CAIRO_FONT_WEIGHT_BOLD : CAIRO_FONT_WEIGHT_NORMAL); 100 pango_font_description_get_weight(descr) == PANGO_WEIGHT_BOLD ? CAIRO_FONT_WEIGHT_BOLD : CAIRO_FONT_WEIGHT_NORMAL);
105 101
106 - cairo_set_font_size(cr,gtk_print_context_get_width(context)/80); 102 + cairo_set_font_size(cr,gtk_print_context_get_width(context)/info->cols);
107 103
108 pango_font_description_free(descr); 104 pango_font_description_free(descr);
109 } 105 }
110 - g_free(font);  
111 } 106 }
  107 + g_free(font);
112 108
113 info->font_scaled = cairo_get_scaled_font(cr); 109 info->font_scaled = cairo_get_scaled_font(cr);
114 cairo_scaled_font_reference(info->font_scaled); 110 cairo_scaled_font_reference(info->font_scaled);
@@ -449,7 +445,8 @@ static gchar * enum_to_string(GType type, guint enum_value) @@ -449,7 +445,8 @@ static gchar * enum_to_string(GType type, guint enum_value)
449 GtkPageSetup * setup = gtk_page_setup_new(); 445 GtkPageSetup * setup = gtk_page_setup_new();
450 446
451 *info = g_new0(PRINT_INFO,1); 447 *info = g_new0(PRINT_INFO,1);
452 - (*info)->session = v3270_get_session(widget); 448 + (*info)->session = v3270_get_session(widget);
  449 + (*info)->cols = 80;
453 450
454 // Basic setup 451 // Basic setup
455 gtk_print_operation_set_allow_async(print,TRUE); 452 gtk_print_operation_set_allow_async(print,TRUE);
@@ -671,6 +668,7 @@ static gchar * enum_to_string(GType type, guint enum_value) @@ -671,6 +668,7 @@ static gchar * enum_to_string(GType type, guint enum_value)
671 lib3270_get_screen_size(info->session,&info->rows,&info->cols); 668 lib3270_get_screen_size(info->session,&info->rows,&info->cols);
672 669
673 info->src = src; 670 info->src = src;
  671 +
674 g_signal_connect(print,"begin_print",G_CALLBACK(begin_print),info); 672 g_signal_connect(print,"begin_print",G_CALLBACK(begin_print),info);
675 g_signal_connect(print,"draw_page",G_CALLBACK(draw_screen),info); 673 g_signal_connect(print,"draw_page",G_CALLBACK(draw_screen),info);
676 674