Commit 65a98c0eaf931e70c88d1e86afef11d6b0de4a81

Authored by Perry Werneck
1 parent 1985aec3
Exists in master and in 1 other branch develop

Updating plugin test program.

Showing 2 changed files with 65 additions and 7 deletions   Show diff stats
Makefile.in
... ... @@ -284,6 +284,7 @@ run: \
284 284 run-plugin
285 285  
286 286 run-plugin: \
  287 + $(BINDBG)/$(MODULE_NAME)@DLLEXT@ \
287 288 $(BINDBG)/$(MODULE_NAME)@EXEEXT@
288 289  
289 290 @LD_LIBRARY_PATH=$(BINDBG) \
... ...
src/testprogram/testprogram.c
... ... @@ -36,14 +36,16 @@
36 36  
37 37 #include <config.h>
38 38 #include <v3270.h>
  39 + #include <v3270/trace.h>
39 40 #include <lib3270/ipc.h>
40 41 #include <string.h>
41 42 #include <stdlib.h>
42 43  
43 44 /*---[ Globals ]------------------------------------------------------------------------------------*/
44 45  
45   - const gchar * plugin_path = ".bin/Debug";
46   - const gchar * plugin_name = "ipc3270." G_MODULE_SUFFIX;
  46 + const gchar * plugin_path = ".bin/Debug";
  47 + const gchar * session_name = "pw3270";
  48 + const gchar * plugin_name = "ipc3270." G_MODULE_SUFFIX;
47 49  
48 50 /*---[ Implement ]----------------------------------------------------------------------------------*/
49 51  
... ... @@ -65,17 +67,72 @@
65 67 g_message("Module %p was closed",module);
66 68 }
67 69  
  70 + static void toggle_ds_trace(GtkToggleToolButton *button, GtkWidget *terminal)
  71 + {
  72 + v3270_set_toggle(terminal,LIB3270_TOGGLE_DS_TRACE,gtk_toggle_tool_button_get_active(button));
  73 + }
  74 +
  75 + static void toggle_event_trace(GtkToggleToolButton *button, GtkWidget *terminal)
  76 + {
  77 + v3270_set_toggle(terminal,LIB3270_TOGGLE_EVENT_TRACE,gtk_toggle_tool_button_get_active(button));
  78 + }
  79 +
  80 + static void toggle_ssl_trace(GtkToggleToolButton *button, GtkWidget *terminal)
  81 + {
  82 + v3270_set_toggle(terminal,LIB3270_TOGGLE_SSL_TRACE,gtk_toggle_tool_button_get_active(button));
  83 + }
  84 +
  85 + static void toggle_screen_trace(GtkToggleToolButton *button, GtkWidget *terminal)
  86 + {
  87 + v3270_set_toggle(terminal,LIB3270_TOGGLE_SCREEN_TRACE,gtk_toggle_tool_button_get_active(button));
  88 + }
  89 +
  90 + static GtkToolItem * create_tool_item(GtkWidget *terminal, const gchar *label, const gchar *tooltip, GCallback callback)
  91 + {
  92 + GtkToolItem * item = gtk_toggle_tool_button_new();
  93 + gtk_tool_button_set_label(GTK_TOOL_BUTTON(item),label);
  94 +
  95 + g_signal_connect(GTK_WIDGET(item), "toggled", G_CALLBACK(callback), terminal);
  96 +
  97 + if(tooltip)
  98 + gtk_widget_set_tooltip_text(GTK_WIDGET(item),tooltip);
  99 +
  100 + return item;
  101 + }
  102 +
68 103 static void activate(GtkApplication* app, G_GNUC_UNUSED gpointer user_data) {
69 104  
70   - GtkWidget * window = gtk_application_window_new(app);
71   - GtkWidget * terminal = v3270_new();
  105 + GtkWidget * window = gtk_application_window_new(app);
  106 + GtkWidget * terminal = v3270_new();
  107 + GtkWidget * notebook = gtk_notebook_new();
  108 +
  109 + gtk_widget_set_name(window,session_name);
72 110  
73   - gtk_widget_set_name(window,"pw3270");
  111 + // Setup tabs
  112 + gtk_notebook_append_page(GTK_NOTEBOOK(notebook),terminal,gtk_label_new(v3270_get_session_name(terminal)));
  113 +
  114 + // Create trace window
  115 + {
  116 + GtkWidget * box = gtk_box_new(GTK_ORIENTATION_VERTICAL,0);
  117 + GtkWidget * trace = v3270_trace_new(terminal);
  118 + GtkWidget * toolbar = gtk_toolbar_new();
  119 +
  120 + gtk_toolbar_insert(GTK_TOOLBAR(toolbar),create_tool_item(terminal, "DS Trace","Toggle DS Trace",G_CALLBACK(toggle_ds_trace)),-1);
  121 + gtk_toolbar_insert(GTK_TOOLBAR(toolbar),create_tool_item(terminal, "Event Trace","Toggle Event Trace",G_CALLBACK(toggle_event_trace)),-1);
  122 + gtk_toolbar_insert(GTK_TOOLBAR(toolbar),create_tool_item(terminal, "Screen Trace","Toggle Screen Trace",G_CALLBACK(toggle_screen_trace)),-1);
  123 + gtk_toolbar_insert(GTK_TOOLBAR(toolbar),create_tool_item(terminal, "SSL Trace","Toggle SSL Trace",G_CALLBACK(toggle_ssl_trace)),-1);
  124 +
  125 + gtk_toolbar_insert(GTK_TOOLBAR(toolbar),gtk_separator_tool_item_new(),-1);
  126 +
  127 + gtk_box_pack_start(GTK_BOX(box),toolbar,FALSE,FALSE,0);
  128 + gtk_box_pack_start(GTK_BOX(box),trace,TRUE,TRUE,0);
  129 + gtk_notebook_append_page(GTK_NOTEBOOK(notebook),box,gtk_label_new("Trace"));
  130 + }
74 131  
75   - // Setup and show window
  132 + // Setup and show main window
76 133 gtk_window_set_position(GTK_WINDOW(window),GTK_WIN_POS_CENTER);
77 134 gtk_window_set_default_size (GTK_WINDOW (window), 800, 500);
78   - gtk_container_add(GTK_CONTAINER(window),terminal);
  135 + gtk_container_add(GTK_CONTAINER(window),notebook);
79 136 gtk_widget_show_all (window);
80 137  
81 138 // Load plugin
... ...