OSDN Git Service

nvdajp/nvdajp.git
13 years agomerge main, resolving conflicts
Aleksey Sadovoy [Wed, 1 Dec 2010 17:26:28 +0000 (19:26 +0200)]
merge main, resolving conflicts

13 years agoMerged synthLanguageSupport. For most synths this provides a read-only language prope...
Michael Curran [Wed, 1 Dec 2010 01:53:40 +0000 (11:53 +1000)]
Merged synthLanguageSupport. For most synths this provides a read-only language property, which allows  other code in NVDA to find out the language the synth is currently speaking in. It also standardizes support for setting and listing languages by adding needed types to synthDriverHandler. The addition of the language property will allow NVDA in future to improve its puncutation handling by using appropriate rules according to the synth's current language, rather than simply either a default set of rules or rules based on NVDA's interface language.

13 years agosource readme: mention that Python's scripts directory must be added to the path...
Michael Curran [Wed, 1 Dec 2010 01:13:09 +0000 (11:13 +1000)]
source readme:  mention that Python's scripts directory must be added to the path variable in order for scons to be run from any location.

13 years agoinputCore: When in input help mode, and getting help for a particular gesture (e...
Michael Curran [Tue, 30 Nov 2010 05:26:25 +0000 (15:26 +1000)]
inputCore: When in input help mode, and getting help for a particular gesture (e.g. when in input help mode and pressing a key), if that gesture is bound to a script, a part from speaking the script name and description, now the gesture's identifier, the script name, and the scripts location, are logged at info level. This provides some way of users finding out the specific location of a particular script, in orer to add an entry to gestures.ini.

13 years agoscriptHandler: add a new getScriptLocation function, which takes a script, and return...
Michael Curran [Tue, 30 Nov 2010 05:23:35 +0000 (15:23 +1000)]
scriptHandler: add a new getScriptLocation function, which takes a script, and returns its module.class location. A previous version of getScriptLocation used to exist, however this new one now searches the script's class mro until it finds where the script has really  been implemented, rather than simply returning the class that the script was originally fetched from.

13 years agoCode doc.
James Teh [Tue, 30 Nov 2010 03:34:36 +0000 (13:34 +1000)]
Code doc.

13 years agoUpdate code doc.
James Teh [Tue, 30 Nov 2010 03:18:32 +0000 (13:18 +1000)]
Update code doc.

13 years agoSupport for global plugins which can globally bind scripts, handle NVDAObject events...
James Teh [Tue, 30 Nov 2010 02:33:29 +0000 (12:33 +1000)]
Support for global plugins which can globally bind scripts, handle NVDAObject events and choose NVDAObject overlay classes. See globalPluginHandler.GlobalPlugin for details.
Note that there is no longer an _default app module. Global scripts should be added or overridden using global plugins.
App modules should instead subclass appModuleHandler.AppModule (the base AppModule class).
The scripts from the _default app module are now in the new globalCommands.GlobalCommands object.
Fixes #281.

13 years agoRename plugins to global plugins to make it clear that they have global effect. We...
James Teh [Tue, 30 Nov 2010 02:23:17 +0000 (12:23 +1000)]
Rename plugins to global plugins to make it clear that they have global effect. We may also want ot use the term plugin for other things later; e.g. renaming app modules to app plugins.

13 years agoOnly allow one settings dialog to be opened at a time. This is specifically useful...
Michael Curran [Mon, 29 Nov 2010 23:20:34 +0000 (09:20 +1000)]
Only allow one settings dialog to be opened at a time. This is specifically useful for stopping the user from changing the synthesizer while the voice settings dialog is open. Fixes #603

13 years agonvdaHelper remote: IA2Support: Register IAccessibleTable2 and IAccessibleTableCell...
James Teh [Mon, 29 Nov 2010 07:45:29 +0000 (17:45 +1000)]
nvdaHelper remote: IA2Support: Register IAccessibleTable2 and IAccessibleTableCell interfaces for cross-process marshalling.

13 years agoRemove pointless code.
James Teh [Mon, 29 Nov 2010 06:19:33 +0000 (16:19 +1000)]
Remove pointless code.

13 years agoUpdate What's New.
James Teh [Mon, 29 Nov 2010 03:51:09 +0000 (13:51 +1000)]
Update What's New.

13 years agoAllow plugins to choose NVDAObject overlay classes by implementing a chooseNVDAObject...
James Teh [Mon, 29 Nov 2010 03:12:21 +0000 (13:12 +1000)]
Allow plugins to choose NVDAObject overlay classes by implementing a chooseNVDAObjectOverlayClasses method.

13 years agoCode doc.
James Teh [Mon, 29 Nov 2010 03:09:09 +0000 (13:09 +1000)]
Code doc.

13 years agoDispatch NVDAObject events to all plugins.
James Teh [Mon, 29 Nov 2010 02:45:08 +0000 (12:45 +1000)]
Dispatch NVDAObject events to all plugins.
As for app modules, plugin event functions are named event_eventName and take two arguments: the NVDAObject and a callable to call the next event handler.

13 years agoeventHandler: Refactor event execution to make it possible for events to be executed...
James Teh [Mon, 29 Nov 2010 02:37:18 +0000 (12:37 +1000)]
eventHandler: Refactor event execution to make it possible for events to be executed in an arbitrary number of plugins.
Note that events aren't actually dispatched to plugins yet.

13 years agoAllow plugins to bind scripts which are executed globally and take precedence over...
James Teh [Mon, 29 Nov 2010 00:50:57 +0000 (10:50 +1000)]
Allow plugins to bind scripts which are executed globally and take precedence over scripts in all other objects.

13 years agoFixes.
James Teh [Mon, 29 Nov 2010 00:50:49 +0000 (10:50 +1000)]
Fixes.

13 years agoAdd basic code to support plugins.
James Teh [Sun, 28 Nov 2010 23:56:30 +0000 (09:56 +1000)]
Add basic code to support plugins.
See the pluginHandler.Plugin class for details.
All plugins are imported and instantiated when NVDA is started and terminated on exit.
Scripts and events aren't yet delivered to plugins. This will be done in subsequent commits.

13 years agoappModuleHandler.initialize(): Use appModules.__init__ instead of appModules._default...
James Teh [Sun, 28 Nov 2010 22:29:31 +0000 (08:29 +1000)]
appModuleHandler.initialize(): Use appModules.__init__ instead of appModules._default when fetching the list of importers for the appModules package, as _default doesn't exist anymore. This actually makes no practical difference, but it's more correct. :)

