Re: [orca-list] I need help
- From: Carolyn MacLeod <Carolyn_MacLeod ca ibm com>
- To: Joanmarie Diggs <joanmarie diggs gmail com>
- Cc: orca-list-bounces gnome org, orca <Orca-list gnome org>
- Subject: Re: [orca-list] I need help
- Date: Wed, 19 May 2010 01:54:43 -0400
Just in case it's useful, here is a
link to Eclipse 3.6RC1 (release candidate 1) for Linux GTK:
http://download.eclipse.org/eclipse/downloads/drops/S-3.6RC1-201005131500/eclipse-SDK-3.6RC1-linux-gtk.tar.gz
Carolyn
orca-list-bounces gnome org wrote on 05/18/2010 10:24:11
PM:
> [image removed]
>
> Re: [orca-list] I need help
>
> Joanmarie Diggs
>
> to:
>
> vilmar
>
> 05/18/2010 10:25 PM
>
> Sent by:
>
> orca-list-bounces gnome org
>
> Cc:
>
> orca
>
> Hey José.
>
> I'm going to take these in reverse order:
>
> > do not know if I could explain clearly because my English is
not very
> > good.
>
> Your English is awesome. And every day I am grateful to be part of
such
> an amazing, international community filled with folks who have excellent
> skills with English because my ability to write in any other language
> than English does not exist. And we've all seen me not even get English
> right on a number of occasions. <shrugs and smiles>
>
> Having gotten that out of the way....
>
> > When I press the F11 key eclipse starts my application, suspends
the
> > execution in the first line of the main method and put the cursor
in
> > that line.
>
> So the caret is in an object we'll call Foo. Foo is an accessible
of
> pyatspi.ROLE_TEXT if memory about Eclipse objects' roles serves me.
And
> let's give Foo a caret offset while we're at it. How about 500?
>
> > At that moment orca receives an event of object:text-caret and
the
> > function _presentTextAtNewCaretPosition is executed.
>
> And what gets passed along to your function is the event.source which
> emitted the caret-moved event, in other words Foo.
>
> > Inside this function I have the following sequence of statements:
> > obj = otherObj
or event.source
>
> My guess is that otherObj is None. So obj winds up being the
> event.source, i.e. obj is now Foo.
>
> > [line, caretOffset,
startOffset] = self.getTextLineAtCaret(obj)
>
> getTextLineAtCaret() basically does a queryText(). From the resulting
> accessible text interface, it asks for the caretOffset. (Foo's text
> interface returns an offset of 500) Then we ask for the line at the
> caret (Foo's text interface returns the line at the caret offset of
> 500).
>
> > print "obj
= ", line, caretOffset, startOffset
>
> Looks like the line at the offset of 500 in Foo is
> 'boolean restart = true;'
>
> > if self._lastTextCaretMoved:
>
> Doesn't exist, so this doesn't happen:
>
> > [line,
caretOffset, startOffset] = self.
> getTextLineAtCaret(self._lastTextCaretMoved)
> > print
"self._lastTextCaretMoved = ", line,
> caretOffset, startOffset
>
> Moving on....
>
> > self.sayLine(obj)
> > self._lastTextCaretMoved
= obj
>
> You speak the line and (here's the important bit)
> self._lastTextCaretMoved becomes obj, which means
> self._lastTextCaretMoved becomes our friend Foo.
>
> [...]
>
> > Now I press the F6 key.
>
> Okay.
>
> > Eclipse executes the first line of the main method, suspends
the
> > execution and put the cursor in the second line of the main method.
>
> If you've gone from the first line of the main method (which lives
in
> the text object we're calling Foo) to the second line of the main
> method, my guess is that you're still in Foo. You've only moved a
line,
> so let's make the caret offset be 550.
>
> > Again orca receives an event of object:text-caret and the function
> > _presentTextAtNewCaretPosition is executed.
>
> Right. So let me copy and paste those lines from your script.
>
> > obj = otherObj or event.source
>
> I'm guessing otherObj is still None. Therefore obj becomes the
> event.source. The event.source is the thing which emitted the
> caret-moved event. If you're in the second line of the main method,
the
> event.source should be Foo. Thus obj becomes Foo.
>
> > [line, caretOffset, startOffset] = self.getTextLineAtCaret(obj)
>
> getTextLineAtCaret() queries the text interface of Foo. Asks Foo's
text
> interface what the offset is. Foo's text interface claims 550. Great,
we
> get the line of text at offset 550 which is apparently
> 'System.out.println("line 1");'
>
> > print "obj = ", line, caretOffset, startOffset
>
> So you print out 'System.out.println("line 1");'
>
> > if self._lastTextCaretMoved:
>
> This time we have self._lastTextCaretMoved. As you'll recall from
above,
> when we processed the event at caretOffset 500 we set
> self._lastTextCaretMoved to obj, and obj was Foo. So
> self._lastTextCaretMoved is Foo.
>
> > [line, caretOffset, startOffset] = self.getTextLineAtCaret(self.
> _lastTextCaretMoved)
>
> So you call getTextLineAtCaret() with Foo as the argument.
> getTextLineAtCaret() queries the accessible text interface for Foo.
We
> ask it for the caret offset. Foo's accessible text interface says
550.
> We get the line of text at the offset of 550 and as you probably guessed
> already, the text at the offset of 550 is still
> 'System.out.println("line 1");'
>
> <smile>
>
> > I think I should see the following:
> > System.out.println("line 1");
> > boolean restart = true;
>
> If that's what you want to see, try saving line in
> self._lastTextCaretMoved instead of obj.
>
> In other words, Foo is just an accessible object. It's not a snapshot
in
> time with a preserved caret offset or string or anything.
>
> Does this make sense?
> --joanie
>
> _______________________________________________
> orca-list mailing list
> orca-list gnome org
> http://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
> Netiquette Guidelines are at http://live.gnome.
> org/Orca/FrequentlyAskedQuestions/NetiquetteGuidelines
> Log bugs and feature requests at http://bugzilla.gnome.org
> Find out how to help at http://live.gnome.org/Orca/HowCanIHelp
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]