49cce8dede
This build option is added to make it easier to build just KWin without kde-workspace. This is a common requirement by developers wanting to contribute to KWin and only want to build KWin but use everything else from their normal distribution. Building KWin standalone is very often difficult due to Oxygen. If the library has changed it is not possible to build just KWin without also building the workspace libs and if you do so you run into ABI problems when trying to start KWin - either the decoration or the style is crashing due to not matching libraries. To circumvent this common issue for new developers this build option is introduced to just exclude the Oxygen window decoration and defaulting to Plastik. Of course by default this option is turned ON, so that the Oxygen decoration gets build. By default there is no change at all. REVIEW: 106303
71 lines
1.8 KiB
C++
71 lines
1.8 KiB
C++
/********************************************************************
|
|
KWin - the KDE window manager
|
|
This file is part of the KDE project.
|
|
|
|
Copyright (C) 1999, 2000 Daniel M. Duley <mosfet@kde.org>
|
|
Copyright (C) 2003 Lubos Lunak <l.lunak@kde.org>
|
|
|
|
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/>.
|
|
*********************************************************************/
|
|
|
|
#include "plugins.h"
|
|
#include "config-kwin.h"
|
|
|
|
#include <kglobal.h>
|
|
#include <klocale.h>
|
|
#include <stdlib.h>
|
|
#include <QPixmap>
|
|
|
|
namespace KWin
|
|
{
|
|
|
|
PluginMgr::PluginMgr()
|
|
: KDecorationPlugins(KGlobal::config())
|
|
, m_noDecoration(false)
|
|
{
|
|
defaultPlugin = (QPixmap::defaultDepth() > 8) ?
|
|
"kwin3_oxygen" : "kwin3_plastik";
|
|
#ifndef KWIN_BUILD_OXYGEN
|
|
defaultPlugin = "kwin3_plastik";
|
|
#endif
|
|
#ifdef KWIN_BUILD_DECORATIONS
|
|
loadPlugin(""); // load the plugin specified in cfg file
|
|
#else
|
|
setNoDecoration(true);
|
|
#endif
|
|
}
|
|
|
|
void PluginMgr::error(const QString &error_msg)
|
|
{
|
|
qWarning("%s", QString(i18n("KWin: ") + error_msg).toLocal8Bit().data());
|
|
|
|
setNoDecoration(true);
|
|
}
|
|
|
|
bool PluginMgr::provides(Requirement)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
void PluginMgr::setNoDecoration(bool noDecoration)
|
|
{
|
|
m_noDecoration = noDecoration;
|
|
}
|
|
|
|
bool PluginMgr::hasNoDecoration() const
|
|
{
|
|
return m_noDecoration;
|
|
}
|
|
|
|
} // namespace
|