13 years agoGet rid of the default app module!
James Teh [Fri, 26 Nov 2010 07:31:58 +0000 (17:31 +1000)]
Get rid of the default app module!
The scripts from the default app module have been moved into a separate globalCommands module, which is handled explicitly by scriptHandler.
This was done because these commands are not application specific, so it doesn't make sense for all app modules to inherit them.
It also prevents users from breaking NVDA completely due to a broken default app module in their user configuration.
App modules should now inherit from the base appModuleHandler.AppModule.

13 years agosconstruct: Add certPassword option to specify the password for the private key in...
James Teh [Fri, 26 Nov 2010 04:58:43 +0000 (14:58 +1000)]
sconstruct: Add certPassword option to specify the password for the private key in the certificate.
Fixes #1221.

13 years agoWhat's New: Add a "Changes for Developers" which documents changes concerning developers.
James Teh [Fri, 26 Nov 2010 04:02:01 +0000 (14:02 +1000)]
What's New: Add a "Changes for Developers" which documents changes concerning developers.

13 years agoAdd support for mapping gestures to scripts anywhere in NVDA.
James Teh [Fri, 26 Nov 2010 03:52:30 +0000 (13:52 +1000)]
Add support for mapping gestures to scripts anywhere in NVDA.
Currently, there are two global gesture maps: the user map and the locale map.
This allows users and locale maintainers to add new bindings and override existing bindings in a single file.
See the inputCore.GlobalGestureMap class for details.
The user map is stored in gestures.ini in the NVDA configuration directory.
The locale map is stored in locale\LANG\gestures.ini, where LANG is the language code.

13 years agoUpdate What's New.
James Teh [Fri, 26 Nov 2010 03:50:25 +0000 (13:50 +1000)]
Update What's New.

13 years agoImplement loading of the locale gesture map.
James Teh [Fri, 26 Nov 2010 01:30:06 +0000 (11:30 +1000)]
Implement loading of the locale gesture map.
This is stored in locale\lang\gestures.ini, where lang is the language code.
Also add some extra logging.

13 years agoAdd support for mapping gestures to scripts anywhere in NVDA.
James Teh [Fri, 26 Nov 2010 01:19:34 +0000 (11:19 +1000)]
Add support for mapping gestures to scripts anywhere in NVDA.
Currently, there are two global gesture maps: the user map and the locale map.
This allows users and locale maintainers to add new bindings and override existing bindings in a single file.
See the inputCore.GlobalGestureMap class for details.
The user map is stored in gestures.ini in the NVDA configuration directory.
Loading of the locale map is not yet implemented.

