[jawsscripts] Re: Bottom Edge Question

  • From: "Dennis Brown" <DennisTBrown@xxxxxxxxxxx>
  • To: <jawsscripts@xxxxxxxxxxxxx>
  • Date: Thu, 17 Jan 2008 09:31:42 -0500

Bottom Edge QuestionOne note on Bottom and TopEdgeEvents.  In 7.1, an internal 
delay was introduced to ensure the edge had actually been reached before the 
event fired, so you may have a delay before that last line gets processed with 
whatever code is placed in the event itself.
You can tell what I mean by arrowing up on the Desktop and notice the delay in 
the boundary strike noise when you reach a boundary.

Thanks,
Dennis Brown
  ----- Original Message ----- 
  From: Paul Magill 
  To: jawsscripts@xxxxxxxxxxxxx 
  Sent: Thursday, January 17, 2008 7:42 AM
  Subject: [jawsscripts] Re: Bottom Edge Question


  Hi Mike,

  The functions you mentioned, are fired by Jaws itself, if a cursor actually 
strikes the bottom edge of a window, that is, the actual boundary of the window.

  If the invisibleCursor is actually hitting the bottom edge of your mainframe 
window, then the below may help. If however, it has just run onto blank space 
below the last item in the list, then see further down.

  Try including a copy of BottomEdgeEvent in your script set something like 
this:

  Void Function BottomEdgeEvent (handle WinHandle)

  IF IsInvisibleCursor () && (GetFocus () == WinHandle) THEN
  ; say or do what you want
  ELSE; not caused by your script
  BottomEdgeEvent  (WinHandle) ; calls the one in the default file for normal 
behaviour
  ENDIF
  EndFunction

  1. The IF statement may need more refinement, if it treats strikes on the 
bottom edge that are from situations other than those caused by your script, as 
if they were caused by your script.
  2. no changes are required to your script.


  If caused by running out of items in the column, rather than hitting the 
bottom edge, then see additions to your script in your post below.

    ----- Original Message ----- 
    From: Trent, Mike 


    I have a very simple script to read the word directly under the PC cursor 
and then move to that word. This is for Rumba. I m using it to read columns of 
text on the mainframe. It works fine except when I get to the bottom of the 
page, then it just says blank. What I'd like to do is know how to recognize the 
bottom edge and do or say something other than 'blank'. 

    The script is as I said very simple. 

    ; see below the script for comments

    Script SayWordOnNextLine () 
    SaveCursor () 
    InvisibleCursor () 
    RouteInvisibleToPc () 
    NextLine () 

    IF (GetCursorRow () < 999) THEN 
    SayWord () 

    ELSE ; further down the page

    ; say or do what you want

    ENDIF 

    RoutePcToInvisible () 
    EndScript 

    ; replace the 999, with the cursor's row position of the first row below 
the last item in the list.

    this can be obtained by placing the cursor on the first blank line/item 
position, and pressing Alt+delete on the numpad. the second number is the row.



    A comment:

    On the mainframe I use, the PCCursor can be moved vertically just by using 
the arrow keys, so there is no need for using the invisible cursor. see the 
below script to read down a list of items.



    It presumes that the PCCursor is already active, and is not intended to 
notify of reaching the bottom.



    Script ColumnDown ()

    ; Allows reading down a column of items

    NextLine ()

    SayWord ()

    EndScript



    Regards,

    Paul from Aust


Other related posts: