Make an interface for IWritingSystemDefinition and use where appropriate

Actually I used it in all the methods of IWritingSystemRepository,
and in places where it seemed natural to change it to get everything
to compile again.

The main motivation for this is to make testing easier. It's also more
consistent with WritingSystemRepository, which does have an interface.

I also went ahead and deleted an obsolete method, since I was going to
have to change its signature anyway.

--HG--
branch : IWritingSystemDefinition
Basics of KnownKeyboards

Adds a section to the LDML something like this:

	<special xmlns:palaso2="urn://palaso.org/ldmlExtensions/v2">
		<palaso2:knownKeyboards>
			<palaso2:keyboard
				layout="MyFavoriteKeyboard"
				locale="en-US"
				os="Unix" />
		</palaso2:knownKeyboards>
		<palaso2:version
			value="2" />
	</special>

--HG--
branch : KeyboardingV2
Define an interface and equality test for KeyboardDefinition

--HG--
branch : KeyboardingV2
Add IKeyboardController,  WritingSystemDefinition.OtherAvailableKeyboards

IKeyboardController and related Keyboarding class to track current
instance supports implementing and testing the OtherAvailableKeyboards
method.

--HG--
branch : KeyboardingV2
KeyboardDefinition.IsAvailable and Activate()

--HG--
branch : KeyboardingV2
Add category for tests that require a desktop
Our Windows build agent is set up in a way that it can't run tests that
try to show modal dialog boxes.

Change-Id: I88f9eae873c024fa0340bb5a47e7bf6ff6580abc
---
 PalasoUIWindowsForms.Tests/Progress/ProgressDialogTests.cs | 1 +
 1 file changed, 1 insertion(+)

--HG--
branch : KeyboardingV2
Handle LocalKeyboard and GetWsForCulture
Add WritingSystemDefinition.LocalKeyboard. Clean up various related
things to support various default behaviors.

Add WritingSystemRepository.LocalKeyboardSettings to get and set
the data that should be persisted somewhere local.

Add WritingSystemRepository.GetWsForInputLanguage to handle
InputLangChanged.

Also extends implementation of Clone() and Equals() to the new
properties.  I don't know whether anything actually requires these
properties to be cloned and considered for equality, but it seemed
safest to handle them. I think Clone, at least, is used when
a temporary WS in the FW writing system dialog is copied to a real store.

Change-Id: Ifef99ab28cb9d1087f5388acd3a46dfde6228e18
---
 Palaso.Tests/Code/IClonableGenericTests.cs         |  23 ++-
 .../IWritingSystemRepositoryTests.cs               | 226 ++++++++++++++++++++-
 .../WritingSystems/KeyboardDefinitionTests.cs      |  35 ++++
 Palaso.Tests/WritingSystems/LdmlDataMapperTests.cs |  35 ++++
 .../LdmlInFolderWritingSystemRepositoryTests.cs    |   2 +-
 .../WritingSystemDefinitionPropertyTests.cs        | 145 ++++++++++++-
 Palaso/WritingSystems/DefaultKeyboardController.cs |   5 +
 Palaso/WritingSystems/IKeyboardController.cs       |  23 ++-
 Palaso/WritingSystems/IWritingSystemDefinition.cs  |  27 ++-
 Palaso/WritingSystems/IWritingSystemRepository.cs  |  46 ++++-
 Palaso/WritingSystems/KeyboardDefinition.cs        |  20 +-
 Palaso/WritingSystems/LdmlDataMapper.cs            |  27 ++-
 .../LdmlInFolderWritingSystemRepository.cs         |   2 +-
 Palaso/WritingSystems/WritingSystemDefinition.cs   |  62 +++++-
 .../WritingSystems/WritingSystemRepositoryBase.cs  | 130 +++++++++++-
 .../Progress/TransformWithProgressDialogTests.cs   |   1 +
 .../WritingSystemFromWindowsLocaleProviderTests.cs |   5 +
 .../WritingSystems/WritingSystemSetupPMTests.cs    |   3 +-
 .../WritingSystems/WritingSystemSetupModel.cs      |  13 +-
 19 files changed, 801 insertions(+), 29 deletions(-)

