Commit 9a3b40f4d12e75a51eb551f344829ac5f303c4ff
Committed by
GitHub
Exists in
master
and in
1 other branch
Merge pull request #6 from PerryWerneck/develop
Fixing arch builds, updating read.me
Showing
22 changed files
with
156 additions
and
116 deletions
Show diff stats
README.md
| @@ -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 |