Meego Wiki
Views

Maliit/Documentation

From MeeGo wiki
< Maliit(Difference between revisions)
Jump to: navigation, search
(Important cases)
(Moved (upstream) to http://wiki.maliit.org/Documentation)
 
(4 intermediate revisions not shown)
Line 1: Line 1:
-
[[Category:Maliit]][[Category:MeeGo Input Methods]]
+
Moved (upstream) to http://wiki.maliit.org/Documentation
-
{{MaliitNavigationBar}}
+
-
 
+
-
== FAQ ==
+
-
Frequently asked questions.
+
-
 
+
-
'''1. How to write my own input method?'''<br>
+
-
The recommended way to get started is to use the Maliit Plugin SDK and follow the [[Maliit/Documentation#Plugin_development_Quickstart|quickstart documentation]].
+
-
 
+
-
For developing an input method plugin, the primary interface is Qt and C++. The most relevant classes are: [https://meego.gitorious.org/meegotouch/meegotouch-inputmethodframework/blobs/master/src/minputmethodplugin.h MInputMethodPlugin],
+
-
[https://meego.gitorious.org/meegotouch/meegotouch-inputmethodframework/blobs/master/src/mabstractinputmethod.h MAbstractInputMethod] and [https://meego.gitorious.org/meegotouch/meegotouch-inputmethodframework/blobs/master/src/mabstractinputmethodhost.h 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 [https://meego.gitorious.org/meegotouch/meegotouch-inputmethodkeyboard/trees/master/meego-keyboard-quick 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.
+
-
 
+
-
* [[Maliit/Installing|Install Maliit]] for your development environment
+
-
* [http://www.jonnor.com/files/maliit/maliit-plugin-sdk-0.1.0.tar.gz Download] the Maliit Plugin SDK
+
-
* Extract the examples
+
-
# 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
+
-
* [https://meego.gitorious.org/meegotouch/meegotouch-inputmethodkeyboard/trees/master/m-keyboard Meego Keyboard]
+
-
* [https://meego.gitorious.org/meegotouch/meegotouch-inputmethodkeyboard/trees/master/meego-keyboard-quick Meego Keyboard Quick]
+
-
* [https://github.com/foolegg/cute-input-method/tree/maliit cute-input-method]
+
-
 
+
-
== Feature documentation ==
+
-
See [[Maliit#Features]]
+
-
 
+
-
== API documentation ==
+
-
* [http://apidocs.meego.com/1.1/platform/html/meego-im-framework/main.html Old MeeGo 1.1 Input method engine and framework] - note that there has been changes in API since then
+
-
* Documentation webpage for the latest git version and Meego version has been requested. See [https://bugs.meego.com/show_bug.cgi?id=14382 bug 14382] and [https://bugs.meego.com/show_bug.cgi?id=14994 bug 14994]
+
-
* Generate from source code with doxygen.
+
-
 
+
-
Some of the documentation is slighly outdated, and we are working to improve this. Use our [[Maliit#Communication_Channels|communication channels]] if there are any issues.
+
-
 
+
-
== Technical documentation ==
+
-
* [[Media:Technical-overview-widget-reloc.pdf|Widget relocation in MTF]]
+
-
* More to come!
+
-
 
+
-
== Blogposts et.c. ==
+
-
(most recent first)
+
-
* Michael Hasselmann: [http://taschenorakel.de/michael/2011/06/20/brave-new-world/ Brave New World]
+
-
* Michael Hasselmannn: [http://taschenorakel.de/michael/2011/06/10/decent-examples-last/ Decent examples, at last!]
+
-
* Jon Nordby: [http://www.jonnor.com/2011/06/example-plugins-for-maliit-available/ Example plugins for Maliit]
+
-
* Michael Hasselmann: [http://taschenorakel.de/michael/2011/06/07/maliit-session-meego-spring-conference-2011/ Maliit Session at MeeGo Spring Conference 2011]
+
-
* Jan Arne Petersen: [http://blog.jpetersen.org/2011/05/29/maliit-packages-for-fedora/ Maliit packages for Fedora]
+
-
* Michael Hasselmann: [http://taschenorakel.de/michael/2011/05/12/writing-qml-based-input-methods-maliit/ Writing QML-based input methods for Maliit]
+
-
* Michael Hasselmann: [http://taschenorakel.de/michael/2011/05/10/painting-strategy-meegos-virtual-keyboard/ Painting Strategy in MeeGo's Virtual Keyboard]
+
-
* Jon Nordby: [http://www.jonnor.com/2011/04/introducing-maliit-on-screen-keyboard-in-gnome-3/ Introducing; Maliit on-screen keyboard in Gnome 3]
+
-
* Michael Hasselmann: [http://taschenorakel.de/michael/2011/04/10/customizing-meego-keyboard/ Customizing the Meego Keyboard]
+
-
* Michael Hasselmann: [http://taschenorakel.de/michael/2011/02/24/meego-input-methods-your-desktop/ MeeGo Input Methods for your desktop]
+
-
 
+
-
== 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
+
-
* Using Maliit in an application
+
-
* Integrating Maliit in a product
+
-
* Developing a new engine plugin
+
-
* Adding support for additional application toolkits
+
-
 
+
-
=== Documentation status ===
+
-
 
+
-
{|border="1" cellpadding="4"  class="wikitable"
+
-
|-
+
-
! 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. [https://bugs.meego.com/show_bug.cgi?id=14382 Bug 14382]
+
-
|-
+
-
| apidocs.meego.com/1.2 || 10% || Our docs should be shown here. [https://bugs.meego.com/show_bug.cgi?id=14994 Bug 14994]
+
-
|-
+
-
| colspan=3 | '''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 || ? ||
+
-
|-
+
-
| colspan=3 | '''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. ||
+
-
|-
+
-
|}
+
-
 
+
-
{{MaliitNavigationBar}}
+

Latest revision as of 15:34, 12 July 2011

Moved (upstream) to http://wiki.maliit.org/Documentation

Personal tools