--HG--
branch : KeyboardingV2
FWNX-1131, make keyboard control handle KnownKeyboards etc.
This change extensively alters the WsKeyboardControl and related
classes. The main combo is replaced by a text box and list box,
which allows us to have varied formatting in the list, including
headings and disabled items. Headings are used to break up the
writing systems into previously used ones for this WS and others.
This means the list content is no longer independent of WS, which
leads to other changes. The results are saved in LocalKeyboard
rather than the obsolete Keyboard property. The Keyman-specific
engines are removed. Some other changes allow the test app to persist
the LocalKeyboardSettings.

This is a preliminary checkin, there are still several known
issues.

Change-Id: I0a3b01233accb9342ff1eefc8398d3c183d5d9e5
---
 PalasoUIWindowsForms.TestApp/Program.cs            |   7 +-
 .../Properties/Settings.Designer.cs                |  26 +-
 .../Properties/Settings.settings                   |  17 +-
 PalasoUIWindowsForms.TestApp/app.config            |  17 +-
 .../Keyboarding/KeyboardController.cs              |  38 +-
 PalasoUIWindowsForms/Keyboarding/Keyman6Adaptor.cs | 243 ---------
 PalasoUIWindowsForms/Keyboarding/Keyman7Adaptor.cs | 205 --------
 .../Keyboarding/WindowsIMEAdaptor.cs               |   1 +
 PalasoUIWindowsForms/PalasoUIWindowsForms.csproj   |  10 +-
 .../WritingSystems/WSKeyboardControl.Designer.cs   | 287 +++++++----
 .../WritingSystems/WSKeyboardControl.cs            | 559 +++++++++++++++------
 .../WritingSystems/WSKeyboardControl.resx          |   7 +-
 .../WSPropertiesTabControl.Designer.cs             | 293 +++++------
 .../WritingSystems/WSPropertiesTabControl.cs       |   8 +-
 .../WritingSystems/WSPropertiesTabControl.resx     |   4 +-
 .../WritingSystems/WritingSystemSetupDialog.cs     |   5 +
 .../WritingSystems/WritingSystemSetupModel.cs      |  88 +++-
 lib/Debug/Keyman7Interop.dll                       | Bin 40960 -> 0 bytes
 lib/Debug/KeymanLink.dll                           | Bin 28672 -> 0 bytes
 lib/Release/Keyman7Interop.dll                     | Bin 40960 -> 0 bytes
 lib/Release/KeymanLink.dll                         | Bin 28672 -> 0 bytes
 21 files changed, 897 insertions(+), 918 deletions(-)
 delete mode 100644 PalasoUIWindowsForms/Keyboarding/Keyman6Adaptor.cs
 delete mode 100644 PalasoUIWindowsForms/Keyboarding/Keyman7Adaptor.cs
 delete mode 100644 lib/Debug/Keyman7Interop.dll
 delete mode 100644 lib/Debug/KeymanLink.dll
 delete mode 100644 lib/Release/Keyman7Interop.dll
 delete mode 100644 lib/Release/KeymanLink.dll

--HG--
branch : KeyboardingV2
Refactor keyboarding code (FWNX-1122)
Replace the keyboarding code with the functionality of FW's
keyboarding library.

This is a preliminary checkin; some tests on Linux may still be failing.
However, it does seem to work (in conjunction with FLEx changes).

