101 lines
4.4 KiB
Plaintext
101 lines
4.4 KiB
Plaintext
|
/** @mainpage 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 <a href="http://doc.trolltech.com/latest/graphicsview.html">Qt Graphics View
|
||
|
framework</a> and the <a href="http://api.kde.org/4.x-api/kdelibs-apidocs/">KDE
|
||
|
libraries</a> 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 Plasma, the new desktop shell in
|
||
|
KDE 4, it is general enough to be useful in other applications.
|
||
|
<a href="http://amarok.kde.org">Amarok</a> is already 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. Also, infrastructure such as a dialog to install
|
||
|
new widgets and even download them from the web (Plasma::AppletBrowser) is also
|
||
|
included.
|
||
|
|
||
|
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
|
||
|
<a href="http://doc.trolltech.com/latest/model-view-programming.html">Model /
|
||
|
View framework</a> 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 OpneGL-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
|
||
|
<a href="http://techbase.kde.org/Development/Tutorials/Plasma">Plasma tutorials</a>
|
||
|
on TechBase provide a good introduction to writing plugins, such as widgets and
|
||
|
data engines, for libplasma-based applications.
|
||
|
|
||
|
@authors
|
||
|
Aaron Seigo \<aseigo@kde.org\><br>
|
||
|
Alessandro Diaferia \<alediaferia@gmail.com\><br>
|
||
|
Alex Merry \<kde@randomguy3.me.uk\><br>
|
||
|
Alexander Wiedenbruch \<wirr01@gmail.com\><br>
|
||
|
Alexis Ménard \<darktears31@gmail.com\><br>
|
||
|
André Duffeck \<andre@duffeck.de\><br>
|
||
|
Andrew Lake \<jamboarder@yahoo.com\><br>
|
||
|
Bertjan Broeksema \<b.broeksema@kdemail.net\><br>
|
||
|
Chani Armitage \<chanika@gmail.com\><br>
|
||
|
Davide Bettio \<davide.bettio@kdemail.net\><br>
|
||
|
Dan Meltzer \<hydrogen@notyetimplemented.com\><br>
|
||
|
Fredrik Höglund \<fredrik@kde.org\><br>
|
||
|
Ivan Cukic \<ivan.cukic+kde@gmail.com\><br>
|
||
|
John Tapsell \<tapsell@kde.org\><br>
|
||
|
Jordi Polo \<mumismo@gmail.com\><br>
|
||
|
Kevin Ottens \<ervin@kde.org\><br>
|
||
|
Montel Laurent \<montel@kde.org\<br>
|
||
|
Marco Martin \<notmart@gmail.com\><br>
|
||
|
Matt Broadstone \<mbroadst@gmail.com\><br>
|
||
|
Petri Damsten \<damu@iki.fi\><br>
|
||
|
Rafael Fernández López \<ereslibre@kde.org\><br>
|
||
|
Riccardo Iaconelli \<riccardo@kde.org\><br>
|
||
|
Richard J. Moore \<rich@kde.org\><br>
|
||
|
Rob Scheepmaker \<r.scheepmaker@student.utwente.nl\><br>
|
||
|
Robert Knight \<robertknight@gmail.com\><br>
|
||
|
Sebastian Kuegler \<sebas@kde.org\><br>
|
||
|
Siraj Razick \<siraj@kde.net\><br>
|
||
|
Zack Rusin \<zack@kde.org\>
|
||
|
|
||
|
@maintainers
|
||
|
Aaron Seigo \<aseigo@kde.org\>
|
||
|
|
||
|
@licenses
|
||
|
@lgpl
|
||
|
|
||
|
*/
|
||
|
|
||
|
// DOXYGEN_SET_PROJECT_NAME = libplasma
|
||
|
// DOXYGEN_SET_RECURSIVE = YES
|
||
|
// vim:ts=4:sw=4:expandtab:filetype=doxygen
|