13 years agoFixed hindi user guide so key commands are actually generated and the NVDA can be...
Peter Vágner [Thu, 25 Nov 2010 08:21:03 +0000 (09:21 +0100)]
Fixed hindi user guide so key commands are actually generated and the NVDA can be built.

13 years agoAdded hindi language file and user guide,
Peter Vágner [Thu, 25 Nov 2010 07:11:58 +0000 (08:11 +0100)]
Added hindi language file and user guide,
Added serbian user guide,
Updated italian language file,
Updated slovak language file and changes.

13 years agoApp modules no longer have key map files!
James Teh [Thu, 25 Nov 2010 06:17:01 +0000 (16:17 +1000)]
App modules no longer have key map files!
Instead, all gesture bindings are done in the app module itself. This keeps everything together in the one place, removes the appModules folder in the NVDA binary distribution (which only contains kbd files) and removes one stage of gesture mapping (which will be necessary to simplify future enhancements).
Note that desktop and laptop bindings, as well as bindings common to both, can all be provided in the same gesture map now, which eliminates another reason for these key map files.
The most common way to bind gestures is to use a magic __gestures dict on the class. bindGesture() can also be used on the instance. See the code doc for baseObject.ScriptableObject for more details.
It's not currently possible for users to override the in-built bindings. This is coming in future.

13 years agoSource readme clarifications:
James Teh [Wed, 24 Nov 2010 03:01:27 +0000 (13:01 +1000)]
Source readme clarifications:
* Change "root of the NVDA source distribution/checkout" to just "root of the NVDA source distribution" to avoid confusion of "/" as a directory separator.
* Document that certFile expects a file in pfx format which must include the private key.

13 years agoCorrect the description for the current navigator object script in both NVDA and...
Michael Curran [Wed, 24 Nov 2010 02:32:15 +0000 (12:32 +1000)]
Correct the description for the current navigator object script in both NVDA and the english user guide. Input help now mentions that twice spells the information, and the user guide now mentions that 3 times copies it to the clibpard. Fixes #938.

13 years agoMerge main.
James Teh [Wed, 24 Nov 2010 01:38:02 +0000 (11:38 +1000)]
Merge main.

13 years agoMerge main.
James Teh [Tue, 23 Nov 2010 03:11:49 +0000 (13:11 +1000)]
Merge main.

13 years agosetup.py: Fetch all data files in the call to setup() now. We no longer run generate...
James Teh [Tue, 23 Nov 2010 02:23:17 +0000 (12:23 +1000)]
setup.py: Fetch all data files in the call to setup() now. We no longer run generate.py from setup.py, so there's no need to delay this.

13 years agoChanged the behaviour of the review follows caret option, so that the review positio...
Michael Curran [Mon, 22 Nov 2010 06:55:34 +0000 (16:55 +1000)]
Changed the behaviour of the review follows caret option, so that  the review position will only move if the caret moves in the same object. Previously if the caret moved in any object, the review position would jump inside that object. Specific changes:
*NVDAObject.event_caret: only set the review position to the caret if the current navigator object is this object.
*VirtualBuffer._set_selection:  rather than unconditionally setting the review position to the new caret position, instead only do this if the current navigator object is the root of this virtualBuffer.
*TreeInterceptor._set_passthrough: if passthrough is turning on, and the focus is currently inside this treeInterceptor, and the review follows focus option is on, set the navigator object to the focus.
*TreeInterceptor._set_selection: if passthrough is turning off, and the navigator object is inside this treeInterceptor, and the review follows caret option is turned on,  set the navigator object to the root of this treeInterceptor.

13 years agoNext release will be 2011.1.
James Teh [Mon, 22 Nov 2010 04:39:08 +0000 (14:39 +1000)]
Next release will be 2011.1.

13 years agosconstruct: Execute pygettext with the python executable, as not all systems will...
James Teh [Mon, 22 Nov 2010 00:43:49 +0000 (10:43 +1000)]
sconstruct: Execute pygettext with the python executable, as not all systems will associate .py files with the interpreter.

13 years agoRefactor the build process to allow anyone to prepare the source tree and create...
James Teh [Mon, 22 Nov 2010 00:13:30 +0000 (10:13 +1000)]
Refactor the build process to allow anyone to prepare the source tree and create binary distributions, portable archives, installers, etc. with a simple command.
scons is used to facilitate this.
See the Building NVDA section of the source readme for details.

