2 Copyright (c) 2006 Paolo Capriotti <p.capriotti@gmail.com>
3 (c) 2006 Maurizio Monge <maurizio.monge@kdemail.net>
5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version.
12 #include <QApplication>
13 #include "luaapi/imaging.h"
16 using namespace Loader
;
20 //BEGIN Wrapper<QRectF> -------------------------------------------------------
22 const char* Wrapper
<QRectF
>::class_name() {
26 int Wrapper
<QRectF
>::translate(lua_State
* l
) {
27 QRectF
*r
= retrieve(l
, 1, AssertOk
);
28 QPointF
*p
= Wrapper
<QPointF
>::retrieve(l
, 2, AssertOk
);
33 int Wrapper
<QRectF
>::to_string(lua_State
* l
) {
34 QRectF
*r
= retrieve(l
, 1, AssertOk
);
35 lua_pushfstring(l
, "(%f, %f, %f, %f)", r
->x(), r
->y(), r
->width(), r
->height() );
39 void Wrapper
<QRectF
>::create_index_table(lua_State
* l
) {
40 SET_PROPERTY_RW(l
, x
);
41 SET_PROPERTY_RW(l
, y
);
42 SET_PROPERTY_RW(l
, width
);
43 SET_PROPERTY_RW(l
, height
);
45 SET_PROPERTY_RO(l
, left
);
46 SET_PROPERTY_RO(l
, right
);
47 SET_PROPERTY_RO(l
, top
);
48 SET_PROPERTY_RO(l
, bottom
);
50 set_method(l
, &translate
, "translate");
51 set_meta_method(l
, &to_string
, "__tostring");
53 Comparable
<QRectF
>::register_in_index_table(l
);
56 int Wrapper
<QRectF
>::constructor(lua_State
* l
) {
57 const int n
= lua_gettop(l
);
65 QRectF res
= *retrieve(l
, 1, AssertOk
);
72 double x
= lua_tonumber(l
, 1);
73 double y
= lua_tonumber(l
, 2);
74 double width
= lua_tonumber(l
, 3);
75 double height
= lua_tonumber(l
, 4);
78 create(l
, x
, y
, width
, height
);
82 luaL_error(l
, "Wrong parameter list for Rect constructor");
88 //END Wrapper<QRectF> ---------------------------------------------------------
91 //BEGIN Wrapper<QPointF> ------------------------------------------------------
93 const char* Wrapper
<QPointF
>::class_name() {
97 int Wrapper
<QPointF
>::to_string(lua_State
* l
) {
98 QPointF
*p
= retrieve(l
, 1, AssertOk
);
99 lua_pushfstring(l
, "(%f, %f)", p
->x(), p
->y() );
103 void Wrapper
<QPointF
>::create_index_table(lua_State
* l
) {
104 SET_PROPERTY_RW(l
, x
);
105 SET_PROPERTY_RW(l
, y
);
106 SET_PROPERTY_RO(l
, length
);
108 set_meta_method(l
, &to_string
, "__tostring");
109 set_meta_method(l
, &get_length
, "__len");
111 Comparable
<QPointF
>::register_in_index_table(l
);
112 Summable
<QPointF
>::register_in_index_table(l
);
115 int Wrapper
<QPointF
>::constructor(lua_State
* l
) {
116 const int n
= lua_gettop(l
);
123 QPointF res
= *retrieve(l
, 1, AssertOk
);
129 double x
= lua_tonumber(l
, 1);
130 double y
= lua_tonumber(l
, 2);
136 luaL_error(l
, "Wrong argument count for Point constructor");
143 int Wrapper
<QPointF
>::get_length(lua_State
* l
) {
144 QPointF
*p
= retrieve(l
, 1, DontCheck
);
145 lua_pushnumber(l
, sqrt(p
->x()*p
->x() + p
->y()*p
->y()) );
149 //END Wrapper<QPointF> --------------------------------------------------------
152 //BEGIN Wrapper<QColor>--------------------------------------------------------
155 const char* Wrapper
<QColor
>::class_name() {
159 int Wrapper
<QColor
>::to_string(lua_State
* l
) {
160 QColor
*r
= retrieve(l
, 1, AssertOk
);
162 snprintf(buf
, 32, "#%08x", r
->rgba());
163 lua_pushstring(l
, buf
);
167 void Wrapper
<QColor
>::create_index_table(lua_State
* l
) {
168 SET_PROPERTY_RW(l
, r
);
169 SET_PROPERTY_RW(l
, g
);
170 SET_PROPERTY_RW(l
, b
);
171 SET_PROPERTY_RW(l
, a
);
173 set_meta_method(l
, &to_string
, "__tostring");
176 QColor Wrapper
<QColor
>::get(lua_State
* l
, int index
) {
177 if(lua_isstring(l
, index
)) {
178 QColor
retv(lua_tostring(l
, index
));
180 luaL_error(l
, "Wrong color string \"%s\"", lua_tostring(l
, index
));
184 return *retrieve(l
, index
, AssertOk
);
187 int Wrapper
<QColor
>::constructor(lua_State
* l
) {
188 const int n
= lua_gettop(l
);
196 QColor c
= get(l
, 1);
204 int r
= int(lua_tonumber(l
, 1));
205 int g
= int(lua_tonumber(l
, 2));
206 int b
= int(lua_tonumber(l
, 3));
207 int a
= (n
== 3) ? 255 : int(lua_tonumber(l
, 4));
210 create(l
, r
, g
, b
, a
);
214 luaL_error(l
, "Wrong parameter list for Color constructor");
220 //END Wrapper<QColor>----------------------------------------------------------
223 int GradientWrapper
<T
>::index_event(lua_State
* l
) {
224 if(!lua_isnumber(l
, -1))
225 return GenericWrapperBase::object_meta_index_event(l
);
227 T
*g
= Wrapper
<T
>::retrieve(l
, -2, AssertOk
);
228 double stopnum
= lua_tonumber(l
, -1);
231 QGradientStops s
= g
->stops();
237 int mid
= (min
+max
)/2;
238 if(stopnum
> s
[(min
+max
)/2].first
)
243 if(qAbs(s
[max
].first
-stopnum
) < qAbs(s
[min
].first
-stopnum
))
248 Wrapper
<QColor
>::create(l
, s
[retv
].second
);
249 lua_pushnumber(l
, s
[retv
].first
);
255 int GradientWrapper
<T
>::newindex_event(lua_State
* l
) {
256 if(!lua_isnumber(l
, -2))
257 return GenericWrapperBase::object_meta_newindex_event(l
);
259 T
*g
= Wrapper
<T
>::retrieve(l
, -3, AssertOk
);
260 double stopnum
= lua_tonumber(l
, -2);
261 QColor col
= Wrapper
<QColor
>::get(l
, -1);
264 g
->setColorAt(stopnum
, col
);
269 //BEGIN Wrapper<QLinearGradient>--------------------------------------------------------
271 const char* Wrapper
<QLinearGradient
>::class_name() {
272 return "LinearGradient";
275 void Wrapper
<QLinearGradient
>::create_index_table(lua_State
* l
) {
276 SET_PROPERTY_RW(l
, start
);
277 SET_PROPERTY_RW(l
, finish
);
279 //set_meta_method(l, &index_event, "__index");
280 set_meta_method(l
, &newindex_event
, "__newindex");
283 int Wrapper
<QLinearGradient
>::constructor(lua_State
* l
) {
284 const int n
= lua_gettop(l
);
291 QPointF
* start
= Wrapper
<QPointF
>::retrieve(l
, 1, AssertOk
);
292 QPointF
* final
= Wrapper
<QPointF
>::retrieve(l
, 2, AssertOk
);
294 create(l
, *start
, *final
);
298 luaL_error(l
, "Wrong parameter list for LinearGradient constructor");
305 //END Wrapper<QLinearGradient>----------------------------------------------------------
308 //BEGIN Wrapper<QRadialGradient>--------------------------------------------------------
310 const char* Wrapper
<QRadialGradient
>::class_name() {
311 return "RadialGradient";
314 void Wrapper
<QRadialGradient
>::create_index_table(lua_State
* l
) {
315 SET_PROPERTY_RW(l
, center
);
316 SET_PROPERTY_RW(l
, radius
);
317 SET_PROPERTY_RW(l
, focus
);
319 //set_meta_method(l, &index_event, "__index");
320 set_meta_method(l
, &newindex_event
, "__newindex");
323 int Wrapper
<QRadialGradient
>::constructor(lua_State
* l
) {
324 const int n
= lua_gettop(l
);
331 QPointF
* center
= Wrapper
<QPointF
>::retrieve(l
, 1, AssertOk
);
332 double radius
= lua_tonumber(l
, 2);
334 create(l
, *center
, radius
);
338 QPointF
* center
= Wrapper
<QPointF
>::retrieve(l
, 1, AssertOk
);
339 double radius
= lua_tonumber(l
, 2);
340 QPointF
* focus
= Wrapper
<QPointF
>::retrieve(l
, 3, AssertOk
);
342 create(l
, *center
, radius
, *focus
);
346 luaL_error(l
, "Wrong parameter list for RadialGradient constructor");
353 //END Wrapper<QRadialGradient>----------------------------------------------------------
355 //BEGIN Wrapper<QConicalGradient>--------------------------------------------------------
357 const char* Wrapper
<QConicalGradient
>::class_name() {
358 return "ConicalGradient";
361 void Wrapper
<QConicalGradient
>::create_index_table(lua_State
* l
) {
362 SET_PROPERTY_RW(l
, center
);
363 SET_PROPERTY_RW(l
, angle
);
365 //set_meta_method(l, &index_event, "__index");
366 set_meta_method(l
, &newindex_event
, "__newindex");
369 int Wrapper
<QConicalGradient
>::constructor(lua_State
* l
) {
370 const int n
= lua_gettop(l
);
377 QPointF
* center
= Wrapper
<QPointF
>::retrieve(l
, 1, AssertOk
);
378 double angle
= lua_tonumber(l
, 2);
380 create(l
, *center
, angle
);
384 luaL_error(l
, "Wrong parameter list for Color constructor");
391 //END Wrapper<QConicalGradient>----------------------------------------------------------
393 //BEGIN Wrapper<QBrush>--------------------------------------------------------
395 const char* Wrapper
<QBrush
>::class_name() {
399 void Wrapper
<QBrush
>::create_index_table(lua_State
* l
) {
401 //set_meta_method(l, &to_string, "__tostring");
402 set_method(l
, &translate
, "translate");
403 set_method(l
, &rotate
, "rotate");
404 set_method(l
, &scale
, "scale");
407 QBrush Wrapper
<QBrush
>::get(lua_State
* l
, int index
) {
408 if(QBrush
*b
= retrieve(l
, index
))
410 else if(QLinearGradient
* g
= Wrapper
<QLinearGradient
>::retrieve(l
, index
))
412 else if(QRadialGradient
* g
= Wrapper
<QRadialGradient
>::retrieve(l
, index
))
414 else if(QConicalGradient
* g
= Wrapper
<QConicalGradient
>::retrieve(l
, index
))
416 else if(Loader::Image
* img
= Wrapper
<Image
>::retrieve(l
, index
))
417 return QBrush(img
->image());
419 return QBrush(Wrapper
<QColor
>::get(l
, index
));
422 int Wrapper
<QBrush
>::constructor(lua_State
* l
) {
423 const int n
= lua_gettop(l
);
427 create(l
, Qt::NoBrush
);
430 QBrush b
= get(l
, 1);
436 luaL_error(l
, "Wrong parameter list for Brush constructor");
442 int Wrapper
<QBrush
>::rotate(lua_State
* l
) {
443 const int n
= lua_gettop(l
);
444 if (n
!= 2) luaL_error(l
, "Wrong argument count for Brush::rotate");
446 QBrush
* brush
= retrieve(l
, 1, AssertOk
);
447 double r
= lua_tonumber(l
, 2);
450 QMatrix m
= brush
->matrix();
451 m
= m
* QMatrix().rotate(r
);
456 int Wrapper
<QBrush
>::scale(lua_State
* l
) {
457 const int n
= lua_gettop(l
);
458 if (n
!= 3) luaL_error(l
, "Wrong argument count for Brush::scale");
460 QBrush
* brush
= retrieve(l
, 1, AssertOk
);
461 double x
= lua_tonumber(l
, 2);
462 double y
= lua_tonumber(l
, 3);
465 QMatrix m
= brush
->matrix();
466 m
= m
* QMatrix().scale(x
, y
);
471 int Wrapper
<QBrush
>::translate(lua_State
* l
) {
472 const int n
= lua_gettop(l
);
473 if (n
< 2 || n
> 3) luaL_error(l
, "Wrong argument count for Brush::translate");
475 QBrush
* brush
= retrieve(l
, 1, AssertOk
);
477 double x
= lua_tonumber(l
, 2);
478 double y
= lua_tonumber(l
, 3);
481 QMatrix m
= brush
->matrix();
482 m
= m
* QMatrix().translate(x
, y
);
486 QPointF
* point
= Wrapper
<QPointF
>::retrieve(l
, 2, AssertOk
);
489 QMatrix m
= brush
->matrix();
490 m
= m
* QMatrix().translate(point
->x(), point
->y());
496 //END Wrapper<QBrush>----------------------------------------------------------
499 //BEGIN Wrapper<QFont>--------------------------------------------------------
501 const char* Wrapper
<QFont
>::class_name() {
505 void Wrapper
<QFont
>::create_index_table(lua_State
* l
) {
506 set_meta_method(l
, &to_string
, "__tostring");
509 int Wrapper
<QFont
>::constructor(lua_State
* l
) {
510 const int n
= lua_gettop(l
);
514 create(l
, QApplication::font());
517 QFont
*b
= retrieve(l
, 1, AssertOk
);
523 QString family
= lua_tostring(l
, 1);
524 bool bold
= lua_toboolean(l
, 2);
525 bool italic
= lua_toboolean(l
, 3);
527 create(l
, family
, 12, bold
? QFont::Bold
: QFont::Normal
, italic
);
531 luaL_error(l
, "Wrong parameter list for Font constructor");
537 int Wrapper
<QFont
>::to_string(lua_State
* l
) {
538 QFont
*r
= retrieve(l
, 1, AssertOk
);
539 lua_pushstring(l
, r
->rawName().toAscii().constData());
543 //END Wrapper<QFont>----------------------------------------------------------
545 //BEGIN Wrapper<Image> --------------------------------------------------------
547 const char* Wrapper
<Image
>::class_name() {
551 void Wrapper
<Image
>::create_index_table(lua_State
* l
) {
552 SET_PROPERTY_RO(l
, width
);
553 SET_PROPERTY_RO(l
, height
);
554 SET_PROPERTY_RW(l
, opacity
);
556 set_method(l
, &resetMatrix
, "reset_matrix");
557 set_method(l
, &rotate
, "rotate");
558 set_method(l
, &scale
, "scale");
559 set_method(l
, &translate
, "translate");
560 set_method(l
, &setPaintOver
, "set_paint_over");
561 set_method(l
, &clear
, "clear");
562 set_method(l
, &fillRect
, "fill_rect");
563 set_method(l
, &drawLine
, "draw_line");
564 set_method(l
, &drawImage
, "draw_image");
565 set_method(l
, &drawSVG
, "draw_svg");
566 set_method(l
, &drawGlyph
, "draw_glyph");
567 set_method(l
, &expBlur
, "exp_blur");
568 set_method(l
, &createShadow
, "create_shadow");
571 int Wrapper
<Image
>::constructor(lua_State
* l
) {
572 const int n
= lua_gettop(l
);
576 if(lua_isstring(l
, 1)) {
577 QString path
= file_path(l
, lua_tostring(l
, 1));
578 Context
* context
= retrieve_context(l
);
580 create(l
, context
, path
);
583 Image
*res
= retrieve(l
, 1, AssertOk
);
590 if(lua_isnumber(l
, 1)) {
591 int width
= static_cast<int>(lua_tonumber(l
, 1));
592 int height
= static_cast<int>(lua_tonumber(l
, 2));
594 create(l
, width
, height
);
597 QString path
= file_path(l
, lua_tostring(l
, 1));
598 bool use_cache
= lua_toboolean(l
, 2);
599 Context
* context
= retrieve_context(l
);
601 create(l
, context
, path
, use_cache
);
606 luaL_error(l
, "Wrong argument count for Image constructor");
612 int Wrapper
<Image
>::resetMatrix(lua_State
* l
) {
613 const int n
= lua_gettop(l
);
614 if (n
!= 1) luaL_error(l
, "Wrong argument count for Image::reset_matrix");
616 Image
* img
= retrieve(l
, 1, AssertOk
);
623 int Wrapper
<Image
>::rotate(lua_State
* l
) {
624 const int n
= lua_gettop(l
);
625 if (n
!= 2) luaL_error(l
, "Wrong argument count for Image::rotate");
627 Image
* img
= retrieve(l
, 1, AssertOk
);
628 double r
= lua_tonumber(l
, 2);
635 int Wrapper
<Image
>::scale(lua_State
* l
) {
636 const int n
= lua_gettop(l
);
637 if (n
!= 3) luaL_error(l
, "Wrong argument count for Image::scale");
639 Image
* img
= retrieve(l
, 1, AssertOk
);
640 double x
= lua_tonumber(l
, 2);
641 double y
= lua_tonumber(l
, 3);
648 int Wrapper
<Image
>::translate(lua_State
* l
) {
649 const int n
= lua_gettop(l
);
650 if (n
< 2 || n
> 3) luaL_error(l
, "Wrong argument count for Image::translate");
652 Image
* img
= retrieve(l
, 1, AssertOk
);
654 double x
= lua_tonumber(l
, 2);
655 double y
= lua_tonumber(l
, 3);
658 img
->translate(x
, y
);
661 QPointF
* point
= Wrapper
<QPointF
>::retrieve(l
, 2, AssertOk
);
664 img
->translate(point
->x(), point
->y());
669 int Wrapper
<Image
>::clear(lua_State
* l
) {
670 const int n
= lua_gettop(l
);
671 if (n
< 1 || n
> 2) luaL_error(l
, "Wrong argument count for Image::clear");
673 Image
* img
= retrieve(l
, 1, AssertOk
);
676 QColor col
= Wrapper
<QColor
>::get(l
, 2);
687 int Wrapper
<Image
>::setPaintOver(lua_State
* l
) {
688 const int n
= lua_gettop(l
);
689 if (n
!= 2) luaL_error(l
, "Wrong argument count for Image::set_paint_over");
691 Image
* img
= retrieve(l
, 1, AssertOk
);
692 bool p
= lua_toboolean(l
, 2);
695 img
->setPaintOver(p
);
699 int Wrapper
<Image
>::fillRect(lua_State
* l
) {
700 const int n
= lua_gettop(l
);
701 if (n
!= 3) luaL_error(l
, "Wrong argument count for Image::fill_rect");
703 Image
* img
= retrieve(l
, 1, AssertOk
);
704 QRectF
* rect
= Wrapper
<QRectF
>::retrieve(l
, 2, AssertOk
);
705 QBrush brush
= Wrapper
<QBrush
>::get(l
, 3);
708 img
->fillRect(*rect
, brush
);
712 int Wrapper
<Image
>::drawLine(lua_State
* l
) {
713 const int n
= lua_gettop(l
);
714 if (n
> 5 || n
< 4) luaL_error(l
, "Wrong argument count for Image::draw_line");
716 Image
* img
= retrieve(l
, 1, AssertOk
);
717 QPointF
* from
= Wrapper
<QPointF
>::retrieve(l
, 2, AssertOk
);
718 QPointF
* to
= Wrapper
<QPointF
>::retrieve(l
, 3, AssertOk
);
719 QColor color
= Wrapper
<QColor
>::get(l
, 4);
720 double width
= (n
==5) ? lua_tonumber(l
, 5) : 0.0;
723 img
->drawLine(*from
, *to
, color
, width
);
727 int Wrapper
<Image
>::drawImage(lua_State
* l
) {
728 const int n
= lua_gettop(l
);
729 if (n
< 3 || n
> 5) luaL_error(l
, "Wrong argument count for Image::draw_image");
731 Image
* img
= retrieve(l
, 1, AssertOk
);
732 QRectF
* dest
= Wrapper
<QRectF
>::retrieve(l
, 2, AssertOk
);
733 if (lua_isstring(l
, 3)) {
734 Context
* context
= retrieve_context(l
);
735 const char* image_path
= lua_tostring(l
, 3);
738 QRectF
* src
= Wrapper
<QRectF
>::retrieve(l
, 4, AssertOk
);
739 bool use_cache
= n
== 5 ? lua_toboolean(l
, 5) : true;
740 res
= img
->drawImage(context
, *dest
, file_path(l
, image_path
), *src
, use_cache
);
743 res
= img
->drawImage(context
, *dest
, file_path(l
, image_path
) );
746 lua_pushboolean(l
, res
);
750 if (n
== 5) luaL_error(l
, "Wrong argument count for Image::draw_image");
752 Image
* image
= retrieve(l
, 3, AssertOk
);
754 QRectF
* src
= Wrapper
<QRectF
>::retrieve(l
, 4, AssertOk
);
755 img
->drawImage(*dest
, *image
, *src
);
758 img
->drawImage(*dest
, *image
);
765 int Wrapper
<Image
>::drawSVG(lua_State
* l
) {
766 const int n
= lua_gettop(l
);
767 if (n
!= 3) luaL_error(l
, "Wrong argument count for Image::draw_svg");
769 Image
* img
= retrieve(l
, 1, AssertOk
);
770 QRectF
* rect
= Wrapper
<QRectF
>::retrieve(l
, 2, AssertOk
);
771 const char* file
= lua_tostring(l
, 3);
772 Context
* context
= retrieve_context(l
);
775 bool res
= img
->drawSVG(context
, *rect
, file_path(l
, file
) );
776 lua_pushboolean(l
, res
);
780 int Wrapper
<Image
>::drawGlyph(lua_State
* l
) {
781 int n
= lua_gettop(l
);
782 if (n
< 4 || n
> 8) luaL_error(l
, "Wrong argument count for Image::draw_glyph");
784 Image
* img
= retrieve(l
, 1, AssertOk
);
785 QRectF
* rect
= Wrapper
<QRectF
>::retrieve(l
, 2, AssertOk
);
786 const char* font
= lua_tostring(l
, 3);
787 const char* glyph_str
= lua_tostring(l
, 4);
788 if(!font
|| !glyph_str
)
789 luaL_error(l
, "Null arguments for Image::draw_glyph");
791 unsigned int glyph
= strtoul(glyph_str
, NULL
, 0);
792 bool draw_inner_bg
= true;
794 QBrush fg
= Qt::black
;
795 QBrush bg
= Qt::white
;
799 draw_inner_bg
= lua_toboolean(l
, 8);
801 border
= lua_tonumber(l
, 7);
803 bg
= Wrapper
<QBrush
>::get(l
, 6);
805 fg
= Wrapper
<QBrush
>::get(l
, 5);
811 Context
* context
= retrieve_context(l
);
813 bool res
= img
->drawGlyph(context
, *rect
, file_path(l
, font
), glyph
,
814 fg
, bg
, border
, draw_inner_bg
);
815 lua_pushboolean(l
, res
);
819 int Wrapper
<Image
>::expBlur(lua_State
* l
) {
820 int n
= lua_gettop(l
);
821 if (n
!= 2) luaL_error(l
, "Wrong argument count for Image::exp_blur");
823 Image
* img
= retrieve(l
, 1, AssertOk
);
824 double radius
= lua_tonumber(l
, 2);
826 img
->expBlur(radius
);
832 int Wrapper
<Image
>::createShadow(lua_State
* l
) {
833 int n
= lua_gettop(l
);
834 if (n
< 3 || n
> 5) luaL_error(l
, "Wrong argument count for Image::create_shadow");
836 Image
* img
= retrieve(l
, 1, AssertOk
);
837 double radius
= lua_tonumber(l
, 2);
838 QColor color
= Wrapper
<QColor
>::get(l
, 3);
845 offset
= *Wrapper
<QPointF
>::retrieve(l
, 5, AssertOk
);
847 grow
= Wrapper
<QPointF
>::retrieve(l
, 4, AssertOk
)->toPoint();
853 create(l
, img
->createShadow(radius
, color
, grow
, offset
));
857 //END Wrapper<Image> ----------------------------------------------------------
859 //BEGIN Wrapper<Glyph> ------------------------------------------------------
861 const char* Wrapper
<Glyph
>::class_name() {
865 void Wrapper
<Glyph
>::create_index_table(lua_State
* /*l*/) {
869 int Wrapper
<Glyph
>::constructor(lua_State
* l
) {
870 const int n
= lua_gettop(l
);
874 unsigned int c
= strtoul(lua_tostring(l
, 1), NULL
, 0);
880 Context
* context
= retrieve_context(l
);
881 QString path
= file_path(l
, lua_tostring(l
, 1));
882 unsigned int c
= strtoul(lua_tostring(l
, 2), NULL
, 0);
884 create(l
, context
, path
, c
);
888 Context
* context
= retrieve_context(l
);
889 if (lua_isnil(l
, 1)) {
890 // no font path, just load the string
891 QString
str(lua_tostring(l
, 2));
892 int d
= static_cast<int>(lua_tonumber(l
, 3));
897 QString path
= file_path(l
, lua_tostring(l
, 1));
898 unsigned int c
= strtoul(lua_tostring(l
, 2), NULL
, 0);
899 int d
= int(lua_tonumber(l
, 3));
901 create(l
, context
, path
, c
, d
);
906 luaL_error(l
, "Wrong argument count for Glyph constructor");
913 //END Wrapper<QPointF> --------------------------------------------------------
915 } //end namespace LuaApi