Download pptx - How to integrate with GPII

Transcript
Page 1: How to integrate with GPII

GPII Integration

Page 2: How to integrate with GPII

Integrating Your Application• You can usually integrate your app without writing any code

• Simply describe:

1. Which platforms you support

2. How you store your settings

3. How to launch and stop your application

4. How your settings relate to a common vocabulary

Page 3: How to integrate with GPII
Page 4: How to integrate with GPII

Basic Structure: { "name": "Windows Built-in Screen Magnifier", "id": "com.microsoft.windows.magnifier", "contexts": (…), "settingsHandlers": (…), "lifecycleManager": (…) }

Page 5: How to integrate with GPII

Give your application a name and a unique ID:

{ "name": "Windows Built-in Screen Magnifier", "id": "com.microsoft.windows.magnifier", "contexts": (…), "settingsHandlers": (…), "lifecycleManager": (…) }

Page 6: How to integrate with GPII

Describe the platforms your application runs on:

{ "name": "Windows Built-in Screen Magnifier", "id": "com.microsoft.windows.magnifier", "contexts": { "OS": [ { "id": "win32", "version": ">=5.0" } ] }, "settingsHandlers": (…), "lifecycleManager": (…) }

Page 7: How to integrate with GPII

Describe how your app stores its settings:

{ "name": "Windows Built-in Screen Magnifier", "id": "com.microsoft.windows.magnifier", "contexts": (…), "settingsHandlers": [ { "type": "gpii.windows.registrySettingsHandler", "options": { "hKey": "HKEY_CURRENT_USER", "path": "Software\\Microsoft\\ScreenMagnifier" }, "capabilitiesTransformations": (…) }, {...} ], "lifecycleManager": (…) }

Page 8: How to integrate with GPII

Describe how to start and stop your app:{ "name": "Windows Built-in Screen Magnifier", "id": "com.microsoft.windows.magnifier", "contexts": (…), "settingsHandlers": (…), "lifecycleManager": { "start": [ "setSettings", { "type": "gpii.launch.exec", "command": "${{environment}.SystemRoot}\\System32\\Magnify.exe" } ], "stop": [ { "type": "gpii.launch.exec", "command": "${{environment}.SystemRoot}\\System32\\taskkill.exe /im Magnify.exe" }, "restoreSettings" ] } }

Page 9: How to integrate with GPII
Page 10: How to integrate with GPII

AccessForAll & Common Terms• AccessForAll a.k.a. ISO 24751

• Open registry-based architecture in progress

• Provides a common vocabulary for describing a user’s needs and preference

• Provides a “meeting place” for cross-platform preferences

• Philosophy: you speak your preferred language, but describe how to translate it

Page 11: How to integrate with GPII

{ "http://registry.gpii.org/common/magnification": [ {"value": 3.0} ], "http://registry.gpii.org/common/tracking": [ {"value": "mouse"} ], "http://registry.gpii.org/common/invertImages": [ {"value": true} ]}

Eexample preferences set:

Page 12: How to integrate with GPII

{ "http://registry.gpii.org/common/magnification": [ {"value": 3.0} ], "http://registry.gpii.org/common/tracking": [ {"value": "mouse"} ], "http://registry.gpii.org/common/invertImages": [ {"value": true} ]}

… But the windows magnifier stores magnification as a percentage

Page 13: How to integrate with GPII

“$HKEY_CURRENT_USER\\Software\\Microsoft\\ScreenMagnifier”: { “Magnification”: 200, [REG_DWORD INT] “Invert”: 1 [REG_DWORD BOOL], "FollowMouse": 1 [REG_DWORD BOOL]}

Page 14: How to integrate with GPII
Page 15: How to integrate with GPII

Defining how to translate and set settings:{ "name": "Windows Built-in Screen Magnifier", "id": "com.microsoft.windows.magnifier", "contexts": (…), "settingsHandlers”: [ { ... "capabilitiesTransformations": { "Magnification": { "transform": { "type": "gpii.transformer.linearScale", "inputPath": "http://registry.gpii.org/common/magnification", "outputPath": "value", "factor": 100 } }, ...

Page 16: How to integrate with GPII

Defining how to translate and set settings:{ "name": "Windows Built-in Screen Magnifier", "id": "com.microsoft.windows.magnifier", "contexts": (…), "settingsHandlers”: [ { ... "capabilitiesTransformations": { "Magnification": { "transform": { "type": "gpii.transformer.linearScale", "inputPath": "http://registry.gpii.org/common/magnification", "outputPath": "value", "factor": 100 } }, ...

Take this preference

Page 17: How to integrate with GPII

Defining how to translate and set settings:{ "name": "Windows Built-in Screen Magnifier", "id": "com.microsoft.windows.magnifier", "contexts": (…), "settingsHandlers”: [ { ... "capabilitiesTransformations": { "Magnification": { "transform": { "type": "gpii.transformer.linearScale", "inputPath": "http://registry.gpii.org/common/magnification", "outputPath": "value", "factor": 100 } }, ...

Take this preference

Rename it to this setting

Page 18: How to integrate with GPII

Defining how to translate and set settings:{ "name": "Windows Built-in Screen Magnifier", "id": "com.microsoft.windows.magnifier", "contexts": (…), "settingsHandlers”: [ { ... "capabilitiesTransformations": { "Magnification": { "transform": { "type": "gpii.transformer.linearScale", "inputPath": "http://registry.gpii.org/common/magnification", "outputPath": "value", "factor": 100 } }, ...

Rename it to this setting

Scale it

Take this preference

Page 19: How to integrate with GPII

Next Steps

Page 20: How to integrate with GPII

Get Involved

If you’re a developer, designer, tester, user, writer, organizer, maker, thinker, tinkerer, drawer, doer, helper...

We need you!

Page 21: How to integrate with GPII

Community

Website

Wiki

Mailing lists

Source code

Issue tracker

Chat

gpii.net

wiki.gpii.net

lists.gpii.net

github.com/gpii

issues.gpii.net

#fluid-work (freenode)