From 20a7ff89b2ab283e91e34f4f80a459cc03d9be2e Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Thu, 2 Jun 2016 16:05:11 -0300 Subject: [PATCH] Passando gerĂȘncia do ponteiro do mouse para a lib3270 --- mouse.c | 67 ++++++++++--------------------------------------------------------- private.h | 7 ++++--- widget.c | 10 +++++----- 3 files changed, 19 insertions(+), 65 deletions(-) diff --git a/mouse.c b/mouse.c index 70d3fff..ca13f11 100644 --- a/mouse.c +++ b/mouse.c @@ -224,59 +224,12 @@ gboolean v3270_button_release_event(GtkWidget *widget, GdkEventButton*event) static void update_mouse_pointer(GtkWidget *widget, int baddr) { v3270 * terminal = GTK_V3270(widget); - int id = 0; +// int id = 0; - if(baddr >= 0 && terminal->pointer_id == LIB3270_CURSOR_EDITABLE) + if(baddr >= 0 && terminal->pointer_id == LIB3270_POINTER_UNLOCKED) { - - switch(lib3270_get_selection_flags(terminal->host,baddr) & 0x8f) - { - case 0x80: - id = V3270_CURSOR_MOVE_SELECTION; - break; - - case 0x82: - id = V3270_CURSOR_SELECTION_TOP; - break; - - case 0x86: - id = V3270_CURSOR_SELECTION_TOP_RIGHT; - break; - - case 0x84: - id = V3270_CURSOR_SELECTION_RIGHT; - break; - - case 0x81: - id = V3270_CURSOR_SELECTION_LEFT; - break; - - case 0x89: - id = V3270_CURSOR_SELECTION_BOTTOM_LEFT; - break; - - case 0x88: - id = V3270_CURSOR_SELECTION_BOTTOM; - break; - - case 0x8c: - id = V3270_CURSOR_SELECTION_BOTTOM_RIGHT; - break; - - case 0x83: - id = V3270_CURSOR_SELECTION_TOP_LEFT; - break; - - default: - id = lib3270_is_protected(terminal->host,baddr) ? V3270_CURSOR_PROTECTED : V3270_CURSOR_UNPROTECTED; - - } - - gdk_window_set_cursor(gtk_widget_get_window(widget),v3270_cursor[id]); - + gdk_window_set_cursor(gtk_widget_get_window(widget),v3270_cursor[lib3270_get_pointer(terminal->host,baddr)]); } - - } void v3270_update_mouse_pointer(GtkWidget *widget) @@ -298,7 +251,7 @@ gboolean v3270_motion_notify_event(GtkWidget *widget, GdkEventMotion *event) if(!lib3270_connected(terminal->host)) { - gdk_window_set_cursor(gtk_widget_get_window(widget),v3270_cursor[V3270_CURSOR_PROTECTED]); + gdk_window_set_cursor(gtk_widget_get_window(widget),v3270_cursor[LIB3270_POINTER_LOCKED]); return FALSE; } @@ -323,30 +276,30 @@ gboolean v3270_motion_notify_event(GtkWidget *widget, GdkEventMotion *event) } else if(event->y >= terminal->oia_rect->y) { - int id = V3270_CURSOR_PROTECTED; + int id = LIB3270_POINTER_PROTECTED; if(event->x >= terminal->oia_rect[V3270_OIA_SSL].x && event->x <= (terminal->oia_rect[V3270_OIA_SSL].x + terminal->oia_rect[V3270_OIA_SSL].width)) { switch(lib3270_get_secure(terminal->host)) { case LIB3270_SSL_UNSECURE: /**< No secure connection */ - id = V3270_CURSOR_QUESTION; + id = LIB3270_POINTER_QUESTION; break; case LIB3270_SSL_NEGOTIATING: /**< Negotiating SSL */ - id = V3270_CURSOR_WAITING; + id = LIB3270_POINTER_WAITING; break; case LIB3270_SSL_NEGOTIATED: /**< Connection secure, no CA or self-signed */ - id = V3270_CURSOR_QUESTION; + id = LIB3270_POINTER_QUESTION; break; case LIB3270_SSL_SECURE: /**< Connection secure with CA check */ - id = V3270_CURSOR_QUESTION; + id = LIB3270_POINTER_QUESTION; break; default: - id = V3270_CURSOR_LOCKED; + id = LIB3270_POINTER_LOCKED; } } diff --git a/private.h b/private.h index e1ad649..5cb65f2 100644 --- a/private.h +++ b/private.h @@ -88,6 +88,7 @@ G_BEGIN_DECLS /*--[ Globals ]--------------------------------------------------------------------------------------*/ +/* #define V3270_CURSOR_UNPROTECTED LIB3270_CURSOR_EDITABLE #define V3270_CURSOR_WAITING LIB3270_CURSOR_WAITING #define V3270_CURSOR_LOCKED LIB3270_CURSOR_LOCKED @@ -105,7 +106,7 @@ G_BEGIN_DECLS #define V3270_CURSOR_QUESTION LIB3270_CURSOR_USER+10 #define V3270_CURSOR_COUNT LIB3270_CURSOR_USER+11 - +*/ struct v3270_ssl_status_msg { @@ -146,7 +147,7 @@ G_BEGIN_DECLS int baddr; /**< Selection addr */ } selection; - LIB3270_CURSOR pointer_id; + LIB3270_POINTER pointer_id; unsigned char pointer; /**< Mouse pointer ID */ V3270_OIA_FIELD selected_field; /**< Clicked OIA field */ @@ -226,7 +227,7 @@ G_BEGIN_DECLS /*--[ Globals ]--------------------------------------------------------------------------------------*/ G_GNUC_INTERNAL guint v3270_widget_signal[LAST_SIGNAL]; - G_GNUC_INTERNAL GdkCursor * v3270_cursor[V3270_CURSOR_COUNT]; + G_GNUC_INTERNAL GdkCursor * v3270_cursor[LIB3270_POINTER_COUNT]; G_GNUC_INTERNAL GParamSpec * v3270_properties[PROP_LAST]; /*--[ Prototipes ]-----------------------------------------------------------------------------------*/ diff --git a/widget.c b/widget.c index ec9b6d8..a57c158 100644 --- a/widget.c +++ b/widget.c @@ -72,8 +72,8 @@ /*--[ Globals ]--------------------------------------------------------------------------------------*/ - guint v3270_widget_signal[LAST_SIGNAL] = { 0 }; - GdkCursor * v3270_cursor[V3270_CURSOR_COUNT] = { 0 }; + guint v3270_widget_signal[LAST_SIGNAL] = { 0 }; + GdkCursor * v3270_cursor[LIB3270_POINTER_COUNT] = { 0 }; /*--[ Prototipes ]-----------------------------------------------------------------------------------*/ @@ -354,7 +354,7 @@ static void v3270_class_init(v3270Class *klass) "help", // V3270_CURSOR_QUESTION }; #else - static const int cr[V3270_CURSOR_COUNT] = + static const int cr[LIB3270_POINTER_COUNT] = { GDK_XTERM, // V3270_CURSOR_UNPROTECTED GDK_WATCH, // V3270_CURSOR_WAITING @@ -375,7 +375,7 @@ static void v3270_class_init(v3270Class *klass) int f; - for(f=0;f