Move all files into trunk to allow for branching, tagging, etc. in the future.
Introduced api.key() to convert a key name such as Control+Shift+Left to the required key tuple. Updated app modules to use this function in their key maps.
default.py now reads help balloons,config schema now has reportHelpBalloons boolean. Thinking about the message box that can click idea in the future.
This is a major re-write which now implements special NVDA objects rather than just using pyAA objects themselves.
Added NVDAObjects.py which contains all the classes of NVDAObjects.
Added functions to api.py: getFocusObject, setFocusObject, keyHasScript, executeEvent, executeScript.
Modified core.pyw to use the new api functions.
Renamed core.pyw to core.py and added nvda.pyw which is now the way to start NVDA.
Many many changes...
Using NVDAObjects, any object can be read by line or character, those that don't nativly have a caret now generate a vertual buffer which contains info about the object plus its decendants.
mozilla windows now report links with out the address as the value.
Mozilla windows now report list items more friendly. 
example:
1. cats
2. dogs
Set svn:eol-style to CRLF on nvda.pyw.
Update setup.py to use nvda.pyw.
mozillaHeadings now read as one object if they only have one child. mozillaText reports a role of static text if it is read only and editable text if it is not. role names in dictionary have been updated so that static text is now called text and editable text is now called edit. mozillaText now tries to make sure that it reports its contents as the value, not the name.
Solved some crashes by creating a few new api functions and moving a few things around:
Created getNVDAObjectByLocator, getNVDAObjectByPoint, setFocusObjectByLocator.
These functions allow you to be able to simply deal with MSAA event locators (window,objectID,childID) and NVDAObjects, and no need to touch pyAA objects.
Also got rid of setFocusObject and setFocusLocator, now have to use setFocusObjectByLocator which makes sure that you can only set focus using a valid locator.
BTW: the reason we have to set a focus object is to make sure that its physically the same object that receives all the state changes and other property changes for a focus object... so it can keep a memory, rather than generating a new one each time.
Because of problems with circular importing, now getRoleName, getStateName and getStateNames and createStateList are all now in NVDAObjects.py and key is in keyEventHandler ... 
keyEventHandler, NVDAObjects and MSAAEventHandler can no longer import api functions. This doesn't seem to be a problem since they are all very specific modules.
keyEventHandler now does not check if a key has a script, it sends to the queue regardless. core.py is the module that now checks if there is a script or not for that key, and if not does a sendKey for that keyPress.
This did break alt tab, but only alt tab it seems, because its logic seems to be quite different from any other key press... so there is some checking in keyEventhandler to handle alt tabs directly, which allows internal_objectEvent to return True for them.
Deleted stateUtils.py, no longer needed.
Added script in the default appModule to say the current time and date (insert+f12)
deleted _WwG entry in NVDAObjects classMap ... was a test, shouldn't have been committed
Shell_TrayWnd and Progman now have NVDAObjects that do not anounce anything for their foreground events, which again makes it so that the start button / taskbar / desktop don't report extrenuous info.
Created a getFilteredStates method in NVDAObject:
This should be used always for getting states to report to the users; getStates should be used when trying to work something out about the object.
The base getFilteredStates now filters out focused, focusable, selectable, multi selectable, offscreen, invisible, read only.
Changed the base speakObject of NVDAObject  and audio.speakObjectProperties to now just deal with typeString rather than a class name and a role ame ... getTypeString in the NVDAObject should handle this.
mozillaLinks now report their typeString as visited link, same page link, or just link, depending on the selectable and traversed states.
event_foreground in dialog NVDAObjects now reads the contents of the dialog box
Fixed getNext in NVDAObject which seemed to break at some point... also now made getPrevious use the same logic as getNext, obviously going the other way though.
MSAAEventHandler no longer listens for all possible events, but only the events listed in eventMap, this has also be kulled down quite a bit to only the necessary events. the handles received when registering them are now stored in a list and on termination they are all released.  This now makes alt-tab task switcher list much more responsive and possibly make things over all slightly faster.
Fixed broken mouse movement code... hadn't been fully implemented with the new NVDA structure. Now reads fine again.
Fixed up code in getLineLength in NVDAObject_Edit which was causing script_backspace and script_changeSelection to not work when dealing with the end of a line where the next line was blank. Also fixed script_delete which still had some old code in it.
Hmmm ok, now calling keyHasScript from keyEventHandler, though not importing the api functions directly in to its global namespace.
Now the end tag of an object's text buffer now uses getTypeString rather than just getRole.
Added a script_navigator_character_activate (numpad+return), so far in the virtual buffer it activates the current line. getBufferText is renamed to getVirtualBuffer and updateBuffer is renamed to updateVirtualBuffer. A line of the virtual buffer now is a tuple of the line text and an activate function ... usually the object's doDefaultAction.
Added navigator commands to read current, move to previous and move to next word, assigned to numpad 5, numpad 4 and numpad 6 respectively.