kjsembed
image.cpp
Go to the documentation of this file.
00001 /* This file is part of the KDE libraries 00002 Copyright (C) 2005, 2006 Ian Reinhart Geiser <geiseri@kde.org> 00003 Copyright (C) 2005, 2006 Matt Broadstone <mbroadst@gmail.com> 00004 Copyright (C) 2005, 2006 Richard J. Moore <rich@kde.org> 00005 Copyright (C) 2005, 2006 Erik L. Bunce <kde@bunce.us> 00006 00007 This library is free software; you can redistribute it and/or 00008 modify it under the terms of the GNU Library General Public 00009 License as published by the Free Software Foundation; either 00010 version 2 of the License, or (at your option) any later version. 00011 00012 This library is distributed in the hope that it will be useful, 00013 but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00015 Library General Public License for more details. 00016 00017 You should have received a copy of the GNU Library General Public License 00018 along with this library; see the file COPYING.LIB. If not, write to 00019 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 00020 Boston, MA 02110-1301, USA. 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 //kate: indent-spaces on; indent-width 4; replace-tabs on; indent-mode cstyle;
KDE 4.6 API Reference