00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include "image.h"
00023 #include "variant_binding.h"
00024 #include "object_binding.h"
00025
00026 #include <QtCore/QDebug>
00027 #include <QtGui/QImage>
00028 #include <QtCore/QPoint>
00029 #include <QtCore/QSize>
00030
00031 using namespace KJSEmbed;
00032
00033 const KJS::ClassInfo ImageBinding::info = { "QImage", &VariantBinding::info, 0, 0 };
00034 ImageBinding::ImageBinding( KJS::ExecState *exec, const QImage &value )
00035 : VariantBinding(exec, value )
00036 {
00037 StaticBinding::publish( exec, this, VariantFactory::methods() );
00038 StaticBinding::publish( exec, this, Image::methods() );
00039 }
00040
00041 namespace ImageNS
00042 {
00043 START_VARIANT_METHOD( callallGray, QImage )
00044 bool cppValue = value.allGray();
00045 result = KJS::jsBoolean(cppValue);
00046 END_VARIANT_METHOD
00047
00048 START_VARIANT_METHOD( callalphaChannel, QImage )
00049 QImage cppValue = value.alphaChannel();
00050 result = KJSEmbed::createVariant(exec, "QImage", cppValue );
00051 END_VARIANT_METHOD
00052
00053 START_VARIANT_METHOD( callcopy, QImage )
00054 int arg0 = KJSEmbed::extractInt(exec, args, 0);
00055 int arg1 = KJSEmbed::extractInt(exec, args, 1);
00056 int arg2 = KJSEmbed::extractInt(exec, args, 2);
00057 int arg3 = KJSEmbed::extractInt(exec, args, 3);
00058 QImage cppValue = value.copy(arg0, arg1, arg2, arg3);
00059 result = KJSEmbed::createVariant(exec, "QImage", cppValue );
00060 END_VARIANT_METHOD
00061
00062 START_VARIANT_METHOD( callcreateAlphaMask, QImage )
00063 Qt::ImageConversionFlags arg0 = (Qt::ImageConversionFlags)KJSEmbed::extractInt(exec, args, 0);
00064 QImage cppValue = value.createAlphaMask(arg0);
00065 result = KJSEmbed::createVariant(exec, "QImage", cppValue );
00066 END_VARIANT_METHOD
00067
00068 START_VARIANT_METHOD( callcreateHeuristicMask, QImage )
00069 bool arg0 = KJSEmbed::extractBool(exec, args, 0);
00070 QImage cppValue = value.createHeuristicMask(arg0);
00071 result = KJSEmbed::createVariant(exec, "QImage", cppValue );
00072 END_VARIANT_METHOD
00073
00074 START_VARIANT_METHOD( calldepth, QImage )
00075 int cppValue = value.depth();
00076 result = KJS::jsNumber(cppValue);
00077 END_VARIANT_METHOD
00078
00079 START_VARIANT_METHOD( calldevType, QImage )
00080 int cppValue = value.devType();
00081 result = KJS::jsNumber(cppValue);
00082 END_VARIANT_METHOD
00083
00084 START_VARIANT_METHOD( calldotsPerMeterX, QImage )
00085 int cppValue = value.dotsPerMeterX();
00086 result = KJS::jsNumber(cppValue);
00087 END_VARIANT_METHOD
00088
00089 START_VARIANT_METHOD( calldotsPerMeterY, QImage )
00090 int cppValue = value.dotsPerMeterY();
00091 result = KJS::jsNumber(cppValue);
00092 END_VARIANT_METHOD
00093
00094 START_VARIANT_METHOD( callfill, QImage )
00095 uint arg0 = KJSEmbed::extractVariant<uint>(exec,args, 0);
00096 value.fill(arg0);
00097 END_VARIANT_METHOD
00098
00099 START_VARIANT_METHOD( callhasAlphaChannel, QImage )
00100 bool cppValue = value.hasAlphaChannel();
00101 result = KJS::jsBoolean(cppValue);
00102 END_VARIANT_METHOD
00103
00104 START_VARIANT_METHOD( callheight, QImage )
00105 int cppValue = value.height();
00106 result = KJS::jsNumber(cppValue);
00107 END_VARIANT_METHOD
00108
00109 START_VARIANT_METHOD( callinvertPixels, QImage )
00110 QImage::InvertMode arg0 = (QImage::InvertMode)KJSEmbed::extractInt(exec, args, 0);
00111 value.invertPixels(arg0);
00112 END_VARIANT_METHOD
00113
00114 START_VARIANT_METHOD( callisGrayscale, QImage )
00115 bool cppValue = value.isGrayscale();
00116 result = KJS::jsBoolean(cppValue);
00117 END_VARIANT_METHOD
00118
00119 START_VARIANT_METHOD( callisNull, QImage )
00120 bool cppValue = value.isNull();
00121 result = KJS::jsBoolean(cppValue);
00122 END_VARIANT_METHOD
00123
00124 START_VARIANT_METHOD( callload, QImage )
00125 QString arg0 = KJSEmbed::extractQString(exec, args, 0);
00126 QByteArray arg1 = KJSEmbed::extractQString( exec, args, 1 ).toLatin1();
00127 bool cppValue = value.load(arg0, arg1);
00128 result = KJS::jsBoolean(cppValue);
00129 END_VARIANT_METHOD
00130
00131 START_VARIANT_METHOD( callmirrored, QImage )
00132 bool arg0 = KJSEmbed::extractBool(exec, args, 0);
00133 bool arg1 = KJSEmbed::extractBool(exec, args, 1);
00134 QImage cppValue = value.mirrored(arg0, arg1);
00135 result = KJSEmbed::createVariant(exec, "QImage", cppValue );
00136 END_VARIANT_METHOD
00137
00138 START_VARIANT_METHOD( callnumBytes, QImage )
00139 int cppValue = value.numBytes();
00140 result = KJS::jsNumber(cppValue);
00141 END_VARIANT_METHOD
00142
00143 START_VARIANT_METHOD( callnumColors, QImage )
00144 int cppValue = value.numColors();
00145 result = KJS::jsNumber(cppValue);
00146 END_VARIANT_METHOD
00147
00148 START_VARIANT_METHOD( calloffset, QImage )
00149 QPoint cppValue = value.offset();
00150 result = KJSEmbed::createVariant(exec, "QPoint", cppValue );
00151 END_VARIANT_METHOD
00152
00153 START_VARIANT_METHOD( callpixel, QImage )
00154 int arg0 = KJSEmbed::extractInt(exec, args, 0);
00155 int arg1 = KJSEmbed::extractInt(exec, args, 1);
00156 QRgb cppValue = value.pixel(arg0, arg1);
00157 result = KJS::jsNumber(cppValue);
00158 END_VARIANT_METHOD
00159
00160 START_VARIANT_METHOD( callpixelIndex, QImage )
00161 int arg0 = KJSEmbed::extractInt(exec, args, 0);
00162 int arg1 = KJSEmbed::extractInt(exec, args, 1);
00163 int cppValue = value.pixelIndex(arg0, arg1);
00164 result = KJS::jsNumber(cppValue);
00165 END_VARIANT_METHOD
00166
00167 START_VARIANT_METHOD( callrect, QImage )
00168 QRect cppValue = value.rect();
00169 result = KJSEmbed::createVariant(exec, "QRect", cppValue );
00170 END_VARIANT_METHOD
00171
00172 START_VARIANT_METHOD( callrgbSwapped, QImage )
00173 QImage cppValue = value.rgbSwapped();
00174 result = KJSEmbed::createVariant(exec, "QImage", cppValue );
00175 END_VARIANT_METHOD
00176
00177 START_VARIANT_METHOD( callsave, QImage )
00178 QString arg0 = KJSEmbed::extractQString(exec, args, 0);
00179 QByteArray arg1 = KJSEmbed::extractQString( exec, args, 1 ).toLatin1();
00180 int arg2 = KJSEmbed::extractInt(exec, args, 2);
00181 bool cppValue = value.save(arg0, arg1, arg2);
00182 result = KJS::jsBoolean(cppValue);
00183 END_VARIANT_METHOD
00184
00185 START_VARIANT_METHOD( callscaled, QImage )
00186 if( args.size() == 3)
00187 {
00188 QSize arg0 = KJSEmbed::extractVariant<QSize>(exec,args, 0);
00189 Qt::AspectRatioMode arg1 = (Qt::AspectRatioMode)KJSEmbed::extractInt(exec, args, 1);
00190 Qt::TransformationMode arg2 = (Qt::TransformationMode)KJSEmbed::extractInt(exec, args, 2);
00191 QImage cppValue = value.scaled(arg0, arg1, arg2);
00192 result = KJSEmbed::createVariant(exec, "QImage", cppValue );
00193 }
00194 else if( args.size() == 4)
00195 {
00196 int arg0 = KJSEmbed::extractInt(exec, args, 0);
00197 int arg1 = KJSEmbed::extractInt(exec, args, 1);
00198 Qt::AspectRatioMode arg2 = (Qt::AspectRatioMode)KJSEmbed::extractInt(exec, args, 2);
00199 Qt::TransformationMode arg3 = (Qt::TransformationMode)KJSEmbed::extractInt(exec, args, 3);
00200 QImage cppValue = value.scaled(arg0, arg1, arg2, arg3);
00201 result = KJSEmbed::createVariant(exec, "QImage", cppValue );
00202 }
00203 END_VARIANT_METHOD
00204
00205 START_VARIANT_METHOD( callscaledToHeight, QImage )
00206 int arg0 = KJSEmbed::extractInt(exec, args, 0);
00207 Qt::TransformationMode arg1 = (Qt::TransformationMode)KJSEmbed::extractInt(exec, args, 1);
00208 QImage cppValue = value.scaledToHeight(arg0, arg1);
00209 result = KJSEmbed::createVariant(exec, "QImage", cppValue );
00210 END_VARIANT_METHOD
00211
00212 START_VARIANT_METHOD( callscaledToWidth, QImage )
00213 int arg0 = KJSEmbed::extractInt(exec, args, 0);
00214 Qt::TransformationMode arg1 = (Qt::TransformationMode)KJSEmbed::extractInt(exec, args, 1);
00215 QImage cppValue = value.scaledToWidth(arg0, arg1);
00216 result = KJSEmbed::createVariant(exec, "QImage", cppValue );
00217 END_VARIANT_METHOD
00218
00219 START_VARIANT_METHOD( callserialNumber, QImage )
00220 int cppValue = value.serialNumber();
00221 result = KJS::jsNumber(cppValue);
00222 END_VARIANT_METHOD
00223
00224 START_VARIANT_METHOD( callsetAlphaChannel, QImage )
00225 QImage arg0 = KJSEmbed::extractVariant<QImage>(exec,args, 0);
00226 value.setAlphaChannel(arg0);
00227 END_VARIANT_METHOD
00228
00229 START_VARIANT_METHOD( callsetColor, QImage )
00230 int arg0 = KJSEmbed::extractInt(exec, args, 0);
00231 QRgb arg1 = (QRgb)KJSEmbed::extractInt(exec, args, 1);
00232 value.setColor(arg0, arg1);
00233 END_VARIANT_METHOD
00234
00235 START_VARIANT_METHOD( callsetDotsPerMeterX, QImage )
00236 int arg0 = KJSEmbed::extractInt(exec, args, 0);
00237 value.setDotsPerMeterX(arg0);
00238 END_VARIANT_METHOD
00239
00240 START_VARIANT_METHOD( callsetDotsPerMeterY, QImage )
00241 int arg0 = KJSEmbed::extractInt(exec, args, 0);
00242 value.setDotsPerMeterY(arg0);
00243 END_VARIANT_METHOD
00244
00245 START_VARIANT_METHOD( callsetNumColors, QImage )
00246 int arg0 = KJSEmbed::extractInt(exec, args, 0);
00247 value.setNumColors(arg0);
00248 END_VARIANT_METHOD
00249
00250 START_VARIANT_METHOD( callsetOffset, QImage )
00251 QPoint arg0 = KJSEmbed::extractVariant<QPoint>(exec,args, 0);
00252 value.setOffset(arg0);
00253 END_VARIANT_METHOD
00254
00255 START_VARIANT_METHOD( callsetPixel, QImage )
00256 int arg0 = KJSEmbed::extractInt(exec, args, 0);
00257 int arg1 = KJSEmbed::extractInt(exec, args, 1);
00258 uint arg2 = KJSEmbed::extractVariant<uint>(exec,args, 2);
00259 value.setPixel(arg0, arg1, arg2);
00260 END_VARIANT_METHOD
00261
00262 START_VARIANT_METHOD( callsize, QImage )
00263 QSize cppValue = value.size();
00264 result = KJSEmbed::createVariant(exec, "QSize", cppValue );
00265 END_VARIANT_METHOD
00266
00267 START_VARIANT_METHOD( callvalid, QImage )
00268 int arg0 = KJSEmbed::extractInt(exec, args, 0);
00269 int arg1 = KJSEmbed::extractInt(exec, args, 1);
00270 bool cppValue = value.valid(arg0, arg1);
00271 result = KJS::jsBoolean(cppValue);
00272 END_VARIANT_METHOD
00273
00274 START_VARIANT_METHOD( callwidth, QImage )
00275 int cppValue = value.width();
00276 result = KJS::jsNumber(cppValue);
00277 END_VARIANT_METHOD
00278
00279 }
00280
00281 START_METHOD_LUT( Image )
00282 {"allGray", 0, KJS::DontDelete|KJS::ReadOnly, &ImageNS::callallGray},
00283 {"alphaChannel", 0, KJS::DontDelete|KJS::ReadOnly, &ImageNS::callalphaChannel},
00284 {"copy", 4, KJS::DontDelete|KJS::ReadOnly, &ImageNS::callcopy},
00285 {"createAlphaMask", 0, KJS::DontDelete|KJS::ReadOnly, &ImageNS::callcreateAlphaMask},
00286 {"createHeuristicMask", 0, KJS::DontDelete|KJS::ReadOnly, &ImageNS::callcreateHeuristicMask},
00287 {"depth", 0, KJS::DontDelete|KJS::ReadOnly, &ImageNS::calldepth},
00288 {"dotsPerMeterX", 0, KJS::DontDelete|KJS::ReadOnly, &ImageNS::calldotsPerMeterX},
00289 {"dotsPerMeterY", 0, KJS::DontDelete|KJS::ReadOnly, &ImageNS::calldotsPerMeterY},
00290 {"fill", 0, KJS::DontDelete|KJS::ReadOnly, &ImageNS::callfill},
00291 {"hasAlphaChannel", 0, KJS::DontDelete|KJS::ReadOnly, &ImageNS::callhasAlphaChannel},
00292 {"height", 0, KJS::DontDelete|KJS::ReadOnly, &ImageNS::callheight},
00293 {"invertPixels", 0, KJS::DontDelete|KJS::ReadOnly, &ImageNS::callinvertPixels},
00294 {"isGrayscale", 0, KJS::DontDelete|KJS::ReadOnly, &ImageNS::callisGrayscale},
00295 {"isNull", 0, KJS::DontDelete|KJS::ReadOnly, &ImageNS::callisNull},
00296 {"load", 1, KJS::DontDelete|KJS::ReadOnly, &ImageNS::callload},
00297 {"mirrored", 1, KJS::DontDelete|KJS::ReadOnly, &ImageNS::callmirrored},
00298 {"numBytes", 0, KJS::DontDelete|KJS::ReadOnly, &ImageNS::callnumBytes},
00299 {"numColors", 0, KJS::DontDelete|KJS::ReadOnly, &ImageNS::callnumColors},
00300 {"offset", 0, KJS::DontDelete|KJS::ReadOnly, &ImageNS::calloffset},
00301 {"pixel", 1, KJS::DontDelete|KJS::ReadOnly, &ImageNS::callpixel},
00302 {"pixelIndex", 1, KJS::DontDelete|KJS::ReadOnly, &ImageNS::callpixelIndex},
00303 {"rect", 0, KJS::DontDelete|KJS::ReadOnly, &ImageNS::callrect},
00304 {"rgbSwapped", 0, KJS::DontDelete|KJS::ReadOnly, &ImageNS::callrgbSwapped},
00305 {"save", 2, KJS::DontDelete|KJS::ReadOnly, &ImageNS::callsave},
00306 {"scaled", 3, KJS::DontDelete|KJS::ReadOnly, &ImageNS::callscaled},
00307 {"scaledToHeight", 1, KJS::DontDelete|KJS::ReadOnly, &ImageNS::callscaledToHeight},
00308 {"scaledToWidth", 1, KJS::DontDelete|KJS::ReadOnly, &ImageNS::callscaledToWidth},
00309 {"serialNumber", 0, KJS::DontDelete|KJS::ReadOnly, &ImageNS::callserialNumber},
00310 {"setAlphaChannel", 0, KJS::DontDelete|KJS::ReadOnly, &ImageNS::callsetAlphaChannel},
00311 {"setColor", 1, KJS::DontDelete|KJS::ReadOnly, &ImageNS::callsetColor},
00312 {"setDotsPerMeterX", 0, KJS::DontDelete|KJS::ReadOnly, &ImageNS::callsetDotsPerMeterX},
00313 {"setDotsPerMeterY", 0, KJS::DontDelete|KJS::ReadOnly, &ImageNS::callsetDotsPerMeterY},
00314 {"setNumColors", 0, KJS::DontDelete|KJS::ReadOnly, &ImageNS::callsetNumColors},
00315 {"setOffset", 0, KJS::DontDelete|KJS::ReadOnly, &ImageNS::callsetOffset},
00316 {"setPixel", 2, KJS::DontDelete|KJS::ReadOnly, &ImageNS::callsetPixel},
00317 {"size", 0, KJS::DontDelete|KJS::ReadOnly, &ImageNS::callsize},
00318 {"valid", 1, KJS::DontDelete|KJS::ReadOnly, &ImageNS::callvalid},
00319 {"width", 0, KJS::DontDelete|KJS::ReadOnly, &ImageNS::callwidth}
00320 END_METHOD_LUT
00321
00322 NO_ENUMS( Image )
00323 NO_STATICS( Image )
00324
00325 START_CTOR( Image, QImage, 0)
00326 if( args.size() == 0 )
00327 {
00328 return new KJSEmbed::ImageBinding( exec, QImage() );
00329 }
00330 if( args.size() == 1 )
00331 {
00332 return new KJSEmbed::ImageBinding( exec, QImage( KJSEmbed::extractQString(exec, args, 0 ) ) );
00333 }
00334 else if( args.size() == 2 )
00335 {
00336 return new KJSEmbed::ImageBinding( exec,
00337 QImage( KJSEmbed::extractVariant<QSize>(exec,args, 0 ),
00338 (QImage::Format)KJSEmbed::extractInt( exec, args, 1 )) );
00339 }
00340 else if( args.size() == 3 )
00341 {
00342 return new KJSEmbed::ImageBinding(exec,
00343 QImage( KJSEmbed::extractInt( exec, args, 0 ),
00344 KJSEmbed::extractInt( exec, args, 1 ),
00345 (QImage::Format)KJSEmbed::extractInt( exec, args, 2 )) );
00346 }
00347 return new KJSEmbed::ImageBinding( exec, QImage() );
00348 END_CTOR
00349
00350