kjsembed
svg_binding.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 "svg_binding.h" 00023 00024 #include <QtSvg/QSvgWidget> 00025 #include <QtCore/QDebug> 00026 00027 #include <kjs/object.h> 00028 00029 #include "qwidget_binding.h" 00030 #include "static_binding.h" 00031 #include "kjseglobal.h" 00032 00033 using namespace KJSEmbed; 00034 00035 namespace SvgRendererNS { 00036 START_QOBJECT_METHOD( animationDuration, QSvgRenderer ) 00037 result = KJS::jsNumber(object->animationDuration()); 00038 END_QOBJECT_METHOD 00039 00040 START_QOBJECT_METHOD( defaultSize, QSvgRenderer ) 00041 result = KJSEmbed::createVariant(exec, "QSize", object->defaultSize() ); 00042 END_QOBJECT_METHOD 00043 00044 START_QOBJECT_METHOD( isValid, QSvgRenderer ) 00045 result = KJS::jsBoolean(object->isValid()); 00046 END_QOBJECT_METHOD 00047 00048 START_QOBJECT_METHOD( animated, QSvgRenderer ) 00049 result = KJS::jsBoolean(object->animated()); 00050 END_QOBJECT_METHOD 00051 } 00052 00053 START_METHOD_LUT( SvgRenderer ) 00054 {"animationDuration", 0, KJS::DontDelete|KJS::ReadOnly, &SvgRendererNS::animationDuration}, 00055 {"defaultSize", 0, KJS::DontDelete|KJS::ReadOnly, &SvgRendererNS::defaultSize}, 00056 {"isValid", 0, KJS::DontDelete|KJS::ReadOnly, &SvgRendererNS::isValid}, 00057 {"animated", 0, KJS::DontDelete|KJS::ReadOnly, &SvgRendererNS::animated} 00058 END_METHOD_LUT 00059 00060 NO_ENUMS( SvgRenderer ) 00061 NO_STATICS( SvgRenderer ) 00062 00063 KJSO_SIMPLE_BINDING_CTOR( SvgRenderer, QSvgRenderer, QObjectBinding ) 00064 KJSO_QOBJECT_BIND( SvgRenderer, QSvgRenderer ) 00065 00066 KJSO_START_CTOR( SvgRenderer, QSvgRenderer, 0 ) 00067 QSvgRenderer *renderer = 0; 00068 if( args.size() == 1 ) 00069 { 00070 QObject *arg0 = KJSEmbed::extractObject<QObject>(exec, args, 0, 0); 00071 renderer = new QSvgRenderer(arg0); 00072 } 00073 else if( args.size() == 2 ) 00074 { 00075 QString arg0 = KJSEmbed::extractVariant<QString>(exec, args, 0 ); 00076 QObject *arg1 = KJSEmbed::extractObject<QObject>(exec, args, 1, 0); 00077 renderer = new QSvgRenderer(arg0,arg1); 00078 } 00079 else 00080 { 00081 renderer = new QSvgRenderer(); 00082 } 00083 00084 KJS::JSObject *rendererObject = new SvgRenderer( exec, renderer ); 00085 return rendererObject; 00086 KJSO_END_CTOR 00087 00088 namespace SvgWidgetNS 00089 { 00090 START_QOBJECT_METHOD( renderer, QSvgWidget ) 00091 result = KJSEmbed::createQObject( exec, object->renderer(), ObjectBinding::QObjOwned ); 00092 END_QOBJECT_METHOD 00093 } 00094 00095 START_METHOD_LUT( SvgWidget ) 00096 {"renderer", 0, KJS::DontDelete|KJS::ReadOnly, &SvgWidgetNS::renderer} 00097 END_METHOD_LUT 00098 00099 NO_ENUMS( SvgWidget ) 00100 NO_STATICS( SvgWidget ) 00101 00102 KJSO_SIMPLE_BINDING_CTOR( SvgWidget, QSvgWidget, QWidgetBinding ) 00103 KJSO_QOBJECT_BIND( SvgWidget, QSvgWidget ) 00104 00105 KJSO_START_CTOR( SvgWidget, QSvgWidget, 0 ) 00106 QSvgWidget *widget = 0; 00107 if( args.size() == 1 ) 00108 { 00109 QWidget *arg0 = KJSEmbed::extractObject<QWidget>(exec, args, 0, 0); 00110 widget = new QSvgWidget(arg0); 00111 } 00112 else if( args.size() == 2 ) 00113 { 00114 QString arg0 = KJSEmbed::extractVariant<QString>(exec, args, 0 ); 00115 QWidget *arg1 = KJSEmbed::extractObject<QWidget>(exec, args, 1, 0); 00116 widget = new QSvgWidget(arg0,arg1); 00117 } 00118 else 00119 { 00120 widget = new QSvgWidget(); 00121 } 00122 00123 KJS::JSObject *rendererObject = new SvgWidget( exec, widget ); 00124 return rendererObject; 00125 KJSO_END_CTOR 00126 00127 //kate: indent-spaces on; indent-width 4; replace-tabs on; indent-mode cstyle;
KDE 4.6 API Reference