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
README.md
... ... @@ -40,46 +40,53 @@ sudo zypper ref
40 40  
41 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 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 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 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 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 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 91 ## Building for macOS (using homebrew)
85 92  
... ...
src/dialogs/colorscheme.c
... ... @@ -60,7 +60,7 @@
60 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 65 G_DEFINE_TYPE(V3270ColorScheme, V3270ColorScheme, GTK_TYPE_COMBO_BOX);
66 66  
... ... @@ -79,7 +79,7 @@
79 79 clr = g_value_get_pointer(&value);
80 80  
81 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 84 g_value_unset(&value);
85 85  
... ... @@ -91,7 +91,7 @@
91 91  
92 92 klass->parent_class.changed = changed;
93 93  
94   - color_signal[CHANGED] =
  94 + signals[CHANGED] =
95 95 g_signal_new(
96 96 I_("update-colors"),
97 97 G_OBJECT_CLASS_TYPE (gobject_class),
... ... @@ -102,7 +102,7 @@
102 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 268 g_message("Unable to load color schemes in \"%s\"",filename);
269 269 #else
270 270 g_warning("Unable to load color schemes in \"%s\"",filename);
271   -#endif
  271 +#endif
272 272 gtk_widget_set_sensitive(widget,FALSE);
273 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 299  
300 300 debug("next=%s",remains > 0 ? "YES" : "NO");
301 301  
302   - g_signal_emit(
  302 + v3270_signal_emit(
303 303 dialog->terminal,
304   - v3270_widget_signal[V3270_SIGNAL_PASTENEXT],
305   - 0,
  304 + V3270_SIGNAL_PASTENEXT,
306 305 remains > 0
307 306 );
308 307  
... ...
src/dialogs/print/print.c
... ... @@ -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 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 176  
177 177 // Don't delay save settings signal!
178 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 181 gdk_window_set_cursor(
182 182 window,
... ...
src/filetransfer/activitylist.c
... ... @@ -66,7 +66,7 @@
66 66  
67 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 71 /*--[ Implement ]------------------------------------------------------------------------------------*/
72 72  
... ... @@ -121,7 +121,7 @@
121 121 if(activity)
122 122 {
123 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 138  
139 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 142 g_signal_new( I_("has-file"),
143 143 G_OBJECT_CLASS_TYPE (gobject_class),
144 144 G_SIGNAL_RUN_FIRST,
... ... @@ -147,7 +147,7 @@
147 147 v3270ft_VOID__VOID_BOOLEAN,
148 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 151 g_signal_new( I_("changed"),
152 152 G_OBJECT_CLASS_TYPE (gobject_class),
153 153 G_SIGNAL_RUN_FIRST,
... ... @@ -286,7 +286,7 @@
286 286 {
287 287 debug("%s: Selecting inserted activity",__FUNCTION__);
288 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 391  
392 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 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 198  
199 199 };
200 200  
201   - G_GNUC_INTERNAL guint v3270ftprogress_signal[V3270FTPROGRESS_SIGNAL_COUNT];
202   -
203 201  
204 202 G_GNUC_INTERNAL void v3270ft_update_actions(v3270ft *dialog);
205 203 G_GNUC_INTERNAL void v3270ft_update_state(struct v3270ft_entry *entry);
... ... @@ -216,6 +214,7 @@
216 214 G_GNUC_INTERNAL struct v3270ft_entry * v3270ft_get_selected(v3270ft *dialog);
217 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 220 #endif // PRIVATE_H_INCLUDED
... ...
src/filetransfer/settings.c
... ... @@ -95,7 +95,7 @@
95 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 100 /*--[ Implement ]------------------------------------------------------------------------------------*/
101 101  
... ... @@ -116,7 +116,7 @@ static void V3270FTSettings_has_activity(GtkWidget G_GNUC_UNUSED(*widget), gbool
116 116 klass->signal.validity = V3270FTSettings_validity;
117 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 120 g_signal_new( I_("validity"),
121 121 G_OBJECT_CLASS_TYPE (gobject_class),
122 122 G_SIGNAL_RUN_FIRST,
... ... @@ -126,7 +126,7 @@ static void V3270FTSettings_has_activity(GtkWidget G_GNUC_UNUSED(*widget), gbool
126 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 130 g_signal_new( I_("has-activity"),
131 131 G_OBJECT_CLASS_TYPE (gobject_class),
132 132 G_SIGNAL_RUN_FIRST,
... ... @@ -272,7 +272,7 @@ static void open_select_file_dialog(GtkEntry *entry, G_GNUC_UNUSED GtkEntryIconP
272 272 widget->transfer.is_valid = is_valid;
273 273  
274 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 607 {
608 608 GTK_V3270_FT_SETTINGS(widget)->activity = activity;
609 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 613 LIB3270_EXPORT GObject * v3270_ft_settings_get_activity(GtkWidget *widget)
... ...
src/filetransfer/v3270ftprogress.c
... ... @@ -47,7 +47,7 @@
47 47  
48 48 /*--[ Globals ]--------------------------------------------------------------------------------------*/
49 49  
50   -guint v3270ftprogress_signal[V3270FTPROGRESS_SIGNAL_COUNT] = { 0 };
  50 +static guint signals[V3270FTPROGRESS_SIGNAL_COUNT] = { 0 };
51 51  
52 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 316 dialog_class->response = dialog_response;
317 317 dialog_class->close = dialog_close;
318 318  
319   - v3270ftprogress_signal[V3270FTPROGRESS_SIGNAL_SUCCESS] =
  319 + signals[V3270FTPROGRESS_SIGNAL_SUCCESS] =
320 320 g_signal_new( I_("success"),
321 321 G_OBJECT_CLASS_TYPE (gobject_class),
322 322 G_SIGNAL_RUN_FIRST | G_SIGNAL_ACTION,
... ... @@ -325,7 +325,7 @@ static void v3270ftprogress_class_init(v3270ftprogressClass *klass) {
325 325 v3270ft_VOID__POINTER_POINTER,
326 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 329 g_signal_new( I_("failed"),
330 330 G_OBJECT_CLASS_TYPE (gobject_class),
331 331 G_SIGNAL_RUN_FIRST | G_SIGNAL_ACTION,
... ... @@ -544,7 +544,7 @@ gboolean send_delayed_signal(struct delayed_signal *sig) {
544 544 lib3270_ft_destroy(sig->hSession,NULL);
545 545  
546 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 550 return FALSE;
... ... @@ -718,7 +718,7 @@ static gboolean do_timer(v3270ftprogress *dialog) {
718 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 724 return TRUE;
... ... @@ -753,11 +753,11 @@ void v3270ftprogress_start_transfer(GtkWidget *widget) {
753 753  
754 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 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 770 if(!cbk) {
771 771  
772 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 775 return;
776 776 }
... ... @@ -802,3 +802,13 @@ void v3270ftprogress_start_transfer(GtkWidget *widget) {
802 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 76  
77 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 81 /*--[ Implement ]------------------------------------------------------------------------------------*/
82 82  
... ... @@ -143,7 +143,7 @@
143 143  
144 144 gobject_class->finalize = finalize;
145 145  
146   - v3270_worker_signals[V3270_WORKER_ACTIVITY_SIGNAL] =
  146 + signals[V3270_WORKER_ACTIVITY_SIGNAL] =
147 147 g_signal_new(
148 148 I_("activity"),
149 149 G_OBJECT_CLASS_TYPE (gobject_class),
... ... @@ -154,7 +154,7 @@
154 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 158 g_signal_new(
159 159 I_("failed"),
160 160 G_OBJECT_CLASS_TYPE (gobject_class),
... ... @@ -165,7 +165,7 @@
165 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 169 g_signal_new(
170 170 I_("success"),
171 171 G_OBJECT_CLASS_TYPE (gobject_class),
... ... @@ -176,7 +176,7 @@
176 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 180 g_signal_new(
181 181 I_("ft-state-changed"),
182 182 G_OBJECT_CLASS_TYPE (gobject_class),
... ... @@ -328,7 +328,7 @@
328 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 381  
382 382 g_signal_emit(
383 383 GTK_WIDGET(cfg->worker),
384   - v3270_worker_signals[cfg->signal],
  384 + signals[cfg->signal],
385 385 0,
386 386 cfg->msg,
387 387 description
... ... @@ -522,7 +522,7 @@
522 522  
523 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 526 return FALSE;
527 527 }
528 528  
... ... @@ -563,7 +563,7 @@ static gboolean do_timer(V3270FTWorker *worker) {
563 563  
564 564 g_signal_emit(
565 565 GTK_WIDGET(worker),
566   - v3270_worker_signals[V3270_WORKER_TRANSFER_FAILED_SIGNAL],
  566 + signals[V3270_WORKER_TRANSFER_FAILED_SIGNAL],
567 567 0,
568 568 _( "Transfer failed" ),
569 569 message
... ... @@ -595,7 +595,7 @@ static gboolean do_timer(V3270FTWorker *worker) {
595 595 pulse_stop(worker);
596 596  
597 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 600 // Emit "no transfer"
601 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 616  
617 617 g_signal_emit(
618 618 GTK_WIDGET(widget),
619   - v3270_worker_signals[V3270_WORKER_TRANSFER_FAILED_SIGNAL],
  619 + signals[V3270_WORKER_TRANSFER_FAILED_SIGNAL],
620 620 0,
621 621 message,
622 622 _("The callback table for file transfer was rejected, possible version mismatch on lib3270")
... ...
src/include/internals.h
... ... @@ -75,7 +75,7 @@
75 75 //--[ Globals ]--------------------------------------------------------------------------------------
76 76  
77 77 /// @brief V3270 Signal list
78   - enum
  78 + enum V3270_SIGNAL
79 79 {
80 80 V3270_SIGNAL_TOGGLE_CHANGED,
81 81 V3270_SIGNAL_MESSAGE_CHANGED,
... ... @@ -119,8 +119,6 @@
119 119 V3270_SIGNAL_LAST
120 120 };
121 121  
122   - G_GNUC_INTERNAL guint v3270_widget_signal[V3270_SIGNAL_LAST];
123   -
124 122 /*--[ Constants ]------------------------------------------------------------------------------------*/
125 123  
126 124 G_GNUC_INTERNAL const gchar * v3270_get_default_colors();
... ... @@ -135,6 +133,8 @@
135 133 G_GNUC_INTERNAL GtkWidget * v3270_dialog_create_grid(GtkAlign align);
136 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 138 G_GNUC_INTERNAL void v3270_dialog_close(GtkDialog *dialog, gpointer user_data);
139 139  
140 140 /// @brief Emit the "save-settings" signal.
... ...
src/selection/selection.c
... ... @@ -73,7 +73,7 @@ void v3270_emit_copy_state(GtkWidget *widget)
73 73  
74 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 77 g_object_notify_by_pspec(G_OBJECT(widget), GTK_V3270_GET_CLASS(widget)->properties.has_copy);
78 78  
79 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 178  
179 179 if(error)
180 180 {
181   - g_signal_emit(
  181 + v3270_signal_emit(
182 182 widget,
183   - v3270_widget_signal[V3270_SIGNAL_PASTENEXT],
184   - 0,
  183 + V3270_SIGNAL_PASTENEXT,
185 184 FALSE
186 185 );
187 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 194 (unsigned char *) buffer
196 195 ) ? TRUE : FALSE;
197 196  
198   - g_signal_emit(
  197 + v3270_signal_emit(
199 198 widget,
200   - v3270_widget_signal[V3270_SIGNAL_PASTENEXT],
201   - 0,
  199 + V3270_SIGNAL_PASTENEXT,
202 200 remains > 0
203 201 );
204 202  
... ...
src/terminal/callbacks.c
... ... @@ -67,10 +67,9 @@ static gboolean bg_update_message(H3270 *session)
67 67 {
68 68 v3270 *terminal = (v3270 *) lib3270_get_user_data(session);
69 69  
70   - g_signal_emit(
  70 + v3270_signal_emit(
71 71 terminal,
72   - v3270_widget_signal[V3270_SIGNAL_MESSAGE_CHANGED],
73   - 0,
  72 + V3270_SIGNAL_MESSAGE_CHANGED,
74 73 (gint) lib3270_get_program_message(session)
75 74 );
76 75  
... ... @@ -93,7 +92,7 @@ static gboolean v3270_update_url(v3270 *terminal)
93 92 GtkWidget * widget = GTK_WIDGET(terminal);
94 93 debug("url=%s",v3270_get_url(widget));
95 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 96 return FALSE;
98 97 }
99 98  
... ... @@ -151,12 +150,12 @@ static void update_connect(H3270 *session, unsigned char connected)
151 150 if(connected)
152 151 {
153 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 155 else
157 156 {
158 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 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 183 debug("%s: terminal=%p pspec=%p",__FUNCTION__,widget,GTK_V3270_GET_CLASS(widget)->properties.settings[V3270_SETTING_MODEL_NUMBER]);
185 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 189 static void changed(H3270 *session, int offset, int len)
... ... @@ -231,7 +230,7 @@ static void changed(H3270 *session, int offset, int len)
231 230 gtk_widget_queue_draw(widget);
232 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 236 static void set_selection(H3270 *session, unsigned char status)
... ... @@ -241,7 +240,7 @@ static void set_selection(H3270 *session, unsigned char status)
241 240 debug("%s(%p)",__FUNCTION__,GTK_V3270_GET_CLASS(widget)->properties.selection);
242 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 257  
259 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 271 static int print(H3270 *session, LIB3270_CONTENT_OPTION mode)
271 272 {
272 273 return v3270_print_dialog(GTK_WIDGET(lib3270_get_user_data(session)), mode, NULL);
... ...
src/terminal/keyboard.c
... ... @@ -121,10 +121,9 @@
121 121  
122 122 // Signal to the application.
123 123 gboolean handled = FALSE;
124   - g_signal_emit(
  124 + v3270_signal_emit(
125 125 GTK_WIDGET(widget),
126   - v3270_widget_signal[V3270_SIGNAL_KEYPRESS],
127   - 0,
  126 + V3270_SIGNAL_KEYPRESS,
128 127 event->keyval,
129 128 event->state & (GDK_SHIFT_MASK|GDK_CONTROL_MASK|GDK_MOD1_MASK),
130 129 &handled
... ...
src/terminal/mouse.c
... ... @@ -143,11 +143,13 @@ void v3270_emit_popup(v3270 *widget, int baddr, GdkEventButton *event) {
143 143  
144 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 154 if(handled)
153 155 return;
... ... @@ -216,11 +218,12 @@ gboolean v3270_button_press_event(GtkWidget *widget, GdkEventButton *event)
216 218 {
217 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 228 if(!handled)
226 229 gdk_display_beep(gtk_widget_get_display(widget));
... ... @@ -255,11 +258,14 @@ gboolean v3270_button_release_event(GtkWidget *widget, GdkEventButton*event) {
255 258 gboolean connected = lib3270_is_connected(terminal->host) ? TRUE : FALSE;
256 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 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 216  
217 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 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 123  
124 124 debug("%s: pspec=%p",__FUNCTION__,klass->properties.toggle[id]);
125 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 128 // Can't emit the signal on every toggle change because, sometimes, the saving of the settings file takes time.
129 129 // v3270_emit_save_settings(widget);
... ...
src/terminal/widget.c
... ... @@ -64,7 +64,7 @@
64 64  
65 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 69 /*--[ Prototipes ]-----------------------------------------------------------------------------------*/
70 70  
... ... @@ -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 317 if(*args)
318 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 322 if(handled)
323 323 return 0;
... ...
src/trace/private.h
... ... @@ -47,19 +47,18 @@
47 47 #include <lib3270/trace.h>
48 48  
49 49 /// @brief V3270 Trace Signal list
50   - enum
  50 + enum V3270_TRACE_SIGNAL
51 51 {
52 52 V3270_TRACE_SIGNAL_COMMAND,
53 53  
54 54 V3270_TRACE_SIGNAL_LAST
55 55 };
56 56  
57   - G_GNUC_INTERNAL guint v3270_trace_signal[V3270_TRACE_SIGNAL_LAST];
58   -
59 57 G_GNUC_INTERNAL H3270 * v3270_trace_get_session(GtkWidget *widget);
60 58 G_GNUC_INTERNAL GtkWidget * v3270_trace_get_terminal(GtkWidget *widget);
61 59 G_GNUC_INTERNAL GtkTextBuffer * v3270_trace_get_text_buffer(GtkWidget *widget);
62 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 63 G_BEGIN_DECLS
65 64  
... ...
src/trace/trace.c
... ... @@ -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 96 G_DEFINE_TYPE(V3270Trace, V3270Trace, GTK_TYPE_BOX);
97 97  
... ... @@ -535,4 +535,15 @@
535 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  
... ...