Change-Id: Ib102017e41380b4ec95af16c531f48455f2d7073
---
 Palaso.Tests/Code/IClonableGenericTests.cs         |   83 +-
 Palaso.Tests/Palaso.Tests.csproj                   |    2 +-
 .../DefaultKeyboardDefinitionTests.cs              |  103 +
 .../IWritingSystemRepositoryTests.cs               |   38 +-
 .../WritingSystems/KeyboardDefinitionTests.cs      |  133 --
 Palaso.Tests/WritingSystems/LdmlDataMapperTests.cs |   24 +-
 .../WritingSystemDefinitionPropertyTests.cs        |  152 +-
 Palaso/Palaso.csproj                               |    5 +-
 Palaso/WritingSystems/DefaultKeyboardController.cs |  101 +-
 Palaso/WritingSystems/DefaultKeyboardDefinition.cs |  153 ++
 Palaso/WritingSystems/IInputLanguage.cs            |   27 +
 Palaso/WritingSystems/IKeyboardController.cs       |   44 +-
 Palaso/WritingSystems/IKeyboardDefinition.cs       |   39 +-
 Palaso/WritingSystems/IWritingSystemDefinition.cs  |    2 +-
 Palaso/WritingSystems/Keyboard.cs                  |   24 +
 Palaso/WritingSystems/KeyboardDefinition.cs        |   95 -
 Palaso/WritingSystems/Keyboarding.cs               |   31 -
 Palaso/WritingSystems/LdmlDataMapper.cs            |   17 +-
 Palaso/WritingSystems/StandardTags.cs              |    4 +-
 Palaso/WritingSystems/WritingSystemDefinition.cs   |   13 +-
 .../WritingSystems/WritingSystemRepositoryBase.cs  |   17 +-
 .../Keyboarding/FakeKeyboardController.cs          |   73 +
 .../Keyboarding/IBusAdaptorTestsWithIBus.cs        |    3 +-
 .../Keyboarding/IBusAdaptorTestsWithoutIBus.cs     |    4 +-
 .../Keyboarding/InputLanguageWrapperTests.cs       |   42 +
 .../Keyboarding/KeyboardControllerTests.cs         |  252 +++
 .../Keyboarding/KeyboardDescriptionTests.cs        |   56 +
 .../Keyboarding/LinuxKeyboardControllerTests.cs    |  148 +-
 .../Keyboarding/WidnowsIMEAdaptorTests.cs          |   49 -
 .../Keyboarding/WindowsKeyboardControllerTests.cs  |  241 +-
 .../Keyboarding/XkbKeyboardAdapterTests.cs         |  311 +++
 .../Keyboarding/XklEngineTests.cs                  |   69 +
 .../PalasoUIWindowsForms.Tests.csproj              |   11 +-
 .../WritingSystems/WritingSystemSetupPMTests.cs    |   25 +-
 .../Keyboarding/DBusInterfacesForIBus.cs           |  121 -
 PalasoUIWindowsForms/Keyboarding/IBusAdaptor.cs    |  396 ----
 .../Interfaces/IKeyboardErrorDescription.cs        |   31 +
 .../InternalInterfaces/IKeyboardAdaptor.cs         |   82 +
 .../InternalInterfaces/IKeyboardControllerImpl.cs  |   35 +
 .../Keyboarding/KeyboardController.cs              |  571 +++--
 .../Keyboarding/KeyboardDescription.cs             |  159 ++
 .../Keyboarding/KeyboardDescriptionNull.cs         |  105 +
 .../Keyboarding/KeyboardErrorDescription.cs        |   33 +
 PalasoUIWindowsForms/Keyboarding/Keyman.cs         |  113 -
 .../Keyboarding/Keyman6Adaptor.cs.orig             |  234 --
 .../Keyboarding/Linux/GlobalCachedInputContext.cs  |   34 +
 .../Keyboarding/Linux/IBusCommunicator.cs          |  266 +++
 .../Keyboarding/Linux/IIBusCommunicator.cs         |   58 +
 .../Keyboarding/Linux/IbusKeyboardAdaptor.cs       |  291 +++
 .../Keyboarding/Linux/IcuLocale.cs                 |   65 +
 .../Keyboarding/Linux/TemporaryIcuWrapper.cs       | 2357 ++++++++++++++++++++
 PalasoUIWindowsForms/Keyboarding/Linux/X11.cs      |   28 +
 .../Keyboarding/Linux/XkbKeyboardAdaptor.cs        |  216 ++
 .../Keyboarding/Linux/XkbKeyboardDescription.cs    |   44 +
 .../Keyboarding/Linux/XklConfigRegistry.cs         |  275 +++
 .../Keyboarding/Linux/XklEngine.cs                 |  217 ++
 .../Keyboarding/Types/InputLanguageWrapper.cs      |   92 +
 .../Keyboarding/Types/KeyboardCollection.cs        |   44 +
 .../Keyboarding/Types/MouseEvent.cs                |   30 +
 PalasoUIWindowsForms/Keyboarding/Types/Win32.cs    |  170 ++
 .../Keyboarding/Windows/WinKeyboardAdaptor.cs      |  395 ++++
 .../Keyboarding/Windows/WinKeyboardDescription.cs  |   51 +
 .../Keyboarding/WindowsIMEAdaptor.cs               |  180 --
 PalasoUIWindowsForms/PalasoUIWindowsForms.csproj   |   32 +-
 .../WritingSystems/WSFontControl.cs                |    7 +-
 .../WritingSystems/WSKeyboardControl.cs            |   26 +-
 .../WritingSystems/WSSortControl.cs                |    7 +-
 .../WSTree/WritingSystemSuggestion.cs              |    4 +-
 .../WritingSystems/WritingSystemSetupModel.cs      |   77 +-
 TestApps/ReportingTest/Form1.cs                    |    4 +
 70 files changed, 7402 insertions(+), 1839 deletions(-)
 create mode 100644 Palaso.Tests/WritingSystems/DefaultKeyboardDefinitionTests.cs
 delete mode 100644 Palaso.Tests/WritingSystems/KeyboardDefinitionTests.cs
 create mode 100644 Palaso/WritingSystems/DefaultKeyboardDefinition.cs
 create mode 100644 Palaso/WritingSystems/IInputLanguage.cs
 create mode 100644 Palaso/WritingSystems/Keyboard.cs
 delete mode 100644 Palaso/WritingSystems/KeyboardDefinition.cs
 delete mode 100644 Palaso/WritingSystems/Keyboarding.cs
 create mode 100644 PalasoUIWindowsForms.Tests/Keyboarding/FakeKeyboardController.cs
 create mode 100644 PalasoUIWindowsForms.Tests/Keyboarding/InputLanguageWrapperTests.cs
 create mode 100644 PalasoUIWindowsForms.Tests/Keyboarding/KeyboardControllerTests.cs
 create mode 100644 PalasoUIWindowsForms.Tests/Keyboarding/KeyboardDescriptionTests.cs
 delete mode 100644 PalasoUIWindowsForms.Tests/Keyboarding/WidnowsIMEAdaptorTests.cs
 create mode 100644 PalasoUIWindowsForms.Tests/Keyboarding/XkbKeyboardAdapterTests.cs
 create mode 100644 PalasoUIWindowsForms.Tests/Keyboarding/XklEngineTests.cs
 delete mode 100644 PalasoUIWindowsForms/Keyboarding/DBusInterfacesForIBus.cs
 delete mode 100644 PalasoUIWindowsForms/Keyboarding/IBusAdaptor.cs
 create mode 100644 PalasoUIWindowsForms/Keyboarding/Interfaces/IKeyboardErrorDescription.cs
 create mode 100644 PalasoUIWindowsForms/Keyboarding/InternalInterfaces/IKeyboardAdaptor.cs
 create mode 100644 PalasoUIWindowsForms/Keyboarding/InternalInterfaces/IKeyboardControllerImpl.cs
 create mode 100644 PalasoUIWindowsForms/Keyboarding/KeyboardDescription.cs
 create mode 100644 PalasoUIWindowsForms/Keyboarding/KeyboardDescriptionNull.cs
 create mode 100644 PalasoUIWindowsForms/Keyboarding/KeyboardErrorDescription.cs
 delete mode 100644 PalasoUIWindowsForms/Keyboarding/Keyman.cs
 delete mode 100644 PalasoUIWindowsForms/Keyboarding/Keyman6Adaptor.cs.orig
 create mode 100644 PalasoUIWindowsForms/Keyboarding/Linux/GlobalCachedInputContext.cs
 create mode 100644 PalasoUIWindowsForms/Keyboarding/Linux/IBusCommunicator.cs
 create mode 100644 PalasoUIWindowsForms/Keyboarding/Linux/IIBusCommunicator.cs
 create mode 100644 PalasoUIWindowsForms/Keyboarding/Linux/IbusKeyboardAdaptor.cs
 create mode 100644 PalasoUIWindowsForms/Keyboarding/Linux/IcuLocale.cs
 create mode 100644 PalasoUIWindowsForms/Keyboarding/Linux/TemporaryIcuWrapper.cs
 create mode 100644 PalasoUIWindowsForms/Keyboarding/Linux/X11.cs
 create mode 100644 PalasoUIWindowsForms/Keyboarding/Linux/XkbKeyboardAdaptor.cs
 create mode 100644 PalasoUIWindowsForms/Keyboarding/Linux/XkbKeyboardDescription.cs
 create mode 100644 PalasoUIWindowsForms/Keyboarding/Linux/XklConfigRegistry.cs
 create mode 100644 PalasoUIWindowsForms/Keyboarding/Linux/XklEngine.cs
 create mode 100644 PalasoUIWindowsForms/Keyboarding/Types/InputLanguageWrapper.cs
 create mode 100644 PalasoUIWindowsForms/Keyboarding/Types/KeyboardCollection.cs
 create mode 100644 PalasoUIWindowsForms/Keyboarding/Types/MouseEvent.cs
 create mode 100644 PalasoUIWindowsForms/Keyboarding/Types/Win32.cs
 create mode 100644 PalasoUIWindowsForms/Keyboarding/Windows/WinKeyboardAdaptor.cs
 create mode 100644 PalasoUIWindowsForms/Keyboarding/Windows/WinKeyboardDescription.cs
 delete mode 100644 PalasoUIWindowsForms/Keyboarding/WindowsIMEAdaptor.cs

