plasma Module
Plasma libraries
libplasma is the core of the Plasma desktop. It provides a framework of graphical widgets (Plasma.Applet) that can be organised into managed groupings (Plasma.Containment), such as a desktop or panel. It also provides a data abstraction layer (Plasma.DataEngine) and a corresponding service interaction layer (Plasma.Service) to make implementing widgets easier and a system of callouts (Plasma.AbstractRunner) that provide responses to queries, from running an application to performing a quick calculation.
The Qt Graphics View framework and the KDE libraries provide the underpinning for libplasma. As a result, it should work anywhere that Qt and KDE do.
Although libplasma is developed for the use of the Plasma desktop shell in KDE 4, it is general enough to be useful in other applications. Amarok is using it for its context view, allowing for pluggable widgets to display and interact with the music collection, such as "current track" and "tag cloud" widgets.
libplasma itself only provides a framework, and the widgets, containments, data engines and runners are all implemented as plugins. However, the framework is designed to make implementing these plugins as easy as possible, including providing scripting support.
Other important classes are:
- Plasma.Corona: the canvas that containments are placed on - Plasma.View: a QWidget for displaying a containment - Plasma.Theme: provides theming support - Plasma.Animator: provides animations for things like elements appearing and disappearing - Plasma.Delegate: provides an item delegate for Qt's Model / View framework for menu items. - Plasma.ToolTipManager: allows widgets have (themed) tooltips displayed when the mouse is hovered over them - Plasma.Dialog: displays a themed application dialog - Plasma.Extender: provides detachable sections to Plasma.Applet - Plasma.GLApplet: provides an OpenGL-rendered Plasma.Applet - Plasma.PackageStructure: provides descriptions of packages containing plugins for libplasma - Plasma.PopupApplet: provides a simple way of implementing a Plasma.Applet consisting of an icon that shows a popup when clicked - Plasma.Svg and Plasma.FrameSvg: provides themable, cached SVGs - Plasma.Wallpaper: provides pluggable backgrounds for containments - Plasma.AppletScript, Plasma.DataEngineScript, Plasma.RunnerScript and Plasma.ScriptEngine: provide scripting interfaces for plugins - Various themed QGraphicsWidgets for use in creating a Plasma.Applet
The Plasma tutorials on TechBase provide a good introduction to writing plugins, such as widgets and data engines, for libplasma-based applications.
- Author(s):
-
Aaron Seigo <aseigo@kde.org>
Alessandro Diaferia <alediaferia@gmail.com>
Alex Merry <kde@randomguy3.me.uk>
Alexander Wiedenbruch <wirr01@gmail.com>
Alexis Ménard <darktears31@gmail.com>
André Duffeck <andre@duffeck.de>
Andrew Lake <jamboarder@yahoo.com>
Bertjan Broeksema <b.broeksema@kdemail.net>
Chani Armitage <chanika@gmail.com>
Davide Bettio <davide.bettio@kdemail.net>
Dan Meltzer <hydrogen@notyetimplemented.com>
Fredrik Höglund <fredrik@kde.org>
Ivan Cukic <ivan.cukic+kde@gmail.com>
John Tapsell <tapsell@kde.org>
Jordi Polo <mumismo@gmail.com>
Kevin Ottens <ervin@kde.org>
Montel Laurent <montel@kde.org>
Marco Martin <notmart@gmail.com>
Matt Broadstone <mbroadst@gmail.com>
Petri Damsten <damu@iki.fi>
Rafael Fernández López <ereslibre@kde.org>
Riccardo Iaconelli <riccardo@kde.org>
Richard J. Moore <rich@kde.org>
Rob Scheepmaker <r.scheepmaker@student.utwente.nl>
Robert Knight <robertknight@gmail.com>
Sebastian Kuegler <sebas@kde.org>
Siraj Razick <siraj@kde.net>
Zack Rusin <zack@kde.org>
- Maintainer(s):
- Aaron Seigo <aseigo@kde.org>
- License(s):
- LGPLv2
Namespaces
G | P | Plasma.PaintUtils |
global | Plasma |