Kross::WrapperInterface Class Referenceabstract

#include <wrapperinterface.h>

Public Member Functions

virtual ~WrapperInterface ()
virtual void * wrappedObject () const =0

Detailed Description

Wrapper-class used to provide handlers for custom types.

Custom types are types other than QObject*, QWidget* or one of the base types supported by QVariant. By using the Kross::registerMetaTypeHandler() method such custom handlers can be registered and used to either translate various types to a by QVariant supported type or by providing on the fly an own wrapper class that inherits from QObject and does provide access to the functionality of the wrapped custom type.

Following sample demonstrates the usage by registering a handler for the type "TestObject*". Once such a type got returned by a C++ class, the handler got called. If we return a QObject that implements the WrapperInterface, what is not needed, then the wrappedObject() method will be used to translate the wrapper back to the wrapped object if a C++ function got called and the wrapper is passed as argument.

// This is our wrapper class we are using to e.g. provide
// additional functionality on the fly or to provide access
// to a C++ type that does not inherit from QObject.
class MyWrapper : public QObject, public Kross::WrapperInterface {
MyWrapper(QObject* obj) : QObject(obj) {}
void* wrappedObject() const { return parent(); }
// This function will be called by Kross if a type named
// "TestObject*" got returned by a C++ method.
QVariant TestObjectHandler(void* ptr)
TestObject* obj = static_cast<TestObject*>(ptr);
MyWrapper* w = new MyWrapper(obj);
r.setValue( (QObject*)w );
return r;
// and somewhere else we finally register our function.
Kross::Manager::self().registerMetaTypeHandler("TestObject*", TestObjectHandler);

Definition at line 74 of file wrapperinterface.h.

Constructor & Destructor Documentation

WrapperInterface::~WrapperInterface ( )


Definition at line 574 of file action.cpp.

Member Function Documentation

virtual void* Kross::WrapperInterface::wrappedObject ( ) const
pure virtual

This method got called by Kross if the wrapper-instance got passed to a C++ slot.

It is recommed to return here the wrapped instance, but you don't need to.

The documentation for this class was generated from the following files:
This file is part of the KDE documentation.
Documentation copyright © 1996-2021 The KDE developers.
Generated on Wed Jan 20 2021 23:03:21 by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.