1
/********************************************************************
2
KWin - the KDE window manager
3
This file is part of the KDE project.
5
Copyright (C) 2010 Martin Gräßlin <kde@martin-graesslin.com>
7
This program is free software; you can redistribute it and/or modify
8
it under the terms of the GNU General Public License as published by
9
the Free Software Foundation; either version 2 of the License, or
10
(at your option) any later version.
12
This program is distributed in the hope that it will be useful,
13
but WITHOUT ANY WARRANTY; without even the implied warranty of
14
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
GNU General Public License for more details.
17
You should have received a copy of the GNU General Public License
18
along with this program. If not, see <http://www.gnu.org/licenses/>.
19
*********************************************************************/
21
#ifndef KWIN_STARTUPFEEDBACK_H
22
#define KWIN_STARTUPFEEDBACK_H
24
#include <kwineffects.h>
25
#include <KDE/KStartupInfo>
27
class KSelectionOwner;
32
class StartupFeedbackEffect
37
StartupFeedbackEffect();
38
virtual ~StartupFeedbackEffect();
40
virtual void reconfigure(ReconfigureFlags flags);
41
virtual void prePaintScreen(ScreenPrePaintData& data, int time);
42
virtual void paintScreen(int mask, QRegion region, ScreenPaintData& data);
43
virtual void postPaintScreen();
45
static bool supported();
48
void gotNewStartup(const KStartupInfoId& id, const KStartupInfoData& data);
49
void gotRemoveStartup(const KStartupInfoId& id, const KStartupInfoData& data);
50
void gotStartupChange(const KStartupInfoId& id, const KStartupInfoData& data);
51
void slotMouseChanged(const QPoint& pos, const QPoint& oldpos, Qt::MouseButtons buttons, Qt::MouseButtons oldbuttons, Qt::KeyboardModifiers modifiers, Qt::KeyboardModifiers oldmodifiers);
60
void start(const QString& icon);
62
QImage scalePixmap(const QPixmap& pm, const QSize& size) const;
63
void prepareTextures(const QPixmap& pix);
64
QRect feedbackRect() const;
66
KStartupInfo* m_startupInfo;
67
KSelectionOwner* m_selection;
68
KStartupInfoId m_currentStartup;
69
QMap< KStartupInfoId, QString > m_startups; // QString == pixmap
73
GLTexture* m_bouncingTextures[5];
74
GLTexture* m_texture; // for passive and blinking
76
QRect m_currentGeometry;
77
GLShader *m_blinkingShader;