plasma-framework/declarativeimports/core/theme.cpp
2011-10-13 15:19:37 +02:00

245 lines
7.1 KiB
C++

/***************************************************************************
* Copyright 2010 Marco Martin <mart@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, write to the *
* Free Software Foundation, Inc., *
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA . *
***************************************************************************/
#include "theme_p.h"
#include <plasma/theme.h>
class FontProxySingleton
{
public:
FontProxy self;
};
K_GLOBAL_STATIC(FontProxySingleton, privateFontProxySingleton)
FontProxy::FontProxy(QObject *parent)
: QObject(parent)
{
connect(Plasma::Theme::defaultTheme(), SIGNAL(themeChanged()),
this, SLOT(boldChanged()));
connect(Plasma::Theme::defaultTheme(), SIGNAL(themeChanged()),
this, SLOT(capitalizationChanged()));
connect(Plasma::Theme::defaultTheme(), SIGNAL(themeChanged()),
this, SLOT(familyChanged()));
connect(Plasma::Theme::defaultTheme(), SIGNAL(themeChanged()),
this, SLOT(italicChanged()));
connect(Plasma::Theme::defaultTheme(), SIGNAL(themeChanged()),
this, SLOT(letterSpacingChanged()));
connect(Plasma::Theme::defaultTheme(), SIGNAL(themeChanged()),
this, SLOT(pixelSizeChanged()));
connect(Plasma::Theme::defaultTheme(), SIGNAL(themeChanged()),
this, SLOT(pointSizeChanged()));
connect(Plasma::Theme::defaultTheme(), SIGNAL(themeChanged()),
this, SLOT(strikeOutChanged()));
connect(Plasma::Theme::defaultTheme(), SIGNAL(themeChanged()),
this, SLOT(underlineChanged()));
connect(Plasma::Theme::defaultTheme(), SIGNAL(themeChanged()),
this, SLOT(weightChanged()));
connect(Plasma::Theme::defaultTheme(), SIGNAL(themeChanged()),
this, SLOT(wordSpacingChanged()));
}
FontProxy::~FontProxy()
{
}
FontProxy *FontProxy::self()
{
return &privateFontProxySingleton->self;
}
bool FontProxy::bold() const
{
return Plasma::Theme::defaultTheme()->font(Plasma::Theme::DefaultFont).bold();
}
FontProxy::Capitalization FontProxy::capitalization() const
{
return (FontProxy::Capitalization)Plasma::Theme::defaultTheme()->font(Plasma::Theme::DefaultFont).capitalization();
}
QString FontProxy::family() const
{
return Plasma::Theme::defaultTheme()->font(Plasma::Theme::DefaultFont).family();
}
bool FontProxy::italic() const
{
return Plasma::Theme::defaultTheme()->font(Plasma::Theme::DefaultFont).italic();
}
qreal FontProxy::letterSpacing() const
{
return Plasma::Theme::defaultTheme()->font(Plasma::Theme::DefaultFont).letterSpacing();
}
int FontProxy::pixelSize() const
{
return Plasma::Theme::defaultTheme()->font(Plasma::Theme::DefaultFont).pixelSize();
}
qreal FontProxy::pointSize() const
{
return Plasma::Theme::defaultTheme()->font(Plasma::Theme::DefaultFont).pointSize();
}
bool FontProxy::strikeOut() const
{
return Plasma::Theme::defaultTheme()->font(Plasma::Theme::DefaultFont).strikeOut();
}
bool FontProxy::underline() const
{
return Plasma::Theme::defaultTheme()->font(Plasma::Theme::DefaultFont).underline();
}
FontProxy::Weight FontProxy::weight() const
{
return (FontProxy::Weight)Plasma::Theme::defaultTheme()->font(Plasma::Theme::DefaultFont).weight();
}
qreal FontProxy::wordSpacing() const
{
return Plasma::Theme::defaultTheme()->font(Plasma::Theme::DefaultFont).wordSpacing();
}
//********** Theme *************
ThemeProxy::ThemeProxy(QObject *parent)
: QObject(parent)
{
connect(Plasma::Theme::defaultTheme(), SIGNAL(themeChanged()), this, SIGNAL(themeChanged()));
}
ThemeProxy::~ThemeProxy()
{
}
QString ThemeProxy::themeName() const
{
return Plasma::Theme::defaultTheme()->themeName();
}
QObject *ThemeProxy::font() const
{
return FontProxy::self();
}
bool ThemeProxy::windowTranslucencyEnabled() const
{
return Plasma::Theme::defaultTheme()->windowTranslucencyEnabled();
}
KUrl ThemeProxy::homepage() const
{
return Plasma::Theme::defaultTheme()->homepage();
}
bool ThemeProxy::useGlobalSettings() const
{
return Plasma::Theme::defaultTheme()->useGlobalSettings();
}
QString ThemeProxy::wallpaperPath() const
{
return Plasma::Theme::defaultTheme()->wallpaperPath();
}
QString ThemeProxy::wallpaperPathForSize(int width, int height) const
{
return Plasma::Theme::defaultTheme()->wallpaperPath(QSize(width, height));
}
QColor ThemeProxy::textColor() const
{
return Plasma::Theme::defaultTheme()->color(Plasma::Theme::TextColor);
}
QColor ThemeProxy::highlightColor() const
{
return Plasma::Theme::defaultTheme()->color(Plasma::Theme::HighlightColor);
}
QColor ThemeProxy::backgroundColor() const
{
return Plasma::Theme::defaultTheme()->color(Plasma::Theme::BackgroundColor);
}
QColor ThemeProxy::buttonTextColor() const
{
return Plasma::Theme::defaultTheme()->color(Plasma::Theme::ButtonTextColor);
}
QColor ThemeProxy::buttonBackgroundColor() const
{
return Plasma::Theme::defaultTheme()->color(Plasma::Theme::ButtonBackgroundColor);
}
QColor ThemeProxy::linkColor() const
{
return Plasma::Theme::defaultTheme()->color(Plasma::Theme::LinkColor);
}
QColor ThemeProxy::visitedLinkColor() const
{
return Plasma::Theme::defaultTheme()->color(Plasma::Theme::VisitedLinkColor);
}
QColor ThemeProxy::buttonHoverColor() const
{
return Plasma::Theme::defaultTheme()->color(Plasma::Theme::ButtonHoverColor);
}
QColor ThemeProxy::buttonFocusColor() const
{
return Plasma::Theme::defaultTheme()->color(Plasma::Theme::ButtonFocusColor);
}
QColor ThemeProxy::viewTextColor() const
{
return Plasma::Theme::defaultTheme()->color(Plasma::Theme::ViewTextColor);
}
QColor ThemeProxy::viewBackgroundColor() const
{
return Plasma::Theme::defaultTheme()->color(Plasma::Theme::ViewBackgroundColor);
}
QColor ThemeProxy::viewHoverColor() const
{
return Plasma::Theme::defaultTheme()->color(Plasma::Theme::ViewHoverColor);
}
QColor ThemeProxy::viewFocusColor() const
{
return Plasma::Theme::defaultTheme()->color(Plasma::Theme::ViewFocusColor);
}
QString ThemeProxy::styleSheet() const
{
return Plasma::Theme::defaultTheme()->styleSheet(QString());
}
#include "theme_p.moc"