2014-01-17 16:46:04 +04:00
|
|
|
/********************************************************************
|
|
|
|
KWin - the KDE window manager
|
|
|
|
This file is part of the KDE project.
|
|
|
|
|
|
|
|
Copyright (C) 2014 Martin Gräßlin <mgraesslin@kde.org>
|
|
|
|
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
|
|
it under the terms of the GNU General Public License as published by
|
|
|
|
the Free Software Foundation; either version 2 of the License, or
|
|
|
|
(at your option) any later version.
|
|
|
|
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
GNU General Public License for more details.
|
|
|
|
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
|
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
*********************************************************************/
|
|
|
|
#ifndef KWIN_EFFECT_BUILTINS_H
|
|
|
|
#define KWIN_EFFECT_BUILTINS_H
|
|
|
|
#include <kwineffects_export.h>
|
2014-04-03 12:43:23 +04:00
|
|
|
#include <QStringList>
|
2014-04-03 18:20:26 +04:00
|
|
|
#include <QUrl>
|
2014-04-29 09:49:54 +04:00
|
|
|
#include <functional>
|
2014-01-17 16:46:04 +04:00
|
|
|
|
|
|
|
namespace KWin
|
|
|
|
{
|
|
|
|
class Effect;
|
|
|
|
|
2014-03-21 14:40:16 +04:00
|
|
|
/**
|
|
|
|
* Defines all the built in effects.
|
|
|
|
**/
|
|
|
|
enum class BuiltInEffect
|
|
|
|
{
|
|
|
|
Invalid, ///< not a valid Effect
|
|
|
|
Blur,
|
|
|
|
Contrast,
|
|
|
|
CoverSwitch,
|
|
|
|
Cube,
|
|
|
|
CubeSlide,
|
|
|
|
DesktopGrid,
|
|
|
|
DimInactive,
|
|
|
|
DimScreen,
|
|
|
|
FallApart,
|
|
|
|
FlipSwitch,
|
|
|
|
Glide,
|
|
|
|
HighlightWindow,
|
|
|
|
Invert,
|
|
|
|
Kscreen,
|
|
|
|
Logout,
|
|
|
|
LookingGlass,
|
|
|
|
MagicLamp,
|
|
|
|
Magnifier,
|
|
|
|
MinimizeAnimation,
|
|
|
|
MouseClick,
|
|
|
|
MouseMark,
|
|
|
|
PresentWindows,
|
|
|
|
Resize,
|
|
|
|
ScreenEdge,
|
|
|
|
ScreenShot,
|
|
|
|
Sheet,
|
|
|
|
ShowFps,
|
|
|
|
ShowPaint,
|
|
|
|
Slide,
|
|
|
|
SlideBack,
|
|
|
|
SlidingPopups,
|
|
|
|
SnapHelper,
|
|
|
|
StartupFeedback,
|
|
|
|
ThumbnailAside,
|
|
|
|
TrackMouse,
|
|
|
|
WindowGeometry,
|
|
|
|
WobblyWindows,
|
|
|
|
Zoom
|
|
|
|
};
|
|
|
|
|
2014-01-17 16:46:04 +04:00
|
|
|
namespace BuiltInEffects
|
|
|
|
{
|
|
|
|
|
2014-04-03 18:20:26 +04:00
|
|
|
struct EffectData {
|
|
|
|
QString name;
|
|
|
|
QString displayName;
|
|
|
|
QString comment;
|
|
|
|
QString category;
|
|
|
|
QString exclusiveCategory;
|
|
|
|
QUrl video;
|
|
|
|
bool enabled;
|
|
|
|
bool internal;
|
|
|
|
std::function<Effect*()> createFunction;
|
|
|
|
std::function<bool()> supportedFunction;
|
|
|
|
std::function<bool()> enabledFunction;
|
|
|
|
};
|
|
|
|
|
2014-03-21 14:40:16 +04:00
|
|
|
KWINEFFECTS_EXPORT Effect *create(BuiltInEffect effect);
|
2014-04-03 12:43:23 +04:00
|
|
|
KWINEFFECTS_EXPORT bool available(const QString &name);
|
2014-03-21 14:40:16 +04:00
|
|
|
KWINEFFECTS_EXPORT bool supported(BuiltInEffect effect);
|
2014-03-21 14:47:19 +04:00
|
|
|
KWINEFFECTS_EXPORT bool checkEnabledByDefault(BuiltInEffect effect);
|
2014-03-21 15:09:13 +04:00
|
|
|
KWINEFFECTS_EXPORT bool enabledByDefault(BuiltInEffect effect);
|
2014-04-03 12:43:23 +04:00
|
|
|
KWINEFFECTS_EXPORT QString nameForEffect(BuiltInEffect effect);
|
|
|
|
KWINEFFECTS_EXPORT BuiltInEffect builtInForName(const QString &name);
|
|
|
|
KWINEFFECTS_EXPORT QStringList availableEffectNames();
|
2014-03-21 14:40:16 +04:00
|
|
|
KWINEFFECTS_EXPORT QList<BuiltInEffect> availableEffects();
|
2014-04-03 18:20:26 +04:00
|
|
|
KWINEFFECTS_EXPORT const EffectData &effectData(BuiltInEffect effect);
|
2014-01-17 16:46:04 +04:00
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|