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