/* * "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. 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 testprogram.c e possui - linhas de código. * * Contatos: * * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) * */ /** * @brief V3270 Widget test program. * */ #include "private.h" #include #include #include #include #include #include /*---[ Implement ]----------------------------------------------------------------------------------*/ static void toggle_ds_trace(GtkToggleButton *button, GtkWidget *terminal) { v3270_set_toggle(terminal,LIB3270_TOGGLE_DS_TRACE,gtk_toggle_button_get_active(button)); } static void toggle_event_trace(GtkToggleButton *button, GtkWidget *terminal) { v3270_set_toggle(terminal,LIB3270_TOGGLE_EVENT_TRACE,gtk_toggle_button_get_active(button)); } static void toggle_ssl_trace(GtkToggleButton *button, GtkWidget *terminal) { v3270_set_toggle(terminal,LIB3270_TOGGLE_SSL_TRACE,gtk_toggle_button_get_active(button)); } static void toggle_screen_trace(GtkToggleButton *button, GtkWidget *terminal) { v3270_set_toggle(terminal,LIB3270_TOGGLE_SCREEN_TRACE,gtk_toggle_button_get_active(button)); } static GtkWidget * create_toggle_button(GtkWidget *terminal, const gchar *label, const gchar *tooltip, GCallback callback) { GtkWidget * item = gtk_toggle_button_new_with_label(label); gtk_widget_set_can_focus(item,FALSE); gtk_widget_set_can_default(item,FALSE); gtk_widget_set_focus_on_click(item,FALSE); g_signal_connect(item, "toggled", G_CALLBACK(callback), terminal); if(tooltip) gtk_widget_set_tooltip_text(item,tooltip); return item; } static void activate(GtkApplication* app, G_GNUC_UNUSED gpointer user_data) { GtkWidget * window = gtk_application_window_new(app); GtkWidget * terminal = v3270_new(); GtkWidget * vBox = gtk_box_new(GTK_ORIENTATION_VERTICAL,2); GtkWidget * notebook = gtk_notebook_new(); gtk_box_pack_start(GTK_BOX(vBox),create_toolbar(terminal),FALSE,TRUE,0); gtk_box_pack_start(GTK_BOX(vBox),notebook,TRUE,TRUE,0); // Create Terminal window { gtk_widget_set_can_default(terminal,TRUE); gtk_widget_set_focus_on_click(terminal,TRUE); gtk_notebook_append_page(GTK_NOTEBOOK(notebook),terminal,gtk_label_new("Terminal")); #ifdef _WIN32 v3270_set_font_family(terminal,"Droid Sans Mono"); #endif // _WIN32 } // Create trace window { GtkWidget * box = gtk_box_new(GTK_ORIENTATION_VERTICAL,8); GtkWidget * trace = v3270_trace_new(terminal); GtkWidget * toolbar = gtk_button_box_new(GTK_ORIENTATION_HORIZONTAL); gtk_button_box_set_layout(GTK_BUTTON_BOX(toolbar), GTK_BUTTONBOX_START); gtk_box_set_spacing(GTK_BOX(toolbar),8); gtk_box_pack_start(GTK_BOX(toolbar),create_toggle_button(terminal, "DS Trace","Toggle DS Trace",G_CALLBACK(toggle_ds_trace)),FALSE,FALSE,4); gtk_box_pack_start(GTK_BOX(toolbar),create_toggle_button(terminal, "Event Trace","Toggle Event Trace",G_CALLBACK(toggle_event_trace)),FALSE,FALSE,4); gtk_box_pack_start(GTK_BOX(toolbar),create_toggle_button(terminal, "Screen Trace","Toggle Screen Trace",G_CALLBACK(toggle_screen_trace)),FALSE,FALSE,4); gtk_box_pack_start(GTK_BOX(toolbar),create_toggle_button(terminal, "SSL Trace","Toggle SSL Trace",G_CALLBACK(toggle_ssl_trace)),FALSE,FALSE,4); gtk_box_pack_start(GTK_BOX(box),toolbar,FALSE,FALSE,0); gtk_box_pack_start(GTK_BOX(box),trace,TRUE,TRUE,0); gtk_notebook_append_page(GTK_NOTEBOOK(notebook),box,gtk_label_new("Trace")); } // Setup and show main window gtk_window_set_position(GTK_WINDOW(window),GTK_WIN_POS_CENTER); gtk_window_set_default_size (GTK_WINDOW (window), 800, 500); gtk_container_add(GTK_CONTAINER(window),vBox); gtk_widget_show_all(window); gtk_widget_grab_focus(terminal); } int main (int argc, char **argv) { GtkApplication *app; int status; app = gtk_application_new ("br.com.bb.pw3270",G_APPLICATION_FLAGS_NONE); g_signal_connect (app, "activate", G_CALLBACK(activate), NULL); status = g_application_run (G_APPLICATION (app), argc, argv); g_object_unref (app); g_message("rc=%d",status); return 0; }