WIP: AX port and noatspi work

This commit is contained in:
Storm Dragon
2025-12-25 20:51:34 -05:00
parent 0a18de8e87
commit e134bf97d5
103 changed files with 12882 additions and 3556 deletions

View File

@@ -27,6 +27,9 @@
OOo sbase application crashes when entering a database record.
"""
import gi
gi.require_version('Atspi', '2.0')
from gi.repository import Atspi
from macaroon.playback import *
sequence = MacroSequence()
@@ -36,7 +39,7 @@ sequence = MacroSequence()
# appear.
#
sequence.append(WaitForWindowActivate("Database Wizard", None))
sequence.append(WaitForFocus("Select database", acc_role=pyatspi.ROLE_LABEL))
sequence.append(WaitForFocus("Select database", acc_role=Atspi.Role.LABEL))
######################################################################
# 2. Press Return to get to the second screen of the startup wizard.
@@ -46,7 +49,7 @@ sequence.append(WaitForFocus("Select database", acc_role=pyatspi.ROLE_LABEL))
# SPEECH OUTPUT: 'Save and proceed label'
#
sequence.append(KeyComboAction("Return"))
sequence.append(WaitForFocus("Save and proceed", acc_role=pyatspi.ROLE_LABEL))
sequence.append(WaitForFocus("Save and proceed", acc_role=Atspi.Role.LABEL))
######################################################################
# 3. Press Tab to get to the database registration radio buttons.
@@ -56,7 +59,7 @@ sequence.append(WaitForFocus("Save and proceed", acc_role=pyatspi.ROLE_LABEL))
# SPEECH OUTPUT: 'Yes, register the database for me selected radio button'
#
sequence.append(KeyComboAction("Tab"))
sequence.append(WaitForFocus("Yes, register the database for me", acc_role=pyatspi.ROLE_RADIO_BUTTON))
sequence.append(WaitForFocus("Yes, register the database for me", acc_role=Atspi.Role.RADIO_BUTTON))
######################################################################
# 4. Press down arrow to not register this database.
@@ -66,7 +69,7 @@ sequence.append(WaitForFocus("Yes, register the database for me", acc_role=pyats
# SPEECH OUTPUT: 'No, do not register the database selected radio button'
#
sequence.append(KeyComboAction("Down"))
sequence.append(WaitForFocus("No, do not register the database", acc_role=pyatspi.ROLE_RADIO_BUTTON))
sequence.append(WaitForFocus("No, do not register the database", acc_role=Atspi.Role.RADIO_BUTTON))
sequence.append(PauseAction(3000))
######################################################################
@@ -78,7 +81,7 @@ sequence.append(PauseAction(3000))
# SPEECH OUTPUT: 'Files table'
#
sequence.append(KeyComboAction("Return"))
sequence.append(WaitForFocus("Files", acc_role=pyatspi.ROLE_TABLE))
sequence.append(WaitForFocus("Files", acc_role=Atspi.Role.TABLE))
sequence.append(PauseAction(3000))
######################################################################
@@ -97,19 +100,19 @@ sequence.append(PauseAction(3000))
#
sequence.append(KeyComboAction("Return"))
sequence.append(WaitForWindowActivate("New Database - OpenOffice.org Base", None))
sequence.append(WaitForFocus("IconChoiceControl", acc_role=pyatspi.ROLE_TREE))
sequence.append(WaitForFocus("IconChoiceControl", acc_role=Atspi.Role.TREE))
######################################################################
# 7. Enter Alt-f, Alt-c to close the database window.
#
sequence.append(KeyComboAction("<Alt>f"))
sequence.append(WaitForFocus("New", acc_role=pyatspi.ROLE_MENU))
sequence.append(WaitForFocus("New", acc_role=Atspi.Role.MENU))
sequence.append(KeyComboAction("<Alt>c"))
sequence.append(WaitAction("object:property-change:accessible-name",
None,
None,
pyatspi.ROLE_ROOT_PANE,
Atspi.Role.ROOT_PANE,
30000))
######################################################################