• R/O
  • HTTP
  • SSH
  • HTTPS

nvdajp: List of commits

NVDA with Japanese branch


RSS
Rev. Time Author
2605807 2007-01-02 20:12:24 mdcurran <>

*Got rid of NVDAObjects/textBuffer.py and moved all the code for handling text and editable text buffers in to the NVDAObject baseType.
Many methods and properties have been changed and renamed so that the baseType NVDAObject has the ability to support the offerings of IAccessible2 and other more advanced accessibility APIs.
-position, as in caretPosition and reviewPosition, is now called Offset.
-All text properties and methods have 'text_' prepended to their name (such as text_caretOffset, text_reviewOffset, text_getLineOffsets).
-Methods like getNextWord, getWord, wordStart, inWord, wordEnd etc etc etc (and the same for line and character etc) have been completely re-thought and is now things like
text_getWordOffsets(offset)
text_getNextWordOffsets(offset)
text_getPrevWordOffsets(offset)
And the same for line, sentence and paragraph.
No more need for all those other contridictory ones, these ones can give you all you need.
-text_getText(start,end) also is added, this is is instead o getTextRange and the old text property, the start and end parameters can be omitted to retreave the entire text.
-text_characterCount is the property you can use to get the length of the entire text.
-text_selectionCount and text_getSelectionOffsets(selectionUmber) can be used to get the current selections, unlike the old code, this makes it possible to get several separate selections, if the application supports it of course.
-text_getFontName, text_getFontSize, text_getPageNumber, text_getLineNumber, text_getStyle, text_isBold, text_isItalic, text_isUnderline, text_isSubscript, text_isSuperscript, text_getTableRowNumber, text_getTableRowCount, text_getTableColumnNumber, text_getTableRowCount, text_inTable, (all taking offset as a parameter) have been added. Of course these methods don't really do anything in the baseType, more higher-level code is given for these in other NVDAObjects. Because these methods ahve been aded, the registerPresenttionAttributes code has been finally gotten rid of.
*The baseType NVDAObject makes it seem like all objects have a text buffer by default, and this buffer contains the object's name, value and description. Of course if this object really does have a text buffer, then it is handled properly.
Other than making it easier to implement IAccessible2, this major change has enabled NVDA to be able to review any object you have currently navigated to, even if it doesn't really have a text buffer. For example, if you move focus to a list item in Windows explorer, you can use the numberpad to review the name etc, enabling you to find out the spelling.
*Split specific API code for things like windows edit controls, the Dos Console, and Internet Explorer editable text panes in to their own files in the NVDAObjects dir (winEdit.py, winConsole.py, MSHTML.py have been added).
*Got rid of some more MSAA dependencies from the default appModule and the NVDAObject baseType. Now the basetype NVDAObject has a statusBar property, which is a link to the closist statusbar object to this object. reportStatusBar has been changed to use this property. The old code for actually finding the statusBar object has been moved in to NVDAObjects/IAccessible.py since it was completely IAccessible specific.
*Re-wrote high-level NVDAObjects to now use the new text buffer code. The MS Word appModule has certainly been improved because of this, now it can work with tables a lot more nicer, previously because it used 'presentation attributes' the row and column number could have been spoken beofre the messsage that actually told you you are in a table.

50df198 2006-12-21 19:17:35 jteh <>

This should hopefully fix the GUI focus issue for good. It seemed that it worked reliably after the window had received focus at least once (which usually meant alt-tabbing for the user). However, a GUI application always receives focus if it displays a window immediately upon loading. Therefore, we now show the window and then hide it immediately on load. This means that the window has had focus previously at least once, so it appears to be all happy. I have no idea why this happens, but it appears to work on my system.

08065a8 2006-12-18 22:07:17 mdcurran <>

Fixed bug in Mozilla virtualBuffer code, was using old conf reference.

9514ed8 2006-12-18 19:47:45 mdcurran <>

Wrong name sorry. Now all modules and module contents have been renamed from MSAA to IAccessible, and all runs well at least on my system. Please report any bugs.

af7d0f2 2006-12-18 19:42:29 mdcurran <>

Step 3 of MSAA to IAccessible, this should be all done now.

aaa7d49 2006-12-18 19:30:44 mdcurran <>

Last commit was testing an add, seems sourceforge at this point in time isn't allowing move or copy. Deleteting what was added.

92813d9 2006-12-18 19:28:54 mdcurran <>

