VR-Forces 4.0.4 Class Documentation
include/symbolDrawer/compositeDrawer.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 2003 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 /*******************************************************************************
00006 ** $RCSfile: compositeDrawer.h,v $ $Revision: 1.5 $ $State: Exp $
00007 *******************************************************************************/
00008 
00011 
00012 #ifndef DtCompositeDrawer_H_
00013 #define DtCompositeDrawer_H_
00014 
00016 #include "symbolDrawer/baseSymbolDrawer.h"
00017 
00018 class DtSymbol;
00019 
00021 #include <QtGui/QPixmap>
00022 #include "ngutil/dtqlist.h"
00023 
00026 #include "symbolDrawer/symbolDrawerDefines.h"
00027 
00028 class DT_DLL_symbolDrawer DtCompositeDrawer : public DtBaseSymbolDrawer
00029 {
00030 public:
00031 
00032    DtCompositeDrawer();
00033    virtual ~DtCompositeDrawer();
00034    
00039    virtual bool         draw( QPainter& paint,
00040                               const DtSymbol * const symbol ) const;
00041 
00044    virtual QSize calcBBox( const DtSymbol * const symbol ) const;
00045    
00046    virtual void addDrawer(DtSymbolDrawer* drawer);
00047    virtual void removeDrawer(DtSymbolDrawer* drawer);
00048    virtual DtPtrQList<DtSymbolDrawer*>* drawers();
00049 
00053    void destroyDrawer(DtSymbolDrawer*, bool add = true);
00054 
00055 protected:
00056    virtual bool forceUpdate(const DtSymbol* const symbol) const;
00057 
00060    virtual bool endTransparentDraw(QPainter& paint,
00061                      const DtSymbol * const symbol) const;
00062 
00063 private:
00065    DtCompositeDrawer(const DtCompositeDrawer& orig);
00066    DtCompositeDrawer& operator=(const DtCompositeDrawer& orig);
00068 
00069 protected:
00070    DtPtrQList<DtSymbolDrawer*> mySymbolDrawers;
00071    DtPtrQList<DtSymbolDrawer*> myDrawersToDestroy;
00072 };
00073 
00074 inline void DtCompositeDrawer::destroyDrawer(DtSymbolDrawer* d, bool add)
00075 {
00076    if (add)
00077    {
00078       if (myDrawersToDestroy.findRef(d) == -1)
00079       {
00080          myDrawersToDestroy.append(d);
00081       }
00082    }
00083    else
00084    {
00085       myDrawersToDestroy.remove(d);
00086    }
00087 }
00088 
00089 #endif

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)