kwin/effects.h
Luboš Luňák 391bb6b28d Support for effects that affect opacity.
svn path=/branches/work/kwin_composite/; revision=558921
2006-07-06 09:55:10 +00:00

60 lines
1.3 KiB
C++

/*****************************************************************
KWin - the KDE window manager
This file is part of the KDE project.
Copyright (C) 2006 Lubos Lunak <l.lunak@kde.org>
You can Freely distribute this program under the GNU General Public
License. See the file "COPYING" for the exact licensing terms.
******************************************************************/
// TODO MIT or some other licence, perhaps move to some lib
#ifndef KWIN_EFFECTS_H
#define KWIN_EFFECTS_H
namespace KWinInternal
{
class Toplevel;
class Workspace;
class Matrix
{
public:
Matrix();
double m[ 4 ][ 4 ];
};
class EffectData
{
public:
Matrix matrix;
double opacity;
};
class Effect
{
public:
virtual ~Effect();
virtual void windowUserMoved( Toplevel* c );
virtual void windowUserResized( Toplevel* c );
virtual void paintWindow( Toplevel* c, EffectData& data );
virtual void paintWorkspace( Workspace*, EffectData& data );
};
class EffectsHandler
{
public:
EffectsHandler();
void windowUserMoved( Toplevel* c );
void windowUserResized( Toplevel* c );
void paintWindow( Toplevel* c, EffectData& data );
void paintWorkspace( Workspace*, EffectData& data );
};
extern EffectsHandler* effects;
} // namespace
#endif