85 lines
3.4 KiB
Plaintext
85 lines
3.4 KiB
Plaintext
/** @page libplasma Plasma framework
|
|
|
|
Plasma framework 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.
|
|
|
|
The <a href="https://doc.qt.io/qt-5/qtquick-index.html">Qt Quick
|
|
framework</a> and set of <a href="https://api.kde.org/frameworks">KDE Frameworks</a>
|
|
provide the underpinning for Plasma framework. As a result, it should
|
|
work anywhere that Qt does.
|
|
|
|
Although Plasma framework is developed for the use of the Plasma desktop shell,
|
|
currently known as Plasma 5, it is general enough to be useful in other applications.
|
|
<a href="https://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.
|
|
|
|
Plasma framework itself only provides a framework, and the widgets, containments,
|
|
data engines are all implemented as plugins (using C++, for widgets QML is prefferd).
|
|
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 and
|
|
Plasma::ScriptEngine: provide scripting interfaces for plugins
|
|
|
|
|
|
The
|
|
<a href="https://techbase.kde.org/Development/Tutorials/Plasma5">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
|
|
Marco Martin \<notmart@gmail.com\>
|
|
|
|
@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
|