Step 2 of MSAA to IAccessible

d7d9d97 2006-12-18 19:23:41 mdcurran <>

Marked strings in versionInfo.py as being translatable.

5353306 2006-12-18 18:36:00 mdcurran <>

Step 1 of renaming MSAA to IAccessible. Broken, please do not try and use this revision.

e974411 2006-12-18 18:14:37 mdcurran <>

*Moved all constants out of constants.py in to their respective related places. For example: all the constants that come from winuser.h (for user32.dll) are now in winUser.py and all the oleacc.h constants are in MSAAHandler.py. Constants.py has now been deleted. This is a very major coding change so I may have missed a few here or there. Please report any bugs you find so they can be fixed. Even if they are really obvious. constants.py may come back if NVDA gains more global constants. But at this point in time, the only ones are exec constants used with core.executeFunction, so they were placed in core.
*Fixed a few possible bugs and coding problems reported by pychecker.
*Added an 'isProtected' property to the base type NVDAObject. This property is used to check if things like password fields should be treeted as protected. And also changed the hasFocus method to a hasFocus property. This is so that api.py no longer has to check states specific to MSAA. Hopefully now no code outside an MSAA context references MSAA roles or states.

5b74f75 2006-12-18 09:46:51 mdcurran <>

Updates to documentation.

f6cc029 2006-12-18 09:24:08 mdcurran <>

Missed a few config.conf references. Fixed a bug in isTypingProtected where it would cause an exception if NVDA has just started and the focus hasn't been set yet.

a0f4219 2006-12-18 09:13:53 mdcurran <>

*Added an 'applyConfiguration' function to core.py which loads the configuration, installs the correct language, and also initialises audio, so that the right synth and speech settings are set up.
The config module no longer loads the config on import. Also config.load now seeks back to the start of confspec. Also all parts of NVDA import all of config rather than just conf, for the reason that when it is reloaded, all the references to conf will be wrong. The only way to get around this would be to have a way to reload the config file in to the configObj itself.
*Added a 'revert to saved configuration' command on the NVDA menu in the GUI.

5a8f35e 2006-12-17 19:24:06 mdcurran <>

*Added single letter navigation keys to virtualBuffers. By themselves they move to the next element of that type, and with the shift key, they move to the previous.
Letters are: h=heading, p=paragraph, f=form field, t=table, l=list, i=list item, k=link
More may be added in the future, but I think these should be enough to start off with.
*Now the children property of NVDAObject_MSAA objects uses the accessibleChildren function from oleacc.dll to ask for all the children of an IAccessible, rather than manually going firstChild next [next ...]. A few bits of code (including mozilla gecko virtualBuffer rendering) uses the children property to walk the MSAA tree. Some say that this should make a speed improvement when using accessibleChildren.
*More fixes to internet explorer editable document navigation. Now backspace, delete and moveByCharacter scripts are overridden. Editing messages in outlook express seems to be a bit better now. Though I'm sure yet again I will find some bugs with this code.
*Added some more translatable strings, plus converted quite a few already existing ones to be in the form of string templates so that the person who translates them can have free reighn over where any values appear.

eed788a 2006-12-16 22:32:28 jteh <>


NVDA now uses the messages (.mo) file for the language defined in nvda.ini, if that .mo file exists. In order for this to work, the .mo file must be located in the directory locale\lang\LC_MESSAGES\nvda.mo, where lang is the language specified in nvda.ini; e.g. locale\ptb\LC_MESSAGES\nvda.mo.
Added svn:ignore properties for several directories to ignore *.pyc files and also *.py in comInterfaces.

aa04e91 2006-12-16 16:54:31 mdcurran <>

More fixes to outlook express internet explorer editable documents. overiden moveByWord and moveByCharacter and bacspace and delete scripts so that they read properly. Including moveByLine, all these scripts do not use caretPosition etc, but just use selection.createRange() from the IE dom.

9aa2f8c 2006-12-15 19:40:59 mdcurran <>

Much improved moving up and down by line with the arrow keys in internet explorer editable documents (outlook express messages and text areas). It now seems to work perfectly, at least on my system. No more saying blank, or getting the line completely wrong. Also fixed a bug in mozilla virtualBuffers where if it encountered a list item with no bullet object, it would fail to render the document.

14fc017 2006-12-15 09:30:11 mdcurran <>

Improved logic for when to reload a document in a mozilla virtualBuffer by using both gainFocus and stateChange. Also now mozilla virtualBuffers report the numbering or other symbols in ordered lists.

