summaryrefslogtreecommitdiffstats
path: root/src/widgets/qwidgetplugin.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/widgets/qwidgetplugin.cpp')
-rw-r--r--src/widgets/qwidgetplugin.cpp729
1 files changed, 729 insertions, 0 deletions
diff --git a/src/widgets/qwidgetplugin.cpp b/src/widgets/qwidgetplugin.cpp
new file mode 100644
index 000000000..d0d34a469
--- /dev/null
+++ b/src/widgets/qwidgetplugin.cpp
@@ -0,0 +1,729 @@
+/****************************************************************************
+**
+** Implementation of TQWidgetPlugin class
+**
+** Created : 010920
+**
+** Copyright (C) 2001-2008 Trolltech ASA. All rights reserved.
+**
+** This file is part of the widgets module of the TQt GUI Toolkit.
+**
+** This file may be used under the terms of the GNU General
+** Public License versions 2.0 or 3.0 as published by the Free
+** Software Foundation and appearing in the files LICENSE.GPL2
+** and LICENSE.GPL3 included in the packaging of this file.
+** Alternatively you may (at your option) use any later version
+** of the GNU General Public License if such license has been
+** publicly approved by Trolltech ASA (or its successors, if any)
+** and the KDE Free TQt Foundation.
+**
+** Please review the following information to ensure GNU General
+** Public Licensing retquirements will be met:
+** http://trolltech.com/products/qt/licenses/licensing/opensource/.
+** If you are unsure which license is appropriate for your use, please
+** review the following information:
+** http://trolltech.com/products/qt/licenses/licensing/licensingoverview
+** or contact the sales department at sales@trolltech.com.
+**
+** This file may be used under the terms of the Q Public License as
+** defined by Trolltech ASA and appearing in the file LICENSE.TQPL
+** included in the packaging of this file. Licensees holding valid TQt
+** Commercial licenses may use this file in accordance with the TQt
+** Commercial License Agreement provided with the Software.
+**
+** This file is provided "AS IS" with NO WARRANTY OF ANY KIND,
+** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted
+** herein.
+**
+**********************************************************************/
+
+#include "qwidgetplugin.h"
+
+#ifndef QT_NO_WIDGETPLUGIN
+#include "qwidgetinterface_p.h"
+#include "qobjectcleanuphandler.h"
+#include "qwidget.h"
+#ifdef QT_CONTAINER_CUSTOM_WIDGETS
+#include "qwidgetlist.h"
+#endif
+
+/*!
+ \class TQWidgetPlugin qwidgetplugin.h
+ \brief The TQWidgetPlugin class provides an abstract base for custom TQWidget plugins.
+
+ \ingroup plugins
+
+ The widget plugin is a simple plugin interface that makes it easy
+ to create custom widgets that can be included in forms using \link
+ designer-manual.book TQt Designer\endlink and used by applications.
+
+ Writing a widget plugin is achieved by subclassing this base
+ class, reimplementing the pure virtual functions keys(), create(),
+ group(), iconSet(), includeFile(), toolTip(), whatsThis() and
+ isContainer(), and exporting the class with the \c Q_EXPORT_PLUGIN
+ macro.
+
+ See the \link designer-manual.book TQt Designer manual's\endlink,
+ 'Creating Custom Widgets' section in the 'Creating Custom Widgets'
+ chapter, for a complete example of a TQWidgetPlugin.
+
+ See also the \link plugins-howto.html Plugins
+ documentation\endlink and the \l{TQWidgetFactory} class that is
+ supplied with \link designer-manual.book TQt Designer\endlink.
+*/
+
+class TQWidgetPluginPrivate : public TQWidgetFactoryInterface,
+#ifdef QT_CONTAINER_CUSTOM_WIDGETS
+ public TQWidgetContainerInterfacePrivate,
+#endif
+ private TQLibraryInterface
+{
+public:
+ TQWidgetPluginPrivate( TQWidgetPlugin *p )
+ : plugin( p )
+ {
+ }
+
+ virtual ~TQWidgetPluginPrivate();
+
+ TQRESULT queryInterface( const TQUuid &iid, TQUnknownInterface **iface );
+ Q_REFCOUNT;
+
+ TQStringList featureList() const;
+ TQWidget *create( const TQString &key, TQWidget *parent, const char *name );
+ TQString group( const TQString &widget ) const;
+ TQIconSet iconSet( const TQString &widget ) const;
+ TQString includeFile( const TQString &widget ) const;
+ TQString toolTip( const TQString &widget ) const;
+ TQString whatsThis( const TQString &widget ) const;
+ bool isContainer( const TQString &widget ) const;
+#ifdef QT_CONTAINER_CUSTOM_WIDGETS
+ TQWidget* containerOfWidget( const TQString &key, TQWidget *widget ) const;
+ bool isPassiveInteractor( const TQString &key, TQWidget *widget ) const;
+ bool supportsPages( const TQString &key ) const;
+ TQWidget *addPage( const TQString &key, TQWidget *container, const TQString &name, int index ) const;
+ void insertPage( const TQString &key, TQWidget *container,
+ const TQString &name, int index, TQWidget *page ) const;
+ void Page( const TQString &key, TQWidget *container,
+ const TQString &name, int index, TQWidget *page ) const;
+ void removePage( const TQString &key, TQWidget *container, int index ) const;
+ void movePage( const TQString &key, TQWidget *container, int fromIndex, int toIndex ) const;
+ int count( const TQString &key, TQWidget *container ) const;
+ int currentIndex( const TQString &key, TQWidget *container ) const;
+ TQString pageLabel( const TQString &key, TQWidget *container, int index ) const;
+ TQWidget *page( const TQString &key, TQWidget *container, int index ) const;
+ void renamePage( const TQString &key, TQWidget *container, int index, const TQString &newName ) const;
+ TQWidgetList pages( const TQString &key, TQWidget *container ) const;
+ TQString createCode( const TQString &key, const TQString &container,
+ const TQString &page, const TQString &pageName ) const;
+#endif // QT_CONTAINER_CUSTOM_WIDGETS
+ bool init();
+ void cleanup();
+ bool canUnload() const;
+
+private:
+ TQWidgetPlugin *plugin;
+ TQObjectCleanupHandler widgets;
+};
+
+TQRESULT TQWidgetPluginPrivate::queryInterface( const TQUuid &iid, TQUnknownInterface **iface )
+{
+ *iface = 0;
+
+ if ( iid == IID_QUnknown )
+ *iface = (TQWidgetFactoryInterface*)this;
+ else if ( iid == IID_QFeatureList )
+ *iface = (TQFeatureListInterface*)this;
+ else if ( iid == IID_QWidgetFactory )
+ *iface = (TQWidgetFactoryInterface*)this;
+ else if ( iid == IID_QLibrary )
+ *iface = (TQLibraryInterface*)this;
+#ifdef QT_CONTAINER_CUSTOM_WIDGETS
+ else if ( iid == IID_QWidgetContainer )
+ *iface = (TQWidgetContainerInterfacePrivate*)this;
+#endif
+ else
+ return TQE_NOINTERFACE;
+
+ (*iface)->addRef();
+ return TQS_OK;
+}
+
+/*!
+ \fn TQStringList TQWidgetPlugin::keys() const
+
+ Returns the list of widget keys this plugin supports.
+
+ These keys must be the class names of the custom widgets that are
+ implemented in the plugin.
+
+ \sa create()
+*/
+
+/*!
+ \fn TQWidget *TQWidgetPlugin::create( const TQString &, TQWidget *, const char * )
+
+ Creates and returns a TQWidget object for the widget key \a key.
+ The widget key is the class name of the retquired widget. The \a
+ name and \a parent arguments are passed to the custom widget's
+ constructor.
+
+ \sa keys()
+*/
+
+TQWidgetPluginPrivate::~TQWidgetPluginPrivate()
+{
+ delete plugin;
+}
+
+TQStringList TQWidgetPluginPrivate::featureList() const
+{
+ return plugin->keys();
+}
+
+TQWidget *TQWidgetPluginPrivate::create( const TQString &key, TQWidget *parent, const char *name )
+{
+ TQWidget *w = plugin->create( key, parent, name );
+ widgets.add( w );
+ return w;
+}
+
+TQString TQWidgetPluginPrivate::group( const TQString &widget ) const
+{
+ return plugin->group( widget );
+}
+
+TQIconSet TQWidgetPluginPrivate::iconSet( const TQString &widget ) const
+{
+ return plugin->iconSet( widget );
+}
+
+TQString TQWidgetPluginPrivate::includeFile( const TQString &widget ) const
+{
+ return plugin->includeFile( widget );
+}
+
+TQString TQWidgetPluginPrivate::toolTip( const TQString &widget ) const
+{
+ return plugin->toolTip( widget );
+}
+
+TQString TQWidgetPluginPrivate::whatsThis( const TQString &widget ) const
+{
+ return plugin->whatsThis( widget );
+}
+
+bool TQWidgetPluginPrivate::isContainer( const TQString &widget ) const
+{
+ return plugin->isContainer( widget );
+}
+
+bool TQWidgetPluginPrivate::init()
+{
+ return TRUE;
+}
+
+void TQWidgetPluginPrivate::cleanup()
+{
+ widgets.clear();
+}
+
+bool TQWidgetPluginPrivate::canUnload() const
+{
+ return widgets.isEmpty();
+}
+
+#ifdef QT_CONTAINER_CUSTOM_WIDGETS
+TQWidget* TQWidgetPluginPrivate::containerOfWidget( const TQString &key, TQWidget *widget ) const
+{
+ TQWidgetContainerPlugin *p = (TQWidgetContainerPlugin*)plugin->qt_cast( "TQWidgetContainerPlugin" );
+ if ( p )
+ return p->containerOfWidget( key, widget );
+ return widget;
+}
+
+int TQWidgetPluginPrivate::count( const TQString &key, TQWidget *container ) const
+{
+ TQWidgetContainerPlugin *p = (TQWidgetContainerPlugin*)plugin->qt_cast( "TQWidgetContainerPlugin" );
+ if ( p )
+ return p->count( key, container );
+ return 0;
+}
+
+int TQWidgetPluginPrivate::currentIndex( const TQString &key, TQWidget *container ) const
+{
+ TQWidgetContainerPlugin *p = (TQWidgetContainerPlugin*)plugin->qt_cast( "TQWidgetContainerPlugin" );
+ if ( p )
+ return p->currentIndex( key, container );
+ return -1;
+}
+
+TQString TQWidgetPluginPrivate::pageLabel( const TQString &key, TQWidget *container, int index ) const
+{
+ TQWidgetContainerPlugin *p = (TQWidgetContainerPlugin*)plugin->qt_cast( "TQWidgetContainerPlugin" );
+ if ( p )
+ return p->pageLabel( key, container, index );
+ return TQString::null;
+}
+
+TQWidget *TQWidgetPluginPrivate::page( const TQString &key, TQWidget *container, int index ) const
+{
+ TQWidgetContainerPlugin *p = (TQWidgetContainerPlugin*)plugin->qt_cast( "TQWidgetContainerPlugin" );
+ if ( p )
+ return p->page( key, container, index );
+ return 0;
+}
+
+bool TQWidgetPluginPrivate::isPassiveInteractor( const TQString &key, TQWidget *widget ) const
+{
+ TQWidgetContainerPlugin *p = (TQWidgetContainerPlugin*)plugin->qt_cast( "TQWidgetContainerPlugin" );
+ if ( p )
+ return p->isPassiveInteractor( key, widget );
+ return FALSE;
+}
+
+bool TQWidgetPluginPrivate::supportsPages( const TQString &key ) const
+{
+ TQWidgetContainerPlugin *p = (TQWidgetContainerPlugin*)plugin->qt_cast( "TQWidgetContainerPlugin" );
+ if ( p )
+ return p->supportsPages( key );
+ return 0;
+}
+
+TQWidget *TQWidgetPluginPrivate::addPage( const TQString &key, TQWidget *container,
+ const TQString &name, int index ) const
+{
+ TQWidgetContainerPlugin *p = (TQWidgetContainerPlugin*)plugin->qt_cast( "TQWidgetContainerPlugin" );
+ if ( p )
+ return p->addPage( key, container, name, index );
+ return 0;
+}
+
+void TQWidgetPluginPrivate::insertPage( const TQString &key, TQWidget *container,
+ const TQString &name, int index, TQWidget *page ) const
+{
+ TQWidgetContainerPlugin *p = (TQWidgetContainerPlugin*)plugin->qt_cast( "TQWidgetContainerPlugin" );
+ if ( p )
+ p->insertPage( key, container, name, index, page );
+}
+
+void TQWidgetPluginPrivate::removePage( const TQString &key, TQWidget *container, int index ) const
+{
+ TQWidgetContainerPlugin *p = (TQWidgetContainerPlugin*)plugin->qt_cast( "TQWidgetContainerPlugin" );
+ if ( p )
+ p->removePage( key, container, index );
+}
+
+void TQWidgetPluginPrivate::movePage( const TQString &key, TQWidget *container,
+ int fromIndex, int toIndex ) const
+{
+ TQWidgetContainerPlugin *p = (TQWidgetContainerPlugin*)plugin->qt_cast( "TQWidgetContainerPlugin" );
+ if ( p )
+ p->movePage( key, container, fromIndex, toIndex );
+}
+
+void TQWidgetPluginPrivate::renamePage( const TQString &key, TQWidget *container,
+ int index, const TQString &newName ) const
+{
+ TQWidgetContainerPlugin *p = (TQWidgetContainerPlugin*)plugin->qt_cast( "TQWidgetContainerPlugin" );
+ if ( p )
+ p->renamePage( key, container, index, newName );
+}
+
+TQWidgetList TQWidgetPluginPrivate::pages( const TQString &key, TQWidget *container ) const
+{
+ TQWidgetContainerPlugin *p = (TQWidgetContainerPlugin*)plugin->qt_cast( "TQWidgetContainerPlugin" );
+ if ( p )
+ return p->pages( key, container );
+ return TQWidgetList();
+}
+
+TQString TQWidgetPluginPrivate::createCode( const TQString &key, const TQString &container,
+ const TQString &page, const TQString &pageName ) const
+{
+ TQWidgetContainerPlugin *p = (TQWidgetContainerPlugin*)plugin->qt_cast( "TQWidgetContainerPlugin" );
+ if ( p )
+ return p->createCode( key, container, page, pageName );
+ return TQString::null;
+}
+#endif // QT_CONTAINER_CUSTOM_WIDGETS
+
+/*!
+ Constructs a widget plugin. This is invoked automatically by the
+ \c Q_EXPORT_PLUGIN macro.
+*/
+TQWidgetPlugin::TQWidgetPlugin()
+ : TQGPlugin( (TQWidgetFactoryInterface*)(d = new TQWidgetPluginPrivate( this )) )
+{
+}
+
+/*!
+ Destroys the widget plugin.
+
+ You never have to call this explicitly. TQt destroys a plugin
+ automatically when it is no longer used.
+*/
+TQWidgetPlugin::~TQWidgetPlugin()
+{
+ // don't delete d, as this is deleted by d
+}
+
+/*!
+ Returns the group (toolbar name) that the custom widget of class
+ \a key should be part of when \e{TQt Designer} loads it.
+
+ The default implementation returns TQString::null.
+*/
+TQString TQWidgetPlugin::group( const TQString & ) const
+{
+ return TQString::null;
+}
+
+/*!
+ Returns the iconset that \e{TQt Designer} should use to represent
+ the custom widget of class \a key in the toolbar.
+
+ The default implementation returns an null iconset.
+*/
+TQIconSet TQWidgetPlugin::iconSet( const TQString & ) const
+{
+ return TQIconSet();
+}
+
+/*!
+ Returns the name of the include file that \e{TQt Designer} and \c
+ uic should use to include the custom widget of class \a key in
+ generated code.
+
+ The default implementation returns TQString::null.
+*/
+TQString TQWidgetPlugin::includeFile( const TQString & ) const
+{
+ return TQString::null;
+}
+
+/*!
+ Returns the text of the tooltip that \e{TQt Designer} should use
+ for the custom widget of class \a key's toolbar button.
+
+ The default implementation returns TQString::null.
+*/
+TQString TQWidgetPlugin::toolTip( const TQString & ) const
+{
+ return TQString::null;
+}
+
+/*!
+ Returns the text of the whatsThis text that \e{TQt Designer} should
+ use when the user requests whatsThis help for the custom widget of
+ class \a key.
+
+ The default implementation returns TQString::null.
+*/
+TQString TQWidgetPlugin::whatsThis( const TQString & ) const
+{
+ return TQString::null;
+}
+
+/*!
+ Returns TRUE if the custom widget of class \a key can contain
+ other widgets, e.g. like TQFrame; otherwise returns FALSE.
+
+ The default implementation returns FALSE.
+*/
+bool TQWidgetPlugin::isContainer( const TQString & ) const
+{
+ return FALSE;
+}
+
+#ifdef QT_CONTAINER_CUSTOM_WIDGETS
+
+/*!
+ \class TQWidgetContainerPlugin qwidgetplugin.h
+ \brief The TQWidgetContainerPlugin class provides an abstract base
+ for complex custom container TQWidget plugins.
+
+ \internal
+
+ \ingroup plugins
+
+ The widget container plugin is a subclass of TQWidgetPlugin and
+ extends the interface with functions necessary for supporting
+ complex container widgets via plugins. These container widgets are
+ widgets that have one or multiple sub widgets which act as the
+ widget's containers. If the widget has multiple container
+ subwidgets, they are referred to as "pages", and only one can be
+ active at a time. Examples of complex container widgets include:
+ TQTabWidget, TQWidgetStack and TQToolBox.
+
+ Writing a complex container widget plugin is achieved by
+ subclassing this base class. First by reimplementing
+ TQWidgetPlugin's pure virtual functions keys(), create(), group(),
+ iconSet(), includeFile(), toolTip(), whatsThis() and
+ isContainer(), and exporting the class with the \c Q_EXPORT_PLUGIN
+ macro. In addition containerOfWidget(), isPassiveInteractor() and
+ supportsPages() must be reimplemented. If the widget
+ supportsPages(), count(), currentIndex(), pageLabel(), page(),
+ pages() and createCode() must be implemented. If the widget
+ supportsPages() and you want to allow the containers pages to be
+ modified, you must also reimplement addPage(), insertPage(),
+ removePage(), movePage() and renamePage().
+
+ \sa TQWidgetPlugin
+*/
+
+/*!
+ Constructs a complex container widget plugin. This is invoked
+ automatically by the \c Q_EXPORT_PLUGIN macro.
+*/
+
+TQWidgetContainerPlugin::TQWidgetContainerPlugin()
+ : TQWidgetPlugin()
+{
+}
+
+/*!
+ Destroys the complex container widget plugin.
+
+ You never have to call this explicitly. TQt destroys a plugin
+ automatically when it is no longer used.
+*/
+
+TQWidgetContainerPlugin::~TQWidgetContainerPlugin()
+{
+}
+
+/*!
+ Operates on the plugin's \a key class.
+
+ Returns the current \a container's custom widget. If the custom
+ widget is a tab widget, this function takes the \a container as
+ input and returns the widget's current page.
+
+ The default implementation returns \a container.
+*/
+
+TQWidget* TQWidgetContainerPlugin::containerOfWidget( const TQString &,
+ TQWidget *container ) const
+{
+ return container;
+}
+
+/*!
+ Operates on the plugin's \a key class.
+
+ Returns the \a container custom widget's number of pages. If the
+ custom widget is a tab widget, this function returns the number of
+ tabs.
+
+ The default implementation returns 0.
+*/
+
+int TQWidgetContainerPlugin::count( const TQString &, TQWidget * ) const
+{
+ return 0;
+}
+
+/*!
+ Operates on the plugin's \a key class.
+
+ Returns the \a container custom widget's current page index. If
+ the custom widget is a tab widget, this function returns the
+ current tab's index.
+
+ The default implementation returns -1.
+*/
+
+int TQWidgetContainerPlugin::currentIndex( const TQString &, TQWidget * ) const
+{
+ return -1;
+}
+
+/*!
+ Operates on the plugin's \a key class.
+
+ Returns the \a container custom widget's label at position \a
+ index. If the custom widget is a tab widget, this function returns
+ the current tab's label.
+
+ The default implementation returns a null string.
+*/
+
+TQString TQWidgetContainerPlugin::pageLabel( const TQString &, TQWidget *, int ) const
+{
+ return TQString::null;
+}
+
+/*!
+ Operates on the plugin's \a key class.
+
+ Returns the \a container custom widget's page at position \a
+ index. If the custom widget is a tab widget, this function returns
+ the tab at index position \e index.
+
+
+ The default implementation returns 0.
+*/
+
+TQWidget *TQWidgetContainerPlugin::page( const TQString &, TQWidget *, int ) const
+{
+ return 0;
+}
+
+/*!
+ Operates on the plugin's \a key class.
+
+ Returns TRUE if the \a container custom widget is a passive
+ interactor for class \e key; otherwise returns FALSE. The \a
+ container is a child widget of the actual custom widget.
+
+ Usually, when a custom widget is used in \e{TQt Designer}'s design
+ mode, no widget receives any mouse or key events, since \e{TQt
+ Designer} filters and processes them itself. If one or more
+ widgets of a custom widget still need to receive such events, for
+ example, because the widget needs to change pages, this function
+ must return TRUE for the widget. In such cases \e{TQt Designer}
+ will not filter out key and mouse events destined for the widget.
+
+ If the custom widget is a tab widget, the tab bar is the passive
+ interactor, since that's what the user will use to change pages.
+
+ The default implementation returns FALSE.
+*/
+
+bool TQWidgetContainerPlugin::isPassiveInteractor( const TQString &,
+ TQWidget *container ) const
+{
+ Q_UNUSED( container )
+ return FALSE;
+}
+
+/*!
+ Operates on the plugin's \a key class.
+
+ Returns TRUE if the widget supports pages; otherwise returns
+ FALSE. If the custom widget is a tab widget this function should
+ return TRUE.
+
+ The default implementation returns FALSE.
+*/
+
+bool TQWidgetContainerPlugin::supportsPages( const TQString & ) const
+{
+ return FALSE;
+}
+
+/*!
+ Operates on the plugin's \a key class.
+
+ This function is called when a new page with the given \a name
+ should be added to the \a container custom widget at position \a
+ index.
+
+ The default implementation does nothing.
+*/
+
+TQWidget* TQWidgetContainerPlugin::addPage( const TQString &, TQWidget *,
+ const TQString &, int ) const
+{
+ return 0;
+}
+
+/*!
+ Operates on the plugin's \a key class.
+
+ This function is called when a new page, \a page, with the given
+ \a name should be added to the \a container custom widget at
+ position \a index.
+
+ The default implementation does nothing.
+*/
+
+void TQWidgetContainerPlugin::insertPage( const TQString &, TQWidget *,
+ const TQString &, int, TQWidget * ) const
+{
+}
+
+/*!
+ Operates on the plugin's \a key class.
+
+ This function is called when the page at position \a index should
+ be removed from the \a container custom widget.
+
+ The default implementation does nothing.
+*/
+
+void TQWidgetContainerPlugin::removePage( const TQString &, TQWidget *, int ) const
+{
+}
+
+/*!
+ Operates on the plugin's \a key class.
+
+ This function is called when the page at position \a fromIndex should
+ be moved to position \a toIndex in the \a container custom widget.
+
+ The default implementation does nothing.
+*/
+
+void TQWidgetContainerPlugin::movePage( const TQString &, TQWidget *, int, int ) const
+{
+}
+
+/*!
+ Operates on the plugin's \a key class.
+
+ This function is called when the page at position \a index should
+ be renamed (have its label changed) to \a newName in the \a
+ container custom widget.
+
+ The default implementation does nothing.
+*/
+
+void TQWidgetContainerPlugin::renamePage( const TQString &, TQWidget *,
+ int, const TQString & ) const
+{
+}
+
+/*!
+ Operates on the plugin's \a key class.
+
+ This function should return a list of the \a container custom
+ widget's pages.
+*/
+
+TQWidgetList TQWidgetContainerPlugin::pages( const TQString &, TQWidget * ) const
+{
+ return TQWidgetList();
+}
+
+/*!
+ Operates on the plugin's \a key class.
+
+ This function is called from \e{TQt Designer}'s User Interface
+ Compiler \c uic, when generating C++ code for inserting a page in
+ the \a container custom widget. The name of the page widget which
+ should be inserted at the end of the container is \a page, and the
+ label of the page should be \a pageName.
+
+ If the custom widget was a TQTabWidget, the implementation of this
+ function should return:
+
+ \code
+ return widget + "->addTab( " + page + ", \"" + pageName + "\" )";
+ \endcode
+
+ Warning: If the code returned by this function contains invalid
+ C++ syntax, the generated \c uic code will not compile.
+*/
+
+TQString TQWidgetContainerPlugin::createCode( const TQString &, const TQString &,
+ const TQString &, const TQString & ) const
+{
+ return TQString::null;
+}
+
+#endif // QT_CONTAINER_CUSTOM_WIDGETS
+
+#endif //QT_NO_WIDGETPLUGIN