Warning, /plasma/latte-dock/declarativeimports/components/IndicatorItem.qml is written in an unsupported language. File is not indexed.

0001 /*
0002     SPDX-FileCopyrightText: 2019 Michail Vourlakos <mvourlakos@gmail.com>
0003     SPDX-License-Identifier: GPL-2.0-or-later
0004 */
0005 
0006 import QtQuick 2.7
0007 
0008 Item {
0009     readonly property Item level: parent && parent.hasOwnProperty("level") ? parent.level : null
0010     readonly property Item indicator: {
0011         if (!level) {
0012             return null;
0013         }
0014 
0015         if (level.hasOwnProperty("bridge")) {
0016             return level.bridge;
0017         } else if (level.hasOwnProperty("indicator")) {
0018             return level.indicator.publicApi;
0019         }
0020 
0021         return null;
0022     }
0023 
0024     //! indicator is using main colors from icon e.g. unity style
0025     property bool needsIconColors: false
0026     //! indicator is using the mouse events coordinates e.g. for animations
0027     property bool needsMouseEventCoordinates: false
0028     //! indicator provides also foreground layer that should be drawn on top of the Items icons
0029     property bool providesFrontLayer: false
0030     //! indicator provides its own hovering animations. Latte should not provide
0031     //! any hovering animation in that case
0032     property bool providesHoveredAnimation: false
0033     //! indicator provides its own clicked animations. Latte should not provide
0034     //! any clicked animation in that case
0035     property bool providesClickedAnimation: false
0036     //! indicator provides its own inattention animation. Latte should not provide
0037     //! any inattention animation in that case.
0038     //! [since v0.10.4]
0039     property bool providesInAttentionAnimation: false
0040     //! indicator provides its own window added in group animation. Latte should not provide
0041     //! any window added in group animation in that case.
0042     //! [since v0.10.4]
0043     property bool providesGroupedWindowAddedAnimation: false
0044     //! indicator provides its own window removed from group animation. Latte should not provide
0045     //! any window removed from group animation in that case.
0046     //! [since v0.10.4]
0047     property bool providesGroupedWindowRemovedAnimation: false
0048     //! indicator provides its own task launcher triggered animation. Latte should not provide
0049     //! any task launcher triggered animation in that case.
0050     //! [since v0.10.4]
0051     property bool providesTaskLauncherAnimation: false
0052 
0053     //! this indicator will draw its own indicators for applets
0054     //! [since v0.10.0]
0055     property bool enabledForApplets: true
0056 
0057     //! this indicator visuals go out of the regular mask thickness and this variable sets
0058     //! the pixels needed outside of the mask thickness e.g. a glow
0059     property int extraMaskThickness: 0
0060 
0061     //! this indicator specifies a minimum thickness padding in order to be drawn correctly.
0062     //! Values below the specified value are ignored. This value is a percentage,
0063     //! e.g 0.06 -> 6%
0064     property real minThicknessPadding: 0
0065     //! this indicator specifies a minimum length padding in order to be drawn correctly.
0066     //! Values below the specified value are ignored. This value is a percentage,
0067     //! e.g 0.06 -> 6%
0068     property real minLengthPadding: 0
0069 
0070     //! this indicator specifies a different padding value for applets. This value is a percentage,
0071     //! -1, means disabled and the regular length padding is used
0072     //!  0.06 -> 6%
0073     //! [since v0.9.2]
0074     property real appletLengthPadding: -1
0075 
0076     //! this indicator specifies how much is going to be the items regular length padding
0077     //! as long as other more specialized paddings such as appletLengthPadding are not
0078     //! applied. This value is a percentage,
0079     //! e.g 0.06 -> 6%
0080     //! [since v0.10.0]
0081     property real lengthPadding: 0.08
0082 
0083     //! this indicator specifies how far would like to be from panel background edge
0084     //! it is totally panel background roundness related. By altering that value, indicators
0085     //! can get inside panel background big roundnesses. This value is a percentage,
0086     //! e.g 0.06 -> 6%
0087     //! [since v0.10.3]
0088     property real backgroundCornerMargin: 1.00
0089 
0090     //! svg image paths either from plasma theme or local files relevant to indicator "ui" directory
0091     //! in order to reduce resources usage
0092     property var svgImagePaths: []
0093 
0094     //! LEVEL.Requested API reference
0095 
0096     //! indicator requests different icon X offset from icon center
0097     //! [since v0.9.2]
0098     //property int level.requested.iconOffsetX: 0
0099 
0100     //! indicator requests different icon Y offset from icon center
0101     //! [since v0.9.2]
0102     //property int level.requested.iconOffsetY: 0
0103 
0104     //! indicator requests different icon tranform origin
0105     //! [since v0.10.4]
0106     //property int level.requested.iconTransformOrigin: Item.Center
0107 
0108     //! indicator requests different icon opacity
0109     //! [since v0.10.4]
0110     //property real level.requested.iconOpacity: 1.0
0111 
0112     //! indicator requests different icon rotation
0113     //! [since v0.10.4]
0114     //property real level.requested.iconRotation: 0
0115 
0116     //! indicator requests different icon scale
0117     //! [since v0.10.4]
0118     //property real level.requested.iconScale: 1.0
0119 
0120     //! indicator is playing a task launcher animation. It is used in combination with
0121     //! providesTaskLauncherAnimation
0122     //! [since v0.10.4]
0123     //property bool level.requested.isTaskLauncherAnimationRunning: false
0124 
0125     onLevelChanged: {
0126         if (level) {
0127             //! initialization on startup, this way when changing from indicator that changes them
0128             //! at an indicator that is not using them at all, their values are restored
0129             level.requested.iconOffsetX = 0;
0130             level.requested.iconOffsetY = 0;
0131             level.requested.iconTransformOrigin = Item.Center;
0132             level.requested.iconOpacity = 1.0;
0133             level.requested.iconRotation = 0;
0134             level.requested.iconScale = 1.0;
0135             level.requested.isTaskLauncherAnimationRunning = false;
0136         }
0137     }
0138 }