--HG--
branch : KeyboardingV2
Merge branch 'FlexBridgeAlpha' into feature/FWNX-1122B

Conflicts:
    AddSortKey/AddSortKey.csproj
    BuildTaskTests/Palaso.BuildTask.Tests.csproj
    ConsoleApplication1/ConsoleApplication1.csproj
    Palaso VS2010.sln
    Palaso.DictionaryServices.Tests/Palaso.DictionaryServices.Tests.csproj
    Palaso.DictionaryServices/Palaso.DictionaryServices.csproj
    Palaso.Email.TestApp/Palaso.Email.TestApp.csproj
    Palaso.Lift.Tests/Merging/SynchronicMergerTests.cs
    Palaso.Lift.Tests/Palaso.Lift.Tests.csproj
    Palaso.Lift/Palaso.Lift.csproj
    Palaso.MSBuildTasks/Palaso.BuildTasks.csproj
    Palaso.Media.Tests/AudioPlayerTests.cs
    Palaso.Media.Tests/AudioRecorderTests.cs
    Palaso.Media.Tests/FFmpegRunnerTests.cs
    Palaso.Media.Tests/MediaInfoTests.cs
    Palaso.Media.Tests/Palaso.Media.Tests.csproj
    Palaso.Media.Tests/SampleForm.cs
    Palaso.Media/AudioFactory.cs
    Palaso.Media/FFmpegRunner.cs
    Palaso.Media/MediaInfo.cs
    Palaso.Media/Palaso.Media.csproj
    Palaso.Media/ShortSoundFieldControl.cs
    Palaso.Media/SoundFieldControl.cs
    Palaso.TestUtilities/Palaso.TestUtilities.csproj
    Palaso.Tests/IO/FileLocatorTests.cs
    Palaso.Tests/IO/FolderUtilsTests.cs
    Palaso.Tests/Palaso.Tests.csproj
    Palaso.Tests/Progress/CommandLineRunnerTests.cs
    Palaso.Tests/UsbDrive/Linux/UDisksTests.cs
    Palaso.Tests/UsbDrive/UsbDeviceInfoTests.cs
    Palaso.Tests/WritingSystems/IWritingSystemRepositoryTests.cs
    Palaso.Tests/i18n/StringCatalogTests.cs
    Palaso.Tests/reporting/ErrorReportTests.cs
    Palaso.sln
    Palaso/CommandLineProcessing/AsyncProcessOutputReader.cs
    Palaso/Email/EmailProviderFactory.cs
    Palaso/Email/MAPIHelper.cs
    Palaso/Email/MapiEmailProvider.cs
    Palaso/Email/ThunderbirdEmailProvider.cs
    Palaso/Palaso.csproj
    Palaso/Reporting/ExceptionReportingDialog.cs
    Palaso/UsbDrive/Linux/UDiskDevice.cs
    Palaso/UsbDrive/Linux/UDisks.cs
    Palaso/UsbDrive/Linux/UsbDriveInfoHAL.cs
    Palaso/UsbDrive/Linux/UsbDriveInfoUDisks.cs
    Palaso/UsbDrive/UsbDriveInfo.cs
    Palaso/UsbDrive/Windows/UsbDriveInfoWindows.cs
    Palaso/i18n/StringCatalog.cs
    PalasoUIWindowsForms.TestApp/PalasoUIWindowsForms.TestApp.csproj
    PalasoUIWindowsForms.Tests/Keyboarding/IBusAdaptorTestsWithIBus.cs
    PalasoUIWindowsForms.Tests/Keyboarding/IBusAdaptorTestsWithoutIBus.cs
    PalasoUIWindowsForms.Tests/Keyboarding/IBusEnvironmentForTest.cs
    PalasoUIWindowsForms.Tests/Keyboarding/LinuxKeyboardControllerTests.cs
    PalasoUIWindowsForms.Tests/PalasoUIWindowsForms.Tests.csproj
    PalasoUIWindowsForms.Tests/WritingSystems/UITests.cs
    PalasoUIWindowsForms/FolderBrowserControl/FolderBrowserControl.resx
    PalasoUIWindowsForms/ImageGallery/ArtOfReadingImageCollection.cs
    PalasoUIWindowsForms/Keyboarding/DBusInterfacesForIBus.cs
    PalasoUIWindowsForms/Keyboarding/IBusAdaptor.cs
    PalasoUIWindowsForms/Keyboarding/KeyboardController.cs
    PalasoUIWindowsForms/PalasoUIWindowsForms.csproj
    PalasoUIWindowsForms/Progress/LabelProgress.cs
    PalasoUIWindowsForms/Progress/LogBox.cs
    PalasoUIWindowsForms/Progress/SimpleStatusProgress.cs
    PalasoUIWindowsForms/Widgets/BetterLabel.cs
    PalasoUIWindowsForms/WritingSystems/WSFontControl.Designer.cs
    PalasoUIWindowsForms/WritingSystems/WSFontControl.cs
    PalasoUIWindowsForms/WritingSystems/WSIdentifiers/WSIdentifierView.Designer.cs
    PalasoUIWindowsForms/WritingSystems/WSIdentifiers/WSIdentifierView.cs
    PalasoUIWindowsForms/WritingSystems/WSKeyboardControl.cs
    PalasoUIWindowsForms/WritingSystems/WSPropertiesTabControl.Designer.cs
    PalasoUIWindowsForms/WritingSystems/WSPropertiesTabControl.cs
    PalasoUIWindowsForms/WritingSystems/WSSortControl.Designer.cs
    PalasoUIWindowsForms/WritingSystems/WSSortControl.cs
    PalasoUIWindowsForms/WritingSystems/WSSpellingControl.Designer.cs
    PalasoUIWindowsForms/WritingSystems/WritingSystemSetupDialog.Designer.cs
    PalasoUIWindowsForms/WritingSystems/WritingSystemSetupDialog.cs
    PalasoUIWindowsForms/WritingSystems/WritingSystemSetupModel.cs
    PalasoUIWindowsForms/WritingSystems/WritingSystemSetupView.cs
    PalasoUIWindowsForms/i18n/LocalizationHelper.cs
    README.Linux.txt
    TestApps/ReportingTest/Reporting.TestApp.csproj
    TestApps/TestAppKeyboard/KeyboardForm.Designer.cs
    TestApps/TestAppKeyboard/KeyboardForm.cs
    TestApps/TestAppKeyboard/TestAppKeyboard.csproj
    build/build.mono.proj
    lib/DebugMono/icu.net.dll.config
    lib/ReleaseMono/icu.net.dll.config

