Warning, /plasma/plasma-desktop/design/wallpaper is written in an unsupported language. File is not indexed.

0001 Wallpapers
0002 ==========
0003 
0004 Overview
0005 --------
0006 "Wallpapers" are components that paint the background for Containments that
0007 do not provide their own background rendering.
0008 
0009 Timeline
0010 --------
0011 Introduced in: libplasma 2.1 (KDE 4.2.0)
0012 
0013 Component Type
0014 --------------
0015 Wallpapers are plugins of ServiceType Plasma/Wallpaper.
0016 
0017 Component Description
0018 ---------------------
0019 Wallpaper plugins are registered using .desktop files. These files should be
0020 named using the following naming scheme:
0021 
0022     plasma-wallpaper-<pluginname>.desktop
0023 
0024 If a wallpaper plugin provides more than on mode (e.g. Single Image, Wallpaper)
0025 it should include a Actions= entry in the .desktop file, listing the possible
0026 actions. An actions group should be included to provide for translatable names.
0027 
0028 Example:
0029 
0030 > Actions=SingleImage,Slideshow
0031 >
0032 > [Desktop Action SingleImage]
0033 > Name=Image
0034 > Icon=image-jpg
0035 
0036 All other entries should follow the standard .desktop specification,
0037 supplemented by the standard KPluginInfo keys.
0038 
0039 If a wallpaper plugin should be constrained to a specific set of FormFactors,
0040 include a list of those FormFactors using the X-Plasma-FormFactors key.
0041 
0042 Defined categories for wallpapers include:
0043  * Single Image
0044  * Slideshow
0045  * Animated
0046  * OpenGL
0047  * Interactive
0048 
0049 Component API
0050 -------------
0051 Subclasses: QObject
0052 
0053 *** Key Properties ***
0054 
0055 boundingRect: the geometry to paint the wallpaper into
0056 formFactors: the Plasma::FormFactors this wallpaper supports (e.g. Planar)
0057 
0058 *** Key Methods ***
0059 
0060 The update(QRectF) signal must be emitted whenever the wallpaper needs a repaint.
0061 This might happen in response to the wallpaper changing (such as in a slidshow)
0062 or due to an animation update. Keeping the exposed area to a minimum is important.
0063 
0064 Painting is done in the paint(QPainter *painter, const QRectF &exposed area)
0065 method, and will be called when a paint operation should be done, either due to
0066 an external event or in response to an update request from the wallpaper.
0067 
0068 A configuration UI can optionally be provided by overloading the configuration
0069 method.
0070 
0071 Containment Interface
0072 ---------------------
0073 The Containment class supports loading and using a wallpaper plugin.
0074 Subclasses need do nothing to get this support, and can opt out of
0075 wallpaper support by calling setDrawWallpaper(false).
0076 
0077 When a wallpaper plugin is used, Wallpaper::paint is called from
0078 Applet::paint.
0079 
0080 The Wallpaper plugin to use is set using the setWallpaper(const QString &pluginName)
0081 method.
0082 
0083 User Configuration
0084 ------------------
0085 It is up to the host application to provide a configuration interface, such
0086 as a dialog, to the user to embed the wallpaper config in.
0087 
0088 *** Plasma Desktop Implementation ***
0089 
0090 A setting dialog is provided by the View (DesktopView, PanelView, etc).
0091 
0092 This dialog allows selecting both the Containment type for
0093 the current Activity associated with the view as well as selecting the
0094 Wallpaper plugin for the Containment.
0095 
0096 Future Work
0097 -----------
0098 * Wallpapers should be ScriptEngine-able
0099 * Ability to define which wallpapers a Containment is compatible with?