/******************************************************************** KWin - the KDE window manager This file is part of the KDE project. Copyright (C) 2011 Martin Gräßlin 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 . *********************************************************************/ #ifndef KWIN_THUMBNAILITEM_H #define KWIN_THUMBNAILITEM_H #include #include namespace KWin { class EffectWindow; class EffectWindowImpl; class ThumbnailItem : public QDeclarativeItem { Q_OBJECT Q_PROPERTY(qulonglong wId READ wId WRITE setWId NOTIFY wIdChanged SCRIPTABLE true) Q_PROPERTY(bool clip READ isClip WRITE setClip NOTIFY clipChanged SCRIPTABLE true) Q_PROPERTY(qulonglong parentWindow READ parentWindow WRITE setParentWindow) public: ThumbnailItem(QDeclarativeItem *parent = 0); virtual ~ThumbnailItem(); qulonglong wId() const { return m_wId; } void setWId(qulonglong wId); bool isClip() const { return m_clip; } void setClip(bool clip); virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget); qulonglong parentWindow() const { return m_parentWindow; } void setParentWindow(qulonglong parentWindow); Q_SIGNALS: void wIdChanged(qulonglong wid); void clipChanged(bool clipped); private Q_SLOTS: void init(); void effectWindowAdded(); void repaint(KWin::EffectWindow* w); void compositingToggled(); private: void findParentEffectWindow(); qulonglong m_wId; bool m_clip; QWeakPointer m_parent; qulonglong m_parentWindow; }; } // KWin #endif // KWIN_THUMBNAILITEM_H