summaryrefslogtreecommitdiffstats
path: root/tqtinterface/qt4/src/widgets/tqwidgetplugin.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tqtinterface/qt4/src/widgets/tqwidgetplugin.cpp')
-rw-r--r--tqtinterface/qt4/src/widgets/tqwidgetplugin.cpp729
1 files changed, 0 insertions, 729 deletions
diff --git a/tqtinterface/qt4/src/widgets/tqwidgetplugin.cpp b/tqtinterface/qt4/src/widgets/tqwidgetplugin.cpp
deleted file mode 100644
index 57eed86..0000000
--- a/tqtinterface/qt4/src/widgets/tqwidgetplugin.cpp
+++ /dev/null
@@ -1,729 +0,0 @@
-/****************************************************************************
-**
-** 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 requirements 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 "tqwidgetplugin.h"
-
-#ifndef TQT_NO_WIDGETPLUGIN
-#include "tqwidgetinterface_p.h"
-#include "tqobjectcleanuphandler.h"
-#include "tqwidget.h"
-#ifdef TQT_CONTAINER_CUSTOM_WIDGETS
-#include "tqwidgetlist.h"
-#endif
-
-/*!
- \class TQWidgetPlugin tqwidgetplugin.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 TQ_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 TQT_CONTAINER_CUSTOM_WIDGETS
- public TQWidgetContainerInterfacePrivate,
-#endif
- private TQLibraryInterface
-{
-public:
- TQWidgetPluginPrivate( TQWidgetPlugin *p )
- : plugin( p )
- {
- }
-
- virtual ~TQWidgetPluginPrivate();
-
- TQRESULT queryInterface( const TQUuid &iid, TQUnknownInterface **iface );
- TQ_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 TQT_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 // TQT_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_TQUnknown )
- *iface = (TQWidgetFactoryInterface*)this;
- else if ( iid == IID_TQFeatureList )
- *iface = (TQFeatureListInterface*)this;
- else if ( iid == IID_TQWidgetFactory )
- *iface = (TQWidgetFactoryInterface*)this;
- else if ( iid == IID_TQLibrary )
- *iface = (TQLibraryInterface*)this;
-#ifdef TQT_CONTAINER_CUSTOM_WIDGETS
- else if ( iid == IID_TQWidgetContainer )
- *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 required 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( TQT_TQOBJECT(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 TQT_CONTAINER_CUSTOM_WIDGETS
-TQWidget* TQWidgetPluginPrivate::containerOfWidget( const TQString &key, TQWidget *widget ) const
-{
- TQWidgetContainerPlugin *p = (TQWidgetContainerPlugin*)plugin->tqqt_cast( "TQWidgetContainerPlugin" );
- if ( p )
- return p->containerOfWidget( key, widget );
- return widget;
-}
-
-int TQWidgetPluginPrivate::count( const TQString &key, TQWidget *container ) const
-{
- TQWidgetContainerPlugin *p = (TQWidgetContainerPlugin*)plugin->tqqt_cast( "TQWidgetContainerPlugin" );
- if ( p )
- return p->count( key, container );
- return 0;
-}
-
-int TQWidgetPluginPrivate::currentIndex( const TQString &key, TQWidget *container ) const
-{
- TQWidgetContainerPlugin *p = (TQWidgetContainerPlugin*)plugin->tqqt_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->tqqt_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->tqqt_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->tqqt_cast( "TQWidgetContainerPlugin" );
- if ( p )
- return p->isPassiveInteractor( key, widget );
- return FALSE;
-}
-
-bool TQWidgetPluginPrivate::supportsPages( const TQString &key ) const
-{
- TQWidgetContainerPlugin *p = (TQWidgetContainerPlugin*)plugin->tqqt_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->tqqt_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->tqqt_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->tqqt_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->tqqt_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->tqqt_cast( "TQWidgetContainerPlugin" );
- if ( p )
- p->renamePage( key, container, index, newName );
-}
-
-TQWidgetList TQWidgetPluginPrivate::pages( const TQString &key, TQWidget *container ) const
-{
- TQWidgetContainerPlugin *p = (TQWidgetContainerPlugin*)plugin->tqqt_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->tqqt_cast( "TQWidgetContainerPlugin" );
- if ( p )
- return p->createCode( key, container, page, pageName );
- return TQString::null;
-}
-#endif // TQT_CONTAINER_CUSTOM_WIDGETS
-
-/*!
- Constructs a widget plugin. This is invoked automatically by the
- \c TQ_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 TQT_CONTAINER_CUSTOM_WIDGETS
-
-/*!
- \class TQWidgetContainerPlugin tqwidgetplugin.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 TQ_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 TQ_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
-{
- TQ_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 // TQT_CONTAINER_CUSTOM_WIDGETS
-
-#endif //TQT_NO_WIDGETPLUGIN