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?