Notes:
* Of course, SCons is now required for anyone running from source.
* The nvdaHelper build process has now been incorporated into the new build process, so you do not need to run scons from source\NVDAHelper anymore.
* nvdaHelper builds will no longer be provided on the snapshots page. This means that the Windows SDK and several other dependencies are now required, as documented in the source readme.
* You should no longer run generate.py, setup.py or makensis directly. Instead, use scons as documented in the source readme.
* source\include and source\NVDAHelper have been moved out of the source directory.

13 years agosconstruct: Build the client archive relative to the extras\controllerClient directory.
James Teh [Fri, 19 Nov 2010 04:36:10 +0000 (14:36 +1000)]
sconstruct: Build the client archive relative to the extras\controllerClient directory.

13 years agosconstruct: pot no longer depends on sourceDir, as this depends on comInterfaces...
James Teh [Fri, 19 Nov 2010 04:28:38 +0000 (14:28 +1000)]
sconstruct: pot no longer depends on sourceDir, as this depends on comInterfaces and nvdaHelper. Instead, just depend on *.py beneath sourceDir.

13 years agosconstruct: Rather than using normal scons mechanisms to create and remove _buildVers...
James Teh [Fri, 19 Nov 2010 01:34:19 +0000 (11:34 +1000)]
sconstruct: Rather than using normal scons mechanisms to create and remove _buildVersion.py*, do it as actions in the NVDADist builder. This is necessary because we want this to be removed immediately after NVDADist (not just when scons -c is run). Also, env.Clean() seems to make the file some sort of dependency, which causes problems for _buildVersion.pyc and _buildVersion.pyo which aren't scons targets.

13 years agoMerged main
Michael Curran [Thu, 18 Nov 2010 04:48:32 +0000 (14:48 +1000)]
Merged main

13 years agoapi.getReviewPosition(): Don't try to use a tree interceptor that isn't ready. Fixes...
James Teh [Thu, 18 Nov 2010 00:31:12 +0000 (10:31 +1000)]
api.getReviewPosition(): Don't try to use a tree interceptor that isn't ready. Fixes exceptions when trying to use the review position in a document that hasn't finished loading yet.

13 years agoFix a bug where the "Use currently saved settings on the logon and other secure scree...
James Teh [Wed, 17 Nov 2010 02:28:10 +0000 (12:28 +1000)]
Fix a bug where the "Use currently saved settings on the logon and other secure screens" button did not work if the systemConfig directory did not already exist, which is the case immediately after a clean install. Note that it did work after at least one secure screen appeared (as the directory gets created then).
Fixes #1194.

13 years agoHopefully fix exceptions when scripts are queued for objects in an app but the app...
James Teh [Tue, 16 Nov 2010 06:08:07 +0000 (16:08 +1000)]
Hopefully fix exceptions when scripts are queued for objects in an app but the app closes before the scripts get executed.

13 years agoMoved logLevel commandline option from NVDA's root sconstruct to nvdaHelper's, renami...
Michael Curran [Tue, 16 Nov 2010 02:24:59 +0000 (12:24 +1000)]
Moved logLevel commandline option from NVDA's root sconstruct to nvdaHelper's, renaming it nvdaHelperLogLevel.

13 years agoAdded nvdaHelper/sconscript which for some reason was never added before, should...
Michael Curran [Tue, 16 Nov 2010 02:17:50 +0000 (12:17 +1000)]
Added nvdaHelper/sconscript which for some reason was never added before, should have really be renamed from sconstruct.

13 years agoUpdate bzr ignores.
James Teh [Tue, 16 Nov 2010 01:36:52 +0000 (11:36 +1000)]
Update bzr ignores.

13 years agoInclude nvdaHelper build dependencies in the source readme. Remove the separate nvdaH...
James Teh [Tue, 16 Nov 2010 01:34:31 +0000 (11:34 +1000)]
Include nvdaHelper build dependencies in the source readme. Remove the separate nvdaHelper build instructions, as nvdaHelper is not built separately anymore.

13 years agonvda's root sconstruct: when cleaning _buildVersion.py, also get rid of its .pyc...
Michael Curran [Mon, 15 Nov 2010 06:39:26 +0000 (16:39 +1000)]
nvda's root sconstruct: when cleaning _buildVersion.py, also get rid of  its .pyc and .pyo files as well.

13 years agoIntegrate generation of comTypes COM interfaces in to scons:
Michael Curran [Mon, 15 Nov 2010 06:28:44 +0000 (16:28 +1000)]
Integrate generation of comTypes COM interfaces in to scons:
*Rename source/generate.py to source/generateComInterfaces.py, as that is all this file does now.
*NVDA's root sconstruct: generate comtypes COM interfaces in source/comInterfaces with the help of generateComInterfaces.py.
*source/setup.py: no longer call generate.py.

13 years agonvda root sconstruct: the release commandline option now only controls filenames...
Michael Curran [Mon, 15 Nov 2010 05:17:02 +0000 (15:17 +1000)]
nvda root sconstruct: the release commandline option now only controls filenames and whether NVDA's Python will run optimized, it does not affect nvdaHelper. There is now a new scons commandline option called nvdaHelperDebug. If you set this to 1, then vdaHelper will be built with asertions enabled, debug symbols, it will use debug libraries, and it will not be optimized.

13 years agothe output dir can now be specifically set on the commandline with outputDir=<dir>
Michael Curran [Mon, 15 Nov 2010 04:17:12 +0000 (14:17 +1000)]
the output dir can now be specifically set on the commandline with outputDir=<dir>

13 years agogettext scons tool: import msgfmt and use it that way, rather than spauning a separat...
Michael Curran [Mon, 15 Nov 2010 04:07:47 +0000 (14:07 +1000)]
gettext scons tool: import msgfmt and use it that way, rather than spauning a separate Python process each time its used. However to do this msgfmt.MESSAGES must be cleared after each use, and NVDA's root sconstruct must alert scons  that the gettextMoFile builder can not be run in parallel.

13 years agoas txt2tags can not be run in parallel, make sure scons doesn't try, by making all...
Michael Curran [Mon, 15 Nov 2010 03:46:20 +0000 (13:46 +1000)]
as txt2tags can not be run in parallel, make sure scons doesn't try, by making all the txt2tags target nodes  share a fake side effect.

13 years agoGenerate all archives and the pot etc in a directory called output to stop cluttering...
Michael Curran [Mon, 15 Nov 2010 00:15:58 +0000 (10:15 +1000)]
Generate all archives and the pot etc in a directory called output to stop cluttering  NVDA's root directory, and also to make it easier for an automatic snapshot builder to collect up all created files. Also add a 'changes' target which  copies user_docs/en/changes.html to the putput directory as nvda_version_changes.html.

13 years agoMove generation of html documentation from t2t files (including keyCommands) from...
Michael Curran [Sun, 14 Nov 2010 22:31:46 +0000 (08:31 +1000)]
Move generation of html documentation from t2t files (including keyCommands)  from source/generate.py and into scons:
*Add a t2t scons tool in which provides a builder called txt2tags which converts a given t2t source file in to  an html file. Note that the real txt2tags module must be able to be imported by scons, so it either needs to be in Python's site-packages, or in nvda's root directory (not in source).
*Move keyCommandsDoc.py from source in to nvda's root directory.
*keyCommandsDoc: the maker now takes an output filename, not just an input file name.
*keyCommandsDoc: the maker now generates the output in a temporary file (for now the output filename with two underscores after) and then if successfull renames to the appropriate name.  The documentation for this function stated that the file was only generated if successfull, which was not the case.
*Ad a keyCommandsDoc tool function to nvda's root sconstruct which provides a builder called keyCommandsDoc which generates a keyCommands t2t from a given userGuide t2t.
*NVDA's root sconstruct: keyCommands.t2t files will be built from all userGuide.t2t files in user_docs, excluding  languages that are in a special keyCommandsLangBlacklist (this is currently cs and ja). The blacklisted languages do not have the newer format for their user guide.
*NVDA's root sconstruct: build html files from all t2t files in user_docs, including any keyCommands.t2t files.
*source/generate.py: remove now redundant code that generated keyCommands t2t files and converted t2t files to html files.

13 years agoUpdated spanish language file,
Peter Vágner [Sun, 14 Nov 2010 18:09:47 +0000 (19:09 +0100)]
Updated spanish language file,
updated galician language file,
updated danish language file,
Updated polish language file,
Added serbian language file by Dejan Zubovic.

13 years agogettext scons tool: execute msgfmt each time in a separate python process, as if...
Michael Curran [Sat, 13 Nov 2010 10:01:39 +0000 (20:01 +1000)]
gettext scons tool:  execute msgfmt each time in a separate python process, as  if scons was building multiple files in parallel msgfmt would produce bad results as there is state kept at module level.

13 years agoMove gettext mo file generation out of source/generate.py and in to scons:
Michael Curran [Sat, 13 Nov 2010 07:56:19 +0000 (17:56 +1000)]
Move gettext mo file generation out of source/generate.py and in to scons:
*Added a gettext scons tool to site_scons/site_tools. This tool provides a gettextMoFile builder, which takes a gettext template file (.po) and compiles it using msgfmt to a .mo.
*NVDA root sconstruct: cause all of NVDA's po files to be compiled to mo files if source is being built.
*Removed locale compilation code from source/generate.py as its now redundant.

13 years agoNewfon synthDriver: fix syntax errors and missing imports.
Aleksey Sadovoy [Sat, 13 Nov 2010 03:04:32 +0000 (05:04 +0200)]
Newfon synthDriver: fix syntax errors and missing imports.
Use StringInfo instead of VoiceInfo for accel setting (because accelleration isn't a voice-like setting, particularly, it doesn't have language.)
SynthDriverHandler: add missing import

13 years agoIntegrate the building of nvdaHelper into NVDA's scons files:
Michael Curran [Fri, 12 Nov 2010 05:29:57 +0000 (15:29 +1000)]
Integrate the building of nvdaHelper into NVDA's scons files:
*NVDA's new root sconstruct: declare and export clientDir, sourceLibDir and sourceLibDir64 variables, which can be used by nvdaHelper and client etc.
* Move source/include to include (at NVDA's root). also change all mentions of the path '#../include' to '#/include' in nvdaHelper's sconscript files.
* Move contents of nvdaHelper's site_scons to NVDA's root site_scons
*Move the nvdaHelper dir out of source and in to the root of NVDA.
* Rename nvdaHelper's sconstruct file to sconscript
* nvdaHelper's archBuild_sconscript: Remove the 'install' target, and at the same time no longer collect built targets to make them be required by the install target.
* NVDAHelper's sconscript (previously sconstruct):  no longer create a base environment from which to clone the arch-specific environments, instead Import  the environment called 'env' and clone from that.
*nvdaHelper's sconscript: import clientDir, sourceLibDir and sourceLibDir64, and pass arch-specific variants of these to archBuild_sconscript.
*nvdaHelper's archBuild_ssconscript: do not hardcode libInstallDir and clientInstallDir, instead import them (given by nvdaHelper's sconscript).
* Remove pointless print statements from NVDAHelper scons files
* Move the commandline variable declarations (such as targetArchitectures and logLevel) from nvdaHelper's archBuild_sconscript and in to NVDA's new root sconstruct.
* rename the 'isRelease' commandline variable in NVDA's new root sconstruct to 'release' to be compatible with nvdaHelper -- it uses it in quite a few places.
*NVDAHelper's remote, client and local sconscript files: change all mentions of the path '#interfaces' to '../interfaces' (we can no longer really use # as its now at NVDA's root.
*nvdaHelper's remote/apiHooks.cpp: explicitly include nvdaControllerInternal.h above common/log.h as for some reason now scons is failing to scan more than one level deep for implicit dependencies -- all other files including log.h already did this.
*NVDA's new root sconstruct: no longer build an nvdaHelper archive (its no longer needed)
*NVDA's new root sconstruct: there is now a target called 'client' which will build the nvda controller client archive.

Further notes:
*As dist (portable, installer etc) depends on source, any nvdaHelper related libs / EXEs that should be in source will automatically get built when needed.
*controller client will no longer get built just because the rest of nvdaHelper is built, unless you specifically tell scons to build the 'client' target.

13 years agonvdaHelper displayModel interface implementation of getWindowTextInRect: when collect...
Michael Curran [Thu, 11 Nov 2010 05:25:25 +0000 (15:25 +1000)]
nvdaHelper displayModel interface implementation of getWindowTextInRect: when collecting text from descendant windows, ignore windows that are invisible according to IsWindowVisible. This among other things stops text from other tabs bleeding through when reviewing a particular propertysheet in a multitabbed dialog (e.g. file / folder properties in Windows explorer).

13 years agoUnneeded import.
James Teh [Wed, 10 Nov 2010 18:41:35 +0000 (04:41 +1000)]
Unneeded import.

13 years agoWoops. Not called Tera Term Pro anymore.
James Teh [Wed, 10 Nov 2010 18:36:58 +0000 (04:36 +1000)]
Woops. Not called Tera Term Pro anymore.

13 years agoSupport for automatically reporting new text when it appears on the screen!
James Teh [Wed, 10 Nov 2010 18:23:42 +0000 (04:23 +1000)]
Support for automatically reporting new text when it appears on the screen!
To avoid lag and spam, this must be enabled for individual controls using the LiveText and Terminal NVDAObject behaviors and the DisplayModelLiveText overlay class.
Specific support for mIRC, PuTTY, Tera Term Pro and SecureCRT has been included so far.
See those app modules for examples on how to do this for other applications.
Windows text consoles now use this new LiveText/Terminal behavior, which means they use the same monitoring code. This code is similar to the previous code in winConsoleHandler, but has been simplified and improved somewhat.

13 years agoUpdate What's New.
James Teh [Wed, 10 Nov 2010 18:16:02 +0000 (04:16 +1000)]
Update What's New.

13 years agoWindow NVDAObject: redraw(): RedrawWindow() takes client coordinates, not screen...
James Teh [Wed, 10 Nov 2010 18:07:22 +0000 (04:07 +1000)]
Window NVDAObject: redraw(): RedrawWindow() takes client coordinates, not screen coordinates, so convert them first. Fixes failure to redraw some objects.

13 years agoRemove unused stuff.
James Teh [Wed, 10 Nov 2010 17:02:57 +0000 (03:02 +1000)]
Remove unused stuff.

13 years agospeech: Don't use globalVars.keyCounter to determine when to kill the speak spelling...
James Teh [Wed, 10 Nov 2010 16:53:00 +0000 (02:53 +1000)]
speech: Don't use globalVars.keyCounter to determine when to kill the speak spelling generator, as keyCounter is currently not set and this is a pretty dodgy way of doing this. Instead, cancel the speak spelling generator (if any) when cancelSpeech is called. Fixes spelling continuing later after being interrupted.
Fixes #1188.

13 years agoAdd code doc.
James Teh [Wed, 10 Nov 2010 11:45:59 +0000 (21:45 +1000)]
Add code doc.

13 years agoLiveText behavior: Minor fixes:
James Teh [Wed, 10 Nov 2010 11:31:31 +0000 (21:31 +1000)]
LiveText behavior: Minor fixes:
* Clear the event in startMonitoring() just in case it was left set when monitoring previously.
* If there is a stabilise delay, check if monitoring was stopped while waiting. This is unlikely but possible.

13 years agoApp module for SecureCRT which reads incoming text automatically.
James Teh [Wed, 10 Nov 2010 06:12:24 +0000 (16:12 +1000)]
App module for SecureCRT which reads incoming text automatically.

13 years agoWinConsole NVDAObject: Allow 30 ms for the text to stabilise.
James Teh [Wed, 10 Nov 2010 05:39:43 +0000 (15:39 +1000)]
WinConsole NVDAObject: Allow 30 ms for the text to stabilise.

13 years agoLiveText behavior: Ignore single characters like we did in the old winConsoleHandler...
James Teh [Wed, 10 Nov 2010 02:48:01 +0000 (12:48 +1000)]
LiveText behavior: Ignore single characters like we did in the old winConsoleHandler code, as these are probably typed characters.

13 years agoMissing import.
James Teh [Wed, 10 Nov 2010 02:46:53 +0000 (12:46 +1000)]
Missing import.

13 years agoLiveText behavior: Remove MIN_CHECK_NEW_INTERVAL and introduce STABILIZE_DELAY instea...
James Teh [Wed, 10 Nov 2010 01:58:58 +0000 (11:58 +1000)]
LiveText behavior: Remove MIN_CHECK_NEW_INTERVAL and introduce STABILIZE_DELAY instead. This is the time to wait before fetching the text (i.e. before the text is considered stable) after a change event.

13 years agoLiveText: When calculating new text, don't barf on empty lines.
James Teh [Tue, 9 Nov 2010 23:04:52 +0000 (09:04 +1000)]
LiveText: When calculating new text, don't barf on empty lines.

13 years agoLiveText monitor thread: Add some exception handling.
James Teh [Tue, 9 Nov 2010 22:53:24 +0000 (08:53 +1000)]
LiveText monitor thread: Add some exception handling.

13 years agoCosmetic.
James Teh [Tue, 9 Nov 2010 22:48:15 +0000 (08:48 +1000)]
Cosmetic.

13 years agoCheck whether a console is dead every 100 ms and disconnect if so to allow it to...
James Teh [Tue, 9 Nov 2010 22:40:39 +0000 (08:40 +1000)]
Check whether a console is dead every 100 ms and disconnect if so to allow it to close.
This used to be done in the console monitor thread, but it doesn't make much sense to do this in the LiveText monitor thread, so use a separate timer.

13 years agoRemove IAccessible.ConsoleWindowClass NVDAObject, which isn't useful. It was only...
James Teh [Tue, 9 Nov 2010 22:11:22 +0000 (08:11 +1000)]
Remove IAccessible.ConsoleWindowClass NVDAObject, which isn't useful. It was only getting instantiated for the window accessible, which never gets focus.

13 years agowinConsoleHandler.consoleWinEventHook(): Only fetch console screen buffer info if...
James Teh [Tue, 9 Nov 2010 10:53:42 +0000 (20:53 +1000)]
winConsoleHandler.consoleWinEventHook(): Only fetch console screen buffer info if it is really needed.

13 years agoConvert Windows Console support to use the new Terminal behavior.
James Teh [Tue, 9 Nov 2010 09:08:29 +0000 (19:08 +1000)]
Convert Windows Console support to use the new Terminal behavior.
There are a couple of regressions which I have yet to fix.
Also, moving to a console with object navigation no longer causes new text from that console to be spoken, which partially fixes #673.

13 years agoLiveText behavior: Fix bug where startMonitoring() couldn't be called again even...
James Teh [Tue, 9 Nov 2010 08:48:19 +0000 (18:48 +1000)]
LiveText behavior: Fix bug where startMonitoring() couldn't be called again even after stopMonitoring(). Also, startMonitoring() now just returns if monitoring has already been started and vice versa for stopMonitoring().

13 years agoMerge main.
James Teh [Tue, 9 Nov 2010 08:37:09 +0000 (18:37 +1000)]
Merge main.

13 years agoWinConsoleTextInfo: Override the clipboardText property instead of the copyToClipboar...
James Teh [Tue, 9 Nov 2010 08:36:34 +0000 (18:36 +1000)]
WinConsoleTextInfo: Override the clipboardText property instead of the copyToClipboard() method.

13 years agoRemove unnecessary code.
James Teh [Tue, 9 Nov 2010 08:12:21 +0000 (18:12 +1000)]
Remove unnecessary code.

13 years agoAdd app module for Tera Term, which automatically reads incoming text.
James Teh [Tue, 9 Nov 2010 08:11:13 +0000 (18:11 +1000)]
Add app module for Tera Term, which automatically reads incoming text.

13 years ago gdiHooks: Since rectangles aren't usually useful for text change notifications due...
James Teh [Tue, 9 Nov 2010 08:02:16 +0000 (18:02 +1000)]
 gdiHooks: Since rectangles aren't usually useful for text change notifications due to the text changing before NVDA can fetch it, condense notifications even further to just one notification per window per notification interval. A rectangle is still provided in case it is useful, but it encompasses all updated rectangles, which may include text that wasn't updated.

13 years agoAdd an app module for PuTTY, which causes incoming text to be read automatically.
James Teh [Tue, 9 Nov 2010 06:20:27 +0000 (16:20 +1000)]
Add an app module for PuTTY, which causes incoming text to be read automatically.

13 years agoDisplayModelLiveText NVDAObject: Use EditableTextDisplayModelTextInfo, as this gives...
James Teh [Tue, 9 Nov 2010 06:19:12 +0000 (16:19 +1000)]
DisplayModelLiveText NVDAObject: Use EditableTextDisplayModelTextInfo, as this gives more accurate information regarding spacing and is needed for caret offset in terminals.

13 years agoTerminal behavior: Inherit EditableText, as terminals need to handle caret navigation...
James Teh [Tue, 9 Nov 2010 04:17:38 +0000 (14:17 +1000)]
Terminal behavior: Inherit EditableText, as terminals need to handle caret navigation. Don't call super in loseFocus event, as there is no base event.

13 years agoLiveText._calculateNewText(): Handle lines with different lengths when searching...
James Teh [Tue, 9 Nov 2010 03:21:28 +0000 (13:21 +1000)]
LiveText._calculateNewText(): Handle lines with different lengths when searching a changed line for the changed section of text. Also, optimise and simplify.

13 years agoLiveText behavior: Don't report new text if report dynamic content changes is disabled.
James Teh [Tue, 9 Nov 2010 01:02:40 +0000 (11:02 +1000)]
LiveText behavior: Don't report new text if report dynamic content changes is disabled.

13 years agoAdd app module for mIRC. This reads new output text automatically when the input...
James Teh [Tue, 9 Nov 2010 00:58:38 +0000 (10:58 +1000)]
Add app module for mIRC. This reads new output text automatically when the input field is focused.

13 years agoAdd NVDAObjects.Window.DisplayModelLiveText, which can be used for NVDAObjects which...
James Teh [Tue, 9 Nov 2010 00:47:39 +0000 (10:47 +1000)]
Add NVDAObjects.Window.DisplayModelLiveText, which can be used for NVDAObjects which should automatically report new display text.

13 years agodisplayModel: Allow NVDAObjects to register for text change notifications using reque...
James Teh [Tue, 9 Nov 2010 00:46:13 +0000 (10:46 +1000)]
displayModel: Allow NVDAObjects to register for text change notifications using requestTextChangeNotifications().
The textChange event will be called on the object when the display text changes.