282052b 2006-12-14 16:48:48 mdcurran <>

*Fixed bug with mozilla virtualBuffers not being able to report block quotes.
*Mozilla virtualBuffers now recognise <q> elements as block quotes. An inline quote type could be added, but I'm not sure if that is just making too many types.
*Limited <br> elements in internet explorer virtualBuffers to only produce a line break if they are directly after a text node. This stops groups of blank lines appearing in anoying places such as where they are used between things in google.
*Added support for reporting entering and exiting forms in both internet explorer and mozilla virtualBuffers.
*Documents in both internet explorer and mozilla virtualBuffers now append a blank line at the bottom so that when reading in say all the reporting of exiting the last field happens.
*Added support for reporting table headers, table footers, rows and cells in internet explorer and mozilla virtualBuffers. Table was previously added. Of course reportTables must be true for the reporting of tables. However, more work will need to be done to make table reading easier, right now it functions just like all other fields, just reporting when entering and exiting. Note though: Mozilla does not have a row object, we will have to do something cool with cell locations.

6ef2505 2006-12-14 11:13:37 mdcurran <>

Fixed bug where mozilla documents were not loading if the Mozilla application had already been started before NVDA. It seems that some mozilla windows actually return an object with a different window, when getting an IAccessible.

745904a 2006-12-14 08:23:31 mdcurran <>

