| Home · API Reference · Modules

Maliit Framework Documentation

# Introduction

Maliit provides a flexible and cross-platform input method framework. It has a plugin-based client-server architecture where applications act as clients and communicate with the Maliit server via input context plugins. The communication link currently uses D-Bus. Maliit is an open source framework (LGPL 2) with open source plugins (BSD).

The framework provides two distinct plugin interfaces:

- Maliit plugin, for writing input methods such as virtual keyboards or handwriting
- Maliit engine plugin, for writing input method engines used for word prediction and error correction.

The Maliit Architecture provides an abstraction that enables application developers to concentrate on application logic, with the option to extend input method interaction with Libmaliit, while plugin developers are insulated from applications. Neither plugins nor applications know directly of each other, nor do they have to use the same toolkits. For example, plugins written for Qt or MeeGo Touch applications will work just as well for GTK+ applications, without any modifications.

The framework is responsible for switching to specific plugins, depending on the application and device state. For example, when opening a hardware keyboard, Maliit will automatically search for a HWKB-capable plugin and activate it. Additionally, plugins can trigger a plugin or language layout change. Plugins announce their services via a plugin description interface, the list of languages they support, whether they are on-screen or HWKB plugins (or both).

## Basic Usage

### Main classes

The following base classes are needed to implement an input method UI plugin:

- MAbstractInputMethod : to allow input method server to update input method plugin state
- MAbstractInputMethodSettings : to provide settings in control panel
- MInputMethodPlugin : to enable the plugin to be loaded by the input method server

## General documentation

- Architecture
- Extensions to Qt
- Plugin System
- Feature Internals
- Toolbar Widget XML Specification

## Tutorial

- How to implement a plugin

# Libmaliit

Libmaliit is an input method extension library for Qt — use it to add application support for screen rotation and attribute extensions.

## Useful classes

- AttributeExtension : Register extensions such as key overrides.
- InputMethod : Listen to device orientation, language and raw key events.
- PreeditInjectionEvent : Extension for preedit text inside text edits.

# API reference

All Classes

Copyright © 2011 Nokia Corporation |  | Maliit