/* * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a * aplicativos mainframe. Registro no INPI sob o nome G3270. * * Copyright (C) <2008> * * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela * Free Software Foundation. * * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para * obter mais detalhes. * * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este * programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin * St, Fifth Floor, Boston, MA 02110-1301 USA * * Este programa está nomeado como - e possui - linhas de código. * * Contatos: * * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) * */ #include "private.h" #include #include #include #include /*--[ Widget definition ]----------------------------------------------------------------------------*/ G_DEFINE_TYPE(V3270PrintSettings, V3270PrintSettings, GTK_TYPE_GRID); /*--[ Implement ]------------------------------------------------------------------------------------*/ static void finalize(GObject *object) { // V3270PrintSettings * settings = GTK_V3270_PRINT_SETTINGS(object); G_OBJECT_CLASS(V3270PrintSettings_parent_class)->finalize(object); } static void V3270PrintSettings_class_init(V3270PrintSettingsClass *klass) { GObjectClass * gobject_class = G_OBJECT_CLASS(klass); // Object methods gobject_class->finalize = finalize; } /* static void color_scheme_changed(GtkWidget G_GNUC_UNUSED(*widget), const GdkRGBA *colors, V3270PrintSettings *settings) { debug("%s=%p",__FUNCTION__,colors); int f; for(f=0;fcolors[f] = colors[f]; } */ static void V3270PrintSettings_init(V3270PrintSettings *widget) { static const gchar * text[] = { N_( "_Font:" ), N_( "C_olor scheme:" ) }; size_t f; #ifdef __APPLE__ widget->font = v3270_font_selection_new("Courier New"); #else widget->font = v3270_font_selection_new("monospace"); #endif widget->color = v3270_color_scheme_new(); widget->selected = gtk_check_button_new_with_label( _("Print selection box") ); // https://developer.gnome.org/hig/stable/visual-layout.html.en gtk_grid_set_row_spacing(GTK_GRID(widget),6); gtk_grid_set_column_spacing(GTK_GRID(widget),12); // g_signal_connect(G_OBJECT(widget->color),"update-colors",G_CALLBACK(color_scheme_changed),widget); // g_signal_connect(G_OBJECT(widget->selected),"toggled",G_CALLBACK(toggle_show_selection),widget); for(f=0;ffont,1,0,1,1); gtk_grid_attach(GTK_GRID(widget),widget->color,1,1,1,1); gtk_grid_attach(GTK_GRID(widget),widget->selected,1,2,1,1); // Set color scheme GdkRGBA colors[V3270_COLOR_COUNT]; v3270_set_mono_color_table(colors,"#000000","#FFFFFF"); v3270_color_scheme_set_rgba(widget->color,colors); gtk_widget_show_all(GTK_WIDGET(widget)); } LIB3270_EXPORT GtkWidget * V3270_print_settings_new(GtkWidget *widget) { V3270PrintSettings * settings = GTK_V3270_PRINT_SETTINGS(g_object_new(GTK_TYPE_V3270_PRINT_SETTINGS, NULL)); v3270_font_selection_set_family(settings->font, v3270_get_font_family(widget)); return GTK_WIDGET(settings); } LIB3270_EXPORT GtkWidget * V3270_print_settings_new_from_operation(GtkPrintOperation *operation) { g_return_val_if_fail(GTK_IS_V3270_PRINT_OPERATION(operation),NULL); V3270PrintOperation * opr = GTK_V3270_PRINT_OPERATION(operation); V3270PrintSettings * settings = GTK_V3270_PRINT_SETTINGS(g_object_new(GTK_TYPE_V3270_PRINT_SETTINGS, NULL)); v3270_font_selection_set_family(settings->font, opr->font.name); v3270_color_scheme_set_rgba(settings->color,opr->settings.colors); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(settings->selected),opr->settings.show_selection); return GTK_WIDGET(settings); } LIB3270_EXPORT int v3270_print_settings_get_rgba(GtkWidget *widget, GdkRGBA *colors, size_t num_colors) { V3270PrintSettings * settings = GTK_V3270_PRINT_SETTINGS(widget); return v3270_color_scheme_get_rgba(settings->color, colors, num_colors); } LIB3270_EXPORT gboolean v3270_print_settings_get_show_selection(GtkWidget *widget) { return gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(GTK_V3270_PRINT_SETTINGS(widget)->selected)); } LIB3270_EXPORT void v3270_print_settings_set_show_selection(GtkWidget *widget, gboolean is_active) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(GTK_V3270_PRINT_SETTINGS(widget)->selected),is_active); } LIB3270_EXPORT gchar * v3270_print_settings_get_color_scheme(GtkWidget *widget) { return v3270_color_scheme_get_text((GTK_V3270_PRINT_SETTINGS(widget)->color)); } LIB3270_EXPORT void v3270_print_settings_set_color_scheme(GtkWidget *widget, const gchar *colors) { v3270_color_scheme_set_text(GTK_V3270_PRINT_SETTINGS(widget)->color, colors); } LIB3270_EXPORT gchar * v3270_print_settings_get_font_family(GtkWidget *widget) { return v3270_font_selection_get_family(GTK_V3270_PRINT_SETTINGS(widget)->font); } LIB3270_EXPORT gboolean v3270_print_settings_set_font_family(GtkWidget *widget, const gchar *fontname) { return v3270_font_selection_set_family(GTK_V3270_PRINT_SETTINGS(widget)->font,fontname); }