Change-Id: Ie258156ae6409d9b805e250181e9e5cd0e87fa61

--HG--
branch : KeyboardingV2
Add Clone() to IKeyboardDefinition and fix implementations.
Fix Clone() so that cloning a KeyboardDescription that the client
only knows to be an IKeyboardDefinition or DefaultKeyboardDefinition
actually produces the right type.

Change-Id: If0a2ad2bbcb88c92ac90ae0bafd26ce8713da5bd
---
 Palaso.Tests/Code/IClonableGenericTests.cs         | 22 ++++++++++++++++++++--
 .../DefaultKeyboardDefinitionTests.cs              |  2 +-
 Palaso/WritingSystems/DefaultKeyboardDefinition.cs |  4 ++--
 Palaso/WritingSystems/IKeyboardDefinition.cs       |  6 ++++++
 Palaso/WritingSystems/WritingSystemDefinition.cs   |  4 ++--
 .../Keyboarding/KeyboardDescriptionTests.cs        | 15 ++++++++++++++-
 .../Keyboarding/KeyboardDescription.cs             |  4 ++--
 .../Keyboarding/KeyboardDescriptionNull.cs         |  5 +++++
 8 files changed, 52 insertions(+), 10 deletions(-)

--HG--
branch : KeyboardingV2
Fix things so the Jenkins build will pass
Download.targets was referring to build tasks by a path relative
to the root project. This failed since the Jenkins project is up one
level.

