2010-09-21 14:31:40 +00:00
|
|
|
/********************************************************************
|
|
|
|
KWin - the KDE window manager
|
|
|
|
This file is part of the KDE project.
|
|
|
|
|
|
|
|
Copyright (C) 2010 Rohan Prabhu <rohan@rohanprabhu.com>
|
2012-01-21 16:48:07 +00:00
|
|
|
Copyright (C) 2011, 2012 Martin Gräßlin <mgraesslin@kde.org>
|
2010-09-21 14:31:40 +00:00
|
|
|
|
|
|
|
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 <http://www.gnu.org/licenses/>.
|
|
|
|
*********************************************************************/
|
|
|
|
|
2012-01-22 11:38:03 +00:00
|
|
|
#include "workspace_wrapper.h"
|
2012-01-21 09:04:47 +00:00
|
|
|
#include "../client.h"
|
2010-09-21 14:31:40 +00:00
|
|
|
|
2012-01-22 11:38:03 +00:00
|
|
|
namespace KWin {
|
|
|
|
|
|
|
|
WorkspaceWrapper::WorkspaceWrapper(QObject* parent) : QObject(parent)
|
2011-01-30 14:34:42 +00:00
|
|
|
{
|
2012-01-21 16:48:07 +00:00
|
|
|
KWin::Workspace *ws = KWin::Workspace::self();
|
|
|
|
connect(ws, SIGNAL(desktopPresenceChanged(KWin::Client*,int)), SIGNAL(desktopPresenceChanged(KWin::Client*,int)));
|
|
|
|
connect(ws, SIGNAL(currentDesktopChanged(int)), SIGNAL(currentDesktopChanged(int)));
|
|
|
|
connect(ws, SIGNAL(clientAdded(KWin::Client*)), SIGNAL(clientAdded(KWin::Client*)));
|
|
|
|
connect(ws, SIGNAL(clientAdded(KWin::Client*)), SLOT(setupClientConnections(KWin::Client*)));
|
|
|
|
connect(ws, SIGNAL(clientRemoved(KWin::Client*)), SIGNAL(clientRemoved(KWin::Client*)));
|
|
|
|
connect(ws, SIGNAL(clientActivated(KWin::Client*)), SIGNAL(clientActivated(KWin::Client*)));
|
2012-01-26 07:22:54 +00:00
|
|
|
connect(ws, SIGNAL(numberDesktopsChanged(int)), SIGNAL(numberDesktopsChanged(int)));
|
2012-01-21 16:48:07 +00:00
|
|
|
foreach (KWin::Client *client, ws->clientList()) {
|
2012-01-21 09:51:22 +00:00
|
|
|
setupClientConnections(client);
|
2010-09-21 14:31:40 +00:00
|
|
|
}
|
2011-01-30 14:34:42 +00:00
|
|
|
}
|
2010-09-21 14:31:40 +00:00
|
|
|
|
2012-01-26 07:22:54 +00:00
|
|
|
#define GETTERSETTER( rettype, getterName, setterName ) \
|
|
|
|
rettype WorkspaceWrapper::getterName( ) const { \
|
|
|
|
return Workspace::self()->getterName(); \
|
|
|
|
} \
|
|
|
|
void WorkspaceWrapper::setterName( rettype val ) { \
|
|
|
|
Workspace::self()->setterName( val ); \
|
|
|
|
}
|
|
|
|
|
|
|
|
GETTERSETTER(int, numberOfDesktops, setNumberOfDesktops)
|
|
|
|
|
|
|
|
#undef GETTERSETTER
|
|
|
|
|
2012-01-22 11:38:03 +00:00
|
|
|
QList< KWin::Client* > WorkspaceWrapper::clientList() const
|
2011-01-30 14:34:42 +00:00
|
|
|
{
|
2012-01-21 16:48:07 +00:00
|
|
|
return KWin::Workspace::self()->clientList();
|
2011-01-30 14:34:42 +00:00
|
|
|
}
|
2010-09-21 14:31:40 +00:00
|
|
|
|
2012-01-22 11:38:03 +00:00
|
|
|
KWin::Client* WorkspaceWrapper::activeClient()
|
2011-01-30 14:34:42 +00:00
|
|
|
{
|
2012-01-21 16:48:07 +00:00
|
|
|
return KWin::Workspace::self()->activeClient();
|
2011-01-30 14:34:42 +00:00
|
|
|
}
|
2010-09-21 14:31:40 +00:00
|
|
|
|
2012-01-22 11:38:03 +00:00
|
|
|
void WorkspaceWrapper::setActiveClient(KWin::Client* client)
|
2011-01-30 14:34:42 +00:00
|
|
|
{
|
2012-01-21 16:48:07 +00:00
|
|
|
KWin::Workspace::self()->activateClient(client);
|
2011-01-30 14:34:42 +00:00
|
|
|
}
|
2010-09-21 14:31:40 +00:00
|
|
|
|
2012-01-22 11:38:03 +00:00
|
|
|
void WorkspaceWrapper::setCurrentDesktop(int desktop)
|
2011-01-30 14:34:42 +00:00
|
|
|
{
|
2012-01-21 16:48:07 +00:00
|
|
|
KWin::Workspace::self()->setCurrentDesktop(desktop);
|
2011-01-30 14:34:42 +00:00
|
|
|
}
|
2010-09-21 14:31:40 +00:00
|
|
|
|
2012-01-22 11:38:03 +00:00
|
|
|
int WorkspaceWrapper::workspaceWidth() const
|
2011-01-30 14:34:42 +00:00
|
|
|
{
|
2012-01-21 16:48:07 +00:00
|
|
|
return KWin::Workspace::self()->workspaceWidth();
|
2011-01-30 14:34:42 +00:00
|
|
|
}
|
2010-09-21 14:31:40 +00:00
|
|
|
|
2012-01-22 11:38:03 +00:00
|
|
|
int WorkspaceWrapper::workspaceHeight() const
|
2011-01-30 14:34:42 +00:00
|
|
|
{
|
2012-01-21 16:48:07 +00:00
|
|
|
return KWin::Workspace::self()->workspaceHeight();
|
2011-01-30 14:34:42 +00:00
|
|
|
}
|
2010-09-21 14:31:40 +00:00
|
|
|
|
2012-01-22 11:38:03 +00:00
|
|
|
QSize WorkspaceWrapper::workspaceSize() const
|
2011-01-30 14:34:42 +00:00
|
|
|
{
|
2012-01-21 16:48:07 +00:00
|
|
|
return QSize(workspaceWidth(), workspaceHeight());
|
2011-01-30 14:34:42 +00:00
|
|
|
}
|
2010-09-21 14:31:40 +00:00
|
|
|
|
2012-01-22 11:38:03 +00:00
|
|
|
QSize WorkspaceWrapper::desktopGridSize() const
|
2011-01-30 14:34:42 +00:00
|
|
|
{
|
2012-01-21 16:48:07 +00:00
|
|
|
return KWin::Workspace::self()->desktopGridSize();
|
2011-01-30 14:34:42 +00:00
|
|
|
}
|
2010-09-21 14:31:40 +00:00
|
|
|
|
2012-01-22 11:38:03 +00:00
|
|
|
int WorkspaceWrapper::desktopGridWidth() const
|
2011-01-30 14:34:42 +00:00
|
|
|
{
|
2012-01-21 16:48:07 +00:00
|
|
|
return KWin::Workspace::self()->desktopGridWidth();
|
|
|
|
}
|
2010-09-21 14:31:40 +00:00
|
|
|
|
2012-01-22 11:38:03 +00:00
|
|
|
int WorkspaceWrapper::desktopGridHeight() const
|
2012-01-21 16:48:07 +00:00
|
|
|
{
|
|
|
|
return KWin::Workspace::self()->desktopGridHeight();
|
|
|
|
}
|
2010-09-21 14:31:40 +00:00
|
|
|
|
2012-01-22 11:38:03 +00:00
|
|
|
int WorkspaceWrapper::currentDesktop() const
|
2012-01-21 16:48:07 +00:00
|
|
|
{
|
|
|
|
return KWin::Workspace::self()->currentDesktop();
|
2011-01-30 14:34:42 +00:00
|
|
|
}
|
2012-01-21 09:51:22 +00:00
|
|
|
|
2012-01-22 11:38:03 +00:00
|
|
|
void WorkspaceWrapper::setupClientConnections(KWin::Client *client)
|
2012-01-21 09:51:22 +00:00
|
|
|
{
|
|
|
|
connect(client, SIGNAL(clientMinimized(KWin::Client*,bool)), SIGNAL(clientMinimized(KWin::Client*)));
|
|
|
|
connect(client, SIGNAL(clientUnminimized(KWin::Client*,bool)), SIGNAL(clientUnminimized(KWin::Client*)));
|
|
|
|
connect(client, SIGNAL(clientManaging(KWin::Client*)), SIGNAL(clientManaging(KWin::Client*)));
|
|
|
|
connect(client, SIGNAL(clientFullScreenSet(KWin::Client*,bool,bool)), SIGNAL(clientFullScreenSet(KWin::Client*,bool,bool)));
|
|
|
|
connect(client, SIGNAL(clientMaximizedStateChanged(KWin::Client*,bool,bool)), SIGNAL(clientMaximizeSet(KWin::Client*,bool,bool)));
|
|
|
|
}
|
2012-01-22 11:38:03 +00:00
|
|
|
|
|
|
|
} // KWin
|