VR-Forces 4.0.4 Class Documentation
include/entityEditorImpl/uiLayoutElement.h
Go to the documentation of this file.
00001 /*********************************************************************
00002 ** Copyright (c) 2007 MaK Technologies, Inc.
00003 ** All rights reserved.
00004 *********************************************************************/
00005 /*********************************************************************
00006 ** $RCSfile: uiLayoutElement.h,v $ $Revision: 1.10 $ $State: Exp $
00007 *********************************************************************/
00008 
00011 
00012 #ifndef DTUILAYOUTELEMENT_H_
00013 #define DTUILAYOUTELEMENT_H_
00014 
00015 #include "entityEditorImpl/uiElement.h"
00016 #include "vrfutil/rwList.h"
00017 #include "vrfutil/rwBoolean.h"
00018 
00019 #include <QtCore/QPoint>
00020 
00021 class QLayout;
00022 
00023 static const char* DtUiLayoutElementType = "DtUiLayoutElement";
00024 
00025 #include "entityEditorImpl/entityEditorImplDefines.h"
00026 
00027 class DT_DLL_entityeditorimpl DtLayoutElement : public DtUiElement
00028 {
00029 public:
00031    DtLayoutElement
00032    (
00033       const DtString& name,
00034       DtReaderWriterRegistry* const parentRegistry = NULL
00035    );
00036 
00038    virtual ~DtLayoutElement();
00039 
00041    DtLayoutElement(const DtLayoutElement& orig);
00042 
00044    DtLayoutElement& operator=(const DtLayoutElement& orig);
00045 
00046    virtual void addSpacing();
00047 
00048    virtual DtlObjPtr getData(DtlObjPtr args, const DtFilename& searchPath,
00049       const DtVariableBindingsList& variableBindings);
00050 
00051    void setTitle(const DtString& s) { myTitle = s; };
00052    const DtString& title() const { return myTitle; };
00053 
00054    virtual QWidget* createLabelWidget(QWidget* parent) {return 0;}
00055 
00059    virtual void addWidget(DtUiElement*, QWidget* label, QWidget* control, QWidget* parent) = 0;
00060 
00064    virtual QWidget* joinLabelAndControl(QWidget* label, QWidget* control, QWidget* parent);
00065 
00066 protected:
00067    DtString myTitle;
00068    QLayout* myLayout;
00069    QWidget* myBox;
00070 };
00071 
00072 class DT_DLL_entityeditorimpl DtGridLayoutElement : public DtLayoutElement
00073 {
00074 public:
00076    DtGridLayoutElement
00077    (
00078       const DtString& name,
00079       DtReaderWriterRegistry* const parentRegistry = NULL
00080    );
00081 
00083    virtual ~DtGridLayoutElement();
00084 
00086    DtGridLayoutElement(const DtGridLayoutElement& orig);
00087 
00089    DtGridLayoutElement& operator=(const DtGridLayoutElement& orig);
00090 
00091 public:
00092    virtual QWidget* createControls(QWidget*);
00093    virtual void addWidget(DtUiElement*, QWidget* label, QWidget* control, QWidget* parent);
00094    virtual void addSpacing();
00095 
00096 protected:
00097    virtual DtlObjPtr getData(DtlObjPtr args, const DtFilename& searchPath,
00098       const DtVariableBindingsList& variableBindings);
00099 
00100    virtual DtUiElement* clone();
00101 
00102 protected:
00103    int   myNumColumns;
00104    QPoint   myGridPosition;
00105 };
00106 
00107 class DT_DLL_entityeditorimpl DtHorizontalLayoutElement : public DtLayoutElement
00108 {
00109 public:
00111    DtHorizontalLayoutElement
00112    (
00113       const DtString& name,
00114       DtReaderWriterRegistry* const parentRegistry = NULL
00115    );
00116 
00118    virtual ~DtHorizontalLayoutElement();
00119 
00121    DtHorizontalLayoutElement(const DtHorizontalLayoutElement& orig);
00122 
00124    DtHorizontalLayoutElement& operator=(const DtHorizontalLayoutElement& orig);
00125 
00126    virtual void addSpacing();
00127 
00128 protected:
00129    virtual QWidget* createControls(QWidget*);
00130    virtual void addWidget(DtUiElement*, QWidget* label, QWidget* control, QWidget* parent);
00131 
00132 protected:
00133    virtual DtUiElement* clone();
00134 };
00135 
00136 class DT_DLL_entityeditorimpl DtVerticalLayoutElement : public DtLayoutElement
00137 {
00138 public:
00140    DtVerticalLayoutElement
00141    (
00142       const DtString& name,
00143       DtReaderWriterRegistry* const parentRegistry = NULL
00144    );
00145 
00147    virtual ~DtVerticalLayoutElement();
00148 
00150    DtVerticalLayoutElement(const DtVerticalLayoutElement& orig);
00151 
00153    DtVerticalLayoutElement& operator=(const DtVerticalLayoutElement& orig);
00154 
00155    virtual void addSpacing();
00156 
00157 protected:
00158    virtual QWidget* createControls(QWidget*);
00159    virtual void addWidget(DtUiElement*, QWidget* label, QWidget* control, QWidget* parent);
00160 
00161 protected:
00162    virtual DtUiElement* clone();
00163 };
00164 
00165 class DT_DLL_entityeditorimpl DtUiLayoutSignalHandler : public QObject
00166 {
00167    Q_OBJECT
00168 
00169 public:
00170    DtUiLayoutSignalHandler() {};
00171 
00172 signals:
00173    void uiEvent(const DtUiElementEvent&);
00174 
00175 protected slots:
00176    virtual void sendEvent(const DtUiElementEvent& e) { emit uiEvent(e); };
00177 };
00178 
00179 class DT_DLL_entityeditorimpl DtLayoutContainer : public DtRwList
00180 {
00181 public:
00182 
00184    DtLayoutContainer();
00185 
00186    DtLayoutContainer(const DtString& name, DtReaderWriterRegistry*  
00187       parentRegistry = NULL);
00188 
00190    virtual ~DtLayoutContainer();
00191 
00193    DtLayoutContainer(const DtLayoutContainer& orig, 
00194       DtReaderWriterRegistry*  parentRegistry = NULL);
00195 
00197    DtLayoutContainer& operator=(const DtLayoutContainer& orig);
00198 
00199    virtual QWidget* createControls(QWidget* parent);
00200 
00201    const DtString& objectName() const { return myObjectName; };
00202    virtual void setFromParameters(DtReaderWriter* parentRw);
00203    virtual void addElementChangedCallback(DtElementChangedCallbackFcn f, void* u);
00204    virtual void removeElementChangedCallback(DtElementChangedCallbackFcn f, void* u);
00205    virtual bool isModified() const;
00206    virtual void objectParametersModified();
00207    virtual void processUiEvent(const DtUiElementEvent&);
00208    static void subelementChangedCallback(DtUiElement* element, void* usr);
00209 
00211    virtual void removeAllCallbacks();
00212    virtual void setModelModified(DtModelSetEntry* m);
00213    virtual void uiState(QMap<QString, QVariant>& state) const;
00214    virtual void setUiState(const QMap<QString, QVariant>&);
00215 
00216    DtUiLayoutSignalHandler* signalHandler() { return &mySignalHandler; };
00217 
00218 protected:
00221    virtual DtlObjPtr getData(DtlObjPtr args, const DtFilename& searchPath,
00222       const DtVariableBindingsList& variableBindings);
00223    virtual void emptyList();
00224    virtual void copyList(const DtLayoutContainer& orig);
00225 
00226    virtual void processSubelementChanged(DtUiElement* element);
00227 
00228 protected:
00229    DtRwString  myReaderWriterName;
00230    DtRwString  myTitle;
00231    DtRwString  myObjectName;
00232    DtRwBoolean myAddSpacing;
00233    QWidget*    myBox;
00234    DtLayoutElement*  myLayout;
00235    DtCallbackList<DtUiElement*> myElementChangedCallbackList;
00236    DtUiLayoutSignalHandler mySignalHandler;
00237 };
00238 
00239 class DT_DLL_entityeditorimpl DtUiLayoutElement : public DtUiElement
00240 {
00241 public:
00242 
00244    DtUiLayoutElement
00245    (
00246       const DtString& name,
00247       DtReaderWriterRegistry* const parentRegistry = NULL
00248    );
00249 
00251    virtual ~DtUiLayoutElement();
00252 
00254    DtUiLayoutElement(const DtUiLayoutElement& orig);
00255 
00257    DtUiLayoutElement& operator=(const DtUiLayoutElement& orig);
00258 
00259 public:
00260    virtual DtUiElement* clone();
00261    virtual void merge(DtUiElement*);
00262    virtual const DtString& objectName() const;
00263 
00264    virtual QWidget* createLabelWidget(QWidget* parent) {return 0;}
00265 
00267    virtual void removeAllCallbacks();
00268    virtual void uiState(QMap<QString, QVariant>& state) const;
00269    virtual void setUiState(const QMap<QString, QVariant>&);
00270 
00271 protected:
00272    virtual const char* readerWriterType() const;
00273    virtual DtlObjPtr getData(DtlObjPtr args, const DtFilename& searchPath,
00274       const DtVariableBindingsList& variableBindings);
00275 
00276    virtual QWidget* createControls(QWidget* parent);
00277    virtual void mergeInto(DtUiForParameter*);
00278    virtual DtUiElement* elementNamed(const DtString& s);
00279    virtual bool mergeInto(const DtString& readerWriterName, bool after, DtUiElement* element);
00280    virtual void setFromParameters(DtReaderWriter* parentRw);
00281    virtual void addElementChangedCallback(DtElementChangedCallbackFcn f, void* u);
00282    virtual void removeElementChangedCallback(DtElementChangedCallbackFcn f, void* u);
00283    virtual bool isModified() const;
00284    virtual void objectParametersModified() {myLayoutContainer.objectParametersModified();};
00285    virtual void processUiEvent(const DtUiElementEvent& e) { myLayoutContainer.processUiEvent(e); };
00286    virtual void setModelModified(DtModelSetEntry* m);
00287 
00288 protected:
00289    DtLayoutContainer myLayoutContainer;
00290 };
00291 
00292 class DT_DLL_entityeditorimpl DtUiAddToLayoutElement : public DtUiLayoutElement
00293 {
00294 public:
00295 
00297    DtUiAddToLayoutElement
00298    (
00299       const DtString& name,
00300       DtReaderWriterRegistry* const parentRegistry = NULL
00301    );
00302 
00304    virtual ~DtUiAddToLayoutElement();
00305 
00307    DtUiAddToLayoutElement(const DtUiAddToLayoutElement& orig);
00308 
00310    DtUiAddToLayoutElement& operator=(const DtUiAddToLayoutElement& orig);
00311 
00312 protected:
00313    virtual DtUiElement* clone();
00314    virtual void mergeInto(DtUiForParameter*);
00315 };
00316 
00317 class DT_DLL_entityeditorimpl DtUiAddItemElement : public DtUiLayoutElement
00318 {
00319 public:
00320 
00322    DtUiAddItemElement
00323    (
00324       const DtString& name,
00325       DtReaderWriterRegistry* const parentRegistry = NULL
00326    );
00327 
00329    virtual ~DtUiAddItemElement();
00330 
00332    DtUiAddItemElement(const DtUiAddItemElement& orig);
00333 
00335    DtUiAddItemElement& operator=(const DtUiAddItemElement& orig);
00336 
00337 protected:
00338    virtual DtUiElement* clone();
00339    virtual void mergeInto(DtUiForParameter*);
00340    virtual DtlObjPtr getData(DtlObjPtr args, const DtFilename& searchPath,
00341                                      const DtVariableBindingsList& variableBindings);
00342 
00343 protected:
00344    DtRwString myNear;
00345    DtRwString myPlacement;
00346 };
00347 
00348 #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)