Also updated a minor test app so it at least builds.

Change-Id: I83de91948927ea75801e62922e1f0ac5d0def09a
---
 TestApps/TestAppKeyboard/KeyboardForm.Designer.cs |  2 +-
 TestApps/TestAppKeyboard/KeyboardForm.cs          | 14 +++++++-------
 TestApps/TestAppKeyboard/TestAppKeyboard.csproj   |  7 +++++--
 build/Download.targets                            | 12 ++++++------
 4 files changed, 19 insertions(+), 16 deletions(-)

--HG--
branch : KeyboardingV2
Updating the icu.net.dlls to make the FLEx build work.

These are the DLLs that TeamCity currently uses to build Palaso.
For the Jenkins build, which isn't using dependencies I think,
it seems to be necessary to check in this version.

The issue is that FLEx uses a different icu.net.dll, with more content,
but to make Palaso work with it the icu.net.dll that Palaso is built
against must have the same assembly version (currently 1.1.49.0) as
the one in the FLEx Distfiles.

Change-Id: I94ce86591d9476603d8429c8c893edcce844f876

--HG--
branch : KeyboardingV2
Improve build
- download icu.net.dll from TeamCity server
- remove checked in icu.net dll
- add missing ibusdotnet.dll for Linux
- cleanup references

Change-Id: Ie3c051a938fb1a47a1d44855250121c81a025345
---
 Palaso/Palaso.csproj                             |  18 ++++--------
 PalasoUIWindowsForms/PalasoUIWindowsForms.csproj |  12 ++------
 build/Download.targets                           |  34 +++++++++++++++++------
 lib/Debug/icu.net.dll                            | Bin 40448 -> 0 bytes
 lib/Debug/icu.net.dll.config                     |   5 ----
 lib/Release/icu.net.dll                          | Bin 40448 -> 0 bytes
 lib/Release/icu.net.dll.config                   |   5 ----
 lib/common/ibusdotnet.dll                        | Bin 0 -> 20480 bytes
 9 files changed, 36 insertions(+), 40 deletions(-)
 delete mode 100644 lib/Debug/icu.net.dll
 delete mode 100644 lib/Debug/icu.net.dll.config
 delete mode 100644 lib/Release/icu.net.dll
 delete mode 100644 lib/Release/icu.net.dll.config
 create mode 100644 lib/common/ibusdotnet.dll

