Commit 307e7706577a0da4e6888dccfcb213315e14e215
1 parent
1f8ed5de
Exists in
master
and in
5 other branches
Work in progress
Showing
4 changed files
with
84 additions
and
53 deletions
Show diff stats
src/gtk/main.c
src/gtk/pw3270-GTK.cbp
@@ -7,8 +7,8 @@ | @@ -7,8 +7,8 @@ | ||
7 | <Option compiler="gcc" /> | 7 | <Option compiler="gcc" /> |
8 | <Build> | 8 | <Build> |
9 | <Target title="Debug"> | 9 | <Target title="Debug"> |
10 | - <Option output=".bin\Debug\pw3270-GTK" prefix_auto="1" extension_auto="1" /> | ||
11 | - <Option object_output=".obj\Debug\" /> | 10 | + <Option output=".bin/Debug/pw3270-GTK" prefix_auto="1" extension_auto="1" /> |
11 | + <Option object_output=".obj/Debug/" /> | ||
12 | <Option type="1" /> | 12 | <Option type="1" /> |
13 | <Option compiler="gcc" /> | 13 | <Option compiler="gcc" /> |
14 | <Compiler> | 14 | <Compiler> |
@@ -17,8 +17,8 @@ | @@ -17,8 +17,8 @@ | ||
17 | </Compiler> | 17 | </Compiler> |
18 | </Target> | 18 | </Target> |
19 | <Target title="Release"> | 19 | <Target title="Release"> |
20 | - <Option output=".bin\Release\pw3270-GTK" prefix_auto="1" extension_auto="1" /> | ||
21 | - <Option object_output=".obj\Release\" /> | 20 | + <Option output=".bin/Release/pw3270-GTK" prefix_auto="1" extension_auto="1" /> |
21 | + <Option object_output=".obj/Release/" /> | ||
22 | <Option type="0" /> | 22 | <Option type="0" /> |
23 | <Option compiler="gcc" /> | 23 | <Option compiler="gcc" /> |
24 | <Compiler> | 24 | <Compiler> |
@@ -32,7 +32,7 @@ | @@ -32,7 +32,7 @@ | ||
32 | <Compiler> | 32 | <Compiler> |
33 | <Add option="-Wall" /> | 33 | <Add option="-Wall" /> |
34 | <Add option="`pkg-config lib3270 gtk+-2.0 lib3270 --cflags`" /> | 34 | <Add option="`pkg-config lib3270 gtk+-2.0 lib3270 --cflags`" /> |
35 | - <Add directory="..\include" /> | 35 | + <Add directory="../include" /> |
36 | </Compiler> | 36 | </Compiler> |
37 | <Linker> | 37 | <Linker> |
38 | <Add option="`pkg-config lib3270 gtk+-2.0 lib3270 --libs`" /> | 38 | <Add option="`pkg-config lib3270 gtk+-2.0 lib3270 --libs`" /> |
@@ -44,12 +44,12 @@ | @@ -44,12 +44,12 @@ | ||
44 | <Unit filename="colors.c"> | 44 | <Unit filename="colors.c"> |
45 | <Option compilerVar="CC" /> | 45 | <Option compilerVar="CC" /> |
46 | </Unit> | 46 | </Unit> |
47 | - <Unit filename="common\common.h" /> | ||
48 | - <Unit filename="common\common.h.in" /> | ||
49 | - <Unit filename="common\config.c"> | 47 | + <Unit filename="common/common.h" /> |
48 | + <Unit filename="common/common.h.in" /> | ||
49 | + <Unit filename="common/config.c"> | ||
50 | <Option compilerVar="CC" /> | 50 | <Option compilerVar="CC" /> |
51 | </Unit> | 51 | </Unit> |
52 | - <Unit filename="common\sources.mak" /> | 52 | + <Unit filename="common/sources.mak" /> |
53 | <Unit filename="dialog.c"> | 53 | <Unit filename="dialog.c"> |
54 | <Option compilerVar="CC" /> | 54 | <Option compilerVar="CC" /> |
55 | </Unit> | 55 | </Unit> |
@@ -66,74 +66,78 @@ | @@ -66,74 +66,78 @@ | ||
66 | <Unit filename="print.c"> | 66 | <Unit filename="print.c"> |
67 | <Option compilerVar="CC" /> | 67 | <Option compilerVar="CC" /> |
68 | </Unit> | 68 | </Unit> |
69 | - <Unit filename="uiparser\accelerator.c"> | 69 | + <Unit filename="uiparser/accelerator.c"> |
70 | <Option compilerVar="CC" /> | 70 | <Option compilerVar="CC" /> |
71 | </Unit> | 71 | </Unit> |
72 | - <Unit filename="uiparser\action.c"> | 72 | + <Unit filename="uiparser/action.c"> |
73 | <Option compilerVar="CC" /> | 73 | <Option compilerVar="CC" /> |
74 | </Unit> | 74 | </Unit> |
75 | - <Unit filename="uiparser\menu.c"> | 75 | + <Unit filename="uiparser/menu.c"> |
76 | <Option compilerVar="CC" /> | 76 | <Option compilerVar="CC" /> |
77 | </Unit> | 77 | </Unit> |
78 | - <Unit filename="uiparser\menubar.c"> | 78 | + <Unit filename="uiparser/menubar.c"> |
79 | <Option compilerVar="CC" /> | 79 | <Option compilerVar="CC" /> |
80 | </Unit> | 80 | </Unit> |
81 | - <Unit filename="uiparser\menuitem.c"> | 81 | + <Unit filename="uiparser/menuitem.c"> |
82 | <Option compilerVar="CC" /> | 82 | <Option compilerVar="CC" /> |
83 | </Unit> | 83 | </Unit> |
84 | - <Unit filename="uiparser\parsefile.c"> | 84 | + <Unit filename="uiparser/parsefile.c"> |
85 | <Option compilerVar="CC" /> | 85 | <Option compilerVar="CC" /> |
86 | </Unit> | 86 | </Unit> |
87 | - <Unit filename="uiparser\parser.c"> | 87 | + <Unit filename="uiparser/parser.c"> |
88 | <Option compilerVar="CC" /> | 88 | <Option compilerVar="CC" /> |
89 | </Unit> | 89 | </Unit> |
90 | - <Unit filename="uiparser\parser.h" /> | ||
91 | - <Unit filename="uiparser\popup.c"> | 90 | + <Unit filename="uiparser/parser.h" /> |
91 | + <Unit filename="uiparser/popup.c"> | ||
92 | <Option compilerVar="CC" /> | 92 | <Option compilerVar="CC" /> |
93 | </Unit> | 93 | </Unit> |
94 | - <Unit filename="uiparser\private.h" /> | ||
95 | - <Unit filename="uiparser\script.c"> | 94 | + <Unit filename="uiparser/private.h" /> |
95 | + <Unit filename="uiparser/script.c"> | ||
96 | <Option compilerVar="CC" /> | 96 | <Option compilerVar="CC" /> |
97 | </Unit> | 97 | </Unit> |
98 | - <Unit filename="uiparser\separator.c"> | 98 | + <Unit filename="uiparser/separator.c"> |
99 | <Option compilerVar="CC" /> | 99 | <Option compilerVar="CC" /> |
100 | </Unit> | 100 | </Unit> |
101 | - <Unit filename="uiparser\sources.mak" /> | ||
102 | - <Unit filename="uiparser\toolbar.c"> | 101 | + <Unit filename="uiparser/sources.mak" /> |
102 | + <Unit filename="uiparser/toolbar.c"> | ||
103 | <Option compilerVar="CC" /> | 103 | <Option compilerVar="CC" /> |
104 | </Unit> | 104 | </Unit> |
105 | - <Unit filename="uiparser\toolitem.c"> | 105 | + <Unit filename="uiparser/toolitem.c"> |
106 | <Option compilerVar="CC" /> | 106 | <Option compilerVar="CC" /> |
107 | </Unit> | 107 | </Unit> |
108 | - <Unit filename="v3270\clipboard.c"> | 108 | + <Unit filename="v3270/accessible.c"> |
109 | <Option compilerVar="CC" /> | 109 | <Option compilerVar="CC" /> |
110 | </Unit> | 110 | </Unit> |
111 | - <Unit filename="v3270\draw.c"> | 111 | + <Unit filename="v3270/accessible.h" /> |
112 | + <Unit filename="v3270/clipboard.c"> | ||
112 | <Option compilerVar="CC" /> | 113 | <Option compilerVar="CC" /> |
113 | </Unit> | 114 | </Unit> |
114 | - <Unit filename="v3270\genmarshal" /> | ||
115 | - <Unit filename="v3270\iocallback.c"> | 115 | + <Unit filename="v3270/draw.c"> |
116 | <Option compilerVar="CC" /> | 116 | <Option compilerVar="CC" /> |
117 | </Unit> | 117 | </Unit> |
118 | - <Unit filename="v3270\keyboard.c"> | 118 | + <Unit filename="v3270/genmarshal" /> |
119 | + <Unit filename="v3270/iocallback.c"> | ||
119 | <Option compilerVar="CC" /> | 120 | <Option compilerVar="CC" /> |
120 | </Unit> | 121 | </Unit> |
121 | - <Unit filename="v3270\locked.xbm" /> | ||
122 | - <Unit filename="v3270\marshal.c"> | 122 | + <Unit filename="v3270/keyboard.c"> |
123 | <Option compilerVar="CC" /> | 123 | <Option compilerVar="CC" /> |
124 | </Unit> | 124 | </Unit> |
125 | - <Unit filename="v3270\marshal.h" /> | ||
126 | - <Unit filename="v3270\mouse.c"> | 125 | + <Unit filename="v3270/locked.xbm" /> |
126 | + <Unit filename="v3270/marshal.c"> | ||
127 | <Option compilerVar="CC" /> | 127 | <Option compilerVar="CC" /> |
128 | </Unit> | 128 | </Unit> |
129 | - <Unit filename="v3270\oia.c"> | 129 | + <Unit filename="v3270/marshal.h" /> |
130 | + <Unit filename="v3270/mouse.c"> | ||
130 | <Option compilerVar="CC" /> | 131 | <Option compilerVar="CC" /> |
131 | </Unit> | 132 | </Unit> |
132 | - <Unit filename="v3270\private.h" /> | ||
133 | - <Unit filename="v3270\sources.mak" /> | ||
134 | - <Unit filename="v3270\unlocked.xbm" /> | ||
135 | - <Unit filename="v3270\v3270.h" /> | ||
136 | - <Unit filename="v3270\widget.c"> | 133 | + <Unit filename="v3270/oia.c"> |
134 | + <Option compilerVar="CC" /> | ||
135 | + </Unit> | ||
136 | + <Unit filename="v3270/private.h" /> | ||
137 | + <Unit filename="v3270/sources.mak" /> | ||
138 | + <Unit filename="v3270/unlocked.xbm" /> | ||
139 | + <Unit filename="v3270/v3270.h" /> | ||
140 | + <Unit filename="v3270/widget.c"> | ||
137 | <Option compilerVar="CC" /> | 141 | <Option compilerVar="CC" /> |
138 | </Unit> | 142 | </Unit> |
139 | <Unit filename="valgrind.suppression" /> | 143 | <Unit filename="valgrind.suppression" /> |
src/gtk/v3270/accessible.c
@@ -40,14 +40,17 @@ | @@ -40,14 +40,17 @@ | ||
40 | 40 | ||
41 | /*--[ Prototipes ]-----------------------------------------------------------------------------------*/ | 41 | /*--[ Prototipes ]-----------------------------------------------------------------------------------*/ |
42 | 42 | ||
43 | +static void atk_component_interface_init (AtkComponentIface *iface); | ||
43 | static void atk_editable_text_interface_init (AtkEditableTextIface *iface); | 44 | static void atk_editable_text_interface_init (AtkEditableTextIface *iface); |
45 | + | ||
44 | static void v3270_accessible_class_init (v3270AccessibleClass *klass); | 46 | static void v3270_accessible_class_init (v3270AccessibleClass *klass); |
45 | static void v3270_accessible_init (v3270Accessible *widget); | 47 | static void v3270_accessible_init (v3270Accessible *widget); |
46 | 48 | ||
47 | /*--[ Widget definition ]----------------------------------------------------------------------------*/ | 49 | /*--[ Widget definition ]----------------------------------------------------------------------------*/ |
48 | 50 | ||
49 | -G_DEFINE_TYPE_WITH_CODE (v3270Accessible, v3270_accessible, GTK_TYPE_V3270_ACCESSIBLE, | ||
50 | - G_IMPLEMENT_INTERFACE (ATK_TYPE_EDITABLE_TEXT, atk_editable_text_interface_init) ) | 51 | +G_DEFINE_TYPE_WITH_CODE (v3270Accessible, v3270_accessible, GTK_TYPE_ACCESSIBLE, |
52 | + G_IMPLEMENT_INTERFACE (ATK_TYPE_COMPONENT, atk_component_interface_init) | ||
53 | + G_IMPLEMENT_INTERFACE (ATK_TYPE_EDITABLE_TEXT, atk_editable_text_interface_init) ) | ||
51 | 54 | ||
52 | // G_IMPLEMENT_INTERFACE (ATK_TYPE_ACTION, atk_action_interface_init) | 55 | // G_IMPLEMENT_INTERFACE (ATK_TYPE_ACTION, atk_action_interface_init) |
53 | // G_IMPLEMENT_INTERFACE (ATK_TYPE_EDITABLE_TEXT, atk_editable_text_interface_init) | 56 | // G_IMPLEMENT_INTERFACE (ATK_TYPE_EDITABLE_TEXT, atk_editable_text_interface_init) |
@@ -74,6 +77,20 @@ static void v3270_accessible_class_init(v3270AccessibleClass *klass) | @@ -74,6 +77,20 @@ static void v3270_accessible_class_init(v3270AccessibleClass *klass) | ||
74 | */ | 77 | */ |
75 | } | 78 | } |
76 | 79 | ||
80 | +static void | ||
81 | +atk_component_interface_init(AtkComponentIface *iface) | ||
82 | +{ | ||
83 | +/* | ||
84 | + iface->get_extents = gtk_widget_accessible_get_extents; | ||
85 | + iface->get_size = gtk_widget_accessible_get_size; | ||
86 | + iface->get_layer = gtk_widget_accessible_get_layer; | ||
87 | + iface->grab_focus = gtk_widget_accessible_grab_focus; | ||
88 | + iface->set_extents = gtk_widget_accessible_set_extents; | ||
89 | + iface->set_position = gtk_widget_accessible_set_position; | ||
90 | + iface->set_size = gtk_widget_accessible_set_size; | ||
91 | +*/ | ||
92 | +} | ||
93 | + | ||
77 | static void v3270_accessible_init(v3270Accessible *widget) | 94 | static void v3270_accessible_init(v3270Accessible *widget) |
78 | { | 95 | { |
79 | trace("*********************************** %s",__FUNCTION__); | 96 | trace("*********************************** %s",__FUNCTION__); |
src/gtk/v3270/widget.c
@@ -57,10 +57,11 @@ | @@ -57,10 +57,11 @@ | ||
57 | 57 | ||
58 | // http://git.gnome.org/browse/gtk+/tree/gtk/gtkdrawingarea.c?h=gtk-3-0 | 58 | // http://git.gnome.org/browse/gtk+/tree/gtk/gtkdrawingarea.c?h=gtk-3-0 |
59 | 59 | ||
60 | -static void v3270_realize ( GtkWidget * widget); | 60 | +static void v3270_realize ( GtkWidget * widget) ; |
61 | static void v3270_size_allocate ( GtkWidget * widget, | 61 | static void v3270_size_allocate ( GtkWidget * widget, |
62 | - GtkAllocation * allocation); | ||
63 | -static void v3270_send_configure ( v3270 * terminal); | 62 | + GtkAllocation * allocation ); |
63 | +static void v3270_send_configure ( v3270 * terminal ); | ||
64 | +static AtkObject * v3270_get_accessible ( GtkWidget * widget ); | ||
64 | 65 | ||
65 | // Signals | 66 | // Signals |
66 | static void v3270_activate (GtkWidget *widget); | 67 | static void v3270_activate (GtkWidget *widget); |
@@ -231,6 +232,9 @@ static void v3270_class_init(v3270Class *klass) | @@ -231,6 +232,9 @@ static void v3270_class_init(v3270Class *klass) | ||
231 | widget_class->motion_notify_event = v3270_motion_notify_event; | 232 | widget_class->motion_notify_event = v3270_motion_notify_event; |
232 | widget_class->popup_menu = v3270_popup_menu; | 233 | widget_class->popup_menu = v3270_popup_menu; |
233 | 234 | ||
235 | + /* Accessibility support */ | ||
236 | + widget_class->get_accessible = v3270_get_accessible; | ||
237 | + | ||
234 | klass->activate = v3270_activate; | 238 | klass->activate = v3270_activate; |
235 | klass->toggle_changed = v3270_toggle_changed; | 239 | klass->toggle_changed = v3270_toggle_changed; |
236 | klass->message_changed = v3270_update_message; | 240 | klass->message_changed = v3270_update_message; |
@@ -433,15 +437,6 @@ static void v3270_class_init(v3270Class *klass) | @@ -433,15 +437,6 @@ static void v3270_class_init(v3270Class *klass) | ||
433 | pw3270_VOID__VOID_BOOL, | 437 | pw3270_VOID__VOID_BOOL, |
434 | G_TYPE_NONE, 1, G_TYPE_BOOLEAN); | 438 | G_TYPE_NONE, 1, G_TYPE_BOOLEAN); |
435 | 439 | ||
436 | -#ifdef DEBUG | ||
437 | - trace("%s: Acessibility check starts",__FUNCTION__); | ||
438 | - v3270_accessible_get_type(); | ||
439 | - trace("%s: Acessibility check ends",__FUNCTION__); | ||
440 | -#endif // DEBUG | ||
441 | - | ||
442 | -#if GTK_CHECK_VERSION(3,0,0) | ||
443 | - gtk_widget_class_set_accessible_type(widget_class, GTK_TYPE_V3270_ACCESSIBLE); | ||
444 | -#endif | ||
445 | } | 440 | } |
446 | 441 | ||
447 | void v3270_update_font_metrics(v3270 *terminal, cairo_t *cr, int width, int height) | 442 | void v3270_update_font_metrics(v3270 *terminal, cairo_t *cr, int width, int height) |
@@ -1102,4 +1097,18 @@ const GtkWidgetClass * v3270_get_parent_class(void) | @@ -1102,4 +1097,18 @@ const GtkWidgetClass * v3270_get_parent_class(void) | ||
1102 | return GTK_WIDGET_CLASS(v3270_parent_class); | 1097 | return GTK_WIDGET_CLASS(v3270_parent_class); |
1103 | } | 1098 | } |
1104 | 1099 | ||
1100 | +static AtkObject * v3270_get_accessible(GtkWidget * widget) | ||
1101 | +{ | ||
1102 | + v3270 * terminal = GTK_V3270(widget); | ||
1103 | + | ||
1104 | +// trace("%s acc=%p",__FUNCTION__,terminal->accessible); | ||
1105 | + | ||
1106 | + if(!terminal->accessible) | ||
1107 | + { | ||
1108 | + terminal->accessible = g_object_new(GTK_TYPE_V3270_ACCESSIBLE,NULL); | ||
1109 | + atk_object_initialize(ATK_OBJECT(terminal->accessible), widget); | ||
1110 | + } | ||
1111 | + | ||
1112 | + return ATK_OBJECT(terminal->accessible); | ||
1113 | +} | ||
1105 | 1114 |