Public Member Functions | Protected Member Functions | Protected Attributes

uiObjBodyImpl< C, T > Class Template Reference

Default (Template) implementation of uiObjectBody. More...

Inheritance diagram for uiObjBodyImpl< C, T >:
uiObjectBody uiBody NamedObject CallBacker

List of all members.

Public Member Functions

 uiObjBodyImpl (C &handle, uiParent *parnt, const char *nm)
virtual const QWidget * qwidget_ () const
virtual void setFont (const QFont &font)
 over-ride Qt
virtual void fontChange (const QFont &oldFont)
virtual void closeEvent (QCloseEvent *e)
 over-ride Qt

Protected Member Functions

virtual uiObjectuiObjHandle ()
C & handle ()

Protected Attributes

C & handle_

Detailed Description

template<class C, class T>
class uiObjBodyImpl< C, T >

Default (Template) implementation of uiObjectBody.

Any uiObjectBody must implement thiswidget_() and uiObjHandle() and must also implement some QWidget methods. These are implemented using the pre-processor, because it is difficult to templatize for all cases since some Qt objects need a specific constructor. However, most QWidgets just need a parent and a name and then this template implementation can be used.

    #define mHANDLE_OBJ         uiObject_or_child_class, default O
    #define mQWIDGET_BODY       Widget_or_child_class, default T
    #define mQWIDGET_BASE       QWidget
    #include                    "i_uiobjqtbody.h"

The macro's mQWIDGET_BODY and mQWIDGET_BASE are undef'ed in "i_uiobjqtbody.h"

The "i_uiobjqtbody.h" header file uses no multiple-inclusion protection and implements the following methods:

        virtual QWidget*        qwidget_();
        virtual void            setFont( const QFont &font );
        virtual void            closeEvent( QCloseEvent *e );
        virtual void            polish();

    protected:

        virtual uiObject&       uiObjHandle();

It also declares a protected member handle_, of type mHANDLE_OBJ&, which must be initialised in any constructor of objects using "i_uiobjqtbody.h"


Constructor & Destructor Documentation

template<class C , class T >
uiObjBodyImpl< C, T >::uiObjBodyImpl ( C &  handle,
uiParent parnt,
const char *  nm 
) [inline]

Member Function Documentation

template<class C , class T >
virtual void uiObjBodyImpl< C, T >::closeEvent ( QCloseEvent *  e  )  [inline, virtual]

over-ride Qt

template<class C , class T >
virtual void uiObjBodyImpl< C, T >::fontChange ( const QFont &  oldFont  )  [inline, virtual]
template<class C , class T >
C& uiObjBodyImpl< C, T >::handle (  )  [inline, protected]
template<class C , class T >
virtual const QWidget* uiObjBodyImpl< C, T >::qwidget_ (  )  const [inline, virtual]
template<class C , class T >
virtual void uiObjBodyImpl< C, T >::setFont ( const QFont &  font  )  [inline, virtual]

over-ride Qt

template<class C , class T >
virtual uiObject& uiObjBodyImpl< C, T >::uiObjHandle (  )  [inline, protected, virtual]

Implements uiObjectBody.


Member Data Documentation

template<class C , class T >
C& uiObjBodyImpl< C, T >::handle_ [protected]