• Skip to content
  • Skip to link menu
KDE 4.1 API Reference
  • KDE API Reference
  • API Reference
  • Sitemap
  • Contact Us
 

Plasma

font.cpp

Go to the documentation of this file.
00001 /*
00002  *   Copyright 2007 Richard J. Moore <rich@kde.org>
00003  *
00004  *   This program is free software; you can redistribute it and/or modify
00005  *   it under the terms of the GNU Library General Public License version 2 as
00006  *   published by the Free Software Foundation
00007  *
00008  *   This program is distributed in the hope that it will be useful,
00009  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
00010  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00011  *   GNU General Public License for more details
00012  *
00013  *   You should have received a copy of the GNU Library General Public
00014  *   License along with this program; if not, write to the
00015  *   Free Software Foundation, Inc.,
00016  *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
00017  */
00018 
00019 #include <QtScript/QScriptValue>
00020 #include <QtScript/QScriptEngine>
00021 #include <QtScript/QScriptContext>
00022 #include <QtGui/QFont>
00023 #include "../backportglobal.h"
00024 
00025 Q_DECLARE_METATYPE(QFont*)
00026 
00027 static QScriptValue ctor(QScriptContext *ctx, QScriptEngine *eng)
00028 {
00029     if (ctx->argumentCount() == 0)
00030         return qScriptValueFromValue(eng, QFont());
00031     QString family = ctx->argument(0).toString();
00032     if (ctx->argumentCount() == 1) {
00033         QFont *other = qscriptvalue_cast<QFont*>(ctx->argument(0));
00034         if (other)
00035             return qScriptValueFromValue(eng, QFont(*other));
00036         return qScriptValueFromValue(eng, QFont(family));
00037     }
00038     int pointSize = ctx->argument(1).toInt32();
00039     if (ctx->argumentCount() == 2)
00040         return qScriptValueFromValue(eng, QFont(family, pointSize));
00041     int weight = ctx->argument(2).toInt32();
00042     if (ctx->argumentCount() == 3)
00043         return qScriptValueFromValue(eng, QFont(family, pointSize, weight));
00044     bool italic = ctx->argument(3).toBoolean();
00045     return qScriptValueFromValue(eng, QFont(family, pointSize, weight, italic));
00046 }
00047 
00048 static QScriptValue bold(QScriptContext *ctx, QScriptEngine *eng)
00049 {
00050     DECLARE_SELF(QFont, bold);
00051     return QScriptValue(eng, self->bold());
00052 }
00053 
00054 static QScriptValue defaultFamily(QScriptContext *ctx, QScriptEngine *eng)
00055 {
00056     DECLARE_SELF(QFont, defaultFamily);
00057     return QScriptValue(eng, self->defaultFamily());
00058 }
00059 
00060 static QScriptValue exactMatch(QScriptContext *ctx, QScriptEngine *eng)
00061 {
00062     DECLARE_SELF(QFont, exactMatch);
00063     return QScriptValue(eng, self->exactMatch());
00064 }
00065 
00066 static QScriptValue family(QScriptContext *ctx, QScriptEngine *eng)
00067 {
00068     DECLARE_SELF(QFont, family);
00069     return QScriptValue(eng, self->family());
00070 }
00071 
00072 static QScriptValue fixedPitch(QScriptContext *ctx, QScriptEngine *eng)
00073 {
00074     DECLARE_SELF(QFont, fixedPitch);
00075     return QScriptValue(eng, self->fixedPitch());
00076 }
00077 
00078 static QScriptValue fromString(QScriptContext *ctx, QScriptEngine *eng)
00079 {
00080     DECLARE_SELF(QFont, fromString);
00081     return QScriptValue(eng, self->fromString(ctx->argument(0).toString()));
00082 }
00083 
00084 static QScriptValue handle(QScriptContext *ctx, QScriptEngine *)
00085 {
00086     return ctx->throwError("QFont.prototype.handle is not implemented");
00087 }
00088 
00089 static QScriptValue isCopyOf(QScriptContext *ctx, QScriptEngine *eng)
00090 {
00091     DECLARE_SELF(QFont, isCopyOf);
00092     QFont *other = qscriptvalue_cast<QFont*>(ctx->argument(0));
00093     if (!other) {
00094         return ctx->throwError(QScriptContext::TypeError,
00095                                "QFont.prototype.isCopyOf: argument is not a Font");
00096     }
00097     return QScriptValue(eng, self->isCopyOf(*other));
00098 }
00099 
00100 static QScriptValue italic(QScriptContext *ctx, QScriptEngine *eng)
00101 {
00102     DECLARE_SELF(QFont, italic);
00103     return QScriptValue(eng, self->italic());
00104 }
00105 
00106 static QScriptValue kerning(QScriptContext *ctx, QScriptEngine *eng)
00107 {
00108     DECLARE_SELF(QFont, kerning);
00109     return QScriptValue(eng, self->kerning());
00110 }
00111 
00112 static QScriptValue key(QScriptContext *ctx, QScriptEngine *eng)
00113 {
00114     DECLARE_SELF(QFont, key);
00115     return QScriptValue(eng, self->key());
00116 }
00117 
00118 static QScriptValue lastResortFamily(QScriptContext *ctx, QScriptEngine *eng)
00119 {
00120     DECLARE_SELF(QFont, lastResortFamily);
00121     return QScriptValue(eng, self->lastResortFamily());
00122 }
00123 
00124 static QScriptValue lastResortFont(QScriptContext *ctx, QScriptEngine *eng)
00125 {
00126     DECLARE_SELF(QFont, lastResortFont);
00127     return QScriptValue(eng, self->lastResortFont());
00128 }
00129 
00130 static QScriptValue overline(QScriptContext *ctx, QScriptEngine *eng)
00131 {
00132     DECLARE_SELF(QFont, overline);
00133     return QScriptValue(eng, self->overline());
00134 }
00135 
00136 static QScriptValue pixelSize(QScriptContext *ctx, QScriptEngine *eng)
00137 {
00138     DECLARE_SELF(QFont, pixelSize);
00139     return QScriptValue(eng, self->pixelSize());
00140 }
00141 
00142 static QScriptValue pointSize(QScriptContext *ctx, QScriptEngine *eng)
00143 {
00144     DECLARE_SELF(QFont, pointSize);
00145     return QScriptValue(eng, self->pointSize());
00146 }
00147 
00148 static QScriptValue pointSizeF(QScriptContext *ctx, QScriptEngine *eng)
00149 {
00150     DECLARE_SELF(QFont, pointSizeF);
00151     return QScriptValue(eng, self->pointSizeF());
00152 }
00153 
00154 static QScriptValue rawMode(QScriptContext *ctx, QScriptEngine *eng)
00155 {
00156     DECLARE_SELF(QFont, rawMode);
00157     return QScriptValue(eng, self->rawMode());
00158 }
00159 
00160 static QScriptValue rawName(QScriptContext *ctx, QScriptEngine *eng)
00161 {
00162     DECLARE_SELF(QFont, rawName);
00163     return QScriptValue(eng, self->rawName());
00164 }
00165 
00166 static QScriptValue resolve(QScriptContext *ctx, QScriptEngine *eng)
00167 {
00168     DECLARE_SELF(QFont, resolve);
00169     QFont *other = qscriptvalue_cast<QFont*>(ctx->argument(0));
00170     if (!other) {
00171         return ctx->throwError(QScriptContext::TypeError,
00172                                "QFont.prototype.isCopyOf: argument is not a Font");
00173     }
00174     return qScriptValueFromValue(eng, self->resolve(*other));
00175 }
00176 
00177 static QScriptValue setBold(QScriptContext *ctx, QScriptEngine *)
00178 {
00179     DECLARE_SELF(QFont, setBold);
00180     QScriptValue arg = ctx->argument(0);
00181     self->setBold(arg.toBoolean());
00182     return arg;
00183 }
00184 
00185 static QScriptValue setFamily(QScriptContext *ctx, QScriptEngine *)
00186 {
00187     DECLARE_SELF(QFont, setFamily);
00188     QScriptValue arg = ctx->argument(0);
00189     self->setFamily(arg.toString());
00190     return arg;
00191 }
00192 
00193 static QScriptValue setFixedPitch(QScriptContext *ctx, QScriptEngine *)
00194 {
00195     DECLARE_SELF(QFont, setFixedPitch);
00196     QScriptValue arg = ctx->argument(0);
00197     self->setFixedPitch(arg.toBoolean());
00198     return arg;
00199 }
00200 
00201 static QScriptValue setItalic(QScriptContext *ctx, QScriptEngine *)
00202 {
00203     DECLARE_SELF(QFont, setItalic);
00204     QScriptValue arg = ctx->argument(0);
00205     self->setItalic(arg.toBoolean());
00206     return arg;
00207 }
00208 
00209 static QScriptValue setKerning(QScriptContext *ctx, QScriptEngine *)
00210 {
00211     DECLARE_SELF(QFont, setKerning);
00212     QScriptValue arg = ctx->argument(0);
00213     self->setKerning(arg.toBoolean());
00214     return arg;
00215 }
00216 
00217 static QScriptValue setOverline(QScriptContext *ctx, QScriptEngine *)
00218 {
00219     DECLARE_SELF(QFont, setOverline);
00220     QScriptValue arg = ctx->argument(0);
00221     self->setOverline(arg.toBoolean());
00222     return arg;
00223 }
00224 
00225 static QScriptValue setPixelSize(QScriptContext *ctx, QScriptEngine *)
00226 {
00227     DECLARE_SELF(QFont, setPixelSize);
00228     QScriptValue arg = ctx->argument(0);
00229     self->setPixelSize(arg.toInt32());
00230     return arg;
00231 }
00232 
00233 static QScriptValue setPointSize(QScriptContext *ctx, QScriptEngine *)
00234 {
00235     DECLARE_SELF(QFont, setPointSize);
00236     QScriptValue arg = ctx->argument(0);
00237     self->setPointSize(arg.toInt32());
00238     return arg;
00239 }
00240 
00241 static QScriptValue setPointSizeF(QScriptContext *ctx, QScriptEngine *)
00242 {
00243     DECLARE_SELF(QFont, setPointSizeF);
00244     QScriptValue arg = ctx->argument(0);
00245     self->setPointSizeF(arg.toNumber());
00246     return arg;
00247 }
00248 
00249 static QScriptValue setRawMode(QScriptContext *ctx, QScriptEngine *)
00250 {
00251     DECLARE_SELF(QFont, setRawMode);
00252     QScriptValue arg = ctx->argument(0);
00253     self->setRawMode(arg.toBoolean());
00254     return arg;
00255 }
00256 
00257 static QScriptValue setRawName(QScriptContext *ctx, QScriptEngine *)
00258 {
00259     DECLARE_SELF(QFont, setRawName);
00260     QScriptValue arg = ctx->argument(0);
00261     self->setRawName(arg.toString());
00262     return arg;
00263 }
00264 
00265 static QScriptValue setStretch(QScriptContext *ctx, QScriptEngine *)
00266 {
00267     DECLARE_SELF(QFont, setStretch);
00268     QScriptValue arg = ctx->argument(0);
00269     self->setStretch(arg.toInt32());
00270     return arg;
00271 }
00272 
00273 static QScriptValue setStrikeOut(QScriptContext *ctx, QScriptEngine *)
00274 {
00275     DECLARE_SELF(QFont, setStrikeOut);
00276     QScriptValue arg = ctx->argument(0);
00277     self->setStrikeOut(arg.toBoolean());
00278     return arg;
00279 }
00280 
00281 static QScriptValue setStyle(QScriptContext *ctx, QScriptEngine *)
00282 {
00283     return ctx->throwError("QFont.setStyle");
00284 }
00285 
00286 static QScriptValue setStyleHint(QScriptContext *ctx, QScriptEngine *)
00287 {
00288     return ctx->throwError("QFont.setStyleHint");
00289 }
00290 
00291 static QScriptValue setStyleStrategy(QScriptContext *ctx, QScriptEngine *)
00292 {
00293     return ctx->throwError("QFont.setStyleStrategy");
00294 }
00295 
00296 static QScriptValue setUnderline(QScriptContext *ctx, QScriptEngine *)
00297 {
00298     DECLARE_SELF(QFont, setUnderline);
00299     QScriptValue arg = ctx->argument(0);
00300     self->setUnderline(arg.toBoolean());
00301     return arg;
00302 }
00303 
00304 static QScriptValue setWeight(QScriptContext *ctx, QScriptEngine *)
00305 {
00306     DECLARE_SELF(QFont, setWeight);
00307     QScriptValue arg = ctx->argument(0);
00308     self->setWeight(arg.toInt32());
00309     return arg;
00310 }
00311 
00312 static QScriptValue stretch(QScriptContext *ctx, QScriptEngine *eng)
00313 {
00314     DECLARE_SELF(QFont, stretch);
00315     return QScriptValue(eng, self->stretch());
00316 }
00317 
00318 static QScriptValue strikeOut(QScriptContext *ctx, QScriptEngine *eng)
00319 {
00320     DECLARE_SELF(QFont, strikeOut);
00321     return QScriptValue(eng, self->strikeOut());
00322 }
00323 
00324 static QScriptValue style(QScriptContext *ctx, QScriptEngine *)
00325 {
00326     return ctx->throwError("QFont.prototype.style is not implemented");
00327 }
00328 
00329 static QScriptValue styleHint(QScriptContext *ctx, QScriptEngine *)
00330 {
00331     return ctx->throwError("QFont.prototype.styleHint is not implemented");
00332 }
00333 
00334 static QScriptValue styleStrategy(QScriptContext *ctx, QScriptEngine *)
00335 {
00336     return ctx->throwError("QFont.prototype.styleStrategy is not implemented");
00337 }
00338 
00339 static QScriptValue toString(QScriptContext *ctx, QScriptEngine *eng)
00340 {
00341     DECLARE_SELF(QFont, toString);
00342     return QScriptValue(eng, self->toString());
00343 }
00344 
00345 static QScriptValue underline(QScriptContext *ctx, QScriptEngine *eng)
00346 {
00347     DECLARE_SELF(QFont, underline);
00348     return QScriptValue(eng, self->underline());
00349 }
00350 
00351 static QScriptValue weight(QScriptContext *ctx, QScriptEngine *eng)
00352 {
00353     DECLARE_SELF(QFont, weight);
00354     return QScriptValue(eng, self->weight());
00355 }
00356 
00357 QScriptValue constructFontClass(QScriptEngine *eng)
00358 {
00359     QScriptValue proto = qScriptValueFromValue(eng, QFont());
00360     QScriptValue::PropertyFlags getter = QScriptValue::PropertyGetter;
00361     QScriptValue::PropertyFlags setter = QScriptValue::PropertySetter;
00362     proto.setProperty("bold", eng->newFunction(bold), getter);
00363     proto.setProperty("defaultFamily", eng->newFunction(defaultFamily));
00364     proto.setProperty("exactMatch", eng->newFunction(exactMatch));
00365     proto.setProperty("family", eng->newFunction(family), getter);
00366     proto.setProperty("fixedPitch", eng->newFunction(fixedPitch), getter);
00367     proto.setProperty("fromString", eng->newFunction(fromString));
00368     proto.setProperty("handle", eng->newFunction(handle));
00369     proto.setProperty("isCopyOf", eng->newFunction(isCopyOf));
00370     proto.setProperty("italic", eng->newFunction(italic), getter);
00371     proto.setProperty("kerning", eng->newFunction(kerning), getter);
00372     proto.setProperty("key", eng->newFunction(key), getter);
00373     proto.setProperty("lastResortFamily", eng->newFunction(lastResortFamily));
00374     proto.setProperty("lastResortFont", eng->newFunction(lastResortFont));
00375     proto.setProperty("overline", eng->newFunction(overline), getter);
00376     proto.setProperty("pixelSize", eng->newFunction(pixelSize), getter);
00377     proto.setProperty("pointSize", eng->newFunction(pointSize), getter);
00378     proto.setProperty("pointSizeF", eng->newFunction(pointSizeF), getter);
00379     proto.setProperty("rawMode", eng->newFunction(rawMode), getter);
00380     proto.setProperty("rawName", eng->newFunction(rawName), getter);
00381     proto.setProperty("resolve", eng->newFunction(resolve));
00382     proto.setProperty("bold", eng->newFunction(setBold), setter);
00383     proto.setProperty("bamily", eng->newFunction(setFamily), setter);
00384     proto.setProperty("fixedPitch", eng->newFunction(setFixedPitch), setter);
00385     proto.setProperty("italic", eng->newFunction(setItalic), setter);
00386     proto.setProperty("kerning", eng->newFunction(setKerning), setter);
00387     proto.setProperty("overline", eng->newFunction(setOverline), setter);
00388     proto.setProperty("pixelSize", eng->newFunction(setPixelSize), setter);
00389     proto.setProperty("pointSize", eng->newFunction(setPointSize), setter);
00390     proto.setProperty("pointSizeF", eng->newFunction(setPointSizeF), setter);
00391     proto.setProperty("rawMode", eng->newFunction(setRawMode), setter);
00392     proto.setProperty("rawName", eng->newFunction(setRawName), setter);
00393     proto.setProperty("stretch", eng->newFunction(setStretch), setter);
00394     proto.setProperty("strikeOut", eng->newFunction(setStrikeOut), setter);
00395     proto.setProperty("setStyle", eng->newFunction(setStyle));
00396     proto.setProperty("setStyleHint", eng->newFunction(setStyleHint));
00397     proto.setProperty("setStyleStrategy", eng->newFunction(setStyleStrategy));
00398     proto.setProperty("underline", eng->newFunction(setUnderline), setter);
00399     proto.setProperty("weight", eng->newFunction(setWeight), setter);
00400     proto.setProperty("stretch", eng->newFunction(stretch), getter);
00401     proto.setProperty("strikeOut", eng->newFunction(strikeOut), getter);
00402     proto.setProperty("style", eng->newFunction(style));
00403     proto.setProperty("styleHint", eng->newFunction(styleHint));
00404     proto.setProperty("styleStrategy", eng->newFunction(styleStrategy));
00405     proto.setProperty("toString", eng->newFunction(toString));
00406     proto.setProperty("underline", eng->newFunction(underline), getter);
00407     proto.setProperty("weight", eng->newFunction(weight), getter);
00408 
00409     eng->setDefaultPrototype(qMetaTypeId<QFont>(), proto);
00410     eng->setDefaultPrototype(qMetaTypeId<QFont*>(), proto);
00411 
00412     return eng->newFunction(ctor, proto);
00413 }

Plasma

Skip menu "Plasma"
  • Main Page
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members

API Reference

Skip menu "API Reference"
  • KWin
  •   KWin Libraries
  • Libraries
  •   libkworkspace
  •   libplasma
  •   libsolidcontrol
  •   libtaskmanager
  • Plasma
  •   Animators
  •   Applets
  •   Engines
  • Solid Modules
Generated for API Reference by doxygen 1.5.4
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal