VR-Forces 4.0.4 Class Documentation
include/tmEventHandler/createControlObjectHandler.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 2003 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 /*******************************************************************************
00006 ** $RCSfile: createControlObjectHandler.h,v $ $Revision: 1.25 $ $State: Exp $
00007 *******************************************************************************/
00008 
00011 
00012 #ifndef CREATECONTROLOBJECTHANDLER_H_
00013 #define CREATECONTROLOBJECTHANDLER_H_
00014 
00015 #include "tmEventHandler/creationHandler.h"
00016 #include "geometry/point.h"
00017 #include "tmqt/eventSignaller.h"
00018 
00019 class DtModelData;
00020 class DtSymbol;
00021 class QPointArray;
00022 class DtOverlaySymbolDescriptor;
00023 
00024 typedef QWidget* (*DtDialogCreator)(QWidget* parent, const Qt::WindowFlags& flags);
00025 
00026 class DtDialogCreatorInfo
00027 {
00028 public:
00029    DtDialogCreatorInfo() {};
00030    DtDialogCreatorInfo(const DtDialogCreatorInfo& orig) :
00031    myKey(orig.myKey), myCreator(orig.myCreator) {};
00032 
00033    DtEntityMapperKey myKey;
00034    DtDialogCreator myCreator;
00035 };
00036 
00038 #include "tmEventHandler/tmEventHandlerDefines.h"
00039 class DT_DLL_tmEventHandler DtCreateControlObjectHandler : public DtCreationHandler
00040 {
00041    Q_OBJECT
00042    
00043 public:
00044 
00046    DtCreateControlObjectHandler();
00047    
00049    virtual ~DtCreateControlObjectHandler();
00050    
00051    virtual QWidget* createDialog(QWidget* parent);
00052 
00055    static bool addDialogCreator(const DtEntityMapperKey& key, DtDialogCreator fcn);
00056   
00059    static void cleanupDialogCreators();
00060    virtual void setCreationObject(DtEntityMapperKey obj, int frc);
00061 
00064    virtual void setVertices(const QVector<DtPoint>& pnt);
00065    virtual void setName(const QString& name);
00066 
00067    static void setDefaultNameLabel(const QString&);
00068    static QString defaultNameLabel();
00069 
00070 public slots:
00073    virtual void create(QVector<DtPoint>& points, QString name, QString label,
00074       QColor color, int forceType, int appearance, bool publish,
00075       QString attachTo, DtArchivableObject* userData, bool createDone = true);
00076 
00077    virtual void completeEdit(QString name, QString label, QColor color,
00078       int forceType, int appearance, bool publish, DtArchivableObject* userData);
00079    virtual void cancel();
00080    virtual bool mouseEvent(DtTMMapArea* area, QMouseEvent* evnt, const DtPoint& pnt);
00081    virtual void updateTempSymbol();
00082    virtual void redrawSymbol();
00083    virtual void clearHideSymbol();
00085    virtual void done();
00086 
00087 signals:
00088    void selectedPoint(const DtPoint& p);
00089 
00094    void userComplete(bool finish);
00095 
00096 protected:
00098    virtual QWidget* createWidgetFor(const DtEntityMapperKey& key, QWidget* parent);
00099 
00101    virtual void setWorkingName() = 0;
00102 
00105    virtual void additionalTempSymbolModifications(QPolygon& pts);
00106 
00108    virtual void initDialog(QWidget* w);
00109 
00113    virtual void initDialogConnections();
00114 
00116    virtual void initCreateConnections();
00117 
00119    virtual void initEditConnections();
00120 
00121    virtual void pointSelected(const DtPoint& p);
00122 
00123    virtual void activate();
00124    virtual void deactivate();
00125    virtual void stop(const DtPoint& pnt);
00126 
00129    virtual DtSymbol* createTempSymbol(DtTMMapArea* area);
00130 
00131    virtual DtSymbol* createSymbol(DtTMMapArea* area);
00132 
00133    virtual void getVertices(QVector<DtPoint>& modelPoints) const;
00134 
00135    virtual bool canPublish() const;
00136    virtual bool isPublished() const;
00137 
00139    virtual void setCaption(QWidget* w);
00140 
00142    virtual QString defaultName() const;
00143 
00145    virtual void sendUserComplete(bool finish = false);
00146 
00147    virtual bool userDefinedAction(DtUserDefinedType iAction, void* usr);
00148 
00151    virtual bool complete() const;
00152 
00154    virtual bool finishOnCreate() const;
00155 
00156    virtual void disconnectDialogConnections();
00157    virtual void disconnectEditConnections();
00158    virtual void disconnectCreateConnections();
00159 
00161    virtual int publishedEditTimeout() const;
00162 
00163    virtual const char* eventSignalName() { return DtCreateControlObjectWidgetEvent; };
00164 
00165    virtual QPixmap createCursor();
00166 
00167    virtual void dialogDestroyedEvent();
00168 
00169 protected:
00170    QVector<DtPoint> myPointList;
00171    QString myObjectName;
00172    QString myLabelName;
00173    bool myFinalPointSelected;
00174    DtSymbol* myHideSymbol;
00175    DtOverlaySymbolDescriptor* myDescription;
00176    bool myDeleteDescription;
00177    bool myFirstClick;
00178 
00181    DtArchivableObject* myUserData;
00182 
00184    static QList<DtDialogCreatorInfo*> myDialogCreators;
00185    static QString theDefaultNameLabel;
00186 };
00187 
00188 #endif //CREATECONTROLOBJECTHANDLER_H_

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)