Meego Wiki
Views

Maliit/Documentation

From MeeGo wiki
(Difference between revisions)
Jump to: navigation, search
(Blogposts et.c.)
(Documentation status)
Line 135: Line 135:
| Input Method Framework Window handling || 0% || Passthrough window, Self-compositing, plugin pixmap drawing, rotation animation. Maybe covered by above item?
| Input Method Framework Window handling || 0% || Passthrough window, Self-compositing, plugin pixmap drawing, rotation animation. Maybe covered by above item?
|-
|-
-
| Input Method Plugin API || 40% || Tutorial is outdated. Should provide a well-commented plugin example/skeleton that is built as part of our build (to avoid bitrot)
+
| 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% ||
| Input Context DBus API || 0% ||

Revision as of 17:22, 22 June 2011

Maliit - Input Methods for MeeGo
Overview · Development · Installing · Roadmap

Contents

FAQ

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.

Unanswered questions

Please add any questions you may have here.

  • Does Maliit work with non-compositing Window Managers?
  • Which window managers are currently supported?

Plugin Development Quickstart

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/
  • Compile them
qmake
make
make install
  • Have a look around. In the examples directory you will find a QML based plugin and a C++ based plugin.
# QML plugin code
ls plugins/quick/
# C++ plugin code
ls plugins/standard
  • Try out one of the examples
# 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"

  • Try changing the plugin code a bit, and reinstall and restart the Maliit server to try again.
# 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

Feature documentation

See Maliit#Features

API documentation

Some of the documentation is slighly outdated, and we are working to improve this. Use our communication channels if there are any issues.

Technical documentation

Blogposts et.c.

(most recent first)

Documentation working area

Here is the working area to keep track of the status of and work on the documentation.

  • Goal: Every aspect of Maliit is well-documented, and the documentation easily accessible.
  • Primary focus is on consumers of Maliit: Third-party developers and integrators

Important cases

  • Developing a new input method plugin
  • Developing a new engine plugin
  • Integrating Maliit in a product
  • Adding support for additional application toolkits

Documentation status

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  ?
Meego Keyboard
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
Personal tools