1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
#ifndef ANIMATION_WINDOW_H
#define ANIMATION_WINDOW_H
#include "animation.h"
class AnimWindow :
public PluginClassHandler<AnimWindow, CompWindow, ANIMATION_ABI>
{
friend class PrivateAnimScreen;
friend class PrivateAnimWindow;
friend class AnimScreen;
friend class Animation;
public:
AnimWindow (CompWindow *);
~AnimWindow ();
BoxPtr BB ();
CompRegion &stepRegion ();
void resetStepRegionWithBB ();
void expandBBWithWindow ();
void expandBBWithScreen ();
void expandBBWithBox (Box &source);
void expandBBWithPoint (float fx, float fy);
void expandBBWithPoint2DTransform (GLVector &coords,
GLMatrix &transformMat);
bool expandBBWithPoints3DTransform (CompOutput &output,
GLMatrix &transform,
const float *points,
GridAnim::GridModel::GridObject *objects,
unsigned int nPoints);
inline bool savedRectsValid () { return mSavedRectsValid; }
inline CompRect & saveWinRect () { return mSavedWinRect; }
inline CompRect & savedInRect () { return mSavedInRect; }
inline CompRect & savedOutRect () { return mSavedOutRect; }
inline CompWindowExtents & savedOutExtents () { return mSavedOutExtents; }
Animation *curAnimation ();
void createFocusAnimation (AnimEffect effect, int duration = 0);
void postAnimationCleanUp ();
// TODO: Group persistent data for a plugin and allow a plugin to only
// delete its own data.
void deletePersistentData (const char *name);
/// A "string -> persistent data" map for animations that require such data,
/// like some focus animations.
PersistentDataMap persistentData;
CompWindow *mWindow; ///< Window being animated. // TODO move to private:
private:
PrivateAnimWindow *priv;
bool mSavedRectsValid;
CompRect mSavedWinRect; ///< Saved window contents geometry
CompRect mSavedInRect; ///< Saved window input geometry
CompRect mSavedOutRect; ///< Saved window output geometry
CompWindowExtents mSavedOutExtents; ///< Saved window output extents
CompOption::Value &pluginOptVal (ExtensionPluginInfo *pluginInfo,
unsigned int optionId,
Animation *anim);
};
#endif
|