Commit 9a3b40f4d12e75a51eb551f344829ac5f303c4ff

Authored by Perry Werneck
Committed by GitHub
2 parents b8583e1c 0a7814ae
Exists in master and in 1 other branch develop

Merge pull request #6 from PerryWerneck/develop

Fixing arch builds, updating read.me
@@ -40,46 +40,53 @@ sudo zypper ref @@ -40,46 +40,53 @@ sudo zypper ref
40 40
41 2. Get libv3270 sources from git 41 2. Get libv3270 sources from git
42 42
43 - * git clone https://github.com/PerryWerneck/libv3270.git ./v3270 43 +```
  44 +git clone https://github.com/PerryWerneck/libv3270.git ./v3270
  45 +```
44 46
45 -3. Install cross compilers 47 +3. Install 64 bits cross compilers
46 48
47 - * ./v3270/win/install-cross.sh --32 (for 32 bits)  
48 - * ./v3270/win/install-cross.sh --64 (for 64 bits)  
49 - * ./v3270/win/install-cross.sh --all (for 32 and 64 bits) 49 +```
  50 +./v3270/win/install-cross.sh --64
  51 +```
50 52
51 -3. Configure build 53 +3. Configure 64 bits build environment
52 54
53 - * ./v3270/win/win-configure.sh --32 (for 32 bits)  
54 - * ./v3270/win/win-configure.sh --64 (for 64 bits) 55 +```
  56 +./v3270/win/win-configure.sh --64
  57 +```
55 58
56 4. Build 59 4. Build
57 60
58 - * cd v3270  
59 - * make clean  
60 - * make all  
61 - 61 +```
  62 +cd v3270
  63 +make clean
  64 +make all
  65 +```
62 66
63 ### Compiling on Windows (With MSYS2) 67 ### Compiling on Windows (With MSYS2)
64 68
65 -1. Build and install lib3270  
66 -  
67 - * Follow the guide on https://github.com/PerryWerneck/lib3270 69 +1. Build and install [lib3270](../../../lib3270)
68 70
69 2. Install the required libraries 71 2. Install the required libraries
70 72
71 - * pacman -S mingw-w64-x86_64-gtk3 73 +```
  74 +pacman -S mingw-w64-x86_64-gtk3
  75 +```
72 76
73 2. Get libv3270 sources from git 77 2. Get libv3270 sources from git
74 78
75 - * git clone https://github.com/PerryWerneck/libv3270.git ./libv3270 79 +```
  80 +git clone https://github.com/PerryWerneck/libv3270.git ./libv3270
  81 +```
76 82
77 4. Build library using the mingw shell 83 4. Build library using the mingw shell
78 84
79 - * cd libv3270  
80 - * ./autogen.sh  
81 - * make all  
82 - 85 +```
  86 +cd libv3270
  87 +./autogen.sh
  88 +make all
  89 +```
83 90
84 ## Building for macOS (using homebrew) 91 ## Building for macOS (using homebrew)
85 92
src/dialogs/colorscheme.c
@@ -60,7 +60,7 @@ @@ -60,7 +60,7 @@
60 LAST_SIGNAL 60 LAST_SIGNAL
61 }; 61 };
62 62
63 - static guint color_signal[LAST_SIGNAL] = { 0 }; 63 + static guint signals[LAST_SIGNAL] = { 0 };
64 64
65 G_DEFINE_TYPE(V3270ColorScheme, V3270ColorScheme, GTK_TYPE_COMBO_BOX); 65 G_DEFINE_TYPE(V3270ColorScheme, V3270ColorScheme, GTK_TYPE_COMBO_BOX);
66 66
@@ -79,7 +79,7 @@ @@ -79,7 +79,7 @@
79 clr = g_value_get_pointer(&value); 79 clr = g_value_get_pointer(&value);
80 80
81 debug("%s=%p",__FUNCTION__,clr); 81 debug("%s=%p",__FUNCTION__,clr);
82 - g_signal_emit(widget, color_signal[CHANGED], 0, clr); 82 + g_signal_emit(widget, signals[CHANGED], 0, clr);
83 83
84 g_value_unset(&value); 84 g_value_unset(&value);
85 85
@@ -91,7 +91,7 @@ @@ -91,7 +91,7 @@
91 91
92 klass->parent_class.changed = changed; 92 klass->parent_class.changed = changed;
93 93
94 - color_signal[CHANGED] = 94 + signals[CHANGED] =
95 g_signal_new( 95 g_signal_new(
96 I_("update-colors"), 96 I_("update-colors"),
97 G_OBJECT_CLASS_TYPE (gobject_class), 97 G_OBJECT_CLASS_TYPE (gobject_class),
@@ -102,7 +102,7 @@ @@ -102,7 +102,7 @@
102 G_TYPE_NONE, 1, G_TYPE_POINTER, 0 102 G_TYPE_NONE, 1, G_TYPE_POINTER, 0
103 ); 103 );
104 104
105 - debug("changed_signal=%d",(int) color_signal[CHANGED]); 105 + debug("changed_signal=%d",(int) signals[CHANGED]);
106 106
107 } 107 }
108 108
@@ -268,7 +268,7 @@ @@ -268,7 +268,7 @@
268 g_message("Unable to load color schemes in \"%s\"",filename); 268 g_message("Unable to load color schemes in \"%s\"",filename);
269 #else 269 #else
270 g_warning("Unable to load color schemes in \"%s\"",filename); 270 g_warning("Unable to load color schemes in \"%s\"",filename);
271 -#endif 271 +#endif
272 gtk_widget_set_sensitive(widget,FALSE); 272 gtk_widget_set_sensitive(widget,FALSE);
273 return widget; 273 return widget;
274 } 274 }
src/dialogs/load.c
@@ -299,10 +299,9 @@ static void icon_press(GtkEntry *entry, G_GNUC_UNUSED GtkEntryIconPosition icon_ @@ -299,10 +299,9 @@ static void icon_press(GtkEntry *entry, G_GNUC_UNUSED GtkEntryIconPosition icon_
299 299
300 debug("next=%s",remains > 0 ? "YES" : "NO"); 300 debug("next=%s",remains > 0 ? "YES" : "NO");
301 301
302 - g_signal_emit( 302 + v3270_signal_emit(
303 dialog->terminal, 303 dialog->terminal,
304 - v3270_widget_signal[V3270_SIGNAL_PASTENEXT],  
305 - 0, 304 + V3270_SIGNAL_PASTENEXT,
306 remains > 0 305 remains > 0
307 ); 306 );
308 307
src/dialogs/print/print.c
@@ -93,7 +93,7 @@ @@ -93,7 +93,7 @@
93 93
94 } 94 }
95 95
96 - g_signal_emit(GTK_WIDGET(operation->widget), v3270_widget_signal[V3270_SIGNAL_PRINT_DONE], 0, prt, (guint) result); 96 + v3270_signal_emit(GTK_WIDGET(operation->widget), V3270_SIGNAL_PRINT_DONE, prt, (guint) result);
97 } 97 }
98 98
99 } 99 }
@@ -244,7 +244,7 @@ @@ -244,7 +244,7 @@
244 g_object_ref(G_OBJECT(opr->widget)); 244 g_object_ref(G_OBJECT(opr->widget));
245 } 245 }
246 246
247 - g_signal_emit(GTK_WIDGET(opr->widget), v3270_widget_signal[V3270_SIGNAL_PRINT_SETUP], 0, operation); 247 + v3270_signal_emit(GTK_WIDGET(opr->widget), V3270_SIGNAL_PRINT_SETUP, operation);
248 248
249 } 249 }
250 250
src/dialogs/settings/dialog.c
@@ -176,7 +176,7 @@ void v3270_settings_dialog_apply(GtkWidget *dialog) @@ -176,7 +176,7 @@ void v3270_settings_dialog_apply(GtkWidget *dialog)
176 176
177 // Don't delay save settings signal! 177 // Don't delay save settings signal!
178 GTK_V3270(terminal)->freeze = 0; 178 GTK_V3270(terminal)->freeze = 0;
179 - g_signal_emit(terminal,v3270_widget_signal[V3270_SIGNAL_SAVE_SETTINGS], 0, FALSE); 179 + v3270_signal_emit(terminal,V3270_SIGNAL_SAVE_SETTINGS, FALSE);
180 180
181 gdk_window_set_cursor( 181 gdk_window_set_cursor(
182 window, 182 window,
src/filetransfer/activitylist.c
@@ -66,7 +66,7 @@ @@ -66,7 +66,7 @@
66 66
67 G_DEFINE_TYPE(V3270FTActivityList, V3270FTActivityList, GTK_TYPE_TREE_VIEW); 67 G_DEFINE_TYPE(V3270FTActivityList, V3270FTActivityList, GTK_TYPE_TREE_VIEW);
68 68
69 - static guint v3270_activity_list_signals[V3270_ACTIVITY_LIST_LAST_SIGNAL] = { 0 }; 69 + static guint signals[V3270_ACTIVITY_LIST_LAST_SIGNAL] = { 0 };
70 70
71 /*--[ Implement ]------------------------------------------------------------------------------------*/ 71 /*--[ Implement ]------------------------------------------------------------------------------------*/
72 72
@@ -121,7 +121,7 @@ @@ -121,7 +121,7 @@
121 if(activity) 121 if(activity)
122 { 122 {
123 debug("%s: activity is %p",__FUNCTION__,activity); 123 debug("%s: activity is %p",__FUNCTION__,activity);
124 - g_signal_emit(view, v3270_activity_list_signals[V3270_ACTIVITY_LIST_SELECTED_SIGNAL], 0, activity); 124 + g_signal_emit(view, signals[V3270_ACTIVITY_LIST_SELECTED_SIGNAL], 0, activity);
125 } 125 }
126 126
127 } 127 }
@@ -138,7 +138,7 @@ @@ -138,7 +138,7 @@
138 138
139 klass->signal.has_file = V3270FTActivityList_has_file; 139 klass->signal.has_file = V3270FTActivityList_has_file;
140 140
141 - v3270_activity_list_signals[V3270_ACTIVITY_LIST_HAS_FILE_SIGNAL] = 141 + signals[V3270_ACTIVITY_LIST_HAS_FILE_SIGNAL] =
142 g_signal_new( I_("has-file"), 142 g_signal_new( I_("has-file"),
143 G_OBJECT_CLASS_TYPE (gobject_class), 143 G_OBJECT_CLASS_TYPE (gobject_class),
144 G_SIGNAL_RUN_FIRST, 144 G_SIGNAL_RUN_FIRST,
@@ -147,7 +147,7 @@ @@ -147,7 +147,7 @@
147 v3270ft_VOID__VOID_BOOLEAN, 147 v3270ft_VOID__VOID_BOOLEAN,
148 G_TYPE_NONE, 1, G_TYPE_BOOLEAN); 148 G_TYPE_NONE, 1, G_TYPE_BOOLEAN);
149 149
150 - v3270_activity_list_signals[V3270_ACTIVITY_LIST_SELECTED_SIGNAL] = 150 + signals[V3270_ACTIVITY_LIST_SELECTED_SIGNAL] =
151 g_signal_new( I_("changed"), 151 g_signal_new( I_("changed"),
152 G_OBJECT_CLASS_TYPE (gobject_class), 152 G_OBJECT_CLASS_TYPE (gobject_class),
153 G_SIGNAL_RUN_FIRST, 153 G_SIGNAL_RUN_FIRST,
@@ -286,7 +286,7 @@ @@ -286,7 +286,7 @@
286 { 286 {
287 debug("%s: Selecting inserted activity",__FUNCTION__); 287 debug("%s: Selecting inserted activity",__FUNCTION__);
288 gtk_tree_selection_select_iter(gtk_tree_view_get_selection(GTK_TREE_VIEW(widget)),&iter); 288 gtk_tree_selection_select_iter(gtk_tree_view_get_selection(GTK_TREE_VIEW(widget)),&iter);
289 - g_signal_emit(widget, v3270_activity_list_signals[V3270_ACTIVITY_LIST_SELECTED_SIGNAL], 0, activity); 289 + g_signal_emit(widget, signals[V3270_ACTIVITY_LIST_SELECTED_SIGNAL], 0, activity);
290 } 290 }
291 291
292 } 292 }
@@ -391,7 +391,7 @@ @@ -391,7 +391,7 @@
391 391
392 reload(widget); 392 reload(widget);
393 393
394 - g_signal_emit(widget, v3270_activity_list_signals[V3270_ACTIVITY_LIST_HAS_FILE_SIGNAL], 0, (list->filename == NULL ? FALSE : TRUE)); 394 + g_signal_emit(widget, signals[V3270_ACTIVITY_LIST_HAS_FILE_SIGNAL], 0, (list->filename == NULL ? FALSE : TRUE));
395 395
396 396
397 } 397 }
@@ -460,7 +460,7 @@ @@ -460,7 +460,7 @@
460 v3270_activity_list_save(widget); 460 v3270_activity_list_save(widget);
461 } 461 }
462 462
463 - g_signal_emit(widget, v3270_activity_list_signals[V3270_ACTIVITY_LIST_HAS_FILE_SIGNAL], 0, (list->filename == NULL ? FALSE : TRUE)); 463 + g_signal_emit(widget, signals[V3270_ACTIVITY_LIST_HAS_FILE_SIGNAL], 0, (list->filename == NULL ? FALSE : TRUE));
464 464
465 } 465 }
466 466
src/filetransfer/private.h
@@ -198,8 +198,6 @@ @@ -198,8 +198,6 @@
198 198
199 }; 199 };
200 200
201 - G_GNUC_INTERNAL guint v3270ftprogress_signal[V3270FTPROGRESS_SIGNAL_COUNT];  
202 -  
203 201
204 G_GNUC_INTERNAL void v3270ft_update_actions(v3270ft *dialog); 202 G_GNUC_INTERNAL void v3270ft_update_actions(v3270ft *dialog);
205 G_GNUC_INTERNAL void v3270ft_update_state(struct v3270ft_entry *entry); 203 G_GNUC_INTERNAL void v3270ft_update_state(struct v3270ft_entry *entry);
@@ -216,6 +214,7 @@ @@ -216,6 +214,7 @@
216 G_GNUC_INTERNAL struct v3270ft_entry * v3270ft_get_selected(v3270ft *dialog); 214 G_GNUC_INTERNAL struct v3270ft_entry * v3270ft_get_selected(v3270ft *dialog);
217 G_GNUC_INTERNAL struct v3270ft_entry * v3270ft_create_entry(void); 215 G_GNUC_INTERNAL struct v3270ft_entry * v3270ft_create_entry(void);
218 216
  217 + G_GNUC_INTERNAL void v3270ftprogress_signal_emit(gpointer instance, enum V3270FTPROGRESS_SIGNAL signal_id, ...);
219 218
220 219
221 #endif // PRIVATE_H_INCLUDED 220 #endif // PRIVATE_H_INCLUDED
src/filetransfer/settings.c
@@ -95,7 +95,7 @@ @@ -95,7 +95,7 @@
95 V3270_FT_SETTINGS_LAST_SIGNAL 95 V3270_FT_SETTINGS_LAST_SIGNAL
96 }; 96 };
97 97
98 - static guint v3270_ft_settings_signals[V3270_FT_SETTINGS_LAST_SIGNAL] = { 0 }; 98 + static guint signals[V3270_FT_SETTINGS_LAST_SIGNAL] = { 0 };
99 99
100 /*--[ Implement ]------------------------------------------------------------------------------------*/ 100 /*--[ Implement ]------------------------------------------------------------------------------------*/
101 101
@@ -116,7 +116,7 @@ static void V3270FTSettings_has_activity(GtkWidget G_GNUC_UNUSED(*widget), gbool @@ -116,7 +116,7 @@ static void V3270FTSettings_has_activity(GtkWidget G_GNUC_UNUSED(*widget), gbool
116 klass->signal.validity = V3270FTSettings_validity; 116 klass->signal.validity = V3270FTSettings_validity;
117 klass->signal.has_activity = V3270FTSettings_has_activity; 117 klass->signal.has_activity = V3270FTSettings_has_activity;
118 118
119 - v3270_ft_settings_signals[V3270_FT_SETTINGS_VALIDITY_SIGNAL] = 119 + signals[V3270_FT_SETTINGS_VALIDITY_SIGNAL] =
120 g_signal_new( I_("validity"), 120 g_signal_new( I_("validity"),
121 G_OBJECT_CLASS_TYPE (gobject_class), 121 G_OBJECT_CLASS_TYPE (gobject_class),
122 G_SIGNAL_RUN_FIRST, 122 G_SIGNAL_RUN_FIRST,
@@ -126,7 +126,7 @@ static void V3270FTSettings_has_activity(GtkWidget G_GNUC_UNUSED(*widget), gbool @@ -126,7 +126,7 @@ static void V3270FTSettings_has_activity(GtkWidget G_GNUC_UNUSED(*widget), gbool
126 G_TYPE_NONE, 1, G_TYPE_BOOLEAN); 126 G_TYPE_NONE, 1, G_TYPE_BOOLEAN);
127 127
128 128
129 - v3270_ft_settings_signals[V3270_FT_SETTINGS_HAS_ACTIVITY_SIGNAL] = 129 + signals[V3270_FT_SETTINGS_HAS_ACTIVITY_SIGNAL] =
130 g_signal_new( I_("has-activity"), 130 g_signal_new( I_("has-activity"),
131 G_OBJECT_CLASS_TYPE (gobject_class), 131 G_OBJECT_CLASS_TYPE (gobject_class),
132 G_SIGNAL_RUN_FIRST, 132 G_SIGNAL_RUN_FIRST,
@@ -272,7 +272,7 @@ static void open_select_file_dialog(GtkEntry *entry, G_GNUC_UNUSED GtkEntryIconP @@ -272,7 +272,7 @@ static void open_select_file_dialog(GtkEntry *entry, G_GNUC_UNUSED GtkEntryIconP
272 widget->transfer.is_valid = is_valid; 272 widget->transfer.is_valid = is_valid;
273 273
274 debug("Transfer is now \"%s\"", is_valid ? "valid" : "invalid"); 274 debug("Transfer is now \"%s\"", is_valid ? "valid" : "invalid");
275 - g_signal_emit(widget, v3270_ft_settings_signals[V3270_FT_SETTINGS_VALIDITY_SIGNAL], 0, widget->transfer.is_valid); 275 + g_signal_emit(widget, signals[V3270_FT_SETTINGS_VALIDITY_SIGNAL], 0, widget->transfer.is_valid);
276 276
277 } 277 }
278 278
@@ -607,7 +607,7 @@ static void open_select_file_dialog(GtkEntry *entry, G_GNUC_UNUSED GtkEntryIconP @@ -607,7 +607,7 @@ static void open_select_file_dialog(GtkEntry *entry, G_GNUC_UNUSED GtkEntryIconP
607 { 607 {
608 GTK_V3270_FT_SETTINGS(widget)->activity = activity; 608 GTK_V3270_FT_SETTINGS(widget)->activity = activity;
609 v3270_ft_settings_reset(widget); 609 v3270_ft_settings_reset(widget);
610 - g_signal_emit(widget, v3270_ft_settings_signals[V3270_FT_SETTINGS_HAS_ACTIVITY_SIGNAL], 0, (activity == NULL ? FALSE : TRUE)); 610 + g_signal_emit(widget, signals[V3270_FT_SETTINGS_HAS_ACTIVITY_SIGNAL], 0, (activity == NULL ? FALSE : TRUE));
611 } 611 }
612 612
613 LIB3270_EXPORT GObject * v3270_ft_settings_get_activity(GtkWidget *widget) 613 LIB3270_EXPORT GObject * v3270_ft_settings_get_activity(GtkWidget *widget)
src/filetransfer/v3270ftprogress.c
@@ -47,7 +47,7 @@ @@ -47,7 +47,7 @@
47 47
48 /*--[ Globals ]--------------------------------------------------------------------------------------*/ 48 /*--[ Globals ]--------------------------------------------------------------------------------------*/
49 49
50 -guint v3270ftprogress_signal[V3270FTPROGRESS_SIGNAL_COUNT] = { 0 }; 50 +static guint signals[V3270FTPROGRESS_SIGNAL_COUNT] = { 0 };
51 51
52 // http://www3.rocketsoftware.com/bluezone/help/v42/en/bz/DISPLAY/IND$FILE/IND$FILE_Technical_Reference.htm 52 // http://www3.rocketsoftware.com/bluezone/help/v42/en/bz/DISPLAY/IND$FILE/IND$FILE_Technical_Reference.htm
53 53
@@ -316,7 +316,7 @@ static void v3270ftprogress_class_init(v3270ftprogressClass *klass) { @@ -316,7 +316,7 @@ static void v3270ftprogress_class_init(v3270ftprogressClass *klass) {
316 dialog_class->response = dialog_response; 316 dialog_class->response = dialog_response;
317 dialog_class->close = dialog_close; 317 dialog_class->close = dialog_close;
318 318
319 - v3270ftprogress_signal[V3270FTPROGRESS_SIGNAL_SUCCESS] = 319 + signals[V3270FTPROGRESS_SIGNAL_SUCCESS] =
320 g_signal_new( I_("success"), 320 g_signal_new( I_("success"),
321 G_OBJECT_CLASS_TYPE (gobject_class), 321 G_OBJECT_CLASS_TYPE (gobject_class),
322 G_SIGNAL_RUN_FIRST | G_SIGNAL_ACTION, 322 G_SIGNAL_RUN_FIRST | G_SIGNAL_ACTION,
@@ -325,7 +325,7 @@ static void v3270ftprogress_class_init(v3270ftprogressClass *klass) { @@ -325,7 +325,7 @@ static void v3270ftprogress_class_init(v3270ftprogressClass *klass) {
325 v3270ft_VOID__POINTER_POINTER, 325 v3270ft_VOID__POINTER_POINTER,
326 G_TYPE_NONE, 2, G_TYPE_POINTER, G_TYPE_POINTER); 326 G_TYPE_NONE, 2, G_TYPE_POINTER, G_TYPE_POINTER);
327 327
328 - v3270ftprogress_signal[V3270FTPROGRESS_SIGNAL_FAILED] = 328 + signals[V3270FTPROGRESS_SIGNAL_FAILED] =
329 g_signal_new( I_("failed"), 329 g_signal_new( I_("failed"),
330 G_OBJECT_CLASS_TYPE (gobject_class), 330 G_OBJECT_CLASS_TYPE (gobject_class),
331 G_SIGNAL_RUN_FIRST | G_SIGNAL_ACTION, 331 G_SIGNAL_RUN_FIRST | G_SIGNAL_ACTION,
@@ -544,7 +544,7 @@ gboolean send_delayed_signal(struct delayed_signal *sig) { @@ -544,7 +544,7 @@ gboolean send_delayed_signal(struct delayed_signal *sig) {
544 lib3270_ft_destroy(sig->hSession,NULL); 544 lib3270_ft_destroy(sig->hSession,NULL);
545 545
546 if(userdata) { 546 if(userdata) {
547 - g_signal_emit(GTK_WIDGET(userdata),v3270ftprogress_signal[sig->signal], 0, sig->msg, sig->text); 547 + v3270ftprogress_signal_emit(GTK_WIDGET(userdata),sig->signal, sig->msg, sig->text);
548 } 548 }
549 549
550 return FALSE; 550 return FALSE;
@@ -718,7 +718,7 @@ static gboolean do_timer(v3270ftprogress *dialog) { @@ -718,7 +718,7 @@ static gboolean do_timer(v3270ftprogress *dialog) {
718 lib3270_ft_destroy(dialog->session,NULL); 718 lib3270_ft_destroy(dialog->session,NULL);
719 } 719 }
720 720
721 - g_signal_emit(GTK_WIDGET(dialog),v3270ftprogress_signal[V3270FTPROGRESS_SIGNAL_FAILED], 0, _( "Transfer failed" ), strerror(ETIMEDOUT)); 721 + v3270ftprogress_signal_emit(GTK_WIDGET(dialog),V3270FTPROGRESS_SIGNAL_FAILED, _( "Transfer failed" ), strerror(ETIMEDOUT));
722 } 722 }
723 723
724 return TRUE; 724 return TRUE;
@@ -753,11 +753,11 @@ void v3270ftprogress_start_transfer(GtkWidget *widget) { @@ -753,11 +753,11 @@ void v3270ftprogress_start_transfer(GtkWidget *widget) {
753 753
754 if(message && *message) { 754 if(message && *message) {
755 755
756 - g_signal_emit(GTK_WIDGET(widget),v3270ftprogress_signal[V3270FTPROGRESS_SIGNAL_FAILED], 0, message, NULL); 756 + v3270ftprogress_signal_emit(GTK_WIDGET(widget),V3270FTPROGRESS_SIGNAL_FAILED, message, NULL);
757 757
758 } else { 758 } else {
759 759
760 - g_signal_emit(GTK_WIDGET(widget),v3270ftprogress_signal[V3270FTPROGRESS_SIGNAL_FAILED], 0, _( "Can't start file transfer session" ), NULL); 760 + v3270ftprogress_signal_emit(GTK_WIDGET(widget),V3270FTPROGRESS_SIGNAL_FAILED, _( "Can't start file transfer session" ), NULL);
761 761
762 } 762 }
763 763
@@ -770,7 +770,7 @@ void v3270ftprogress_start_transfer(GtkWidget *widget) { @@ -770,7 +770,7 @@ void v3270ftprogress_start_transfer(GtkWidget *widget) {
770 if(!cbk) { 770 if(!cbk) {
771 771
772 lib3270_ft_destroy(dialog->session,NULL); 772 lib3270_ft_destroy(dialog->session,NULL);
773 - g_signal_emit(GTK_WIDGET(widget),v3270ftprogress_signal[V3270FTPROGRESS_SIGNAL_FAILED], 0, _( "Can't set callback table" ), NULL); 773 + v3270ftprogress_signal_emit(GTK_WIDGET(widget),V3270FTPROGRESS_SIGNAL_FAILED, _( "Can't set callback table" ), NULL);
774 774
775 return; 775 return;
776 } 776 }
@@ -802,3 +802,13 @@ void v3270ftprogress_start_transfer(GtkWidget *widget) { @@ -802,3 +802,13 @@ void v3270ftprogress_start_transfer(GtkWidget *widget) {
802 lib3270_ft_start(dialog->session); 802 lib3270_ft_start(dialog->session);
803 803
804 } 804 }
  805 +
  806 +void v3270ftprogress_signal_emit(gpointer instance, enum V3270FTPROGRESS_SIGNAL signal_id, ...)
  807 +{
  808 + va_list var_args;
  809 +
  810 + va_start (var_args, signal_id);
  811 + g_signal_emit_valist(instance, signals[signal_id], 0, var_args);
  812 + va_end (var_args);
  813 +
  814 +}
src/filetransfer/worker.c
@@ -76,7 +76,7 @@ @@ -76,7 +76,7 @@
76 76
77 G_DEFINE_TYPE(V3270FTWorker, V3270FTWorker, GTK_TYPE_GRID); 77 G_DEFINE_TYPE(V3270FTWorker, V3270FTWorker, GTK_TYPE_GRID);
78 78
79 - static guint v3270_worker_signals[V3270_WORKER_LAST_SIGNAL] = { 0 }; 79 + static guint signals[V3270_WORKER_LAST_SIGNAL] = { 0 };
80 80
81 /*--[ Implement ]------------------------------------------------------------------------------------*/ 81 /*--[ Implement ]------------------------------------------------------------------------------------*/
82 82
@@ -143,7 +143,7 @@ @@ -143,7 +143,7 @@
143 143
144 gobject_class->finalize = finalize; 144 gobject_class->finalize = finalize;
145 145
146 - v3270_worker_signals[V3270_WORKER_ACTIVITY_SIGNAL] = 146 + signals[V3270_WORKER_ACTIVITY_SIGNAL] =
147 g_signal_new( 147 g_signal_new(
148 I_("activity"), 148 I_("activity"),
149 G_OBJECT_CLASS_TYPE (gobject_class), 149 G_OBJECT_CLASS_TYPE (gobject_class),
@@ -154,7 +154,7 @@ @@ -154,7 +154,7 @@
154 G_TYPE_NONE, 1, G_TYPE_OBJECT 154 G_TYPE_NONE, 1, G_TYPE_OBJECT
155 ); 155 );
156 156
157 - v3270_worker_signals[V3270_WORKER_TRANSFER_FAILED_SIGNAL] = 157 + signals[V3270_WORKER_TRANSFER_FAILED_SIGNAL] =
158 g_signal_new( 158 g_signal_new(
159 I_("failed"), 159 I_("failed"),
160 G_OBJECT_CLASS_TYPE (gobject_class), 160 G_OBJECT_CLASS_TYPE (gobject_class),
@@ -165,7 +165,7 @@ @@ -165,7 +165,7 @@
165 G_TYPE_NONE, 2, G_TYPE_POINTER, G_TYPE_POINTER 165 G_TYPE_NONE, 2, G_TYPE_POINTER, G_TYPE_POINTER
166 ); 166 );
167 167
168 - v3270_worker_signals[V3270_WORKER_TRANSFER_SUCCESS_SIGNAL] = 168 + signals[V3270_WORKER_TRANSFER_SUCCESS_SIGNAL] =
169 g_signal_new( 169 g_signal_new(
170 I_("success"), 170 I_("success"),
171 G_OBJECT_CLASS_TYPE (gobject_class), 171 G_OBJECT_CLASS_TYPE (gobject_class),
@@ -176,7 +176,7 @@ @@ -176,7 +176,7 @@
176 G_TYPE_NONE, 2, G_TYPE_POINTER, G_TYPE_POINTER 176 G_TYPE_NONE, 2, G_TYPE_POINTER, G_TYPE_POINTER
177 ); 177 );
178 178
179 - v3270_worker_signals[V3270_WORKER_TRANSFER_STATE_SIGNAL] = 179 + signals[V3270_WORKER_TRANSFER_STATE_SIGNAL] =
180 g_signal_new( 180 g_signal_new(
181 I_("ft-state-changed"), 181 I_("ft-state-changed"),
182 G_OBJECT_CLASS_TYPE (gobject_class), 182 G_OBJECT_CLASS_TYPE (gobject_class),
@@ -328,7 +328,7 @@ @@ -328,7 +328,7 @@
328 gtk_entry_set_text(worker->field[ix],""); 328 gtk_entry_set_text(worker->field[ix],"");
329 } 329 }
330 330
331 - g_signal_emit(widget, v3270_worker_signals[V3270_WORKER_ACTIVITY_SIGNAL], 0, worker->activity); 331 + g_signal_emit(widget, signals[V3270_WORKER_ACTIVITY_SIGNAL], 0, worker->activity);
332 332
333 } 333 }
334 334
@@ -381,7 +381,7 @@ @@ -381,7 +381,7 @@
381 381
382 g_signal_emit( 382 g_signal_emit(
383 GTK_WIDGET(cfg->worker), 383 GTK_WIDGET(cfg->worker),
384 - v3270_worker_signals[cfg->signal], 384 + signals[cfg->signal],
385 0, 385 0,
386 cfg->msg, 386 cfg->msg,
387 description 387 description
@@ -522,7 +522,7 @@ @@ -522,7 +522,7 @@
522 522
523 static gboolean bg_emit_state_changed(struct bg_state_changed * cfg) 523 static gboolean bg_emit_state_changed(struct bg_state_changed * cfg)
524 { 524 {
525 - g_signal_emit(cfg->worker, v3270_worker_signals[V3270_WORKER_TRANSFER_STATE_SIGNAL], 0, (guint) cfg->st, cfg->msg); 525 + g_signal_emit(cfg->worker, signals[V3270_WORKER_TRANSFER_STATE_SIGNAL], 0, (guint) cfg->st, cfg->msg);
526 return FALSE; 526 return FALSE;
527 } 527 }
528 528
@@ -563,7 +563,7 @@ static gboolean do_timer(V3270FTWorker *worker) { @@ -563,7 +563,7 @@ static gboolean do_timer(V3270FTWorker *worker) {
563 563
564 g_signal_emit( 564 g_signal_emit(
565 GTK_WIDGET(worker), 565 GTK_WIDGET(worker),
566 - v3270_worker_signals[V3270_WORKER_TRANSFER_FAILED_SIGNAL], 566 + signals[V3270_WORKER_TRANSFER_FAILED_SIGNAL],
567 0, 567 0,
568 _( "Transfer failed" ), 568 _( "Transfer failed" ),
569 message 569 message
@@ -595,7 +595,7 @@ static gboolean do_timer(V3270FTWorker *worker) { @@ -595,7 +595,7 @@ static gboolean do_timer(V3270FTWorker *worker) {
595 pulse_stop(worker); 595 pulse_stop(worker);
596 596
597 // Emit "transfer failed" 597 // Emit "transfer failed"
598 - g_signal_emit(GTK_WIDGET(widget),v3270_worker_signals[V3270_WORKER_TRANSFER_FAILED_SIGNAL], 0, message, NULL); 598 + g_signal_emit(GTK_WIDGET(widget),signals[V3270_WORKER_TRANSFER_FAILED_SIGNAL], 0, message, NULL);
599 599
600 // Emit "no transfer" 600 // Emit "no transfer"
601 ft_state_changed(worker->hSession, LIB3270_FT_STATE_NONE, _("No transfer in progress"), widget); 601 ft_state_changed(worker->hSession, LIB3270_FT_STATE_NONE, _("No transfer in progress"), widget);
@@ -616,7 +616,7 @@ static gboolean do_timer(V3270FTWorker *worker) { @@ -616,7 +616,7 @@ static gboolean do_timer(V3270FTWorker *worker) {
616 616
617 g_signal_emit( 617 g_signal_emit(
618 GTK_WIDGET(widget), 618 GTK_WIDGET(widget),
619 - v3270_worker_signals[V3270_WORKER_TRANSFER_FAILED_SIGNAL], 619 + signals[V3270_WORKER_TRANSFER_FAILED_SIGNAL],
620 0, 620 0,
621 message, 621 message,
622 _("The callback table for file transfer was rejected, possible version mismatch on lib3270") 622 _("The callback table for file transfer was rejected, possible version mismatch on lib3270")
src/include/internals.h
@@ -75,7 +75,7 @@ @@ -75,7 +75,7 @@
75 //--[ Globals ]-------------------------------------------------------------------------------------- 75 //--[ Globals ]--------------------------------------------------------------------------------------
76 76
77 /// @brief V3270 Signal list 77 /// @brief V3270 Signal list
78 - enum 78 + enum V3270_SIGNAL
79 { 79 {
80 V3270_SIGNAL_TOGGLE_CHANGED, 80 V3270_SIGNAL_TOGGLE_CHANGED,
81 V3270_SIGNAL_MESSAGE_CHANGED, 81 V3270_SIGNAL_MESSAGE_CHANGED,
@@ -119,8 +119,6 @@ @@ -119,8 +119,6 @@
119 V3270_SIGNAL_LAST 119 V3270_SIGNAL_LAST
120 }; 120 };
121 121
122 - G_GNUC_INTERNAL guint v3270_widget_signal[V3270_SIGNAL_LAST];  
123 -  
124 /*--[ Constants ]------------------------------------------------------------------------------------*/ 122 /*--[ Constants ]------------------------------------------------------------------------------------*/
125 123
126 G_GNUC_INTERNAL const gchar * v3270_get_default_colors(); 124 G_GNUC_INTERNAL const gchar * v3270_get_default_colors();
@@ -135,6 +133,8 @@ @@ -135,6 +133,8 @@
135 G_GNUC_INTERNAL GtkWidget * v3270_dialog_create_grid(GtkAlign align); 133 G_GNUC_INTERNAL GtkWidget * v3270_dialog_create_grid(GtkAlign align);
136 G_GNUC_INTERNAL GtkWidget * v3270_dialog_create_frame(GtkWidget * child, const gchar *title); 134 G_GNUC_INTERNAL GtkWidget * v3270_dialog_create_frame(GtkWidget * child, const gchar *title);
137 135
  136 + G_GNUC_INTERNAL void v3270_signal_emit(gpointer instance, enum V3270_SIGNAL signal_id, ...);
  137 +
138 G_GNUC_INTERNAL void v3270_dialog_close(GtkDialog *dialog, gpointer user_data); 138 G_GNUC_INTERNAL void v3270_dialog_close(GtkDialog *dialog, gpointer user_data);
139 139
140 /// @brief Emit the "save-settings" signal. 140 /// @brief Emit the "save-settings" signal.
src/selection/selection.c
@@ -73,7 +73,7 @@ void v3270_emit_copy_state(GtkWidget *widget) @@ -73,7 +73,7 @@ void v3270_emit_copy_state(GtkWidget *widget)
73 73
74 debug("%s(%s)",__FUNCTION__,has_copy ? "TRUE" : "FALSE"); 74 debug("%s(%s)",__FUNCTION__,has_copy ? "TRUE" : "FALSE");
75 75
76 - g_signal_emit(widget,v3270_widget_signal[V3270_SIGNAL_CLIPBOARD], 0, has_copy); 76 + v3270_signal_emit(widget,V3270_SIGNAL_CLIPBOARD, has_copy);
77 g_object_notify_by_pspec(G_OBJECT(widget), GTK_V3270_GET_CLASS(widget)->properties.has_copy); 77 g_object_notify_by_pspec(G_OBJECT(widget), GTK_V3270_GET_CLASS(widget)->properties.has_copy);
78 78
79 lib3270_set_has_copy(GTK_V3270(widget)->host, has_copy ? 1 : 0); 79 lib3270_set_has_copy(GTK_V3270(widget)->host, has_copy ? 1 : 0);
src/selection/text.c
@@ -178,10 +178,9 @@ LIB3270_EXPORT void v3270_input_text(GtkWidget *widget, const gchar *text, const @@ -178,10 +178,9 @@ LIB3270_EXPORT void v3270_input_text(GtkWidget *widget, const gchar *text, const
178 178
179 if(error) 179 if(error)
180 { 180 {
181 - g_signal_emit( 181 + v3270_signal_emit(
182 widget, 182 widget,
183 - v3270_widget_signal[V3270_SIGNAL_PASTENEXT],  
184 - 0, 183 + V3270_SIGNAL_PASTENEXT,
185 FALSE 184 FALSE
186 ); 185 );
187 v3270_popup_gerror(widget,error,NULL,"%s",_("Can't paste text")); 186 v3270_popup_gerror(widget,error,NULL,"%s",_("Can't paste text"));
@@ -195,10 +194,9 @@ LIB3270_EXPORT void v3270_input_text(GtkWidget *widget, const gchar *text, const @@ -195,10 +194,9 @@ LIB3270_EXPORT void v3270_input_text(GtkWidget *widget, const gchar *text, const
195 (unsigned char *) buffer 194 (unsigned char *) buffer
196 ) ? TRUE : FALSE; 195 ) ? TRUE : FALSE;
197 196
198 - g_signal_emit( 197 + v3270_signal_emit(
199 widget, 198 widget,
200 - v3270_widget_signal[V3270_SIGNAL_PASTENEXT],  
201 - 0, 199 + V3270_SIGNAL_PASTENEXT,
202 remains > 0 200 remains > 0
203 ); 201 );
204 202
src/terminal/callbacks.c
@@ -67,10 +67,9 @@ static gboolean bg_update_message(H3270 *session) @@ -67,10 +67,9 @@ static gboolean bg_update_message(H3270 *session)
67 { 67 {
68 v3270 *terminal = (v3270 *) lib3270_get_user_data(session); 68 v3270 *terminal = (v3270 *) lib3270_get_user_data(session);
69 69
70 - g_signal_emit( 70 + v3270_signal_emit(
71 terminal, 71 terminal,
72 - v3270_widget_signal[V3270_SIGNAL_MESSAGE_CHANGED],  
73 - 0, 72 + V3270_SIGNAL_MESSAGE_CHANGED,
74 (gint) lib3270_get_program_message(session) 73 (gint) lib3270_get_program_message(session)
75 ); 74 );
76 75
@@ -93,7 +92,7 @@ static gboolean v3270_update_url(v3270 *terminal) @@ -93,7 +92,7 @@ static gboolean v3270_update_url(v3270 *terminal)
93 GtkWidget * widget = GTK_WIDGET(terminal); 92 GtkWidget * widget = GTK_WIDGET(terminal);
94 debug("url=%s",v3270_get_url(widget)); 93 debug("url=%s",v3270_get_url(widget));
95 v3270_notify_setting(widget,V3270_SETTING_URL); 94 v3270_notify_setting(widget,V3270_SETTING_URL);
96 - g_signal_emit(widget, v3270_widget_signal[V3270_SIGNAL_SESSION_CHANGED], 0); 95 + v3270_signal_emit(widget, V3270_SIGNAL_SESSION_CHANGED);
97 return FALSE; 96 return FALSE;
98 } 97 }
99 98
@@ -151,12 +150,12 @@ static void update_connect(H3270 *session, unsigned char connected) @@ -151,12 +150,12 @@ static void update_connect(H3270 *session, unsigned char connected)
151 if(connected) 150 if(connected)
152 { 151 {
153 widget->cursor.show |= 2; 152 widget->cursor.show |= 2;
154 - g_signal_emit(GTK_WIDGET(widget), v3270_widget_signal[V3270_SIGNAL_CONNECTED], 0, lib3270_get_url(session)); 153 + v3270_signal_emit(GTK_WIDGET(widget), V3270_SIGNAL_CONNECTED, lib3270_get_url(session));
155 } 154 }
156 else 155 else
157 { 156 {
158 widget->cursor.show &= ~2; 157 widget->cursor.show &= ~2;
159 - g_signal_emit(GTK_WIDGET(widget), v3270_widget_signal[V3270_SIGNAL_DISCONNECTED], 0); 158 + v3270_signal_emit(GTK_WIDGET(widget), V3270_SIGNAL_DISCONNECTED);
160 } 159 }
161 160
162 debug("%s(%p)",__FUNCTION__,GTK_V3270_GET_CLASS(widget)->properties.online); 161 debug("%s(%p)",__FUNCTION__,GTK_V3270_GET_CLASS(widget)->properties.online);
@@ -184,7 +183,7 @@ static void update_model(H3270 *session, const char *name, int model, G_GNUC_UNU @@ -184,7 +183,7 @@ static void update_model(H3270 *session, const char *name, int model, G_GNUC_UNU
184 debug("%s: terminal=%p pspec=%p",__FUNCTION__,widget,GTK_V3270_GET_CLASS(widget)->properties.settings[V3270_SETTING_MODEL_NUMBER]); 183 debug("%s: terminal=%p pspec=%p",__FUNCTION__,widget,GTK_V3270_GET_CLASS(widget)->properties.settings[V3270_SETTING_MODEL_NUMBER]);
185 g_object_notify_by_pspec(G_OBJECT(widget), GTK_V3270_GET_CLASS(widget)->properties.settings[V3270_SETTING_MODEL_NUMBER]); 184 g_object_notify_by_pspec(G_OBJECT(widget), GTK_V3270_GET_CLASS(widget)->properties.settings[V3270_SETTING_MODEL_NUMBER]);
186 185
187 - g_signal_emit(widget,v3270_widget_signal[V3270_SIGNAL_MODEL_CHANGED], 0, (guint) model, name); 186 + v3270_signal_emit(widget,V3270_SIGNAL_MODEL_CHANGED, (guint) model, name);
188 } 187 }
189 188
190 static void changed(H3270 *session, int offset, int len) 189 static void changed(H3270 *session, int offset, int len)
@@ -231,7 +230,7 @@ static void changed(H3270 *session, int offset, int len) @@ -231,7 +230,7 @@ static void changed(H3270 *session, int offset, int len)
231 gtk_widget_queue_draw(widget); 230 gtk_widget_queue_draw(widget);
232 #endif // WIN32 231 #endif // WIN32
233 232
234 - g_signal_emit(GTK_WIDGET(widget),v3270_widget_signal[V3270_SIGNAL_CHANGED], 0, (guint) offset, (guint) len); 233 + v3270_signal_emit(GTK_WIDGET(widget),V3270_SIGNAL_CHANGED, (guint) offset, (guint) len);
235 } 234 }
236 235
237 static void set_selection(H3270 *session, unsigned char status) 236 static void set_selection(H3270 *session, unsigned char status)
@@ -241,7 +240,7 @@ static void set_selection(H3270 *session, unsigned char status) @@ -241,7 +240,7 @@ static void set_selection(H3270 *session, unsigned char status)
241 debug("%s(%p)",__FUNCTION__,GTK_V3270_GET_CLASS(widget)->properties.selection); 240 debug("%s(%p)",__FUNCTION__,GTK_V3270_GET_CLASS(widget)->properties.selection);
242 g_object_notify_by_pspec(G_OBJECT(widget), GTK_V3270_GET_CLASS(widget)->properties.selection); 241 g_object_notify_by_pspec(G_OBJECT(widget), GTK_V3270_GET_CLASS(widget)->properties.selection);
243 242
244 - g_signal_emit(widget,v3270_widget_signal[V3270_SIGNAL_SELECTING], 0, status ? TRUE : FALSE); 243 + v3270_signal_emit(widget,V3270_SIGNAL_SELECTING, status ? TRUE : FALSE);
245 244
246 } 245 }
247 246
@@ -258,15 +257,17 @@ static void update_selection(H3270 *session, G_GNUC_UNUSED int start, G_GNUC_UNU @@ -258,15 +257,17 @@ static void update_selection(H3270 *session, G_GNUC_UNUSED int start, G_GNUC_UNU
258 257
259 static void message(H3270 *session, LIB3270_NOTIFY id , const char *title, const char *message, const char *text) 258 static void message(H3270 *session, LIB3270_NOTIFY id , const char *title, const char *message, const char *text)
260 { 259 {
261 - g_signal_emit( GTK_WIDGET(lib3270_get_user_data(session)), v3270_widget_signal[V3270_SIGNAL_MESSAGE], 0,  
262 - (int) id,  
263 - (gchar *) title,  
264 - (gchar *) message,  
265 - (gchar *) text ); 260 + v3270_signal_emit(
  261 + GTK_WIDGET(lib3270_get_user_data(session)),
  262 + V3270_SIGNAL_MESSAGE,
  263 + (int) id,
  264 + (gchar *) title,
  265 + (gchar *) message,
  266 + (gchar *) text
  267 + );
266 268
267 } 269 }
268 270
269 -  
270 static int print(H3270 *session, LIB3270_CONTENT_OPTION mode) 271 static int print(H3270 *session, LIB3270_CONTENT_OPTION mode)
271 { 272 {
272 return v3270_print_dialog(GTK_WIDGET(lib3270_get_user_data(session)), mode, NULL); 273 return v3270_print_dialog(GTK_WIDGET(lib3270_get_user_data(session)), mode, NULL);
src/terminal/keyboard.c
@@ -121,10 +121,9 @@ @@ -121,10 +121,9 @@
121 121
122 // Signal to the application. 122 // Signal to the application.
123 gboolean handled = FALSE; 123 gboolean handled = FALSE;
124 - g_signal_emit( 124 + v3270_signal_emit(
125 GTK_WIDGET(widget), 125 GTK_WIDGET(widget),
126 - v3270_widget_signal[V3270_SIGNAL_KEYPRESS],  
127 - 0, 126 + V3270_SIGNAL_KEYPRESS,
128 event->keyval, 127 event->keyval,
129 event->state & (GDK_SHIFT_MASK|GDK_CONTROL_MASK|GDK_MOD1_MASK), 128 event->state & (GDK_SHIFT_MASK|GDK_CONTROL_MASK|GDK_MOD1_MASK),
130 &handled 129 &handled
src/terminal/mouse.c
@@ -143,11 +143,13 @@ void v3270_emit_popup(v3270 *widget, int baddr, GdkEventButton *event) { @@ -143,11 +143,13 @@ void v3270_emit_popup(v3270 *widget, int baddr, GdkEventButton *event) {
143 143
144 lib3270_get_contents(widget->host,baddr,baddr,&chr,&attr); 144 lib3270_get_contents(widget->host,baddr,baddr,&chr,&attr);
145 145
146 - g_signal_emit(GTK_WIDGET(widget), v3270_widget_signal[V3270_SIGNAL_POPUP], 0,  
147 - (attr & LIB3270_ATTR_SELECTED) ? TRUE : FALSE,  
148 - lib3270_is_connected(widget->host) ? TRUE : FALSE,  
149 - event,  
150 - &handled); 146 + v3270_signal_emit( GTK_WIDGET(widget),
  147 + V3270_SIGNAL_POPUP,
  148 + (attr & LIB3270_ATTR_SELECTED) ? TRUE : FALSE,
  149 + lib3270_is_connected(widget->host) ? TRUE : FALSE,
  150 + event,
  151 + &handled
  152 + );
151 153
152 if(handled) 154 if(handled)
153 return; 155 return;
@@ -216,11 +218,12 @@ gboolean v3270_button_press_event(GtkWidget *widget, GdkEventButton *event) @@ -216,11 +218,12 @@ gboolean v3270_button_press_event(GtkWidget *widget, GdkEventButton *event)
216 { 218 {
217 gboolean handled = FALSE; 219 gboolean handled = FALSE;
218 220
219 - g_signal_emit(widget, v3270_widget_signal[V3270_SIGNAL_OIA_POPUP],  
220 - 0,  
221 - (guint) field,  
222 - event,  
223 - &handled); 221 + v3270_signal_emit(
  222 + widget, V3270_SIGNAL_OIA_POPUP,
  223 + (guint) field,
  224 + event,
  225 + &handled
  226 + );
224 227
225 if(!handled) 228 if(!handled)
226 gdk_display_beep(gtk_widget_get_display(widget)); 229 gdk_display_beep(gtk_widget_get_display(widget));
@@ -255,11 +258,14 @@ gboolean v3270_button_release_event(GtkWidget *widget, GdkEventButton*event) { @@ -255,11 +258,14 @@ gboolean v3270_button_release_event(GtkWidget *widget, GdkEventButton*event) {
255 gboolean connected = lib3270_is_connected(terminal->host) ? TRUE : FALSE; 258 gboolean connected = lib3270_is_connected(terminal->host) ? TRUE : FALSE;
256 V3270_OIA_FIELD field = terminal->oia.selected; 259 V3270_OIA_FIELD field = terminal->oia.selected;
257 260
258 - g_signal_emit(widget, v3270_widget_signal[V3270_SIGNAL_FIELD], 0,  
259 - connected,  
260 - field,  
261 - event,  
262 - &handled); 261 + v3270_signal_emit(
  262 + widget,
  263 + V3270_SIGNAL_FIELD,
  264 + connected,
  265 + field,
  266 + event,
  267 + &handled
  268 + );
263 269
264 debug("Field click was %s", handled ? "Handled" : "Not handled"); 270 debug("Field click was %s", handled ? "Handled" : "Not handled");
265 271
src/terminal/properties/set.c
@@ -216,7 +216,7 @@ LIB3270_EXPORT void v3270_set_session_name(GtkWidget *widget, const gchar *name) @@ -216,7 +216,7 @@ LIB3270_EXPORT void v3270_set_session_name(GtkWidget *widget, const gchar *name)
216 216
217 g_message("Session name changes to \"%s\"",terminal->session.name); 217 g_message("Session name changes to \"%s\"",terminal->session.name);
218 218
219 - g_signal_emit(GTK_WIDGET(widget), v3270_widget_signal[V3270_SIGNAL_SESSION_CHANGED], 0); 219 + v3270_signal_emit(GTK_WIDGET(widget), V3270_SIGNAL_SESSION_CHANGED);
220 g_object_notify_by_pspec(G_OBJECT(widget), GTK_V3270_GET_CLASS(widget)->properties.session_name); 220 g_object_notify_by_pspec(G_OBJECT(widget), GTK_V3270_GET_CLASS(widget)->properties.session_name);
221 221
222 } 222 }
src/terminal/toggles.c
@@ -123,7 +123,7 @@ void v3270_update_toggle(GtkWidget *widget, LIB3270_TOGGLE_ID id, unsigned char @@ -123,7 +123,7 @@ void v3270_update_toggle(GtkWidget *widget, LIB3270_TOGGLE_ID id, unsigned char
123 123
124 debug("%s: pspec=%p",__FUNCTION__,klass->properties.toggle[id]); 124 debug("%s: pspec=%p",__FUNCTION__,klass->properties.toggle[id]);
125 g_object_notify_by_pspec(G_OBJECT(widget), klass->properties.toggle[id]); 125 g_object_notify_by_pspec(G_OBJECT(widget), klass->properties.toggle[id]);
126 - g_signal_emit(widget, v3270_widget_signal[V3270_SIGNAL_TOGGLE_CHANGED], 0, (guint) id, (gboolean) (value != 0), (gchar *) name); 126 + v3270_signal_emit(widget, V3270_SIGNAL_TOGGLE_CHANGED, (guint) id, (gboolean) (value != 0), (gchar *) name);
127 127
128 // Can't emit the signal on every toggle change because, sometimes, the saving of the settings file takes time. 128 // Can't emit the signal on every toggle change because, sometimes, the saving of the settings file takes time.
129 // v3270_emit_save_settings(widget); 129 // v3270_emit_save_settings(widget);
src/terminal/widget.c
@@ -64,7 +64,7 @@ @@ -64,7 +64,7 @@
64 64
65 /*--[ Globals ]--------------------------------------------------------------------------------------*/ 65 /*--[ Globals ]--------------------------------------------------------------------------------------*/
66 66
67 - guint v3270_widget_signal[V3270_SIGNAL_LAST] = { 0 }; 67 +static guint v3270_widget_signal[V3270_SIGNAL_LAST] = { 0 };
68 68
69 /*--[ Prototipes ]-----------------------------------------------------------------------------------*/ 69 /*--[ Prototipes ]-----------------------------------------------------------------------------------*/
70 70
@@ -824,3 +824,14 @@ void v3270_emit_save_settings(GtkWidget *widget) @@ -824,3 +824,14 @@ void v3270_emit_save_settings(GtkWidget *widget)
824 } 824 }
825 } 825 }
826 826
  827 +void v3270_signal_emit(gpointer instance, enum V3270_SIGNAL signal_id, ...)
  828 +{
  829 + va_list var_args;
  830 +
  831 + va_start (var_args, signal_id);
  832 + g_signal_emit_valist(instance, v3270_widget_signal[signal_id], 0, var_args);
  833 + va_end (var_args);
  834 +
  835 +}
  836 +
  837 +
src/trace/exec.c
@@ -317,7 +317,7 @@ @@ -317,7 +317,7 @@
317 if(*args) 317 if(*args)
318 *(args++) = 0; 318 *(args++) = 0;
319 319
320 - g_signal_emit(GTK_WIDGET(t), v3270_trace_signal[V3270_TRACE_SIGNAL_COMMAND], 0, cmdline, args, &handled); 320 + v3270_trace_signal_emit(GTK_WIDGET(t), V3270_TRACE_SIGNAL_COMMAND, cmdline, args, &handled);
321 321
322 if(handled) 322 if(handled)
323 return 0; 323 return 0;
src/trace/private.h
@@ -47,19 +47,18 @@ @@ -47,19 +47,18 @@
47 #include <lib3270/trace.h> 47 #include <lib3270/trace.h>
48 48
49 /// @brief V3270 Trace Signal list 49 /// @brief V3270 Trace Signal list
50 - enum 50 + enum V3270_TRACE_SIGNAL
51 { 51 {
52 V3270_TRACE_SIGNAL_COMMAND, 52 V3270_TRACE_SIGNAL_COMMAND,
53 53
54 V3270_TRACE_SIGNAL_LAST 54 V3270_TRACE_SIGNAL_LAST
55 }; 55 };
56 56
57 - G_GNUC_INTERNAL guint v3270_trace_signal[V3270_TRACE_SIGNAL_LAST];  
58 -  
59 G_GNUC_INTERNAL H3270 * v3270_trace_get_session(GtkWidget *widget); 57 G_GNUC_INTERNAL H3270 * v3270_trace_get_session(GtkWidget *widget);
60 G_GNUC_INTERNAL GtkWidget * v3270_trace_get_terminal(GtkWidget *widget); 58 G_GNUC_INTERNAL GtkWidget * v3270_trace_get_terminal(GtkWidget *widget);
61 G_GNUC_INTERNAL GtkTextBuffer * v3270_trace_get_text_buffer(GtkWidget *widget); 59 G_GNUC_INTERNAL GtkTextBuffer * v3270_trace_get_text_buffer(GtkWidget *widget);
62 G_GNUC_INTERNAL GtkScrolledWindow * v3270_trace_get_scrolled_window(GtkWidget *widget); 60 G_GNUC_INTERNAL GtkScrolledWindow * v3270_trace_get_scrolled_window(GtkWidget *widget);
  61 + G_GNUC_INTERNAL void v3270_trace_signal_emit(gpointer instance, enum V3270_TRACE_SIGNAL signal_id, ...);
63 62
64 G_BEGIN_DECLS 63 G_BEGIN_DECLS
65 64
src/trace/trace.c
@@ -91,7 +91,7 @@ @@ -91,7 +91,7 @@
91 91
92 }; 92 };
93 93
94 - guint v3270_trace_signal[V3270_TRACE_SIGNAL_LAST] = { 0 }; 94 + static guint v3270_trace_signal[V3270_TRACE_SIGNAL_LAST] = { 0 };
95 95
96 G_DEFINE_TYPE(V3270Trace, V3270Trace, GTK_TYPE_BOX); 96 G_DEFINE_TYPE(V3270Trace, V3270Trace, GTK_TYPE_BOX);
97 97
@@ -535,4 +535,15 @@ @@ -535,4 +535,15 @@
535 return GTK_V3270_TRACE(widget)->scroll; 535 return GTK_V3270_TRACE(widget)->scroll;
536 } 536 }
537 537
  538 + void v3270_trace_signal_emit(gpointer instance, enum V3270_TRACE_SIGNAL signal_id, ...)
  539 + {
  540 +
  541 + va_list var_args;
  542 +
  543 + va_start (var_args, signal_id);
  544 + g_signal_emit_valist(instance, (guint) v3270_trace_signal[signal_id], 0, var_args);
  545 + va_end (var_args);
  546 +
  547 + }
  548 +
538 549