Commit 5af094cd1f08f4287c0585d5664441054eb39105

Authored by perry.werneck@gmail.com
1 parent 3c3aa221

Trabalhando com acessibilidade

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;
... ...