Commit 3798a669aa7799d6b0647dd5d60b866748d25cd5

Authored by perry.werneck@gmail.com
1 parent 25c36ce4

Criando dialogo para configuracao de fonte

src/pw3270/actions.c
@@ -246,19 +246,20 @@ static void connect_standard_action(GtkAction *action, GtkWidget *widget, const @@ -246,19 +246,20 @@ static void connect_standard_action(GtkAction *action, GtkWidget *widget, const
246 } 246 }
247 gtk_action[] = 247 gtk_action[] =
248 { 248 {
249 - { "activate", activate_action },  
250 - { "reload", reload_action },  
251 - { "connect", connect_action },  
252 - { "disconnect", disconnect_action },  
253 - { "hostname", hostname_action },  
254 - { "editcolors", editcolors_action },  
255 - { "about", about_dialog_action },  
256 - { "kpsubtract", kp_subtract_action },  
257 - { "kpadd", kp_add_action },  
258 - { "download", download_action },  
259 - { "upload", upload_action }, 249 + { "activate", activate_action },
  250 + { "reload", reload_action },
  251 + { "connect", connect_action },
  252 + { "disconnect", disconnect_action },
  253 + { "hostname", hostname_action },
  254 + { "editcolors", editcolors_action },
  255 + { "printsettings", print_settings_action },
  256 + { "about", about_dialog_action },
  257 + { "kpsubtract", kp_subtract_action },
  258 + { "kpadd", kp_add_action },
  259 + { "download", download_action },
  260 + { "upload", upload_action },
260 #ifdef DEBUG 261 #ifdef DEBUG
261 - { "copyashtml", copy_as_html_action }, 262 + { "copyashtml", copy_as_html_action },
262 #endif // DEBUG 263 #endif // DEBUG
263 }; 264 };
264 265
src/pw3270/colors.c
@@ -411,7 +411,7 @@ static void load_color_scheme(GKeyFile *conf, const gchar *group, GdkColor *clr) @@ -411,7 +411,7 @@ static void load_color_scheme(GKeyFile *conf, const gchar *group, GdkColor *clr)
411 411
412 const gchar * title = g_object_get_data(G_OBJECT(action),"title"); 412 const gchar * title = g_object_get_data(G_OBJECT(action),"title");
413 GtkWidget * dialog = gtk_dialog_new_with_buttons ( gettext(title ? title : N_( "Color setup") ), 413 GtkWidget * dialog = gtk_dialog_new_with_buttons ( gettext(title ? title : N_( "Color setup") ),
414 - NULL, 414 + gtk_widget_get_toplevel(widget),
415 GTK_DIALOG_DESTROY_WITH_PARENT, 415 GTK_DIALOG_DESTROY_WITH_PARENT,
416 GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, 416 GTK_STOCK_OK, GTK_RESPONSE_ACCEPT,
417 GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT, 417 GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT,
src/pw3270/globals.h
@@ -76,6 +76,7 @@ @@ -76,6 +76,7 @@
76 G_GNUC_INTERNAL void about_dialog_action(GtkAction *action, GtkWidget *widget); 76 G_GNUC_INTERNAL void about_dialog_action(GtkAction *action, GtkWidget *widget);
77 G_GNUC_INTERNAL void download_action(GtkAction *action, GtkWidget *widget); 77 G_GNUC_INTERNAL void download_action(GtkAction *action, GtkWidget *widget);
78 G_GNUC_INTERNAL void upload_action(GtkAction *action, GtkWidget *widget); 78 G_GNUC_INTERNAL void upload_action(GtkAction *action, GtkWidget *widget);
  79 + G_GNUC_INTERNAL void print_settings_action(GtkAction *action, GtkWidget *widget);
79 80
80 // plugins 81 // plugins
81 G_GNUC_INTERNAL void init_plugins(GtkWidget *widget); 82 G_GNUC_INTERNAL void init_plugins(GtkWidget *widget);
src/pw3270/print.c
@@ -289,6 +289,9 @@ static gchar * enum_to_string(GType type, guint enum_value) @@ -289,6 +289,9 @@ static gchar * enum_to_string(GType type, guint enum_value)
289 pango_font_description_free(descr); 289 pango_font_description_free(descr);
290 290
291 set_string_to_config("print","font",name); 291 set_string_to_config("print","font",name);
  292 + set_integer_to_config("print","fontsize",info->fontsize);
  293 + set_integer_to_config("print","fontweight",info->fontweight);
  294 +
292 trace("Font set to \"%s\" with size %d",info->font,info->fontsize); 295 trace("Font set to \"%s\" with size %d",info->font,info->fontsize);
293 } 296 }
294 297
@@ -299,16 +302,18 @@ static gchar * enum_to_string(GType type, guint enum_value) @@ -299,16 +302,18 @@ static gchar * enum_to_string(GType type, guint enum_value)
299 set_boolean_to_config("print","selection",active); 302 set_boolean_to_config("print","selection",active);
300 } 303 }
301 304
302 - static void load_settings(PRINT_INFO *i) 305 + static void load_settings(PRINT_INFO *info)
303 { 306 {
304 gchar *ptr = get_string_from_config("print","colors",""); 307 gchar *ptr = get_string_from_config("print","colors","");
305 308
306 - i->font = get_string_from_config("print","font","Courier 10"); 309 + info->font = get_string_from_config("print","font","Courier New 10");
  310 + info->fontsize = get_integer_from_config("print","fontsize",10240);
  311 + info->fontweight = get_integer_from_config("print","fontweight",0);
307 312
308 if(*ptr) 313 if(*ptr)
309 - v3270_set_color_table(i->color,ptr); 314 + v3270_set_color_table(info->color,ptr);
310 else 315 else
311 - v3270_set_mono_color_table(i->color,"black","white"); 316 + v3270_set_mono_color_table(info->color,"black","white");
312 g_free(ptr); 317 g_free(ptr);
313 } 318 }
314 319
@@ -639,3 +644,33 @@ static gchar * enum_to_string(GType type, guint enum_value) @@ -639,3 +644,33 @@ static gchar * enum_to_string(GType type, guint enum_value)
639 gtk_print_operation_run(print,oper,GTK_WINDOW(gtk_widget_get_toplevel(widget)),NULL); 644 gtk_print_operation_run(print,oper,GTK_WINDOW(gtk_widget_get_toplevel(widget)),NULL);
640 g_object_unref(print); 645 g_object_unref(print);
641 } 646 }
  647 +
  648 +void print_settings_action(GtkAction *action, GtkWidget *terminal)
  649 +{
  650 + const gchar * title = g_object_get_data(G_OBJECT(action),"title");
  651 + PRINT_INFO info;
  652 + GtkWidget * widget;
  653 + GtkWidget * dialog = gtk_dialog_new_with_buttons ( gettext(title ? title : N_( "Print settings") ),
  654 + gtk_widget_get_toplevel(terminal),
  655 + GTK_DIALOG_DESTROY_WITH_PARENT,
  656 + GTK_STOCK_OK, GTK_RESPONSE_ACCEPT,
  657 + GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT,
  658 + NULL );
  659 +
  660 + memset(&info,0,sizeof(info));
  661 +
  662 + widget = create_custom_widget(NULL,&info);
  663 +
  664 + gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(dialog))),GTK_WIDGET(widget),TRUE,TRUE,2);
  665 +
  666 + if(gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT)
  667 + {
  668 + // Accepted, save settings
  669 + custom_widget_apply(NULL,widget,&info);
  670 + }
  671 +
  672 + gtk_widget_destroy(dialog);
  673 +
  674 +}
  675 +
  676 +
ui/99debug.xml
@@ -48,6 +48,7 @@ @@ -48,6 +48,7 @@
48 <menuitem action='testpattern' group='offline' label='Show test pattern' /> 48 <menuitem action='testpattern' group='offline' label='Show test pattern' />
49 <menuitem action='reload' label='Reload buffer contents' /> 49 <menuitem action='reload' label='Reload buffer contents' />
50 <menuitem action='toggle' id='gdkdebug' label='Debug window updates' /> 50 <menuitem action='toggle' id='gdkdebug' label='Debug window updates' />
  51 + <menuitem action='printsettings' label='Print settings' />
51 </menu> 52 </menu>
52 53
53 </menubar> 54 </menubar>