Commit 5af094cd1f08f4287c0585d5664441054eb39105
1 parent
3c3aa221
Exists in
master
and in
5 other branches
Trabalhando com acessibilidade
Showing
3 changed files
with
39 additions
and
11 deletions
Show diff stats
src/gtk/v3270/accessible.c
| ... | ... | @@ -83,24 +83,50 @@ static const gchar * v3270_accessible_get_description (AtkObject *accessible) |
| 83 | 83 | return _( "3270 screen" ); |
| 84 | 84 | } |
| 85 | 85 | |
| 86 | +static void v3270_accessible_focus_event(AtkObject *obj, gboolean focus_in) | |
| 87 | +{ | |
| 88 | + AtkObject *focus_obj = g_object_get_data (G_OBJECT (obj), "gail-focus-object"); | |
| 89 | + | |
| 90 | + if(focus_obj == NULL) | |
| 91 | + focus_obj = obj; | |
| 92 | + | |
| 93 | + atk_object_notify_state_change(focus_obj, ATK_STATE_FOCUSED, focus_in); | |
| 94 | +} | |
| 95 | + | |
| 96 | +static AtkAttributeSet * v3270_accessible_get_attributes (AtkObject *obj) | |
| 97 | +{ | |
| 98 | + AtkAttributeSet * attributes; | |
| 99 | + AtkAttribute * toolkit = g_new(AtkAttribute, 1); | |
| 100 | + | |
| 101 | + toolkit->name = g_strdup("toolkit"); | |
| 102 | + toolkit->value = g_strdup("gtk"); | |
| 103 | + | |
| 104 | + attributes = g_slist_append (NULL, toolkit); | |
| 105 | + | |
| 106 | + return attributes; | |
| 107 | +} | |
| 108 | + | |
| 109 | +static void v3270_accessible_initialize (AtkObject *obj, gpointer data) | |
| 110 | +{ | |
| 111 | + obj->role = ATK_ROLE_TEXT; | |
| 112 | +} | |
| 113 | + | |
| 86 | 114 | static void v3270_accessible_class_init(v3270AccessibleClass *klass) |
| 87 | 115 | { |
| 88 | 116 | AtkObjectClass *class = ATK_OBJECT_CLASS (klass); |
| 89 | 117 | |
| 90 | - class->get_description = v3270_accessible_get_description; | |
| 118 | + class->get_description = v3270_accessible_get_description; | |
| 119 | + class->focus_event = v3270_accessible_focus_event; | |
| 120 | + class->get_attributes = v3270_accessible_get_attributes; | |
| 121 | + class->initialize = v3270_accessible_initialize; | |
| 91 | 122 | |
| 92 | 123 | /* |
| 93 | - class->focus_event = gtk_widget_accessible_focus_event; | |
| 94 | - | |
| 95 | 124 | klass->notify_gtk = gtk_widget_accessible_notify_gtk; |
| 96 | 125 | |
| 97 | 126 | class->get_parent = gtk_widget_accessible_get_parent; |
| 98 | 127 | class->ref_relation_set = gtk_widget_accessible_ref_relation_set; |
| 99 | 128 | class->ref_state_set = gtk_widget_accessible_ref_state_set; |
| 100 | 129 | class->get_index_in_parent = gtk_widget_accessible_get_index_in_parent; |
| 101 | - class->initialize = gtk_widget_accessible_initialize; | |
| 102 | - class->get_attributes = gtk_widget_accessible_get_attributes; | |
| 103 | - class->focus_event = gtk_widget_accessible_focus_event; | |
| 104 | 130 | */ |
| 105 | 131 | } |
| 106 | 132 | ... | ... |
src/gtk/v3270/widget.c
| ... | ... | @@ -616,8 +616,8 @@ static void update_model(H3270 *session, const char *name, int model, int rows, |
| 616 | 616 | |
| 617 | 617 | static void changed(H3270 *session, int offset, int len) |
| 618 | 618 | { |
| 619 | - GtkWidget * widget = session->widget; | |
| 620 | - AtkObject * obj = gtk_widget_get_accessible(widget); | |
| 619 | + GtkWidget * widget = session->widget; | |
| 620 | + GtkAccessible * obj = GTK_V3270(widget)->accessible; | |
| 621 | 621 | |
| 622 | 622 | trace("%s: offset=%d len=%d",__FUNCTION__,offset,len) |
| 623 | 623 | |
| ... | ... | @@ -669,8 +669,8 @@ static void set_selection(H3270 *session, unsigned char status) |
| 669 | 669 | static void update_selection(H3270 *session, int start, int end) |
| 670 | 670 | { |
| 671 | 671 | // Selected region changed |
| 672 | - GtkWidget * widget = GTK_WIDGET(session->widget); | |
| 673 | - AtkObject * atk_obj = gtk_widget_get_accessible(widget); | |
| 672 | + GtkWidget * widget = GTK_WIDGET(session->widget); | |
| 673 | + GtkAccessible * atk_obj = GTK_V3270(widget)->accessible; | |
| 674 | 674 | |
| 675 | 675 | if(atk_obj) |
| 676 | 676 | g_signal_emit_by_name(atk_obj,"text-selection-changed"); |
| ... | ... | @@ -1137,7 +1137,7 @@ int v3270_connect(GtkWidget *widget, const gchar *host) |
| 1137 | 1137 | |
| 1138 | 1138 | static gboolean notify_focus(GtkWidget *widget, GdkEventFocus *event) |
| 1139 | 1139 | { |
| 1140 | - AtkObject *obj = gtk_widget_get_accessible (widget); | |
| 1140 | + GtkAccessible *obj = GTK_V3270(widget)->accessible; | |
| 1141 | 1141 | |
| 1142 | 1142 | if(obj) |
| 1143 | 1143 | g_signal_emit_by_name (obj, "focus-event", event->in); | ... | ... |
src/lib3270/selection.c
| ... | ... | @@ -586,6 +586,7 @@ LIB3270_EXPORT int lib3270_drag_selection(H3270 *h, unsigned char flag, int orig |
| 586 | 586 | if(!lib3270_get_selection_bounds(h,&first,&last)) |
| 587 | 587 | return origin; |
| 588 | 588 | |
| 589 | +/* | |
| 589 | 590 | trace("%s: flag=%04x %s %s %s %s",__FUNCTION__, |
| 590 | 591 | flag, |
| 591 | 592 | flag & SELECTION_LEFT ? "Left" : "-", |
| ... | ... | @@ -593,6 +594,7 @@ LIB3270_EXPORT int lib3270_drag_selection(H3270 *h, unsigned char flag, int orig |
| 593 | 594 | flag & SELECTION_RIGHT ? "Right" : "-", |
| 594 | 595 | flag & SELECTION_BOTTOM ? "Bottom" : "-" |
| 595 | 596 | ); |
| 597 | +*/ | |
| 596 | 598 | |
| 597 | 599 | if(!flag) |
| 598 | 600 | return origin; | ... | ... |