*Redesigned the handling of appModules so that they now stay around for the life of the application rather than for just when the application is active. Of course though key commands etc will only work when the application is active.
*Added a 'keyboardLayout' setting to the keyboard section of nvda.ini. This is a string, and by default it is 'desktop'. In theory this can be anything, but another value that will be most likely recognised by NVDA would be 'laptop'.
*AppModules now load their keymaps from a keymap file in the appModules directory. the keymap file is named as <app module name>_<keyboard layout>.kbd.
(example: MS Excel's desktop keyboard layout would be excel_desktop.kbd. default (_default) would be _default_desktop.kbd).
*Moved all the key bindings out of the default appModule in to its _default_desktop.kbd file.
*Enabled the extendedInsert key to be used as the insert key in NVDA scripts. Previously only the numpad insert could be used. There were some bugs when this was done once previously, but so far things seem to be ok. This will now mean hopefully that Laptop users won't have too much trouble in making laptop keymaps since they can now still use the insert key.
*Disabled sayAll functionality in dos console windows because it doesn't really make sence, plus it seems to just crash NVDA anyway.
*Fixed up the logic that manages the life of a virtualBuffer. Now they should be definitly created and killed off properly when a window gets focus or gets hidden.
*Added a 'keyName' function to keyboardHandler.py. This is used when you need to print a key name, for instance in debug.log. keyName is the reverse of key.
*Cleaned up what is sent to debug.log. debug.log now gives a much clearer picture of what the user was doing with NVDA, though please double-check your log file before you ever send it to someone for debugging purposes, it does contain the names and types of all objects you interacted with.
*NVDAObject_richEdit objects no longer have the entire text of the document as their value.

33b9291 2006-12-13 12:26:43 mdcurran <>

*Added two new properties to the NVDAObject base type to make reporting objects in mozilla a little easier:
-level: the depth with in something like a tree view (an integer or None)
-contains: a short description of what the object contains (e.g. tree view items might say 3 items)
'level' and 'contains' have also been added to audio.speakObjectProperties.
*Mozilla outline items now properly speak their levels, positions and whether they contain items.
*Fixed a bug where emails were not being loaded in to a virtualBuffer in thunderbird if the email took a little while to open (i.e. using Imap).
*NVDA now says 'done' before starting to read a document that has just loaded in a virtualBuffer.
*sayAll in a virtualBuffer no longer speaks blank lines.

bd2185c 2006-12-13 08:15:15 mdcurran <>

*Added 'reportVirtualPresentationOnFocusChanges' boolean to the virtualBuffers section of nvda.ini.
When this is true (which it is by default), virtualBuffers now report the text in the virtualBuffer for the item with focus, rather than using something like MSAA directly. This means that now when tabbing around a HTML document, moving in and out of lists etc will be spoken.
*Added support for the Mozilla Gecko rendering engine. So far it can produce virtualBuffers that look pretty much like internet explorer, for both Firefox and Thunderbird 2.0 and later. 1.5 *should* work but the code will probably be limited at 2.0 for fixing bugs.
Currently the support is only for reading content, and interacting with links and buttons and checkboxes etc, edit fields and editable documents (such as in Thunderbird) have not been at all implemented yet.
*Added some safety checks to Internet Explorer edit fields and editable panes to deail nicely with the possiblity of not successfully finding the system caret.

bbc0d17 2006-12-12 12:40:33 mdcurran <>

Added fieldType constants to virtualBuffers/baseType.py, plus a dictionary of fieldNames fur the types. getIDEnterMessage and getIDExitMessage in the baseType virtualBuffer now reports depending on the ID's fieldType and whether that type is allowed to speak according to nvda.ini virtualBuffer section. Internet explorer virtualBuffer now sets each ID with one of the fieldTypes from virtualBuffer baseType. Internet Explorer virtualBuffer now also reports ordered and definition lists.

238e685 2006-12-12 08:00:32 mdcurran <>

*Added support for reporting access keys in the internet explorer virtualBuffer.
*Fixed bug where a random amount of blank lines were sometimes being added to the bottom of virtualBuffers.
*Fixed bug where some links weren't being reported as links when inside another element that had plane text at some point after the link.
Examples: www.wikipedia.org (the 'edit' links) and www.nthdegreeofmusic.com (links in the navbar separated by '|' characters).
*Now NVDA says 'top' or 'bottom' if you try and navigate past the top or bottom of a virtualBuffer. Also control+home and control+end say top and bottom respectivly.

4b0f0f7 2006-12-11 18:11:59 mdcurran <>

*Text in internet explorer that is clickable (because of an onclick function) is now able to be activated with enter/space, and NVDA also now speaks this text as 'clickable'. To avoid over speaking information, links and form fields that have an onclick function are still spoken like normal links and form fields (i.e. they don't say 'clickable').
*Image form fields (imput of type image) are now added to the virtualBuffer in internet Explorer. They are currently treeted as buttons.
*Fixed up the way NVDA decides to activate something in the internet explorer virtualBuffer. Now when pressing enter on a checkbox or radio button it clicks it and then speaks its state, pressing enter on a button clicks it, pressing on a combo box or edit field gives it focus and turns on virtualBuffer pass through mode, pressing on links or images or clickable text clicks it.
*The text wrap code for virtualBuffers only gets used now if the text that is being added is of a length greater than the maxLineLength config variable. The textWrapper module seemed to do funny things with blank lines and other short whitespace flagments.
*Fixed some problems with edit fields and textArea elements in internet Explorer. Now both of these field types are navigable with the cursor. Also added some code that finds out the real position offset for the number in the textRange bookmark used to find the cursor in these fields.
*Password fields in internet explorer forms now represent each character by a '*' both in the virtualBuffer and when tabbing around.
*Now internet explorer virtualBuffer code uses the nodeName property of dom elements, rather than tagName (which needed to always be in a try/except block because it didn't always exist). Also changed around the logic of getDomNodeText a bit; this may make loading documents a tiny bit faster (though probably not enough to be noticable).
*Elements in internet explorer that have their 'display' style set to 'none' are now not rendered in the virtualBuffer.

3f6f8fa 2006-12-10 20:14:40 mdcurran <>

Replaced code back in to event_gainFocus of NVDAObject_internetExplorerEdid that makes is read properly. It must have accidentily been cut rather than copied when making NVDAObject_internetExplorerPane.

5926ef3 2006-12-10 19:24:24 mdcurran <>

Fix some bugs with MS Word cursor navigation. Fix problem where entering a table would cause an exception because of calling old code.

039558d 2006-12-10 18:41:46 mdcurran <>

Fixed up reviewing of dos console windows again. It broke when stopping objects speaking twice when they are both a foreground object and focus object.

bb34cb5 2006-12-10 18:38:06 mdcurran <>

*Fixed bug in internet explorer where pressing enter or space on a lin's position in the virtaulBuffer would not activate it if the link already had focus.
*Fixed bug in internet explorer where the virtualBuffer cursor would not move to the proper location when tabbing to an element who's virtualBuffer position was exactly one line above the cursor's position.
*When a context menu pops up in internet explorer, you can now arrow through it. Previously you were stuck in the virtualBuffer. It was fixed by getting MSAAHandler to execute a gainFocus event when it received an event_system_menuStart or event_system_menuPopupStart. This is a temporary fix, the overall NVDA menu code must be re-thought at some stage.

Show on old repository browser