plasma-framework/private/effectwatcher.cpp

96 lines
2.7 KiB
C++

/*
* Copyright 2011 Marco Martin <mart@kde.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Library General Public License as
* published by the Free Software Foundation; either version 2, 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 Library General Public
* License along with this program; if not, write to the
* Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
#include "effectwatcher_p.h"
#include <kapplication.h>
#include <kdebug.h>
#include <config.h>
#if 0 // Port to Qt5 native filters
#include <X11/Xlib.h>
#include <QX11Info>
#endif
namespace Plasma
{
EffectWatcher::EffectWatcher(QString property, QWidget *parent)
: QWidget(parent),
m_property(property)
{
m_effectActive = isEffectActive();
#pragma message("Port to Qt5 native filter")
#if 0
kapp->installX11EventFilter( this );
Display *dpy = QX11Info::display();
Window root = DefaultRootWindow(dpy);
XWindowAttributes attrs;
//Don't reset eventual other masks already there
XGetWindowAttributes(dpy, root, &attrs);
attrs.your_event_mask |= PropertyChangeMask;
XSelectInput(dpy, root, attrs.your_event_mask);
#endif
}
#pragma message("Port to Qt5 native filter")
#if 0
bool EffectWatcher::x11Event(XEvent *event)
{
if (event->type == PropertyNotify) {
Display *dpy = QX11Info::display();
Atom testAtom = XInternAtom(dpy, m_property.toLatin1(), False);
if (event->xproperty.atom == testAtom) {
bool nowEffectActive = isEffectActive();
if (m_effectActive != nowEffectActive) {
m_effectActive = nowEffectActive;
emit effectChanged(m_effectActive);
}
}
}
return QWidget::x11Event(event);
}
#endif
bool EffectWatcher::isEffectActive() const
{
#pragma message("Port to Qt5 native filter")
#if 0
Display *dpy = QX11Info::display();
Atom testAtom = XInternAtom(dpy, m_property.toLatin1(), False);
bool nowEffectActive = false;
int cnt;
Atom *list = XListProperties(dpy, DefaultRootWindow(dpy), &cnt);
if (list != NULL) {
nowEffectActive = (qFind(list, list + cnt, testAtom) != list + cnt);
XFree(list);
}
return nowEffectActive;
#else
return false;
#endif
}
}
#include "moc_effectwatcher_p.cpp"