Commit c82892da7897ed9e40b93da54868116da6674811
1 parent
3b6d0324
Exists in
master
and in
5 other branches
Iniciando reimplementação de seleção
Showing
4 changed files
with
25 additions
and
11 deletions
Show diff stats
pw3270.cbp
| @@ -105,6 +105,9 @@ | @@ -105,6 +105,9 @@ | ||
| 105 | <Unit filename="src/gtk/v3270/keyboard.c"> | 105 | <Unit filename="src/gtk/v3270/keyboard.c"> |
| 106 | <Option compilerVar="CC" /> | 106 | <Option compilerVar="CC" /> |
| 107 | </Unit> | 107 | </Unit> |
| 108 | + <Unit filename="src/gtk/v3270/mouse.c"> | ||
| 109 | + <Option compilerVar="CC" /> | ||
| 110 | + </Unit> | ||
| 108 | <Unit filename="src/gtk/v3270/oia.c"> | 111 | <Unit filename="src/gtk/v3270/oia.c"> |
| 109 | <Option compilerVar="CC" /> | 112 | <Option compilerVar="CC" /> |
| 110 | </Unit> | 113 | </Unit> |
src/gtk/v3270/mouse.c
| @@ -35,12 +35,12 @@ | @@ -35,12 +35,12 @@ | ||
| 35 | 35 | ||
| 36 | /*--[ Implement ]------------------------------------------------------------------------------------*/ | 36 | /*--[ Implement ]------------------------------------------------------------------------------------*/ |
| 37 | 37 | ||
| 38 | -static int decode_position(v3270 *widget, GdkPoint *point, GdkEventButton *event) | 38 | +static int decode_position(v3270 *widget, GdkPoint *point, gdouble x, gdouble y) |
| 39 | { | 39 | { |
| 40 | int r,c; | 40 | int r,c; |
| 41 | 41 | ||
| 42 | - point->x = ((event->x-widget->metrics.left)/widget->metrics.width); | ||
| 43 | - point->y = ((event->y-widget->metrics.top)/widget->metrics.spacing); | 42 | + point->x = ((x-widget->metrics.left)/widget->metrics.width); |
| 43 | + point->y = ((y-widget->metrics.top)/widget->metrics.spacing); | ||
| 44 | 44 | ||
| 45 | lib3270_get_screen_size(widget->host,&r,&c); | 45 | lib3270_get_screen_size(widget->host,&r,&c); |
| 46 | 46 | ||
| @@ -53,7 +53,7 @@ static int decode_position(v3270 *widget, GdkPoint *point, GdkEventButton *event | @@ -53,7 +53,7 @@ static int decode_position(v3270 *widget, GdkPoint *point, GdkEventButton *event | ||
| 53 | gboolean v3270_button_press_event(GtkWidget *widget, GdkEventButton *event) | 53 | gboolean v3270_button_press_event(GtkWidget *widget, GdkEventButton *event) |
| 54 | { | 54 | { |
| 55 | GdkPoint point; | 55 | GdkPoint point; |
| 56 | - int baddr = decode_position(GTK_V3270(widget),&point,event); | 56 | + int baddr = decode_position(GTK_V3270(widget),&point,event->x,event->y); |
| 57 | 57 | ||
| 58 | if(baddr < 0) | 58 | if(baddr < 0) |
| 59 | return FALSE; | 59 | return FALSE; |
| @@ -80,3 +80,12 @@ gboolean v3270_button_release_event(GtkWidget *widget, GdkEventButton*event) | @@ -80,3 +80,12 @@ gboolean v3270_button_release_event(GtkWidget *widget, GdkEventButton*event) | ||
| 80 | 80 | ||
| 81 | return FALSE; | 81 | return FALSE; |
| 82 | } | 82 | } |
| 83 | + | ||
| 84 | + | ||
| 85 | +gboolean v3270_motion_notify_event(GtkWidget *widget, GdkEventMotion *event) | ||
| 86 | +{ | ||
| 87 | +// trace("%s",__FUNCTION__); | ||
| 88 | + | ||
| 89 | + | ||
| 90 | + return FALSE; | ||
| 91 | +} |
src/gtk/v3270/private.h
| @@ -82,6 +82,8 @@ G_BEGIN_DECLS | @@ -82,6 +82,8 @@ G_BEGIN_DECLS | ||
| 82 | 82 | ||
| 83 | /*--[ Prototipes ]-----------------------------------------------------------------------------------*/ | 83 | /*--[ Prototipes ]-----------------------------------------------------------------------------------*/ |
| 84 | 84 | ||
| 85 | +const GtkWidgetClass * v3270_get_parent_class(void); | ||
| 86 | + | ||
| 85 | gboolean v3270_draw(GtkWidget * widget, cairo_t * cr); | 87 | gboolean v3270_draw(GtkWidget * widget, cairo_t * cr); |
| 86 | void v3270_draw_oia(cairo_t *cr, H3270 *host, int row, int cols, struct v3270_metrics *metrics, GdkColor *color, GdkRectangle *rect); | 88 | void v3270_draw_oia(cairo_t *cr, H3270 *host, int row, int cols, struct v3270_metrics *metrics, GdkColor *color, GdkRectangle *rect); |
| 87 | 89 | ||
| @@ -123,5 +125,6 @@ gboolean v3270_key_release_event(GtkWidget *widget, GdkEventKey *event); | @@ -123,5 +125,6 @@ gboolean v3270_key_release_event(GtkWidget *widget, GdkEventKey *event); | ||
| 123 | void v3270_key_commit(GtkIMContext *imcontext, gchar *str, v3270 *widget); | 125 | void v3270_key_commit(GtkIMContext *imcontext, gchar *str, v3270 *widget); |
| 124 | gboolean v3270_button_press_event(GtkWidget *widget, GdkEventButton *event); | 126 | gboolean v3270_button_press_event(GtkWidget *widget, GdkEventButton *event); |
| 125 | gboolean v3270_button_release_event(GtkWidget *widget, GdkEventButton*event); | 127 | gboolean v3270_button_release_event(GtkWidget *widget, GdkEventButton*event); |
| 128 | +gboolean v3270_motion_notify_event(GtkWidget *widget, GdkEventMotion *event); | ||
| 126 | 129 | ||
| 127 | G_END_DECLS | 130 | G_END_DECLS |
src/gtk/v3270/widget.c
| @@ -42,13 +42,6 @@ | @@ -42,13 +42,6 @@ | ||
| 42 | #define CONTENTS_WIDTH(terminal) (cols * terminal->metrics.width) | 42 | #define CONTENTS_WIDTH(terminal) (cols * terminal->metrics.width) |
| 43 | #define CONTENTS_HEIGHT(terminal) (((rows+1) * terminal->metrics.spacing)+OIA_TOP_MARGIN+2) | 43 | #define CONTENTS_HEIGHT(terminal) (((rows+1) * terminal->metrics.spacing)+OIA_TOP_MARGIN+2) |
| 44 | 44 | ||
| 45 | - | ||
| 46 | -/* | ||
| 47 | - * http://gnomejournal.org/article/34/writing-a-widget-using-cairo-and-gtk28 | ||
| 48 | - * http://developer.gnome.org/gtk3/3.3/ch25s02.html | ||
| 49 | - * http://zetcode.com/tutorials/cairographicstutorial/cairotext | ||
| 50 | - */ | ||
| 51 | - | ||
| 52 | /*--[ Widget definition ]----------------------------------------------------------------------------*/ | 45 | /*--[ Widget definition ]----------------------------------------------------------------------------*/ |
| 53 | 46 | ||
| 54 | G_DEFINE_TYPE(v3270, v3270, GTK_TYPE_WIDGET); | 47 | G_DEFINE_TYPE(v3270, v3270, GTK_TYPE_WIDGET); |
| @@ -128,6 +121,7 @@ static void v3270_class_init(v3270Class *klass) | @@ -128,6 +121,7 @@ static void v3270_class_init(v3270Class *klass) | ||
| 128 | widget_class->focus_out_event = v3270_focus_out_event; | 121 | widget_class->focus_out_event = v3270_focus_out_event; |
| 129 | widget_class->button_press_event = v3270_button_press_event; | 122 | widget_class->button_press_event = v3270_button_press_event; |
| 130 | widget_class->button_release_event = v3270_button_release_event; | 123 | widget_class->button_release_event = v3270_button_release_event; |
| 124 | + widget_class->motion_notify_event = v3270_motion_notify_event; | ||
| 131 | 125 | ||
| 132 | klass->activate = v3270_activate; | 126 | klass->activate = v3270_activate; |
| 133 | klass->toggle_changed = v3270_toggle_changed; | 127 | klass->toggle_changed = v3270_toggle_changed; |
| @@ -854,3 +848,8 @@ static void v3270_activate(GtkWidget *widget) | @@ -854,3 +848,8 @@ static void v3270_activate(GtkWidget *widget) | ||
| 854 | else | 848 | else |
| 855 | v3270_connect(widget,NULL); | 849 | v3270_connect(widget,NULL); |
| 856 | } | 850 | } |
| 851 | + | ||
| 852 | +const GtkWidgetClass * v3270_get_parent_class(void) | ||
| 853 | +{ | ||
| 854 | + return GTK_WIDGET_CLASS(v3270_parent_class); | ||
| 855 | +} |