1/*! @mainpage %Maliit Framework Documentation 2 3@section intro Introduction 4 5%Maliit provides a flexible and cross-platform input method framework. It has a 6plugin-based client-server architecture where applications act as clients and 7communicate with the %Maliit server via input context plugins. The communication 8link currently uses D-Bus. %Maliit is an open source framework (LGPL 2) with 9open source plugins (BSD). 10 11The framework provides two distinct plugin interfaces: 12- @ref pluginapi "Maliit plugin", for writing input methods such as virtual keyboards or handwriting 13- %Maliit engine plugin, for writing input method engines used for word prediction and error correction. 14 15@if false 16[ATTENTION: engine interface is not Maliit-fied yet]. 17* Writing Maliit plugins [LINK] 18* Writing Maliit engine plugins [LINK] 19@endif 20 21@image html architecture-overview.png 22 23The %Maliit @ref architecture provides an abstraction that enables application 24developers to concentrate on application logic, with the option to extend input 25method interaction with @ref libmaliitintro, while plugin developers are 26insulated from applications. Neither plugins nor applications know directly of 27each other, nor do they have to use the same toolkits. For example, plugins 28written for Qt or MeeGo Touch applications will work just as well for GTK+ 29applications, without any modifications. 30 31The framework is responsible for switching to specific plugins, depending on 32the application and device state. For example, when opening a hardware 33keyboard, %Maliit will automatically search for a HWKB-capable plugin and 34activate it. Additionally, plugins can trigger a plugin or language layout 35change. Plugins announce their services via a plugin description interface, the 36list of languages they support, whether they are on-screen or 37HWKB plugins (or both). 38 39@subsection maliit-fwbasicusage Basic Usage 40 41@subsubsection maliit-fwclasses Main classes 42 43The following base classes are needed to implement an input method UI plugin: 44 45- MAbstractInputMethod : to allow input method server to update input method plugin state 46- MAbstractInputMethodSettings : to provide settings in control panel 47- MInputMethodPlugin : to enable the plugin to be loaded by the input method server 48 49@subsection general General documentation 50- <a href="architecture.html">Architecture</a> 51- <a href="extensions.html">Extensions to Qt</a> 52- <a href="pluginsystem.html">Plugin System</a> 53- <a href="internals.html">Feature Internals</a> 54- <a href="toolbarxml.html">Toolbar Widget XML Specification</a> 55 56@subsection tutorial Tutorial 57- <a href="plugintutorial.html">How to implement a plugin</a> 58 59@section libmaliitintro Libmaliit 60 61@ref libmaliit "Libmaliit" is an input method extension library for Qt — use it to add application support for screen rotation and attribute extensions. 62 63@subsection libmaliitclasses Useful classes 64 65- @ref Maliit::AttributeExtension "AttributeExtension" : Register extensions such as key overrides. 66- @ref Maliit::InputMethod "InputMethod" : Listen to device orientation, language and raw key events. 67- @ref Maliit::PreeditInjectionEvent "PreeditInjectionEvent" : Extension for preedit text inside text edits. 68 69@section api API reference 70<a href="classes.html">All Classes</a> 71 72*/ 73