[jawsscripts] Re: Changing and Saving / Restoring Cursors

  • From: "Geoff Chapman" <gch@xxxxxxxxxxxxxxxx>
  • To: <jawsscripts@xxxxxxxxxxxxx>
  • Date: Thu, 4 Dec 2008 23:10:13 +1100

oh p.s. you have turned on ToolTip reading in the jcf file under the
verbosity dialog, under each of the 3 possible settings of advanced,
intermediate and beginner I presume? for some reason known only to fs, they
disable this by default, whereas windoweyes, at least in the old days, used
to leave it on.  or is it a custom toolTip type event that doesn't trigger
the standard ToolTip event?

----- Original Message ----- 
From: "Geoff Chapman" <gch@xxxxxxxxxxxxxxxx>
To: <jawsscripts@xxxxxxxxxxxxx>
Sent: Thursday, December 04, 2008 9:58 PM
Subject: [jawsscripts] Re: Changing and Saving / Restoring Cursors


> Hi Don.
>
> well, I myself have never used either the activeItemChangedEvent or the
> windowCreatedEvent, so unfortunately can't give actual specifics about
your
> sitch.
>
> couple things that occur to me to comment upon though,
> were,  that I wasn't quite
> clear after reading that message, which certainly explained
comprehensively
> about the application itself and some of the details of why you wanna  use
> it,
> exactly what was the major problem you were striking with this current
code?
>
> other than you said you keep having to turn on PC cursor again after
hitting
> down arrow?
> Again, very novice and probably useless things to point out, and my
ability
> to follow logic carefully through each component of a script is at present
> minimal,
> but, I was wondering,
> have you put in multiple sayStrings all over the place, within and outside
> these if and elif conditions, to debug/confirm exactly what bits of the
code
> are actually getting run, and what are not, in the various situations?
> This is how I've found it helpful to debug stuff, after advice from people
> up here.
> like if the jaws cursor seems to you to be remaining active when you don't
> feel it should be, working out where to maybe place another PcCursor
> command, might be arrived at through the usage of SayStrings to debug?
>
> now, as for CustomHighlight assign, it can only really help if you know
the
> items you wanna read, actually do change color/become focused or
highlighted
> in some way,
>  as you arrow through them with pcCursor, which of course they may not, if
> they're simply readable stuff for the sightlings.
> And, if you think the highlight color isn't a standard windowsy one.
>
> one thing to also remember is, that even if they do change color to a
custom
> highlight color  as you move through them, they might well change to a
> totally different color, when the jawsCursor/mouse hovers over them.
Thus,
> using the invisible  Cursor, to check their colors,
> rather than the jawsCursor, is in my view, the recommended option there.
> Use of course insert+Top Row number 5 to check textColors of stuff.
> if after doing that, you are convinced there is a concept of items in this
> list view actually becoming highlighted, and also changing their color to
> reflect this, then you can put the invisible cursor on that item and
choose
> the custom highlight assign command, insert+control+h.
>
> it should ask you foreground and background, to which you'd answer yes.
> and then it should show the new color in a dialog etc, with an radio
button
> option to have both windows standard and custom colors read, which is what
> you want, so just leave that and hit enter.
> This color will then get added in the app.jcf file, under a new section
> it'll put in there probably called something like [CustomHighlights]
> or some such thing.
> it'll have an =1, at the end of it, but for experimentation purposes, to
in
> effect disable it but not remove it, which is all that the front end
> customhighlight box permits, you can change this 1 to a 0 and resave the
jcf
> file. then flip it back to 1 again as needs be, if you wanna just quickly
> check stuff is working or whatever, without having to rego through
deleting
> and reassigning the whole custom highlight color etc.
>
> i used this very effectively in ITunes before they introduced MSAA into
it,
> and it brought the whole thing to life. menu bars too. no scripting
needed!
>
>
> ----- Original Message ----- 
> From: "Donald Marang" <donald.marang@xxxxxxxxx>
> To: <jawsscripts@xxxxxxxxxxxxx>
> Sent: Thursday, December 04, 2008 7:07 PM
> Subject: [jawsscripts] Re: Changing and Saving / Restoring Cursors
>
>
> > Actually, I am certainly a novice at scripting.I had written minor
scripts
> > for many years, but nothing like this.  It is a great learning
experience!
> > I have never used many features in JAWS, like Custom Highlight Assign.
As
> > far as I could tell, it did not seem to handle this situation.
> >
> > The unruly application is Verizon Call Assistant.  It is a totally free
> > software and web service for Verizon customers who still have a home,
land
> > line phone.  It is most usefull if you have Caller ID and Voice Mail on
> that
> > line.  This is exciting to me since I have all of these!  I realize that
> > most people have moved on and replaced these relics with newer more
> flexible
> > technology, like VoIP!  Once you create an account at
> > verizon.com/callassistant and you link it to your phone number and voice
> > mail service, you get many new capabilities.  You can view your call
log,
> > listen and save voice mails, receive emails for selecctive calls and
> email,
> > and maintain a contact list.  If you download the PC software, you can
> have
> > all this available all the time and get apop up, "Toast" notification
with
> > the Caller ID info for calls and voice mails!  It pops up down near the
> > clock area like a large HelpBalloon.  It even beats the phonne ringing
by
> at
> > least a second.  I also like to know if someone is trying to call and
left
> a
> > voice mail while my son is on the phone with his girlfriend.  I can see
> who
> > is trying to get through and even listen to the voice mail.  Verizon
> > promises to bring many new features in the near future including
advanced
> > selective forwarding.
> >
> > The results show up in a nonstandard dialog below the small main window
> with
> > three buttons and a search edit box.  The results dialog is primarily a
> > nonstandard list view, surounded by a title and controls to go to the
next
> > and previous pages.  The list shows up to 10 items at a time.  All of
the
> > options and settings are managed omn the wevsite.  The only set up on
the
> PC
> > is the login, which can be set to be done automatically when the
computer
> > starts up.
> >
> > The list only has two columns, even though most of the time there is at
> > least three things associated with that item that are inportant!  The
> phone
> > of the incoming call is not shown in the call log.  To get this
> information,
> > you must hover the mouse over the item.  A two line "ToolTip" appears
with
> > name and number.  New calls are shown in bold.  I also currently say
"item
>
> > x" before each item to let me know the ActiveItemChangedEvent occoured.
> > When the "ToolTip appears, I say the phone number and capture these
items
> in
> > global variables for later use.  Below is my ActiveItemChanged function
> and
> > part of my WindowActivatedEventt.
> >
> > My WindowActivatedEvent function first checks if the window class =
> "#32770"
> > (used by the results dialog, the "HelpBalloon" Toast dialogs and
various)
> > "ToolTip" windows).  Then I check the Control ID of the first child to
> > identify which action should be taken.  The Control ID of this window is
> > 282.
> >
> >
> > Void Function ActiveItemChangedEvent (handle hWnd, int iCurrentID, Int
> > iCurrentChild, handle hWndPrevious, Int iPreviousID, Int iPreviousChild)
> >
> > If hWnd == ghWndListView Then
> >  SayString ("Item " + IntToString (iCurrentChild))
> >  If GetCharacterAttributes () & ATTRIB_BOLD Then SayString ("new ")
EndIf
> >  ; SayString ("Selection state = " + IntToString (lvGetItemState (hWnd,
> > iCurrentChild) ))
> >
> >  JAWSCursor ()
> >  RouteJAWSToPc ()
> >  LeftMouseButton ()
> >  PCCursor ()
> > Else
> >  SayString ("Call to item changed and not in list view!  Item = " +
> > IntToString (iCurrentChild))
> > EndIf
> >
> > ActiveItemChangedEvent (hWnd, iCurrentID, iCurrentChild, hWndPrevious,
> > iPreviousID, iPreviousChild)
> >
> > EndFunction
> >
> >
> > Void Function WindowActivatedEvent (handle hWnd)
> > Var
> >  Handle hWndFirstChild,
> >  Int iFirstID,
> >  Handle hWndLastChild,
> >  Int iLastID,
> >  String sTip
> >
> > Let hWndFirstChild = GetFirstChild (hWnd)
> > Let iFirstID = GetControlID (hWndFirstChild)
> >
> > Let hWndLastChild = GetLastWindow (hWndFirstChild)
> > Let iLastID = GetControlID (hWndLastChild)
> > If GetWindowClass (hWnd) == WND_POPUP_CLASS Then
> >     If ...; handle other windows
> >  ELIf iFirstID == WCID_LIST_NAME Then
> >   ; SayString ("Name and phone pop up")
> >   Let gsListName = GetWindowName (hWndFirstChild)
> >   ; SayString ("Caller was: " + gsListName)
> >
> >   If IsWindowVisible (hWndLastChild) Then
> >    Let gsListNumber = GetWindowName (hWndLastChild)
> >    SayString ("number: " + gsListNumber)
> >   Else
> >    ;The ToolTip in the Search rersulrts list view only displays the name
> >    Let gsListNumber = Null ()
> >   EndIf
> >  ElIf iFirstID == WCID_VIEW_CONTACT_NAME Then
> > ... process other dialogs
> >  EndIf
> >
> > EndIf
> >
> > WindowActivatedEvent (hWnd)
> >
> > EndFunction
> >
> >
> > Don Marang
> >
> >
> > ----- Original Message ----- 
> > From: "Geoff Chapman" <gch@xxxxxxxxxxxxxxxx>
> > To: <jawsscripts@xxxxxxxxxxxxx>
> > Sent: Wednesday, December 03, 2008 9:44 AM
> > Subject: [jawsscripts] Re: Changing and Saving / Restoring Cursors
> >
> >
> > > p.s.
> > > like wen you say, switching whole scripts through
> activeItemChangedEvent,
> > > that sounds to me like
> > > a pretty sledge hammer approach to be trying as a solution?
> > > again, from a total novice perspective?
> > > You presumably know all about custom highlight colors and things of
that
> > > nature too, right? the simple stuff?
> > >
> > >
> > > ----- Original Message ----- 
> > > From: "Donald Marang" <donald.marang@xxxxxxxxx>
> > > To: <jawsscripts@xxxxxxxxxxxxx>
> > > Sent: Wednesday, December 03, 2008 3:03 PM
> > > Subject: [jawsscripts] Re: Changing and Saving / Restoring Cursors
> > >
> > >
> > >> Thanks, this seemed to help some.  It has not fixed all my problems,
> vut
> > > it
> > >> is vetter.  I will save this for future reference as well.  It is a
> > >> little
> > >> hard to debug with so many events.Today I tried to remove the need
for
> > >> frames and switch scripts that get called from my own
> > >> WindowActivatedEvent
> > >> function.  If I get this working properly, I want to put part of this
> > > script
> > >> in a similar function in the default script file, so I will get
> notified
> > > by
> > >> itscustom "HelpBaloon".
> > >>
> > >> Right now, I have to press the KeyPad + to force the PCCursor back on
> > > after
> > >> each time I use the down arrow in a custom list view I am trying to
> tame.
> > >> If I don't, it seems to have the JAWSCursor active, and does not get
> > > events
> > >> from ActiveItemChangedEvent.  There must be something funky I am
doing
> > >> within my ActiveItemChanggedEvent.  I had no idea that my application
> > >> woulduse MSAA at all, buut I followed a previous suggestion on this
> list
> > > and
> > >> it worked!  I have not investigated how to use MSAA any further at
this
> > >> point.
> > >>
> > >> Bless the list for its help.
> > >>
> > >> Don Marang
> > >>
> > >>
> > >> ----- Original Message ----- 
> > >> From: "James Panes" <jimpanes@xxxxxxxxx>
> > >> To: <jawsscripts@xxxxxxxxxxxxx>
> > >> Sent: Tuesday, December 02, 2008 5:59 PM
> > >> Subject: [jawsscripts] Re: Changing and Saving / Restoring Cursors
> > >>
> > >>
> > >> > Yes, the cursors do save on a stack. Another very important thing
to
> > >> > remember is that JAWS does not save the position of the PC Cursor
> when
> > > it
> > >> > is
> > >> > saved. There are valid scripting reasons why this is the case.
> > >> >
> > >> > To save and restore the PC cursor, I do the following:
> > >> > InvisibleCursor ()
> > >> > SaveCursor ()    ; This saves the original position of the
invisible
> > >> > cursor
> > >> > Move InvisibleToPC ()
> > >> > SaveCursor ()    ; This uses the invisible cursor to save the
> position
> > > of
> > >> > the PC cursor.
> > >> >
> > >> > Code that changes positions here
> > >> >
> > >> > RestoreCursor ()    ; This moves the invisible cursor to the
original
> > >> > position of the PC Cursor.
> > >> > RoutePCToInvisible () ; Places PC cursor back at its original
> position.
> > >> > RestoreCursor ()    ; Places Invisible cursor back to its original
> > >> > position.
> > >> > PCCursor ()    ; Activates PC cursor.
> > >> >
> > >> > This places the PC cursor and the invisible cursor back to where
they
> > > were
> > >> > and activates the PC cursor. The other thing is to make sure that
the
> > >> > PC
> > >> > cursor is active before going to all this trouble.
> > >> >
> > >> > Some scripters do not bother to save and restore the invisible
> cursor.
> > >> >
> > >> > Regards,
> > >> > James
> > >> > jimpanes@xxxxxxxxx
> > >> > jimpanes@xxxxxxxxxxxx
> > >> > "Everything is easy when you know how."
> > >> >
> > >> > ----- Original Message ----- 
> > >> > From: "Doug Lee" <doug.lee@xxxxxxxxxxxxxxxx>
> > >> > To: <jawsscripts@xxxxxxxxxxxxx>
> > >> > Sent: Tuesday, December 02, 2008 4:39 PM
> > >> > Subject: [jawsscripts] Re: Changing and Saving / Restoring Cursors
> > >> >
> > >> >
> > >> > My standard idiom is saveCursor() invisibleCursor() saveCursor():
> The
> > >> > first saveCursor keeps track of which cursor was active to begin
> with,
> > >> > and the second saves the position of the invisible cursor before I
> > >> > move it.
> > >> >
> > >> > On Tue, Dec 02, 2008 at 04:32:27PM -0500, Donald Marang wrote:
> > >> > In the examples I have seen for using the SaveCursor and
> RestoreCursor
> > >> > functions, they use the following order:
> > >> > InvisibleCursor ()
> > >> > SaveCursor ()
> > >> > perform statements that move the focus...
> > >> > RestoreCursor ()
> > >> >
> > >> > If the save and restore functions work like a stack, wouldn't the
> > >> > SaveCursor
> > >> > function need to be called first, and then change cursors?  I am a
> > > little
> > >> > confused here.  I am finding my application being continually with
> the
> > >> > InvisibleCursor active, and I am not sure why!
> > >> >
> > >> > Don Marang
> > >> >
> > >> >
> > >> > __________?
> > >> > Visit and contribute to The JAWS Script Repository
> > > http://jawsscripts.com
> > >> >
> > >> > View the list's information and change your settings at
> > >> > http://www.freelists.org/list/jawsscripts
> > >> >
> > >> > -- 
> > >> > Doug Lee, Senior Accessibility Programmer
> > >> > SSB BART Group - Accessibility-on-Demand
> > >> > mailto:doug.lee@xxxxxxxxxxxxxxxx  http://www.ssbbartgroup.com
> > >> > "While they were saying among themselves it cannot be done,
> > >> > it was done." --Helen Keller
> > >> > __________
> > >> > Visit and contribute to The JAWS Script Repository
> > > http://jawsscripts.com
> > >> >
> > >> > View the list's information and change your settings at
> > >> > http://www.freelists.org/list/jawsscripts
> > >> >
> > >> > __________
> > >> > Visit and contribute to The JAWS Script Repository
> > > http://jawsscripts.com
> > >> >
> > >> > View the list's information and change your settings at
> > >> > http://www.freelists.org/list/jawsscripts
> > >> >
> > >>
> > >> __________
> > >> Visit and contribute to The JAWS Script Repository
> http://jawsscripts.com
> > >>
> > >> View the list's information and change your settings at
> > >> http://www.freelists.org/list/jawsscripts
> > >>
> > >
> > > __________
> > > Visit and contribute to The JAWS Script Repository
> http://jawsscripts.com
> > >
> > > View the list's information and change your settings at
> > > http://www.freelists.org/list/jawsscripts
> > >
> >
> > __________
> > Visit and contribute to The JAWS Script Repository
http://jawsscripts.com
> >
> > View the list's information and change your settings at
> > http://www.freelists.org/list/jawsscripts
> >
>
> __________
> Visit and contribute to The JAWS Script Repository http://jawsscripts.com
>
> View the list's information and change your settings at
> http://www.freelists.org/list/jawsscripts
>
>

__________ 
Visit and contribute to The JAWS Script Repository http://jawsscripts.com

View the list's information and change your settings at 
http://www.freelists.org/list/jawsscripts

Other related posts: