OSDN Git Service

nvdajp/nvdajp.git
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 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 agoMerge main.
James Teh [Fri, 5 Nov 2010 03:10:36 +0000 (13:10 +1000)]
Merge main.

13 years agoRefactor the build process to allow anyone to create binary distributions, portable...
James Teh [Fri, 5 Nov 2010 03:01:35 +0000 (13:01 +1000)]
Refactor the build process to allow anyone to create binary distributions, portable archives, installers and gettext translation templates with a simple command, including setting the version number and signing with a supplied certificate file.
scons is used to facilitate this. All builds should now be done using scons at the top level of the source distribution.
See the updated instructions towards the bottom of the source readme for details on how to use this.
Note that you can no longer build an installer directly by using makensis.

13 years agonvdaHelper: implement support in display models for scrolled windows by hooking Scrol...
Michael Curran [Thu, 4 Nov 2010 07:29:00 +0000 (17:29 +1000)]
nvdaHelper: implement support in display models for scrolled windows by hooking ScrollWindow and ScrollWindowEx. This implementation makes use of displayModel_t::copyRectangle to move a given rectangle in a display model.

13 years agoNVDAHelper: displayModel_t::copyrectangleToOtherModel: rewritten to support new featu...
Michael Curran [Thu, 4 Nov 2010 01:42:22 +0000 (11:42 +1000)]
NVDAHelper: displayModel_t::copyrectangleToOtherModel: rewritten to support new features, allow it to propertly copy from/to the same model, and to be more understandable. Specific changes:
*Rename to "copyRectangle", as the destination model is optional, meaning that the copy could occure all in the one model.
*Rename the arguments otherModel, otherX and otherY to destModel, destX and destY respectivly.
*Move the destModel argument to the end as its optional.
*Rename the clearEntireRectangle argument to opaqueCopy.
*Add a removeFromSource argument, which if True means that  the copy should act like a move (i.e. the content is removed from the source model). This will hopefully be useful when implementing support for scrolling.
*Add an optional destClippingRect argument which allows you to provide a clipping rectangle which should clip all content being copied in to the destination model. Again useful for implementing scrolling support.
*Make copies of all the chunks before doing any clearing,rather than after,  so that copying from/to the same model correctly works. Both bltBlt and scrolling support need this.

13 years agonvdaHelper: hook all functions using apiHook_hookFunction_safe, at the same time...
Michael Curran [Tue, 2 Nov 2010 22:56:52 +0000 (08:56 +1000)]
nvdaHelper: hook all functions using apiHook_hookFunction_safe, at the same time catching and fixing some coding errors, which may have caused, or been the future cause of, some crashes. Specific code error fixes:
*ExtTextOutHelper: lpString must be const.
*TextOutA and TextOutW: the return type is int, not bool (lowercase), and lpString must be const.
*PolyTextOutW and PolyTextOutA: do not use our own custom WA_POLYTEXT template struct, instead  make the hookClass_PolyTextOut template class take the POLYTEXTA or POLYTEXTW as its template argument rather than just char or wchar_t. Although that sort of worked in the past, for actual verification of function signatures a custom struct can't be used.
  *ExtTextOutA and ExtTextOutW: lpString should be const, cbCount should be UINT not int, and lpdx should be INT (uppercase) not int (lowercase).

13 years agonvdaHelper: added a much safer way of hooking functions, that verifies the function...
Michael Curran [Tue, 2 Nov 2010 06:26:07 +0000 (16:26 +1000)]
nvdaHelper: added a much safer way of hooking functions, that verifies the function signatures at compile time.
If using apiHook_hookFunction_safe it is now impossible to use the incorrect function signiture for the real function symbol, the real function variable, or the fake function symbol. They *must* match, or else it doesn't compile.
To now hook a function, do something like real_GetDesktopWindow=apiHook_hookFunction_safe("USER32",GetDesktopWindow,fake_GetDesktopWindow).
The only difference on the outside is that a real defined function symbol must be used as the real function name rather than a string. This does mean though that you must have the header file for the function in order to hook it. Either that or at least have defined it somewhere in the same file, though this would not be any more safer than the older method.
How it works internally:
apiHook_hookFunction_safe is a macro that takes 3 arguments: moduleName, realFunction and fakeFunction.
apiHook_hookFunction_safe calls apiHook_hookFunction_tpl with these arguments, plus a stringified version of the realFunction argument.
apiHook_hookFunction_tpl is a template function which takes a moduleName string, a realFunctionName string, a realFunction symbol, and a fakeFunction symbol. Its template argument is a typename called funcType, which it deduces from the realFunction and fakeFunction signatures, which must match. It also returns a symbol of type funcType, which again will match the other two function symbols.
apiHook_hookFunction_tpl calls the original apiHook_hookFunction, hooking the function in the normal way. The macro and the template are only there for safety purposes at compile time.
 The only limit to this new way of hooking is that the symbol hooked in the particular module must have exactly the same name as the symbol defined in the header file. Plus a header file should be available containing this symbol you are hooking. If these limits are a problem then apiHook_hookFunction can be used directly, but when possible it is very important to use the safer version.

13 years agoMerge 2010.2. Change sfrom the fi and pl gettext (.po) files have not been merged...
James Teh [Sun, 31 Oct 2010 21:31:39 +0000 (07:31 +1000)]
Merge 2010.2. Change sfrom the fi and pl gettext (.po) files have not been merged due to conflicts.

13 years agoFix access to some Windows Security dialogs such as the dialog that appears when... release-2010.2
James Teh [Thu, 28 Oct 2010 06:02:35 +0000 (16:02 +1000)]
Fix access to some Windows Security dialogs such as the dialog that appears when installing unsigned drivers.
It seems that custom window messages cannot be sent to these dialogs, so sending our custom ping message returns an access denied error, which causes IAccessibleHandler.accessibleObjectFromEvent() to fail.
This custom ping message was implemented to fix Windows Live Messenger 2009 exiting on startup (#677). Instead, just use WM_NULL (which can be sent to these dialogs) and implement a specific condition to ignore the problematic event from Messenger.

13 years agoversionInfo: Set version to 2010.2.
James Teh [Thu, 28 Oct 2010 00:35:49 +0000 (10:35 +1000)]
versionInfo: Set version to 2010.2.

13 years agoUpdated traditional chinese language file and user guide.
Peter Vágner [Wed, 27 Oct 2010 17:41:58 +0000 (19:41 +0200)]
Updated traditional chinese language file and user guide.

13 years agoScriptableObject: Don't store instance methods in the gesture map, as this causes...
James Teh [Wed, 27 Oct 2010 05:18:51 +0000 (15:18 +1000)]
ScriptableObject: Don't store instance methods in the gesture map, as this causes circular references and therefore memory leaks. Instance methods are meant ot be generated on retrieval anyway. Therefore, store the function from the class and create the instance method when the script is retrieved.

13 years agoUpdated croatian language file.
Peter Vágner [Wed, 27 Oct 2010 04:55:30 +0000 (06:55 +0200)]
Updated croatian language file.

13 years agoAdded Russian changes in t2t format
Aleksey Sadovoy [Tue, 26 Oct 2010 20:56:20 +0000 (23:56 +0300)]
Added Russian changes in t2t format

13 years agoUpdated german language file user guide and changes.
Peter Vágner [Tue, 26 Oct 2010 19:50:32 +0000 (21:50 +0200)]
Updated german language file user guide and changes.

13 years agoOops. Remove duplicate line.
James Teh [Tue, 26 Oct 2010 11:49:56 +0000 (21:49 +1000)]
Oops. Remove duplicate line.

13 years agogui: Keyboard Settings dialog: Display translated keyboard layout names. The possible...
James Teh [Tue, 26 Oct 2010 11:46:09 +0000 (21:46 +1000)]
gui: Keyboard Settings dialog: Display translated keyboard layout names. The possible layouts and their translatable strings are  defined in KeyboardInputGesture.LAYOUTS.
Fixes #558.

13 years agoAllow gestures to be specified on the class and then magically bound when the class...
James Teh [Tue, 26 Oct 2010 06:46:03 +0000 (16:46 +1000)]
Allow gestures to be specified on the class and then magically bound when the class is instantiated.
This is done by using an __gestures dict on the class.
Note that gesture binding using bindGesture is still possible. It is also encouraged when it is more efficient/elegant to do so, such as when many gestures are bound to the same script.

13 years agoUpdated Arabic nvda.po and the userguide.
Peter Vágner [Tue, 26 Oct 2010 04:49:59 +0000 (06:49 +0200)]
Updated Arabic nvda.po and the userguide.

13 years agologHandler: Log RPC_E_DISCONNECTED at debugWarning.
James Teh [Tue, 26 Oct 2010 01:10:42 +0000 (11:10 +1000)]
logHandler: Log RPC_E_DISCONNECTED at debugWarning.

13 years agoUpdated Arabic nvda.po and the userguide.
Mesar Hameed [Mon, 25 Oct 2010 19:51:14 +0000 (20:51 +0100)]
Updated Arabic nvda.po and the userguide.

13 years agoVirtualBuffer.prepare: force shouldPrepare to False so that if shouldPrepare is check...
Michael Curran [Mon, 25 Oct 2010 08:41:57 +0000 (18:41 +1000)]
VirtualBuffer.prepare: force shouldPrepare to False so that if shouldPrepare is checked again in the same core pump cycle after prepare is called it won't  be True.

13 years agoVirtualBuffer.shouldPrepare: fix logic.
Michael Curran [Mon, 25 Oct 2010 08:38:44 +0000 (18:38 +1000)]
VirtualBuffer.shouldPrepare: fix logic.

13 years agoUpdated finnish language file and changes.
Peter Vágner [Mon, 25 Oct 2010 08:12:18 +0000 (10:12 +0200)]
Updated finnish language file and changes.

13 years agoTreeInterceptor.shouldPrepare: this property should be cached per core cycle.
Michael Curran [Mon, 25 Oct 2010 06:53:05 +0000 (16:53 +1000)]
TreeInterceptor.shouldPrepare: this property should be cached per core cycle.

13 years agoUpdated hungarian user guide and changes.
Peter Vágner [Mon, 25 Oct 2010 06:52:32 +0000 (08:52 +0200)]
Updated hungarian user guide and changes.

13 years agoTry at supporting late-loading Gecko documents containing subdocuments that are alrea...
Michael Curran [Mon, 25 Oct 2010 06:36:41 +0000 (16:36 +1000)]
Try at supporting late-loading Gecko documents containing subdocuments that are already loaded. I.e. make sure that we never get stuck in a buffer for the subdocument accidentily. Specific changes:
*TreeInterceptor: add a prepare method which should prepare the treeInterceptor in some way (e.g. load a buffer).
*TreeInterceptor: add a shouldPrepare property, which indicates if this treeInterceptor needs preparing (i.e. prepare should be called soon).
*treeInterceptorHandler.update: rearrange a bit so that  we only return an instanciated treeInterceptor once in the function. Also  before returning this treeInterceptor, check shouldPrepare and if necessary call prepare.
*NVDAObjects.IAccessible.mozilla.Document.treeInterceptorClass:  do not refuse to return a treeInterceptor class if the document is busy.
*base VirtualBuffer.__init__: no longer automatically call loadBuffer.
*Base VirtualBuffer.prepare: call self.loadBuffer
*(Base VirtualBuffer.shouldPrepare: the buffer should be prepared if it hasn't been prepared (VBufHandle is None) and its not currently being prepared (isLoding is False)
*Gecko IA2 virtualBuffer's shouldPrepare property: True if the Base virtualBuffer's shouldPrepare property says so, but only also if the busy state on the root NVDAObject is not there.
  *eventHandler.doPreDocumentLoadComplete:  call treeInterceptorHandler.update on the object no only if  the object has no treeInterceptor, or its not alive, but also if shouldPrepare is True.

These changes now mean that Gecko IA2 buffers will get created even if a document is busy, but no actual buffer content will be loaded. However once the document is no longer busy and there's a documentLoadComplete event, or the focus moves on or inside the document, the buffer content will be loaded.

13 years agoUpdated finnish changes.
Peter Vágner [Mon, 25 Oct 2010 08:15:11 +0000 (10:15 +0200)]
Updated finnish changes.

13 years agokeyboardHandler: In the key down and key up callbacks, save the (vkCode, extended...
James Teh [Mon, 25 Oct 2010 06:39:55 +0000 (16:39 +1000)]
keyboardHandler: In the key down and key up callbacks, save the (vkCode, extended) tuple in a variable near the top and use that instead of continually generating it. This looks nicer and is slightly more efficient.

13 years agokeyboardHandler: Don't continually pause and resume speech when the shift key is...
James Teh [Mon, 25 Oct 2010 06:22:47 +0000 (16:22 +1000)]
keyboardHandler: Don't continually pause and resume speech when the shift key is held down (sounds like stuttering). Speech only resumes when shift is released and pressed again.
Fixes #989.

13 years agoUpdated czech language file.
Peter Vágner [Sun, 24 Oct 2010 17:31:46 +0000 (19:31 +0200)]
Updated czech language file.

13 years agoUpdated hungarian user guide.
Peter Vágner [Sun, 24 Oct 2010 14:38:21 +0000 (16:38 +0200)]
Updated hungarian user guide.

13 years agoVirtualBuffer.event_caretMovementFailed: fix typo
Aleksey Sadovoy [Fri, 22 Oct 2010 18:37:30 +0000 (21:37 +0300)]
VirtualBuffer.event_caretMovementFailed: fix typo

Fixes #992

13 years agoTree interceptors/virtual buffers:
James Teh [Fri, 22 Oct 2010 01:59:24 +0000 (11:59 +1000)]
Tree interceptors/virtual buffers:
* Remove the isTransitioning attribute on TreeInterceptor. This was basically just a hack to stop buffers from being killed while they are loading. Instead, buffers have an isLoading attribute and all buffers now return True for isAlive if isLoading is True.
* Add an isReady attribute to TreeInterceptor which defaults to True in the base class. VirtualBuffer overrides this to return False if the buffer isn't fully loaded.
* Events and scripts are not executed on tree interceptors if isReady is False. Practically speaking, this was always the case for events, but scripts previously executed regardless.
Always as making As well as making some code a little more elegant, these changes allow tree interceptors to be created early but not used until they are ready.

13 years agomsnmsgr app module: OldMSNHistory: Fix calls to super. Should hopefully fix recently...
James Teh [Thu, 21 Oct 2010 22:41:45 +0000 (08:41 +1000)]
msnmsgr app module: OldMSNHistory: Fix calls to super. Should hopefully fix recently introduced exceptions in MSN Messenger 2009 (#988). Also a slight cosmetic change. :)

13 years agoUpdated polish language file.
Peter Vágner [Thu, 21 Oct 2010 19:43:12 +0000 (21:43 +0200)]
Updated polish language file.

13 years agoUpdated polish language file.
Peter Vágner [Thu, 21 Oct 2010 19:39:31 +0000 (21:39 +0200)]
Updated polish language file.

13 years agoRemove some delphi IAccessible NVDAObjects to do with dialogs and propertyPages...
Michael Curran [Wed, 20 Oct 2010 21:24:38 +0000 (07:24 +1000)]
Remove  some delphi IAccessible NVDAObjects to do with dialogs and propertyPages, and instead create one delphi class called Form, which forces role to dialog, and inherits from behaviors.Dialog, and  another class called TabSheet, which forces role to propertyPage and also inherits from behaviors.Dialog.  These classes are now used in IAccessible's _staticMap. Also the TMessageForm window class is now mapped to delphi.Form in _staticMap, which allows dialogs in GoldWave to announce their caption properly. Fixes #863.

13 years agoUpdated italian language file and added italian changes in t2t format.
Peter Vágner [Wed, 20 Oct 2010 11:14:18 +0000 (13:14 +0200)]
Updated italian language file and added italian changes in t2t format.

13 years agoAdded polish user guide in t2t format.
Peter Vágner [Wed, 20 Oct 2010 06:36:00 +0000 (08:36 +0200)]
Added polish user guide in t2t format.

13 years agoVirtualBuffer: refreshBuffer script: Don't try to refresh if the buffer is still...
James Teh [Tue, 19 Oct 2010 06:14:43 +0000 (16:14 +1000)]
VirtualBuffer: refreshBuffer script: Don't try to refresh if the buffer is still loading.

13 years agoMSNMSGR appModule: automatically announce new messages in Windows Live Messenger...
Michael Curran [Tue, 19 Oct 2010 03:34:49 +0000 (14:34 +1100)]
MSNMSGR appModule: automatically announce new messages in Windows Live Messenger 2011. Specifically: rename MsnHistory to OldMSNHistory, and create a new MSNHistory class, which is similar but reimplements the value property using accValue directly as it would have got lost when inheriting from Edit and so forth. Also this new class does not inherit from CursorManager as its not needed due to better edit support.  Note also that ChooseNVDAObjectOverlayClasses has a much easier time of detecting this object with the last history item in it as the role is alert and the accState is alert_medium (we don't have to resort to using the localized history names anymore). Of course support for older MSN messengers is still there, and *hopefully* should not be broken

13 years agoFixed a problem where selection changes were no longer reported in Microsoft excel...
Peter Vágner [Mon, 18 Oct 2010 10:25:44 +0000 (12:25 +0200)]
Fixed a problem where selection changes were no longer reported in Microsoft excel after an inputFramework merge. Specifically I've explicitly called initOverlayClass in the __init__ method of a ExcelWorksheet class because initOverlayClass is not called for the initially constructed object. Of course we may change this in the future we just need to decide whether we do want to call initOverlayClass for all classes.

13 years agoAdded simplified chinese language file and user guide, release-2010.2rc1
Peter Vágner [Sat, 16 Oct 2010 14:36:58 +0000 (16:36 +0200)]
Added simplified chinese language file and user guide,
Updated traditional chinese language strings for the NVDA installer,
Updated simplified chinese language strings for the NVDA installer.

13 years agoUpdated finnish language file, user guide and changes.
Peter Vágner [Sat, 16 Oct 2010 14:25:38 +0000 (16:25 +0200)]
Updated finnish language file, user guide and changes.

13 years agoFixed a problem where pressing the so called dead key to type accents on non-english...
Peter Vágner [Sat, 16 Oct 2010 14:25:19 +0000 (16:25 +0200)]
Fixed a problem where pressing the so called dead key to type accents on non-english keyboards would cause an error while retrieving the name of the key. As far as I know this key has no name so at least NVDA now fails silently.

13 years agoUpdated portuguese readme and language strings for the NVDA installer.
Peter Vágner [Fri, 15 Oct 2010 06:55:36 +0000 (08:55 +0200)]
Updated portuguese readme and language strings for the NVDA installer.

13 years agosndrec32 app module:
James Teh [Thu, 14 Oct 2010 23:06:30 +0000 (09:06 +1000)]
sndrec32 app module:
* Explicitly import _default from appModules. All new app modules should do this. We'll eventually need to change old ones to do this too.
* Avoid double dict lookup.

13 years agoMiranda-IM appmodule:
Peter Vágner [Thu, 14 Oct 2010 17:35:35 +0000 (19:35 +0200)]
Miranda-IM appmodule:
* Fixed gesture binding for Miranda-IM specific buttons and links
* Fixed default action custom implementation for the Miranda-IM specific buttons and hyperlinks
* No longer incorrectly subclass root IAccessibles

13 years agoUpdated french language file,
Peter Vágner [Thu, 14 Oct 2010 16:49:02 +0000 (18:49 +0200)]
Updated french language file,
Updated slovak language file, user guide and changes.

13 years agoUpdated portuguese user guide.
Peter Vágner [Thu, 14 Oct 2010 16:46:24 +0000 (18:46 +0200)]
Updated portuguese user guide.

13 years agokeyboardHandler, inputCore: Arrrg! Use unicode strings with .format(), as we are...
James Teh [Thu, 14 Oct 2010 08:38:48 +0000 (18:38 +1000)]
keyboardHandler, inputCore: Arrrg! Use unicode strings with .format(), as we are passing unicode arguments. Should fix exceptions when typing non-ASCII characters.

13 years agokeyLabels: Change numpad key labels according to the rename in vkCodes, since i forgo...
James Teh [Thu, 14 Oct 2010 08:05:25 +0000 (18:05 +1000)]
keyLabels: Change numpad key labels according to the rename in vkCodes, since i forgot to update keyLabels when I did that. :)

13 years agovkCodes: Name VK_CANCEL "break", as the key is normally called pause/break.
James Teh [Thu, 14 Oct 2010 07:57:42 +0000 (17:57 +1000)]
vkCodes: Name VK_CANCEL "break", as the key is normally called pause/break.

13 years agoUpdated traditional chinese user guide.
Peter Vágner [Thu, 14 Oct 2010 07:54:50 +0000 (09:54 +0200)]
Updated traditional chinese user guide.

13 years agokeyboardHandler.internal_keyDownEvent(): cosmetic: Always return True if the bottom...
James Teh [Thu, 14 Oct 2010 07:48:53 +0000 (17:48 +1000)]
keyboardHandler.internal_keyDownEvent(): cosmetic: Always return True if the bottom of the function is hit. Currently, we always returned before hitting the end of the function anyway so there's no functional change, but it's best to be 100% clear about this in the code.

13 years agoSpeak punctuation keys in input help even when speak punctuation is disabled.
James Teh [Thu, 14 Oct 2010 06:08:45 +0000 (16:08 +1000)]
Speak punctuation keys in input help even when speak punctuation is disabled.
Fixes #977.

13 years agospeech: Improve docstrings.
James Teh [Thu, 14 Oct 2010 06:02:15 +0000 (16:02 +1000)]
speech: Improve docstrings.

13 years agospeech:
James Teh [Thu, 14 Oct 2010 05:50:33 +0000 (15:50 +1000)]
speech:
* Add an expandPunctuation parameter to speakText() which allows the caller to explicitly specify whether punctuation should be spoken. If None (default), the config is used.
* Remove processText and rename processTextSymbols to processText. The old processText simply called processTextSymbols with the configured punctuation setting.

13 years agocursorManager: Provide the ability to select by page and paragraph. In practical...
James Teh [Thu, 14 Oct 2010 05:32:05 +0000 (15:32 +1000)]
cursorManager: Provide the ability to select by page and paragraph. In practical terms, this means that this is now possible in virtual buffers.
Fixes #639.

13 years agocursorManager: Rename pageUp and pageDown scripts to make them consistent with the...
James Teh [Thu, 14 Oct 2010 05:13:36 +0000 (15:13 +1000)]
cursorManager: Rename pageUp and pageDown scripts to make them consistent with the other movement scripts.

13 years agoNew input handling framework!
James Teh [Thu, 14 Oct 2010 04:40:13 +0000 (14:40 +1000)]
New input handling framework!
This provides core functionality required for future enhancements, including a more flexible input mapping system, handling key presses from other sources such as braille displays, and automated testing.
It also includes several improvements and fixes related to keyboard handling.
Work on the major enhancements hasn't yet begun, but merging this now gives the new code some exposure and gives developers more time to familiarise themselves with the new concepts.

Changes for users:
*Keyboard help has been renamed to input help to reflect that it handles input from sources other than the keyboard.
*The location of a script in the code is no longer reported in input help, as it is irrelevant and cryptic to the user.
*When NVDA detects that it has frozen, it continues to intercept NVDA modifier keys, even though it passes all other keys through to the system. This prevents the user from unintentionally toggling caps lock, etc. if they press an NVDA modifier key without realising NVDA has frozen. (#939)
*If keys are held down after using the pass next key through command, all keys (including key repeats) are now passed through until the last key is released.
*If an NVDA modifier key is pressed twice in quick succession to pass it through and the second press is held down, all key repeats will now be passed through as well.
* The volume up, down and mute keys are now reported in input help. This could be helpful if the user is uncertain as to what these keys are.
*If an NVDA modifier key is pressed twice quickly but there is an intervening key press, the NVDA modifier key is no longer passed through on the second press.

Changes for developers:
* All input from the user is now represented by an inputCore.InputGesture instance.
* Each source of input subclasses the base InputGesture class. For example, key presses are encompassed by the keyboardHandler.KeyboardInputGesture class.
* All scripts now take an InputGesture instance instead of a key press.
* KeyboardInputGestures can be sent on to the OS using the send() method of the gesture.
* To send an arbitrary key press, you must now create a KeyboardInputGesture using KeyboardInputGesture.fromName() and then use its send() method.
* The key names used by NVDA (including key maps) have been made more friendly/logical; e.g. upArrow instead of extendedUp and numpadPageUp instead of prior. See the vkCodes module for a list.

13 years agoUpdate What's New.
James Teh [Thu, 14 Oct 2010 03:07:12 +0000 (13:07 +1000)]
Update What's New.

13 years agoRemove developer_docs. This only contained "key list.txt", which is now totally incor...
James Teh [Thu, 14 Oct 2010 02:21:14 +0000 (12:21 +1000)]
Remove developer_docs. This only contained "key list.txt", which is now totally incorrect.

13 years agoUpdate for new key names.
James Teh [Thu, 14 Oct 2010 02:11:36 +0000 (12:11 +1000)]
Update for new key names.

13 years agoKeyboardInputGesture: Make layout an instance variable. The current layout is fetched...
James Teh [Thu, 14 Oct 2010 01:18:47 +0000 (11:18 +1000)]
KeyboardInputGesture: Make layout an instance variable. The current layout is fetched from the config in the constructor so that the gesture knows what layout it was created in.

13 years agoScriptableObject: Add clearGestureBindings() to remove all gesture bindings.
James Teh [Thu, 14 Oct 2010 00:06:25 +0000 (10:06 +1000)]
ScriptableObject: Add clearGestureBindings() to remove all gesture bindings.
AppModule.loadKeyMap(): Clear all gesture bindings on the app module before loading the key map to allow for reloading.

13 years agoAdded traditional chinese user guide in t2t format,
Peter Vágner [Wed, 13 Oct 2010 08:45:05 +0000 (10:45 +0200)]
Added traditional chinese user guide in t2t format,
Updated traditional chinese language file,
Updated portuguese language file, user guide, readme and language strings for the NVDA installer.

13 years agoUpdate What's New.
James Teh [Wed, 13 Oct 2010 08:20:30 +0000 (18:20 +1000)]
Update What's New.

13 years agokeyboardHandler: If the NVDA modifier is pressed twice to pass it through and it...
James Teh [Wed, 13 Oct 2010 08:11:26 +0000 (18:11 +1000)]
keyboardHandler: If the NVDA modifier is pressed twice to pass it through and it is held down on the second press, keep passing the repeats through until the key is released.

13 years agokeyboardHandler: If an NVDA modifier is pressed twice but there was another key press...
James Teh [Wed, 13 Oct 2010 06:36:25 +0000 (16:36 +1000)]
keyboardHandler: If an NVDA modifier is pressed twice but there was another key pressed between, don't pass the NVDA modifier through. It should only be passed through if the NVDA modifier is pressed twice in quick succession with no intervening key press.

13 years agokeyboardHandler: If the user holds down keys while passing keys through, continue...
James Teh [Wed, 13 Oct 2010 05:00:31 +0000 (15:00 +1000)]
keyboardHandler: If the user holds down keys while passing keys through, continue to pass all keys through until the last key is released.

13 years agoinputCore: Add module docstring.
James Teh [Wed, 13 Oct 2010 02:14:19 +0000 (12:14 +1000)]
inputCore: Add module docstring.

13 years agoDon't report the script's location in the code in input help, as it is irrelevant...
James Teh [Wed, 13 Oct 2010 01:59:49 +0000 (11:59 +1000)]
Don't report the script's location in the code in input help, as it is irrelevant and cryptic to the user.
Also remove scriptHandler.getScriptDescription() and just directly use __doc__, as this is a fairly standard Pythonic concept.

13 years agoMove the check for the core being dead from keyboardHandler hooks to InputManager...
James Teh [Wed, 13 Oct 2010 00:46:52 +0000 (10:46 +1000)]
Move the check for the core being dead from keyboardHandler hooks to InputManager.executeGesture().
This stops the NVDA modifier from being passed through even when the core is dead. Previously, if NVDA froze briefly and the user didn't realise, they could, for example, press caps lock for the NVDA key and it would be toggled without them realising.
This will also stop a potential flood of queued actions from other sources (e.g. braille) when the core revives.

13 years agoKeyboardInputGesture.fromName(): Handle the case where a character requires multiple...
James Teh [Tue, 12 Oct 2010 23:54:54 +0000 (09:54 +1000)]
KeyboardInputGesture.fromName(): Handle the case where a character requires multiple modifiers as reported by VkKeyScan().

13 years agoCancel speech when volume keys are pressed while input help is active.
James Teh [Tue, 12 Oct 2010 08:50:22 +0000 (18:50 +1000)]
Cancel speech when volume keys are pressed while input help is active.

13 years agotreeInterceptorHandler.killTreeInterceptor(): Log a debug message upon successful...
James Teh [Tue, 12 Oct 2010 08:17:53 +0000 (18:17 +1000)]
treeInterceptorHandler.killTreeInterceptor(): Log a debug message upon successful completion.

13 years agoUpdated polish language file (by Andrzej Kałuża)
Peter Vágner [Tue, 12 Oct 2010 07:12:11 +0000 (09:12 +0200)]
Updated polish language file (by Andrzej Kałuża)

13 years agoUpdated Arabic changes, userguide.
Peter Vágner [Tue, 12 Oct 2010 07:04:29 +0000 (09:04 +0200)]
Updated Arabic changes, userguide.
Updated hungarian changes.

13 years agoUpdated finnish language file and user guide.
Peter Vágner [Tue, 12 Oct 2010 07:01:25 +0000 (09:01 +0200)]
Updated finnish language file and user guide.

13 years agoMerge main.
James Teh [Tue, 12 Oct 2010 05:55:54 +0000 (15:55 +1000)]
Merge main.

13 years agoMerge 2010.2.
James Teh [Tue, 12 Oct 2010 05:54:35 +0000 (15:54 +1000)]
Merge 2010.2.

13 years agoMake KeyboardInputGesture.fromName() case insensitive for key names.
James Teh [Tue, 12 Oct 2010 05:48:04 +0000 (15:48 +1000)]
Make KeyboardInputGesture.fromName() case insensitive for key names.

13 years agovkCodes: Add copyright header and code documentation.
James Teh [Tue, 12 Oct 2010 05:44:07 +0000 (15:44 +1000)]
vkCodes: Add copyright header and code documentation.

13 years agoRemove old (now useless) code from keyUtils. This only leaves the key labels, so...
James Teh [Tue, 12 Oct 2010 05:32:17 +0000 (15:32 +1000)]
Remove old (now useless) code from keyUtils. This only leaves the key labels, so rename it to keyLabels.

13 years agoLower case identifiers in KeyboardInputGesture.identifiers instead of ScriptableObjec...
James Teh [Tue, 12 Oct 2010 05:23:29 +0000 (15:23 +1000)]
Lower case identifiers in KeyboardInputGesture.identifiers instead of ScriptableObject.findScript(). The latter gets called more often than the former and is not cached, so it is more expensive.

13 years agoKeyboardInputGesture.send(): Fix sending of Windows key as a modifier.
James Teh [Tue, 12 Oct 2010 04:30:03 +0000 (14:30 +1000)]
KeyboardInputGesture.send(): Fix sending of Windows key as a modifier.

13 years agoKeyboardInputGesture: Again use upper case for the NVDA modifier key now that we...
James Teh [Tue, 12 Oct 2010 02:59:07 +0000 (12:59 +1000)]
KeyboardInputGesture: Again use upper case for the NVDA modifier key now that we handle normalisation separately.

13 years agoappModule key map (kbd) files: Update for new key names. Also, just for prettiness...
James Teh [Tue, 12 Oct 2010 02:37:42 +0000 (12:37 +1000)]
appModule key map (kbd) files: Update for new key names. Also, just for prettiness, make everything consistent: NVDA key is always first and always capitalised, no other keys start with a capital letter.

13 years agoChange key names for numpad keys when numLock is off to conform to the User Guide...
James Teh [Tue, 12 Oct 2010 02:14:04 +0000 (12:14 +1000)]
Change key names for numpad keys when numLock is off to conform to the User Guide; e.g. numpadLeftArrow is now numpad4. In order to do this, numpad4 with numLock on is now numLockNumpad4, etc.

13 years agoUpdate for new key names.
James Teh [Tue, 12 Oct 2010 01:27:08 +0000 (11:27 +1000)]
Update for new key names.

13 years agoWoops. Missed this during a merge.
James Teh [Tue, 12 Oct 2010 01:22:36 +0000 (11:22 +1000)]
Woops. Missed this during a merge.

13 years agoUpdate appModules for new gesture binding code.
James Teh [Tue, 12 Oct 2010 01:15:19 +0000 (11:15 +1000)]
Update appModules for new gesture binding code.

13 years agoUpdated Arabic changes, userguide and added a new contributor to the Arabic team.
Mesar Hameed [Mon, 11 Oct 2010 08:21:59 +0000 (09:21 +0100)]
Updated Arabic changes, userguide and added a new contributor to the Arabic team.

13 years agoUpdate NVDAObjects for new gesture binding code.
James Teh [Mon, 11 Oct 2010 06:42:53 +0000 (16:42 +1000)]
Update NVDAObjects for new gesture binding code.

13 years agoUpdate editableText for new gesture binding code.
James Teh [Mon, 11 Oct 2010 06:29:20 +0000 (16:29 +1000)]
Update editableText for new gesture binding code.

13 years agoUpdate cursorManager and virtualBuffers for the new gesture binding code.
James Teh [Mon, 11 Oct 2010 05:30:18 +0000 (15:30 +1000)]
Update cursorManager and virtualBuffers for the new gesture binding code.

13 years agoUse more user friendly names for keys on the keyboard.
James Teh [Mon, 11 Oct 2010 04:27:37 +0000 (14:27 +1000)]
Use more user friendly names for keys on the keyboard.
vkCodes now maps between vk codes and these new names, rather than using Windows vk names, which are often rather odd; e.g. prior instead of pageUp.
Updated other code accordingly.
Also some fixes to KeyboardInputGesture regarding text characters.