VR-Forces 4.0.4 Class Documentation
include/entityEditorImpl/visualEditors.h
Go to the documentation of this file.
00001 /*********************************************************************
00002 ** Copyright (c) 2012 MaK Technologies, Inc.
00003 ** All rights reserved.
00004 *********************************************************************/
00005 /*********************************************************************
00006 ** $RCSfile: visualEditors.h,v $ $Revision: 1.21 $ $State: Exp $
00007 *********************************************************************/
00008 
00011 #pragma once
00012 
00013 #include <vrvUtil/signalslib.h>
00014 #include "entityEditorImpl/entityEditorImplDefines.h"
00015 #include "entityEditorImpl/uiElement.h"
00016 #include <vrvCore/DtVisualizerAttribute.h>
00017 
00018 #include <QWidget>
00019 #include <QDialog>
00020 
00021 class QComboBox;
00022 class QLabel;
00023 class QPushButton;
00024 class QTreeWidget;
00025 class QFontMetrics;
00026 class QLineEdit;
00027 class QTreeWidgetItem;
00028 class QRadioButton;
00029 class QString;
00030 class DtModelDefinitionSelectionDialog;
00031 class DtDIGuyConfigurationWidget;
00032 class DtRwNLengthStringVector;
00033 
00034 namespace makVrv
00035 {
00036    class DtDe;
00037    class DtElementDefinitionNew;
00038    class DtVisualizerDefinition;
00039    class DtVisualizerDefinitionSet;
00040    class DtModelDefinitionComboBox;
00041    class DtDeselectableTreeWidget;
00042    class DtUnicode;
00043    class DtModelDefinitionInstanceEditorWidget;
00044 }
00045 
00047 class DT_DLL_entityeditorimpl DtVisualEditor : public QWidget
00048 {
00049    Q_OBJECT
00050 
00051 public:
00052 
00054    DtVisualEditor(makVrv::DtDe* de, QWidget * parent = 0, Qt::WindowFlags f = 0 );
00055 
00057    virtual ~DtVisualEditor();
00058 
00059    virtual void setup(makVrv::DtElementDefinitionNew*, const makVrv::DtVisualizerDefinition*, const makVrv::DtVisualizerDefinitionSet*, int m);
00060 
00061    virtual void setDiGuyData(const DtUiElementEvent&) {};
00062 
00063 signals:
00064    void modified();
00065    void modelDefinitionModified();
00066    void uiElementEvent(const DtUiElementEvent&);
00067    void redisplayListIcons();
00068 
00069 protected:
00070    makVrv::DtDe* myDe;
00071    makVrv::DtElementDefinitionNew*  myElementDefinition;
00072    const makVrv::DtVisualizerDefinition* myVisualizerDefinition;
00073    const makVrv::DtVisualizerDefinitionSet* myVisualizerDefinitionSet;
00074    int myModelSet;
00075    bool myModified;
00076 };
00077 
00078 typedef DtVisualEditor* (*DtEditorCreatorFcn)(makVrv::DtDe*, QWidget*);
00079 
00080 class DT_DLL_entityeditorimpl DtModelDefinitionEditor : public DtVisualEditor
00081 {
00082    Q_OBJECT
00083 
00084 public:
00086    DtModelDefinitionEditor(makVrv::DtDe* de, QWidget * parent = 0, Qt::WindowFlags f = 0 );
00087 
00089    virtual ~DtModelDefinitionEditor();
00090 
00091    static DtVisualEditor* create(makVrv::DtDe*, QWidget*);
00092    virtual void setup(makVrv::DtElementDefinitionNew*, const makVrv::DtVisualizerDefinition*, const makVrv::DtVisualizerDefinitionSet*, int m);
00093    virtual void setDiGuyData(const DtUiElementEvent&);
00094 
00095 protected slots:
00096    virtual void select3DModelDefinition();
00097    virtual void setModelValue(const makVrv::DtUnicode&, bool useDiGuy);
00098    virtual void setModelValue(const std::vector<std::string>&, bool useDiGuy);
00099 
00100 public:
00101    QLabel* myLabel;
00102    QLabel* myModelDefinition;
00103    QPushButton* mySelect;
00104    DtUiElementEvent myDiGuyData;
00105 };
00106 
00107 class DT_DLL_entityeditorimpl DtSymbolEditorDialog : public QDialog
00108 {
00109    Q_OBJECT
00110 
00111 public:
00112    DtSymbolEditorDialog(makVrv::DtDe&, QWidget* parent, bool useMilStd);
00113 
00114    virtual ~DtSymbolEditorDialog();
00115 
00116    bool useMilStd() const;
00117    makVrv::DtUnicode milStdFont() const;
00118 
00119    virtual void setup(makVrv::DtVisualizerAttributeFontGlyph* myMilStdAttribute,
00120       makVrv::DtVisualAttributeSymbolSelector* myImageSymbolAttribute);
00121 
00122    virtual makVrv::DtVisualAttributeSymbolSelector::ImageSymbolMap imageMapValues() const;
00123 
00124 protected:
00125    virtual void setupMilStd();
00126    virtual void setupImageSymbol();
00127    virtual void addGlyphRange( unsigned int first, 
00128       unsigned int last, QFontMetrics &mets, QTreeWidget* widget, QFont font );
00129 
00130    virtual void initializeMilStdValues();
00131    virtual void initializeImageSymbolValues();
00132 
00133 protected slots:
00134    virtual void visualizerTypeChanged();
00135    virtual void fontSelectionChanged();
00136    virtual void fontEditChanged();
00137    virtual void selectImageDefinition();
00138    virtual void setImageValueForEditingForce(const std::string&);
00139 
00140 signals:
00141    void fontChanged(const makVrv::DtUnicode&);
00142    void imageChanged(const makVrv::DtVisualAttributeSymbolSelector::ImageSymbolMap&);
00143    void modelDefinitionModified();
00144 
00145 protected:
00146    int myEditingForce;
00147    QWidget*    myMilStd;
00148    QRadioButton*  myUseMilStd;
00149    QTreeWidget*   myFonts;
00150    QLabel*     myFontLabel;
00151    QLineEdit*  myFontEdit;
00152 
00153    QWidget*    myImageSymbol;
00154    QRadioButton*  myUseImage;
00155    QTreeWidget*   myImages;
00156 
00157    std::map<int, QTreeWidgetItem*> myItemMap;
00158 
00159    makVrv::DtDe& myDe;
00160    const makVrv::DtVisualizerAttributeFontGlyph* myMilStdAttribute;
00161    const makVrv::DtVisualAttributeSymbolSelector* myImageSymbolAttribute;
00162 };
00163 
00164 class DT_DLL_entityeditorimpl Dt3DDefinitionSelectionDialog : public QDialog
00165 {
00166    Q_OBJECT
00167 
00168 public:
00169    Dt3DDefinitionSelectionDialog(makVrv::DtDe&, QWidget* parent, bool useDiGuy);
00170 
00171    virtual ~Dt3DDefinitionSelectionDialog();
00172 
00173    virtual bool useDiGuy() const;
00174    virtual void setup(const makVrv::DtUnicode& modelDef, const DtUiElementEvent& diGuyData);
00175    DtString getCurrentCharacter() const;
00176    DtString getCurrentAnimation() const;
00177    DtString getCurrentAppearance() const;
00178    bool useRandomAppearances() const;
00179    void getRandomAppearances(DtRwNLengthStringVector*) const;
00180    bool randomAppearancesChanged() const;
00181 
00182 protected:
00183    virtual void setupDiGuy();
00184    virtual void setup3DModelDefinition();
00185    virtual std::string diGuyModelDefinition(const DtString& character,
00186       const DtString& appearance, bool createIfMissing = true);
00187 
00188 protected slots:
00189    virtual void visualizerTypeChanged();
00190    virtual void set3DModel(const std::string&);
00191    virtual void diGuyCharacterChanged();
00192 
00193 signals:
00194    void modelChanged(const makVrv::DtUnicode&, bool);
00195    void modelListChanged(const std::vector<std::string>&, bool);
00196    void modelDefinitionModified();
00197    void uiElementEvent(const DtUiElementEvent&);
00198 
00199 protected:
00200    DtDIGuyConfigurationWidget* myDiGuyWidget;
00201    QRadioButton*  myUseDiGuy;
00202    QRadioButton*  myUse3DModel;
00203    DtModelDefinitionSelectionDialog* myModelDefinitions;
00204    makVrv::DtDe& myDe;
00205    bool myInitiallyUseDiGuy;
00206 };
00207 
00208 class DT_DLL_entityeditorimpl DtSymbolEditor : public DtVisualEditor
00209 {
00210    Q_OBJECT
00211 
00212 public:
00214    DtSymbolEditor(makVrv::DtDe* de, QWidget * parent = 0, Qt::WindowFlags f = 0 );
00215 
00217    virtual ~DtSymbolEditor();
00218 
00219    virtual void setup(makVrv::DtElementDefinitionNew*, const makVrv::DtVisualizerDefinition*, const makVrv::DtVisualizerDefinitionSet*, int m);
00220 
00221    static DtVisualEditor* create(makVrv::DtDe*, QWidget*);
00222 
00223 protected:
00224    virtual void useMilStd();
00225    virtual void useImageSymbol();
00226 
00227    virtual void addMilStdDefinition();
00228    virtual void addImageSymbolDefinition();
00229 
00230    virtual makVrv::DtElementDefinitionNew* findParent();
00231    virtual void updateVisualizersEnabled(bool useMilStd);
00232 
00233    virtual void setEnabled(int, bool);
00234 
00235 protected slots:
00236    virtual void editVisualizers();
00237 
00238    virtual void setMilStdValues(const makVrv::DtUnicode&);
00239    virtual void setImageSymbolValues(const makVrv::DtVisualAttributeSymbolSelector::ImageSymbolMap&);
00240 
00241 public:
00242    QLabel*     myUsing;
00243    QPushButton*   myEdit;
00244 
00245 protected:
00246    makVrv::DtVisualizerAttributeFontGlyph* myMilStdAttribute;
00247    makVrv::DtVisualAttributeSymbolSelector* myImageSymbolAttribute;
00248 
00249    int myMilStdDefinition;
00250    int myImageSymbolDefinition;
00251 
00252    bool myUseMilStd;
00253 };
00254 
00255 class DT_DLL_entityeditorimpl DtModelDefinitionSelectionDialog : public QDialog
00256 {
00257    Q_OBJECT
00258 
00259 public:
00260    DtModelDefinitionSelectionDialog(makVrv::DtDe* myDe, QWidget* parent, bool is2D = false, bool addButtons = true);
00261 
00262    virtual ~DtModelDefinitionSelectionDialog();
00263 
00264    virtual void setDefault(const QString&);
00265 
00266    virtual std::string selectedInstance() const;
00267    virtual void selectFilter( const std::string& filter );
00268 
00269    makVrv::DtModelDefinitionInstanceEditorWidget* modelDefinitions()
00270    {
00271       return myModelDefinitions;
00272    }
00273 
00274 protected:
00275    virtual void createModelDefinition(const std::string& definitionName, const std::string& schema );
00276    virtual void setupInstances();
00277    virtual void setDefinitionFilter( const std::string& filter );
00278    virtual void definitionSelected(const std::string& s);
00279 
00280 signals:
00281    void modelChanged(const std::string&);
00282    void modelDefinitionModified();
00283 
00284 protected:
00285    makVrv::DtModelDefinitionInstanceEditorWidget* myModelDefinitions;
00286    makVrv::DtDe*  myDe;
00287    std::string myFilter;
00288    bool myIs2D;
00289    QString myCurValue;
00290 };

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)