[jawsscripts] Re: is this new jaws script syntax?

  • From: "Marlon Brandão de Sousa" <splyt.lists@xxxxxxxxx>
  • To: jawsscripts@xxxxxxxxxxxxx
  • Date: Wed, 16 Jan 2008 12:53:55 -0200

Hmm so the self identifier would add a kind of recursivity, sinse
there's no way of doing that if you call a function with the same name
without it, sinse jaws will use the default version of that function
if you do that?
Marlon

2008/1/16, Dennis Brown <DennisTBrown@xxxxxxxxxxx>:
> I can't think of an example of the Self scope identifier off the top of my
> head, but in most cases, if the function is in the current script set, no
> identifier is necessary.
> As for your second question about using scope to call a function that
> resides in a script set that isn't referenced in a use statement, or in
> default, there is no way to do that because the script set in question would
> not be loaded at the time.
> You'd need to tell Jaws that you wanted to use that script set's function
> within the current application, which is what the use statement is for!
> <grin>
> As for an example on calling a script up the chain...
> You can do that as long as you are not calling it from the same function
> that would get called in the current level script set.  For example,
>
> In Outlook 2007, if you had
> use "Microsoft Word 2007.jsb"
> and you had
> Function SayLine()
> If NoMoreMessageItems() Then ; Message list is empty...
>     ReadStatusLine()
>     Return
>    EndIf
> SayLine() ; Drops to the SayLine in Word 2007.
> EndFunction
>
> And in Word, you had
> Function SayLine()
> If gsApplicationName=="Outlook" Then ; In Outlook, but in the message body.
>     Microsoft_Outlook_2007::SayLine() ; Calls the Outlook SayLine function.
>      Return
>    EndIf
> SayLine() ; Drops to the SayLine in default.
> EndFunction
>
> This would cause the loop effect, since the Outlook SayLine would drop into
> the Word SayLine, then the Word SayLine would call the Outlook SayLine.
>
> If you had the Word SayLine function call something other than the SayLine,
> then it would be ok:
> Function SayLine()
> If gsApplicationName=="Outlook" Then ; In Outlook, but in message body.
>     Microsoft_Outlook_2007::SayFocusedObject() ; Call Outlook's
> SayFocusedObject function.
>     Return
>    EndIf
> SayLine() ; Drops to the SayLine in default.
> EndFunction
>
> You're calling up the chain, but not the function that called the Word
> SayLine initially, so no problem with a loop.
> Hth.
>
> Thanks,
> Dennis Brown
> ----- Original Message -----
> From: "Marlon Brandão de Sousa" <splyt.lists@xxxxxxxxx>
> To: <jawsscripts@xxxxxxxxxxxxx>
> Sent: Wednesday, January 16, 2008 6:53 AM
> Subject: [jawsscripts] Re: is this new jaws script syntax?
>
>
> Hello Dennis,
> Can you explain again what is self used for? In my understanding self
> will make explicit that the function being called is from the same jss
> file, but if this is true then the self key word isn't that usefull,
> sinse you can call the function without scope identifiers anyways and
> the compiler will assume you're referring to the version of the
> function defined in the current jss file.
> Another question is the following: can you use a scope identifier to a
> file you didn't referenced with a use statement (other than default)?
> And still another question ... can you provide me a sample about how
> one could call a function (up the chain)?
> Thanks,
> Marlon.
>
>
> 2008/1/15, Dennis Brown <DennisTBrown@xxxxxxxxxxx>:
> > Hi,
> > Those are new "scope" identifiers, needed because Outlook 2007 uses Word
> > as
> > the editor exclusively.  Using SwitchToConfiguration to launch the Word
> > script set became very problematic, especially when dealing with exchange
> > server timing issues.
> > These identifiers tells Jaws which specific function to call.
> > For example, the FocusChangedEventEx is the first event triggered on a
> > focus
> > change.
> > Microsoft Outlook 2007 has one, as does Microsoft Word 2007, MSOffice2007,
> > and default.jss.
> > They drop through if not redirected.
> > When going into a message, and the Word functions need calling, not the
> > Outlook functions, then the FocusChangedEventEx needs to be redirected to
> > the correct function, otherwise it would call the Outlook
> > FocusChangedEvent,
> > which would call the Outlook SayFocusedObject, and Outlook
> > SayObjectTypeAndText, none of which are used in the message body in
> > Outlook.
> > So, in Outlook's FocusChangedEventEx, we caused it to look for the class
> > of
> > the message body, _WwG, and if the current class, then redirect it to call
> > the Word's FocusChangedEventEx function, so the Word functions could
> > process
> > the message body.
> > Microsoft_Word_2007::FocusChangedEventEx(...)
> > Now the correct functions get called, and no constant switching of script
> > sets, vulnerable to timing issues.
> >
> > Self::
> > is only when you want the current script set's instance of that function
> > to
> > be used.
> >
> > Scope is redundant if the functions would be called by simply dropping
> > through.  For example,
> > ; Overwritten event in MyScripts.jss...
> > Function ValueChangedEvent(...)
> > If GetCurrentControlId()==4444 Then
> >     Default::ValueChangedEvent(...) ; Calls default.jss
> >     Return
> > EndIf
> > ValueChangedEvent(...) ; Drops through to default.jss anyway.
> > EndFunction
> >
> > If default is the next set, and you are already letting it drop through to
> > default, then no scope is needed.
> > Also, be careful not to get into a loop.  You should never call up the
> > chain, only down, otherwise you continually call the current function.
> > In this example, the Word scripts don't use anything in the Outlook script
> > set, so a scope to an Outlook function should never be used in the Word
> > scripts, since the Word script set is called in  a "use Microsoft Word
> > 2007.jsb" line within Microsoft Outlook 2007.jss file.
> > Hth.
> >
> > Thanks,
> > Dennis Brown
> > ----- Original Message -----
> > From: "Artur Räpp" <rtr@xxxxxxxxx>
> > To: <jawsscripts@xxxxxxxxxxxxx>
> > Sent: Tuesday, January 15, 2008 3:05 PM
> > Subject: [jawsscripts] is this new jaws script syntax?
> >
> >
> > > Hi,
> > >
> > > I use jaws 9.
> > > I found in Microsoft Outlook 2007 script file (Microsoft Outlook
> > > 2007.JSS)following
> > > default::SayAllStoppedEvent()
> > > line 5434, function SayAllStoppedEvent()
> > >
> > > is these 2 colons new jaws scripting language syntax? I haven't seen
> > > such
> > > thing before.
> > >
> > > in same file are:
> > > line 173, function ScreenStabilizedEvent
> > > Microsoft_Word_2007::ScreenStabilizedEvent(hwndLastScreenWrite)
> > >
> > > line 215, function AutoStartEvent
> > > self::LoadApplicationSettings ()
> > >
> > > line 282, function FocusChangedEventEx
> > >  msoffice2007::FocusChangedEventEx (hwndFocus,
> > > nObject,nChild,hwndPrevFocus,nPrevObject, nPrevChild,nChangeDepth)
> > >
> > > Artur
> > >
> > > __________ View the list's information and change your settings at
> > > //www.freelists.org/list/jawsscripts
> > >
> > >
> >
> > __________
> > View the list's information and change your settings at
> > //www.freelists.org/list/jawsscripts
> >
> >
>
>
> --
> When you say "I wrote a program that crashed Windows," people just
> stare at you blankly and say "Hey, I got those with the system, for
> free."
> Linus Torvalds
> __________
> View the list's information and change your settings at
> //www.freelists.org/list/jawsscripts
>
>
> __________
> View the list's information and change your settings at
> //www.freelists.org/list/jawsscripts
>
>


-- 
When you say "I wrote a program that crashed Windows," people just
stare at you blankly and say "Hey, I got those with the system, for
free."
Linus Torvalds
__________ 
View the list's information and change your settings at
//www.freelists.org/list/jawsscripts

Other related posts: