// -*- c++ -*- /* * Copyright (C) 2001-2003, Richard J. Moore <rich@kde.org> * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public License * along with this library; see the file COPYING.LIB. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. */ #ifndef KJSEMBED_BINDINGSBINDINGBASE_H #define KJSEMBED_BINDINGSBINDINGBASE_H #include <kjs/interpreter.h> #include <kjs/identifier.h> #include <kjs/types.h> namespace KJSEmbed { class KJSEmbedPart; namespace Bindings { /** Baseclass for adding bindings at runtime. @author ian reinhart geiser <geiseri@kde.org> */ class JSBindingBase { public: /** * This method is called by the KJSFactory to bootstrap the plugin. * Plugin developers will want to use this method to create their TQObject binding, * or call their addBindings() method in their JSOpaque proxy or JSValueProxy. * * The value returned from ths function is the KJS::Object that represents the * proxy arround the added object. */ virtual KJS::Object createBinding( KJSEmbedPart *jspart, KJS::ExecState *exec, const KJS::List &args ) const = 0; /** * Adds bindings to a specific object. This is useful if you wish to add bindings to a proxy * that has been created elsewhere. */ virtual void addBindings( KJSEmbedPart *jspart, KJS::ExecState *exec, KJS::Object &proxy ) const = 0; }; } } #endif