themed colors

svn path=/trunk/KDE/kdebase/runtime/; revision=1170430
This commit is contained in:
Aaron J. Seigo 2010-08-31 20:47:05 +00:00
parent 3a6168ca60
commit c9b045fa86
2 changed files with 32 additions and 0 deletions

View File

@ -29,6 +29,7 @@
#include <Plasma/Applet>
#include <Plasma/PopupApplet>
#include <Plasma/DataEngine>
#include <Plasma/Theme>
#include "simplejavascriptapplet.h"
@ -60,6 +61,7 @@ class AppletInterface : public QObject
Q_ENUMS(QtMouseButton)
Q_ENUMS(AnimationDirection)
Q_ENUMS(IntervalAlignment)
Q_ENUMS(ThemeColors)
Q_PROPERTY(AspectRatioMode aspectRatioMode READ aspectRatioMode WRITE setAspectRatioMode)
Q_PROPERTY(FormFactor formFactor READ formFactor)
Q_PROPERTY(Location location READ location)
@ -172,6 +174,16 @@ enum BackgroundHints {
DefaultBackground = Plasma::Applet::DefaultBackground
};
enum ThemeColors {
TextColor = Plasma::Theme::TextColor,
HighlightColor = Plasma::Theme::HighlightColor,
BackgroundColor = Plasma::Theme::BackgroundColor,
ButtonTextColor = Plasma::Theme::ButtonTextColor,
ButtonBackgroundColor = Plasma::Theme::ButtonBackgroundColor,
LinkColor = Plasma::Theme::LinkColor,
VisitedLinkColor = Plasma::Theme::VisitedLinkColor
};
enum QtAlignment {
QtAlignLeft = 0x0001,
QtAlignRight = 0x0002,

View File

@ -20,6 +20,9 @@
#include <QtScript/QScriptEngine>
#include <QtScript/QScriptContext>
#include <QtGui/QColor>
#include <Plasma/Theme>
#include "backportglobal.h"
Q_DECLARE_METATYPE(QColor*)
@ -106,6 +109,22 @@ static QScriptValue valid(QScriptContext *ctx, QScriptEngine *eng)
return QScriptValue(eng, self->isValid());
}
static QScriptValue setThemeColor(QScriptContext *ctx, QScriptEngine *)
{
DECLARE_SELF(QColor, themeColor);
if (ctx->argumentCount() > 0) {
const qint32 arg = ctx->argument(0).toInt32();
if (arg >= 0 && arg <= Plasma::Theme::VisitedLinkColor) {
kDebug() << "setting to: " << static_cast<Plasma::Theme::ColorRole>(arg);
kDebug() << "color is: " << Plasma::Theme::defaultTheme()->color(static_cast<Plasma::Theme::ColorRole>(arg));
self->setRgba(Plasma::Theme::defaultTheme()->color(static_cast<Plasma::Theme::ColorRole>(arg)).rgba());
}
}
return ctx->thisObject();//.property("themeColor");
}
QScriptValue constructColorClass(QScriptEngine *eng)
{
QScriptValue proto = qScriptValueFromValue(eng, QColor());
@ -116,6 +135,7 @@ QScriptValue constructColorClass(QScriptEngine *eng)
proto.setProperty("blue", eng->newFunction(blue), getter | setter);
proto.setProperty("alpha", eng->newFunction(alpha), getter | setter);
proto.setProperty("valid", eng->newFunction(valid), getter);
ADD_METHOD(proto, setThemeColor);
eng->setDefaultPrototype(qMetaTypeId<QColor>(), proto);
eng->setDefaultPrototype(qMetaTypeId<QColor*>(), proto);