(→Plugin Development Quickstart) |
(→Important cases) |
||
| Line 106: | Line 106: | ||
=== Important cases === | === Important cases === | ||
| + | * Creating and adding a new layout file to the keyboard | ||
* Developing a new input method plugin | * Developing a new input method plugin | ||
* Using Maliit in an application | * Using Maliit in an application | ||
| Maliit - Input Methods for MeeGo |
|---|
| Overview · Development · Installing · Roadmap |
Contents |
Frequently asked questions.
1. How to write my own input method?
The recommended way to get started is to use the Maliit Plugin SDK and follow the quickstart documentation.
For developing an input method plugin, the primary interface is Qt and C++. The most relevant classes are: MInputMethodPlugin, MAbstractInputMethod and MAbstractInputMethodHost.
Since version 0.20.9-1 of the framework (May 2011), the MInputMethodQuick API allows one to also easily write input methods using QML. See the MeegoKeyboardQuick code for an example. As of May 2011 this interface is not yet feature complete with the C++ one. Contributions welcomed.
Please add any questions you may have here.
How to get started developing plugins. This documentation is mainly for framework version 0.20.11-1 and newer. The C++ plugin API is compatible with all 0.20.x versions, and the QML interface is available from 0.20.9-1. Meego 1.2 has version 0.20.6. To develop there, one can install packages from Trunk/1.3.
Note that this is not intended to be 100% copy'n'paste step-by-step instructions. You may need to use common sense.
# In your favorite terminal: tar -xf maliit-plugin-sdk-*.tar.gz cd maliit-plugin-sdk/examples/
qmake make make install
# QML plugin code ls plugins/quick/ # C++ plugin code ls plugins/standard
# First enable both of the example input methods, along with the meego keyboard gconftool-2 -s /meegotouch/inputmethods/onscreen/enabled -t list --list-type strings \ [libmeego-keyboard.so,en_gb.xml,libmeego-keyboard-quick.so,,libhelloworldplugin.so,,libexampleplugin.so,ExamplePluginSubview1] # To activate the QML example gconftool-2 -s /meegotouch/inputmethods/onscreen/active -t list --list-type string [libhelloworldplugin.so,] # To instead activate the C++ example gconftool-2 -s /meegotouch/inputmethods/onscreen/active -t list --list-type string [libexampleplugin.so,ExamplePluginSubview1] # To test, start the Maliit server and a application with a Maliit inputcontext loaded # Note: More documentation on this can be found on the Installing page meego-im-uiserver > server.log & QT_IM_MODULE=MInputContext apps/plainqt/plainqt # Tap/double tap on a text field to activate the input method # You should now be able to see an input method which allows you to click to input "Hello World"
# Do changes (start simple, maybe by changing the "Hello World" string to something else) # Rebuild and reinstall plugins make && make install # Remember to restart the Maliit server for it to pick up the changed plugin
If you have any issues, first try to solve the problem by reading the instructions again, and maybe other documentation. If you cannot solve it, ask for help through one of our communication channels.
There are also several open source input plugins that one look at. See for instance
See Maliit#Features
Some of the documentation is slighly outdated, and we are working to improve this. Use our communication channels if there are any issues.
(most recent first)
Here is the working area to keep track of the status of and work on the documentation.
| Item | Status | Description | |
|---|---|---|---|
| wiki.meego.com/Maliit | 90% | Our public webpage/wiki page, starting point for all information about our project. In pretty good shape. | |
| apidocs.meego.com/git-tip | 10% | Our docs should be shown here. Bug 14382 | |
| apidocs.meego.com/1.2 | 10% | Our docs should be shown here. Bug 14994 | |
| Framework | |||
| Overall architecture | 30% | Some docs exists in framework source tree, but is very outdated | |
| Input Method/framework settings system | 0% | ||
| Input Method Plugin<->Framework interaction | 0% | What the interaction concepts are (both user and technical), and what is done on each side to support this | |
| Input Method Framework Window handling | 0% | Passthrough window, Self-compositing, plugin pixmap drawing, rotation animation. Maybe covered by above item? | |
| Input Method Plugin API | 60% | Example plugins exists, initial plugin SDK published. Need to remove the outdated tutorial from framework docs | |
| Input Context DBus API | 0% | ||
| Toolkit integration concepts | 20% | Key concepts like pre-edit injection, and widget relocation should be documented. Purpose: make it easy for others to improve toolkit integration, and to bring new people up to date. Widget relocation is documented. | |
| Toolkit integration/support status | 10% | Implicitly all keyboard features/IM are available for MTF. No documentation about plain Qt, QML, Clutter or Gtk+ | |
| Engine interfaces | ? | Correction/prediction/suggestion/handwriting, both plugin side and IM side | |
| Feedback framework | ? | ||
| Plugins | |||
| Meego Keyboard theming (CSS) | 100% | Docs in keyboard source tree. | |
| Meego Keyboard layouts | 100% | Docs in keyboard source tree. | |
| Meego Keyboard features | 100% | Documented on wiki page. | |
| Maliit - Input Methods for MeeGo |
|---|
| Overview · Development · Installing · Roadmap |