KJsEmbed

image.cpp
1 /* This file is part of the KDE libraries
2  Copyright (C) 2005, 2006 Ian Reinhart Geiser <[email protected]>
3  Copyright (C) 2005, 2006 Matt Broadstone <[email protected]>
4  Copyright (C) 2005, 2006 Richard J. Moore <[email protected]>
5  Copyright (C) 2005, 2006 Erik L. Bunce <[email protected]>
6 
7  This library is free software; you can redistribute it and/or
8  modify it under the terms of the GNU Library General Public
9  License as published by the Free Software Foundation; either
10  version 2 of the License, or (at your option) any later version.
11 
12  This library is distributed in the hope that it will be useful,
13  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15  Library General Public License for more details.
16 
17  You should have received a copy of the GNU Library General Public License
18  along with this library; see the file COPYING.LIB. If not, write to
19  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20  Boston, MA 02110-1301, USA.
21 */
22 #include "image.h"
23 #include "object_binding.h"
24 
25 #include <QDebug>
26 #include <QImage>
27 #include <QPoint>
28 #include <QSize>
29 
30 using namespace KJSEmbed;
31 
32 const KJS::ClassInfo ImageBinding::info = { "QImage", &VariantBinding::info, nullptr, nullptr };
33 ImageBinding::ImageBinding(KJS::ExecState *exec, const QImage &value)
34  : VariantBinding(exec, value)
35 {
36  StaticBinding::publish(exec, this, VariantFactory::methods());
37  StaticBinding::publish(exec, this, Image::methods());
38 }
39 
40 namespace ImageNS
41 {
42 START_VARIANT_METHOD(callallGray, QImage)
43 bool cppValue = value.allGray();
44 result = KJS::jsBoolean(cppValue);
45 END_VARIANT_METHOD
46 
47 START_VARIANT_METHOD(callalphaChannel, QImage)
48 QImage cppValue = value.alphaChannel();
49 result = KJSEmbed::createVariant(exec, "QImage", cppValue);
50 END_VARIANT_METHOD
51 
52 START_VARIANT_METHOD(callcopy, QImage)
53 int arg0 = KJSEmbed::extractInt(exec, args, 0);
54 int arg1 = KJSEmbed::extractInt(exec, args, 1);
55 int arg2 = KJSEmbed::extractInt(exec, args, 2);
56 int arg3 = KJSEmbed::extractInt(exec, args, 3);
57 QImage cppValue = value.copy(arg0, arg1, arg2, arg3);
58 result = KJSEmbed::createVariant(exec, "QImage", cppValue);
59 END_VARIANT_METHOD
60 
61 START_VARIANT_METHOD(callcreateAlphaMask, QImage)
62 Qt::ImageConversionFlags arg0 = (Qt::ImageConversionFlags)KJSEmbed::extractInt(exec, args, 0);
63 QImage cppValue = value.createAlphaMask(arg0);
64 result = KJSEmbed::createVariant(exec, "QImage", cppValue);
65 END_VARIANT_METHOD
66 
67 START_VARIANT_METHOD(callcreateHeuristicMask, QImage)
68 bool arg0 = KJSEmbed::extractBool(exec, args, 0);
69 QImage cppValue = value.createHeuristicMask(arg0);
70 result = KJSEmbed::createVariant(exec, "QImage", cppValue);
71 END_VARIANT_METHOD
72 
73 START_VARIANT_METHOD(calldepth, QImage)
74 int cppValue = value.depth();
75 result = KJS::jsNumber(cppValue);
76 END_VARIANT_METHOD
77 
78 START_VARIANT_METHOD(calldevType, QImage)
79 int cppValue = value.devType();
80 result = KJS::jsNumber(cppValue);
81 END_VARIANT_METHOD
82 
83 START_VARIANT_METHOD(calldotsPerMeterX, QImage)
84 int cppValue = value.dotsPerMeterX();
85 result = KJS::jsNumber(cppValue);
86 END_VARIANT_METHOD
87 
88 START_VARIANT_METHOD(calldotsPerMeterY, QImage)
89 int cppValue = value.dotsPerMeterY();
90 result = KJS::jsNumber(cppValue);
91 END_VARIANT_METHOD
92 
93 START_VARIANT_METHOD(callfill, QImage)
94 uint arg0 = KJSEmbed::extractVariant<uint>(exec, args, 0);
95 value.fill(arg0);
96 END_VARIANT_METHOD
97 
98 START_VARIANT_METHOD(callhasAlphaChannel, QImage)
99 bool cppValue = value.hasAlphaChannel();
100 result = KJS::jsBoolean(cppValue);
101 END_VARIANT_METHOD
102 
103 START_VARIANT_METHOD(callheight, QImage)
104 int cppValue = value.height();
105 result = KJS::jsNumber(cppValue);
106 END_VARIANT_METHOD
107 
108 START_VARIANT_METHOD(callinvertPixels, QImage)
109 QImage::InvertMode arg0 = (QImage::InvertMode)KJSEmbed::extractInt(exec, args, 0);
110 value.invertPixels(arg0);
111 END_VARIANT_METHOD
112 
113 START_VARIANT_METHOD(callisGrayscale, QImage)
114 bool cppValue = value.isGrayscale();
115 result = KJS::jsBoolean(cppValue);
116 END_VARIANT_METHOD
117 
118 START_VARIANT_METHOD(callisNull, QImage)
119 bool cppValue = value.isNull();
120 result = KJS::jsBoolean(cppValue);
121 END_VARIANT_METHOD
122 
123 START_VARIANT_METHOD(callload, QImage)
124 QString arg0 = KJSEmbed::extractQString(exec, args, 0);
125 QByteArray arg1 = KJSEmbed::extractQString(exec, args, 1).toLatin1();
126 bool cppValue = value.load(arg0, arg1);
127 result = KJS::jsBoolean(cppValue);
128 END_VARIANT_METHOD
129 
130 START_VARIANT_METHOD(callmirrored, QImage)
131 bool arg0 = KJSEmbed::extractBool(exec, args, 0);
132 bool arg1 = KJSEmbed::extractBool(exec, args, 1);
133 QImage cppValue = value.mirrored(arg0, arg1);
134 result = KJSEmbed::createVariant(exec, "QImage", cppValue);
135 END_VARIANT_METHOD
136 
137 START_VARIANT_METHOD(callnumBytes, QImage)
138 int cppValue = value.byteCount();
139 result = KJS::jsNumber(cppValue);
140 END_VARIANT_METHOD
141 
142 START_VARIANT_METHOD(callnumColors, QImage)
143 int cppValue = value.colorCount();
144 result = KJS::jsNumber(cppValue);
145 END_VARIANT_METHOD
146 
147 START_VARIANT_METHOD(calloffset, QImage)
148 QPoint cppValue = value.offset();
149 result = KJSEmbed::createVariant(exec, "QPoint", cppValue);
150 END_VARIANT_METHOD
151 
152 START_VARIANT_METHOD(callpixel, QImage)
153 int arg0 = KJSEmbed::extractInt(exec, args, 0);
154 int arg1 = KJSEmbed::extractInt(exec, args, 1);
155 QRgb cppValue = value.pixel(arg0, arg1);
156 result = KJS::jsNumber(cppValue);
157 END_VARIANT_METHOD
158 
159 START_VARIANT_METHOD(callpixelIndex, QImage)
160 int arg0 = KJSEmbed::extractInt(exec, args, 0);
161 int arg1 = KJSEmbed::extractInt(exec, args, 1);
162 int cppValue = value.pixelIndex(arg0, arg1);
163 result = KJS::jsNumber(cppValue);
164 END_VARIANT_METHOD
165 
166 START_VARIANT_METHOD(callrect, QImage)
167 QRect cppValue = value.rect();
168 result = KJSEmbed::createVariant(exec, "QRect", cppValue);
169 END_VARIANT_METHOD
170 
171 START_VARIANT_METHOD(callrgbSwapped, QImage)
172 QImage cppValue = value.rgbSwapped();
173 result = KJSEmbed::createVariant(exec, "QImage", cppValue);
174 END_VARIANT_METHOD
175 
176 START_VARIANT_METHOD(callsave, QImage)
177 QString arg0 = KJSEmbed::extractQString(exec, args, 0);
178 QByteArray arg1 = KJSEmbed::extractQString(exec, args, 1).toLatin1();
179 int arg2 = KJSEmbed::extractInt(exec, args, 2);
180 bool cppValue = value.save(arg0, arg1, arg2);
181 result = KJS::jsBoolean(cppValue);
182 END_VARIANT_METHOD
183 
184 START_VARIANT_METHOD(callscaled, QImage)
185 if (args.size() == 3)
186 {
187  QSize arg0 = KJSEmbed::extractVariant<QSize>(exec, args, 0);
188  Qt::AspectRatioMode arg1 = (Qt::AspectRatioMode)KJSEmbed::extractInt(exec, args, 1);
189  Qt::TransformationMode arg2 = (Qt::TransformationMode)KJSEmbed::extractInt(exec, args, 2);
190  QImage cppValue = value.scaled(arg0, arg1, arg2);
191  result = KJSEmbed::createVariant(exec, "QImage", cppValue);
192 } else if (args.size() == 4)
193 {
194  int arg0 = KJSEmbed::extractInt(exec, args, 0);
195  int arg1 = KJSEmbed::extractInt(exec, args, 1);
196  Qt::AspectRatioMode arg2 = (Qt::AspectRatioMode)KJSEmbed::extractInt(exec, args, 2);
197  Qt::TransformationMode arg3 = (Qt::TransformationMode)KJSEmbed::extractInt(exec, args, 3);
198  QImage cppValue = value.scaled(arg0, arg1, arg2, arg3);
199  result = KJSEmbed::createVariant(exec, "QImage", cppValue);
200 }
201 END_VARIANT_METHOD
202 
203 START_VARIANT_METHOD(callscaledToHeight, QImage)
204 int arg0 = KJSEmbed::extractInt(exec, args, 0);
205 Qt::TransformationMode arg1 = (Qt::TransformationMode)KJSEmbed::extractInt(exec, args, 1);
206 QImage cppValue = value.scaledToHeight(arg0, arg1);
207 result = KJSEmbed::createVariant(exec, "QImage", cppValue);
208 END_VARIANT_METHOD
209 
210 START_VARIANT_METHOD(callscaledToWidth, QImage)
211 int arg0 = KJSEmbed::extractInt(exec, args, 0);
212 Qt::TransformationMode arg1 = (Qt::TransformationMode)KJSEmbed::extractInt(exec, args, 1);
213 QImage cppValue = value.scaledToWidth(arg0, arg1);
214 result = KJSEmbed::createVariant(exec, "QImage", cppValue);
215 END_VARIANT_METHOD
216 
217 START_VARIANT_METHOD(callserialNumber, QImage)
218 int cppValue = value.serialNumber();
219 result = KJS::jsNumber(cppValue);
220 END_VARIANT_METHOD
221 
222 START_VARIANT_METHOD(callsetAlphaChannel, QImage)
223 QImage arg0 = KJSEmbed::extractVariant<QImage>(exec, args, 0);
224 value.setAlphaChannel(arg0);
225 END_VARIANT_METHOD
226 
227 START_VARIANT_METHOD(callsetColor, QImage)
228 int arg0 = KJSEmbed::extractInt(exec, args, 0);
229 QRgb arg1 = (QRgb)KJSEmbed::extractInt(exec, args, 1);
230 value.setColor(arg0, arg1);
231 END_VARIANT_METHOD
232 
233 START_VARIANT_METHOD(callsetDotsPerMeterX, QImage)
234 int arg0 = KJSEmbed::extractInt(exec, args, 0);
235 value.setDotsPerMeterX(arg0);
236 END_VARIANT_METHOD
237 
238 START_VARIANT_METHOD(callsetDotsPerMeterY, QImage)
239 int arg0 = KJSEmbed::extractInt(exec, args, 0);
240 value.setDotsPerMeterY(arg0);
241 END_VARIANT_METHOD
242 
243 START_VARIANT_METHOD(callsetNumColors, QImage)
244 int arg0 = KJSEmbed::extractInt(exec, args, 0);
245 value.setColorCount(arg0);
246 END_VARIANT_METHOD
247 
248 START_VARIANT_METHOD(callsetOffset, QImage)
249 QPoint arg0 = KJSEmbed::extractVariant<QPoint>(exec, args, 0);
250 value.setOffset(arg0);
251 END_VARIANT_METHOD
252 
253 START_VARIANT_METHOD(callsetPixel, QImage)
254 int arg0 = KJSEmbed::extractInt(exec, args, 0);
255 int arg1 = KJSEmbed::extractInt(exec, args, 1);
256 uint arg2 = KJSEmbed::extractVariant<uint>(exec, args, 2);
257 value.setPixel(arg0, arg1, arg2);
258 END_VARIANT_METHOD
259 
260 START_VARIANT_METHOD(callsize, QImage)
261 QSize cppValue = value.size();
262 result = KJSEmbed::createVariant(exec, "QSize", cppValue);
263 END_VARIANT_METHOD
264 
265 START_VARIANT_METHOD(callvalid, QImage)
266 int arg0 = KJSEmbed::extractInt(exec, args, 0);
267 int arg1 = KJSEmbed::extractInt(exec, args, 1);
268 bool cppValue = value.valid(arg0, arg1);
269 result = KJS::jsBoolean(cppValue);
270 END_VARIANT_METHOD
271 
272 START_VARIANT_METHOD(callwidth, QImage)
273 int cppValue = value.width();
274 result = KJS::jsNumber(cppValue);
275 END_VARIANT_METHOD
276 
277 }
278 
279 START_METHOD_LUT(Image)
280 {"allGray", 0, KJS::DontDelete | KJS::ReadOnly, &ImageNS::callallGray},
281 {"alphaChannel", 0, KJS::DontDelete | KJS::ReadOnly, &ImageNS::callalphaChannel},
282 {"copy", 4, KJS::DontDelete | KJS::ReadOnly, &ImageNS::callcopy},
283 {"createAlphaMask", 0, KJS::DontDelete | KJS::ReadOnly, &ImageNS::callcreateAlphaMask},
284 {"createHeuristicMask", 0, KJS::DontDelete | KJS::ReadOnly, &ImageNS::callcreateHeuristicMask},
285 {"depth", 0, KJS::DontDelete | KJS::ReadOnly, &ImageNS::calldepth},
286 {"dotsPerMeterX", 0, KJS::DontDelete | KJS::ReadOnly, &ImageNS::calldotsPerMeterX},
287 {"dotsPerMeterY", 0, KJS::DontDelete | KJS::ReadOnly, &ImageNS::calldotsPerMeterY},
288 {"fill", 0, KJS::DontDelete | KJS::ReadOnly, &ImageNS::callfill},
289 {"hasAlphaChannel", 0, KJS::DontDelete | KJS::ReadOnly, &ImageNS::callhasAlphaChannel},
290 {"height", 0, KJS::DontDelete | KJS::ReadOnly, &ImageNS::callheight},
291 {"invertPixels", 0, KJS::DontDelete | KJS::ReadOnly, &ImageNS::callinvertPixels},
292 {"isGrayscale", 0, KJS::DontDelete | KJS::ReadOnly, &ImageNS::callisGrayscale},
293 {"isNull", 0, KJS::DontDelete | KJS::ReadOnly, &ImageNS::callisNull},
294 {"load", 1, KJS::DontDelete | KJS::ReadOnly, &ImageNS::callload},
295 {"mirrored", 1, KJS::DontDelete | KJS::ReadOnly, &ImageNS::callmirrored},
296 {"numBytes", 0, KJS::DontDelete | KJS::ReadOnly, &ImageNS::callnumBytes},
297 {"numColors", 0, KJS::DontDelete | KJS::ReadOnly, &ImageNS::callnumColors},
298 {"offset", 0, KJS::DontDelete | KJS::ReadOnly, &ImageNS::calloffset},
299 {"pixel", 1, KJS::DontDelete | KJS::ReadOnly, &ImageNS::callpixel},
300 {"pixelIndex", 1, KJS::DontDelete | KJS::ReadOnly, &ImageNS::callpixelIndex},
301 {"rect", 0, KJS::DontDelete | KJS::ReadOnly, &ImageNS::callrect},
302 {"rgbSwapped", 0, KJS::DontDelete | KJS::ReadOnly, &ImageNS::callrgbSwapped},
303 {"save", 2, KJS::DontDelete | KJS::ReadOnly, &ImageNS::callsave},
304 {"scaled", 3, KJS::DontDelete | KJS::ReadOnly, &ImageNS::callscaled},
305 {"scaledToHeight", 1, KJS::DontDelete | KJS::ReadOnly, &ImageNS::callscaledToHeight},
306 {"scaledToWidth", 1, KJS::DontDelete | KJS::ReadOnly, &ImageNS::callscaledToWidth},
307 {"serialNumber", 0, KJS::DontDelete | KJS::ReadOnly, &ImageNS::callserialNumber},
308 {"setAlphaChannel", 0, KJS::DontDelete | KJS::ReadOnly, &ImageNS::callsetAlphaChannel},
309 {"setColor", 1, KJS::DontDelete | KJS::ReadOnly, &ImageNS::callsetColor},
310 {"setDotsPerMeterX", 0, KJS::DontDelete | KJS::ReadOnly, &ImageNS::callsetDotsPerMeterX},
311 {"setDotsPerMeterY", 0, KJS::DontDelete | KJS::ReadOnly, &ImageNS::callsetDotsPerMeterY},
312 {"setNumColors", 0, KJS::DontDelete | KJS::ReadOnly, &ImageNS::callsetNumColors},
313 {"setOffset", 0, KJS::DontDelete | KJS::ReadOnly, &ImageNS::callsetOffset},
314 {"setPixel", 2, KJS::DontDelete | KJS::ReadOnly, &ImageNS::callsetPixel},
315 {"size", 0, KJS::DontDelete | KJS::ReadOnly, &ImageNS::callsize},
316 {"valid", 1, KJS::DontDelete | KJS::ReadOnly, &ImageNS::callvalid},
317 {"width", 0, KJS::DontDelete | KJS::ReadOnly, &ImageNS::callwidth}
318 END_METHOD_LUT
319 
320 NO_ENUMS(Image)
321 NO_STATICS(Image)
322 
323 START_CTOR(Image, QImage, 0)
324 if (args.size() == 0)
325 {
326  return new KJSEmbed::ImageBinding(exec, QImage());
327 }
328 if (args.size() == 1)
329 {
330  return new KJSEmbed::ImageBinding(exec, QImage(KJSEmbed::extractQString(exec, args, 0)));
331 } else if (args.size() == 2)
332 {
333  return new KJSEmbed::ImageBinding(exec,
334  QImage(KJSEmbed::extractVariant<QSize>(exec, args, 0),
335  (QImage::Format)KJSEmbed::extractInt(exec, args, 1)));
336 } else if (args.size() == 3)
337 {
338  return new KJSEmbed::ImageBinding(exec,
339  QImage(KJSEmbed::extractInt(exec, args, 0),
340  KJSEmbed::extractInt(exec, args, 1),
341  (QImage::Format)KJSEmbed::extractInt(exec, args, 2)));
342 }
343 return new KJSEmbed::ImageBinding(exec, QImage());
344 END_CTOR
345 
bool isNull() const const
QByteArray toLatin1() const const
AspectRatioMode
static void publish(KJS::ExecState *exec, KJS::JSObject *object, const Method *methods)
Publishes an array of Methods to an object.
QVariant based binding.
typedef ImageConversionFlags
TransformationMode
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Sun Dec 10 2023 03:59:19 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.