/** @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 the Plasma desktop shell in
KDE 4, it is general enough to be useful in other applications.
<a href="http://amarok.kde.org">Amarok</a> 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::Package: provides descriptions of packages containing plugins
   for libplasma
 - Plasma::Svg and Plasma::FrameSvg: provides themable, cached SVGs
 - Plasma::AppletScript, Plasma::DataEngineScript, Plasma::RunnerScript and
   Plasma::ScriptEngine: provide scripting interfaces for plugins


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>
Artur de Souza \<asouza@kde.org\><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 = Plasma
// DOXYGEN_SET_RECURSIVE = YES
// DOXYGEN_EXCLUDE_PATTERNS = *_p.h */private/* */tests/*
// vim:ts=4:sw=4:expandtab:filetype=doxygen
