Re: [orca-list] TO (Jos? Vilmar Est?cio de Souza) orca-list Digest, Vol 95, Issue 34



Hi all.
Sorry for the long message and the bad english but I hope it is of some help. I would also like to take this opportunity to wish everyone a wonderful Christma

No, I think that you can not run orca under eclipse and debug it like a java program.
You will lose accessibility in orca running with a debugger.

I don't know orca very well, but if I understood correctly, orca works driven by events.

From script.py>:
Each script maintains a set of key bindings, braille bindings, and
AT-SPI event listeners.  The key bindings are an instance of
KeyBindings.  The braille bindings are also a dictionary where the
keys are BrlTTY command integers and the values are instances of
InputEventHandler.  The listeners field is a dictionary where the keys
are AT-SPI event names and the values are function pointers.

Instances of scripts are intended to be created solely by the
script manager.

This Script class is not intended to be instantiated directly.
Instead, it is expected that subclasses of the Script class will be
created in their own module.  The module defining the Script subclass
is also required to have a 'getScript(app)' method that returns an
instance of the Script subclass.  See default.py for an example.



From default.py, a sub class of script.py:
.............
import orca.script as script
............
class Script(script.Script):
...............
    def getListeners(self):
        """Sets up the AT-SPI event listeners for this script.
        """
        listeners = script.Script.getListeners(self)
        listeners["focus:"]                                 = \
            self.onFocus
        listeners["document:reload"]                        = \
            self.onDocumentReload
        listeners["document:load-complete"]                 = \
            self.onDocumentLoadComplete
        listeners["document:load-stopped"]                  = \
            self.onDocumentLoadStopped
        listeners["mouse:button"]                           = \
            self.onMouseButton
        listeners["object:property-change:accessible-name"] = \
            self.onNameChanged
        listeners["object:text-caret-moved"]                = \
            self.onCaretMoved
        ........
        return listeners


Observe that there is one function for each event. If for example an application issue the focus event, orca will call the onFocus function.

    def onFocus(self, event):
        """Callback for focus: accessibility events."""

        pass

The focus event is being deprecated, so its simplicity in this script.

In a script that is a subclass of default.py, you can override for exemple the onfocus function to change its behavior.

In the scripts that I wrote to manage eclipse, I rewrote the function onTextDeleted. This function is called when the event object:text-changed:delete is issued by an application, in the case eclipse.

In the debug output from orca you will find something like:

KEYBOARDEVENT: type=<enum ATSPI_KEY_PRESSED_EVENT of type AtspiEventType>
                id=65535
                hw_code=119
                modifiers=0
                event_string=(Delete)
                keyval_name=(Delete)
                is_text=True
                timestamp=5787135
                time=1387882771.659806
                keyType=action
                shouldEcho=False

This means that a key in the keyboard was pressed and the key pressed is the delete key.

----------> QUEUEING OBJECT:TEXT-CHANGED:DELETE

This means two things:
1.  an application issue the event OBJECT:TEXT-CHANGED:DELETE.
2. The event was placed by orca in a queue to be processed.

Orca keeps a queue of all incoming events to be processed later.

DEQUEUED OBJECT:TEXT-CHANGED:DELETE  <----------

vvvvv PROCESS OBJECT EVENT object:text-changed:delete vvvvv
OBJECT EVENT: object:text-changed:delete               detail=(0,1,p)
app.name='Eclipse' name='None' role='text' state='editable enabled focusable focused multi line sensitive showing visible' relations=''
Script for event: Eclipse (module=orca.scripts.apps.Eclipse.script)
BRAILLE: update disabled
SPEECH OUTPUT: 'a'
TOTAL PROCESSING TIME: 0.0142
^^^^^ PROCESS OBJECT EVENT object:text-changed:delete ^^^^^

Two things here:
1. The OBJECT:TEXT-CHANGED:DELETE event was removed from the orca's queue to be processed.
2. It was processed.
When processing the event, orca tells me the following:
Script for event: Eclipse (module=orca.scripts.apps.Eclipse.script)

Since I know the script used to process the event and since I know the name of the event, I can find the function used to process the event. In general all scripts are a subclass of the default.py script. You can open the default.py script and look for the name of the event to find the associated function.


On 12/24/2013 02:20 AM, Dhairyashil Bhosale wrote:
Ok, I tried a lot in eclipse IDE means I tried many times to run orca in
Eclipse .

But in which way I can compile Orca's source code . and debug it? ,

Is that any way to to travers through orca's source code while running
means Like in Eclipse we press F5 while debugging for understanding
which function is called.

I just Dubug  using : $orca --debug-file=debugOutPut

but it's very large file I understand some part of it but not get Work
Flow of it

Please help.






        6. Re:  Running Orca In Eclipse IDE (Jos? Vilmar Est?cio de Souza)


    Message: 6
    Date: Mon, 23 Dec 2013 13:41:06 -0200
    From: Jos? Vilmar Est?cio de Souza      <vilmar informal com br
    <mailto:vilmar informal com br>>
    To: orca-list gnome org <mailto:orca-list gnome org>
    Subject: Re: [orca-list] Running Orca In Eclipse IDE
    Message-ID: <52B85992 8070407 informal com br
    <mailto:52B85992 8070407 informal com br>>
    Content-Type: text/plain; charset=UTF-8; format=flowed

    Hi.
    I am not sure if this is simple, at least I never tried.



    On 12/23/2013 12:03 PM, Dhairyashil Bhosale wrote:
     > Hi All,
     >
     >
     > I just Configure Eclipse IDE by PyDev plug-in  for python
    programming.
     >
     > Please Tell me that How to run Orca's source In Eclipse IDE.
     > that is -:
     >               1) Import Orca's Source Code In Eclips IDE,
     >               2) Compile Orca's Source Code,
     >               3) Run Orca's Source Code.
     >
     >
     >
     >
     > _______________________________________________
     > orca-list mailing list
     > orca-list gnome org <mailto:orca-list gnome org>
     > https://mail.gnome.org/mailman/listinfo/orca-list
     > Visit http://live.gnome.org/Orca for more information on Orca.
     > The manual is at
    http://library.gnome.org/users/gnome-access-guide/nightly/ats-2.html
     > The FAQ is at http://live.gnome.org/Orca/FrequentlyAskedQuestions
     > Log bugs and feature requests at http://bugzilla.gnome.org
     > Find out how to help at http://live.gnome.org/Orca/HowCanIHelp
     >

    --
    {}S Jos? Vilmar Est?cio de Souza


    ------------------------------

    Subject: Digest Footer

    _______________________________________________
    orca-list mailing list
    orca-list gnome org <mailto:orca-list gnome org>
    https://mail.gnome.org/mailman/listinfo/orca-list


    ------------------------------

    End of orca-list Digest, Vol 95, Issue 34
    *****************************************




_______________________________________________
orca-list mailing list
orca-list gnome org
https://mail.gnome.org/mailman/listinfo/orca-list
Visit http://live.gnome.org/Orca for more information on Orca.
The manual is at http://library.gnome.org/users/gnome-access-guide/nightly/ats-2.html
The FAQ is at http://live.gnome.org/Orca/FrequentlyAskedQuestions
Log bugs and feature requests at http://bugzilla.gnome.org
Find out how to help at http://live.gnome.org/Orca/HowCanIHelp


--
{}S José Vilmar Estácio de Souza


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]