--HG--
branch : KeyboardingV2
Remove temporary ICU wrapper
Also fix location of some dlls.

Change-Id: I8f77646d20c6efa3a3e21b8e6ef401867a08a172
---
 Palaso.Tests/Palaso.Tests.csproj                   |    3 +
 Palaso/Palaso.csproj                               |    5 +-
 Palaso/Palaso.csproj.monodevelop                   |    4 +-
 .../Keyboarding/Linux/IbusKeyboardAdaptor.cs       |    5 +-
 .../Keyboarding/Linux/IcuLocale.cs                 |   65 -
 .../Keyboarding/Linux/TemporaryIcuWrapper.cs       | 2357 --------------------
 .../Keyboarding/Linux/XkbKeyboardAdaptor.cs        |   27 +-
 .../Keyboarding/Linux/XklConfigRegistry.cs         |   20 +-
 .../Keyboarding/Linux/XklEngine.cs                 |    4 +-
 PalasoUIWindowsForms/PalasoUIWindowsForms.csproj   |   34 +-
 .../PalasoUIWindowsForms.csproj.monodevelop        |    4 +-
 PalasoUIWindowsForms/Widgets/BitmapButton.cs       |   11 +-
 lib/DebugMono/NDesk.DBus.dll                       |  Bin 116224 -> 0 bytes
 lib/DebugMono/NDesk.DBus.dll.config                |    3 -
 lib/ReleaseMono/NDesk.DBus.dll                     |  Bin 116224 -> 0 bytes
 lib/ReleaseMono/NDesk.DBus.dll.config              |    3 -
 lib/common/ibusdotnet.dll                          |  Bin 20480 -> 0 bytes
 lib/commonMono/NDesk.DBus.dll                      |  Bin 0 -> 117248 bytes
 lib/commonMono/NDesk.DBus.dll.config               |    5 +
 lib/commonMono/ibusdotnet.dll                      |  Bin 0 -> 20480 bytes
 20 files changed, 65 insertions(+), 2485 deletions(-)
 delete mode 100644 PalasoUIWindowsForms/Keyboarding/Linux/IcuLocale.cs
 delete mode 100644 PalasoUIWindowsForms/Keyboarding/Linux/TemporaryIcuWrapper.cs
 delete mode 100644 lib/DebugMono/NDesk.DBus.dll
 delete mode 100644 lib/DebugMono/NDesk.DBus.dll.config
 delete mode 100644 lib/ReleaseMono/NDesk.DBus.dll
 delete mode 100644 lib/ReleaseMono/NDesk.DBus.dll.config
 delete mode 100644 lib/common/ibusdotnet.dll
 create mode 100755 lib/commonMono/NDesk.DBus.dll
 create mode 100644 lib/commonMono/NDesk.DBus.dll.config
 create mode 100644 lib/commonMono/ibusdotnet.dll

--HG--
branch : KeyboardingV2
Fix compile error on Linux
The unit tests that use IBusEnvironmentForTest are flagged with

Change-Id: Iec53c401f4f3b6d62a7869a21d4d84236e8adbe3
---
 PalasoUIWindowsForms.Tests/Keyboarding/IBusEnvironmentForTest.cs | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

--HG--
branch : KeyboardingV2
Fix additional Palaso tests failing on Linux
Change-Id: I4ebc696defc768dc9efe8926abbf2669a4b10288
---
 Palaso.Lift.Tests/Parsing/ParserTests.cs           | 52 +++++++++++++++-------
 Palaso.Tests/Progress/CommandLineRunnerTests.cs    |  6 ++-
 .../GlobalWritingSystemRepositoryTests.cs          |  1 +
 Palaso.Tests/WritingSystems/LdmlDataMapperTests.cs |  2 +-
 Palaso/WritingSystems/DefaultKeyboardDefinition.cs |  2 +-
 Palaso/WritingSystems/StandardTags.cs              |  4 +-
 .../Keyboarding/KeyboardDescriptionTests.cs        |  2 +-
 .../Keyboarding/XkbKeyboardAdapterTests.cs         |  8 ++--
 .../Keyboarding/KeyboardDescription.cs             | 21 +++------
 9 files changed, 56 insertions(+), 42 deletions(-)

--HG--
branch : KeyboardingV2
Add static property to get active keyboard
Change-Id: Ife33f8c84254a0388077e6be1422005090f3ed01
---
 PalasoUIWindowsForms/Keyboarding/KeyboardController.cs | 8 ++++++++
 1 file changed, 8 insertions(+)

--HG--
branch : KeyboardingV2
Remove ibus classes that are defined in ibusdotnet
Change-Id: I635a186e02d4c278b207a10b27f851f04df5dfb9
---
 PalasoUIWindowsForms/Keyboarding/IBusConnection.cs |  91 ------------
 .../Keyboarding/IBusConnectionFactory.cs           | 161 ---------------------
 .../Keyboarding/InputBusWrapper.cs                 |  36 -----
 .../Keyboarding/InputContextWrapper.cs             |  28 ----
 5 files changed, 320 deletions(-)
 delete mode 100644 PalasoUIWindowsForms/Keyboarding/IBusConnection.cs
 delete mode 100644 PalasoUIWindowsForms/Keyboarding/IBusConnectionFactory.cs
 delete mode 100644 PalasoUIWindowsForms/Keyboarding/InputBusWrapper.cs
 delete mode 100644 PalasoUIWindowsForms/Keyboarding/InputContextWrapper.cs

--HG--
branch : KeyboardingV2
Fix cloning of KeyboardDescriptions
Each subclass needs to override Clone() so that the clone gets the
correct type. Otherwise the keyboards might not work as expected.

Change-Id: Iaf23b979ca39927d3a0532b28522f6df8dc9efe3
---
 PalasoUIWindowsForms/Keyboarding/KeyboardDescription.cs      |  3 +++
 .../Keyboarding/Linux/XkbKeyboardDescription.cs              | 10 ++++++++++
 .../Keyboarding/Windows/WinKeyboardDescription.cs            | 12 ++++++++++++
 3 files changed, 25 insertions(+)

--HG--
branch : KeyboardingV2