VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
visualEditors.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 2014 MaK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 
8 #pragma once
9 
10 #include <vrvUtil/signalslib.h>
17 
18 #include <QWidget>
19 #include <QDialog>
20 
21 class QComboBox;
22 class QLabel;
23 class QPushButton;
24 class QTreeWidget;
25 class QFontMetrics;
26 class QLineEdit;
27 class QTreeWidgetItem;
28 class QRadioButton;
29 class QString;
30 class QCheckBox;
35 class QHBoxLayout;
36 class QGridLayout;
37 
38 namespace makVrv
39 {
40  class DtDe;
41  class DtElementDefinitionNew;
42  class DtVisualizerDefinition;
43  class DtVisualizerDefinitionSet;
44  class DtModelDefinitionComboBox;
45  class DtDeselectableTreeWidget;
46  class DtUnicode;
47  class DtModelDefinitionInstanceEditorWidget;
48  class DtModelDefinitionManager;
49 }
50 
53 {
54  Q_OBJECT
55 
56 public:
57 
59  DtVisualEditor(makVrv::DtDe& appDe, makVrv::DtDe& de, QWidget * parent = 0, Qt::WindowFlags f = 0 );
60 
62  virtual ~DtVisualEditor();
63 
65 
66  virtual void setDiGuyData(const DtUiElementEvent&) {};
67 
68  virtual void enableVisualizer(bool);
69 
70  virtual bool isValid() const;
71 
73  {
74  return myVisualizerDefinitionSet;
75  }
76 
78  {
79  return myVisualizerDefinition;
80  }
81 
84 
85  virtual void setObjectType(const DtObjectType& t);
86 
87  virtual void setShowingSpotReports(bool b) { myShowingSpotReports = b; };
88 
89  virtual void reeditVisualizers(const QString& title = "") {};
90 
91  virtual void edit(DtDisplayDefinitionWidget::AskToChangeIfShared, const QString& title) = 0;
92 
93 signals:
94  void modified(bool);
95  void modelDefinitionModified();
96  void finalizeModelChange();
97  void uiElementEvent(const DtUiElementEvent&);
98  void redisplayListIcons();
99  void diGuyDataChanged(const DtDiGuyInformation&);
100 
101 protected:
113 };
114 
115 typedef DtVisualEditor* (*DtEditorCreatorFcn)(makVrv::DtDe&, QWidget*);
116 
118 {
119  Q_OBJECT
120 
121 public:
123  DtTacticalGraphicEditor(makVrv::DtDe& appDe, makVrv::DtDe& de, QWidget * parent = 0, Qt::WindowFlags f = 0 );
124 
126  virtual ~DtTacticalGraphicEditor();
127 
128  static DtVisualEditor* create(makVrv::DtDe&, makVrv::DtDe&, QWidget*);
130  virtual void edit(DtDisplayDefinitionWidget::AskToChangeIfShared, const QString& title);
131 
132 public slots:
133  virtual bool selectSchema();
134  virtual void selectTexture();
135  virtual void selectModelDefinition();
136 
137 protected:
138  virtual bool selectSchema(const QString&);
139  virtual void setupForNewSchema(const std::string& schema);
140  virtual void replaceVisualizerDefinition(const makVrv::DtVisualizerDefinition* copy);
141 
142 public:
143  QGridLayout* mySchemaLayout;
147 
152 };
153 
155 {
156  Q_OBJECT
157 
158 public:
160  DtModelDefinitionEditor(makVrv::DtDe& appDe, makVrv::DtDe& de, QWidget * parent = 0, Qt::WindowFlags f = 0 );
161 
163  virtual ~DtModelDefinitionEditor();
164 
165  static DtVisualEditor* create(makVrv::DtDe&, makVrv::DtDe&, QWidget*);
167  virtual void setObjectType(const DtObjectType&);
168 
169  virtual void reeditVisualizers(const QString& title = "");
170  virtual void edit(DtDisplayDefinitionWidget::AskToChangeIfShared, const QString& title);
171 
172 protected:
173  virtual void revertDiGuyInformation();
174  virtual void updateDiGuyInformation(Dt3DDefinitionSelectionDialog*, bool createModelDefinitionsIfMissing = false);
175  virtual void select3DModelDefinition(const QString& title);
176 
177 protected slots:
178  virtual void select3DModelDefinition();
179  virtual void setModelValue(const makVrv::DtUnicode&, bool useDiGuy);
180  virtual void setModelValue(const std::vector<std::string>&, bool useDiGuy);
181  virtual void diGuyDataChangedSlot(const DtDiGuyInformation& diGuyData);
182  virtual void finalizeEditingAccept();
183  virtual void finalizeEditingCancel();
184 
185 public:
193 };
194 
196 {
197  Q_OBJECT
198 
199 public:
200  DtSymbolEditorDialog(makVrv::DtDe&, makVrv::DtDe& appDe, QWidget* parent, const DtObjectType& o, bool useMilStd);
201 
202  virtual ~DtSymbolEditorDialog();
203 
204  bool useMilStd() const;
205  makVrv::DtUnicode milStdFont() const;
206  makVrv::DtUnicode milStdFill() const;
207 
208  virtual void setup(makVrv::DtVisualizerAttributeFontGlyph* myMilStdAttribute,
210  bool forceEffectsGlyph);
211 
212  virtual makVrv::DtVisualAttributeSymbolSelector::ImageSymbolMap imageMapValues() const;
213 
214 protected:
215  virtual void setupMilStd();
216  virtual void setupImageSymbol();
217  virtual void addGlyphRange( unsigned int first,
218  unsigned int last, QFontMetrics &mets, QTreeWidget* widget, QFont font );
219 
220  virtual void initializeMilStdValues();
221  virtual void initializeImageSymbolValues();
222 
223 protected slots:
224  virtual void visualizerTypeChanged();
225  virtual void fontSelectionChanged();
226  virtual void fontEditChanged();
227  virtual void selectImageDefinition();
228  virtual void setImageValueForEditingForce(const std::string&);
229  virtual void checkForceEffectsGlyph();
230 
231 signals:
232  void fontChanged(const makVrv::DtUnicode&, const makVrv::DtUnicode&, bool, bool);
234  void modelDefinitionModified();
235 
236 public:
238  QWidget* myMilStd;
239  QRadioButton* myUseMilStd;
247 
248  QWidget* myImageSymbol;
249  QRadioButton* myUseImage;
251 
252 protected:
253  std::map<int, QTreeWidgetItem*> myItemMap;
254 
261 };
262 
264 {
265  Q_OBJECT
266 
267 public:
269  const DtObjectType& o, bool useDiGuy, bool canSelectDIGuy = true);
270 
272 
273  virtual bool useDiGuy() const;
274  virtual void setup(const makVrv::DtUnicode& modelDef, const DtDiGuyInformation& diGuyData);
275  DtString getCurrentCharacter() const;
276  DtString getCurrentAnimation() const;
277  const AlternateNamesList& getTaskableAnimationList() const;
278  DtString getCurrentAppearance() const;
279  bool useRandomAppearances() const;
280  void getRandomAppearances(DtRwNLengthStringVector*) const;
281  bool randomAppearancesChanged() const;
282  DtString getCurrentHandItem() const;
283  bool useRandomHandItems() const;
284  void getRandomHandItems(DtRwNLengthStringVector*) const;
285  bool randomHandItemsChanged() const;
286  DtString getCurrentHead() const;
287  bool useRandomHeads() const;
288  void getRandomHeads(DtRwNLengthStringVector*) const;
289  bool randomHeadsChanged() const;
290  bool getDiGuyEnabled() const;
291  virtual void updateDiGuyDataFromDialog();
292 
293  virtual void generateCharacterDefinitions(bool allPossible, bool setInModelDef = false);
294  virtual std::string appearanceFromModelDefinition(const std::string& modelDef) const;
295 
296 protected:
297  virtual void setupDiGuy();
298  virtual void setup3DModelDefinition();
299  virtual std::string diGuyModelDefinition(const DtString& character,
300  const DtString& appearance, bool createIfMissing = true);
301 
302 public slots:
303  virtual void visualizerTypeChanged();
304 
305 protected slots:
306  virtual void set3DModel(const std::string&);
307  virtual void diGuyCharacterChanged();
308  virtual void diGuyCharacterChangedFromDialog();
309  virtual void diGuyAppearanceChangedFromDialog();
310  virtual void handItemChangedFromDialog();
311  virtual void headChangedFromDialog();
312  virtual void generateAllPossible();
313 
314 signals:
315  void modelChanged(const makVrv::DtUnicode&, bool);
316  void modelListChanged(const std::vector<std::string>&, bool);
317  void modelDefinitionModified();
318  void uiElementEvent(const DtUiElementEvent&);
319  void diGuyDataChanged(const DtDiGuyInformation&);
320  void finalizeModelChange();
321 
322 protected:
324  QRadioButton* myUseDiGuy;
325  QRadioButton* myUse3DModel;
333 };
334 
336 {
337  Q_OBJECT
338 
339 public:
341  DtSymbolEditor(makVrv::DtDe& appDe, makVrv::DtDe& de, QWidget * parent = 0, Qt::WindowFlags f = 0 );
342 
344  virtual ~DtSymbolEditor();
345 
347 
348  static DtVisualEditor* create(makVrv::DtDe&, makVrv::DtDe&, QWidget*);
349 
350  virtual void addMilStdDefinition();
351  virtual void addImageSymbolDefinition();
352  virtual void enableIconVisualizer(bool);
353 
354  virtual void setEnabled(bool b) { DtVisualEditor::setEnabled(b); };
355  virtual void setCenterIcon(bool);
356 
357  virtual void edit(DtDisplayDefinitionWidget::AskToChangeIfShared, const QString& title);
358 
359 protected:
360  virtual void useMilStd();
361  virtual void useImageSymbol();
362 
363  virtual makVrv::DtElementDefinitionNew* findParent();
364  virtual void updateVisualizersEnabled(bool useMilStd);
365 
366  virtual void setEnabled(int, bool);
367  virtual void reeditVisualizers(const QString& title = "");
368  virtual void editVisualizers(const QString& title);
369 
370 protected slots:
371  virtual void editVisualizers();
372 
373  virtual void setMilStdValues(const makVrv::DtUnicode&, const makVrv::DtUnicode&, bool forceEffectsGlyph, bool noFill);
374  virtual void setImageSymbolValues(const makVrv::DtVisualAttributeSymbolSelector::ImageSymbolMap&);
375  virtual QSize getSmallestSizeImage(const makVrv::DtVisualAttributeSymbolSelector::ImageSymbolMap&) const;
376 
377 public:
380 
381 protected:
385 
388 
391 };
392 
394 {
395  Q_OBJECT
396 
397 public:
398  DtModelDefinitionSelectionDialog(makVrv::DtDe& myDe, makVrv::DtDe& appDe, QWidget* parent, const DtObjectType& o, bool is2D = false, bool addButtons = true);
399 
401  virtual void setDisplayDefinitionWidget(DtDisplayDefinitionWidget* d) { myDisplayDefinitionWidget = d; };
402 
403  virtual void setDefault(const QString&);
404 
405  virtual std::string selectedInstance() const;
406  virtual void selectFilter( const std::string& filter );
407 
408  void setModelDefinitionManager(makVrv::DtModelDefinitionManager* m) { myModelDefinitionManager = m; };
409 
411  {
412  return myModelDefinitions;
413  }
414 
415  virtual void setDefinitionFilter( const std::string& filter );
416 
417 protected:
418  virtual void createModelDefinition(const std::string& definitionName, const std::string& schema );
419  virtual void setupInstances();
420  virtual void setupFilters();
421  virtual void definitionSelected(const std::string& s);
422 
423 signals:
424  void modelChanged(const std::string&);
425  void modelDefinitionModified();
426 
427 protected:
433  std::string myFilter;
434  bool myIs2D;
435  QString myCurValue;
437 };
438 
441 {
442  Q_OBJECT
443 
444 public:
445  DtVrfModelDefinitionInstanceEditorWidget(makVrv::DtDe& de, QWidget* parent, bool is2D);
446 
448 
449  virtual void on_myAddButton_clicked();
450 
451  boost::signals2::signal<void ()> signal_doubleClicked;
452 
453 protected slots:
454  virtual void itemDoubleClicked(QTreeWidgetItem* item, int col);
455 
456 protected:
457  bool myIs2D;
458 };
makVrv::DtModelDefinitionInstanceEditorWidget * modelDefinitions()
Definition: visualEditors.h:410
**virtual void setObjectType(const DtObjectType &)
makVrv::DtDe & myDe
Definition: visualEditors.h:255
virtual void setEnabled(bool b)
Definition: visualEditors.h:354
makVrv::DtVisualizerAttributeFontGlyph * myMilStdFill
Definition: visualEditors.h:383
A unicode string.
Definition: DtUnicode.h:33
makVrv::DtModelDefinitionManager * myModelDefinitionManager
Definition: visualEditors.h:429
makVrv::DtDe & myAppDe
Definition: visualEditors.h:256
QPushButton * mySelect
Definition: visualEditors.h:188
The model definition manager is responsible to managing all of the model definitions the IG knows abo...
Definition: DtModelDefinitionManager.h:79
std::string myFilter
Definition: visualEditors.h:433
QLineEdit * mySchema
Definition: visualEditors.h:145
void setModelDefinitionManager(makVrv::DtModelDefinitionManager *m)
Definition: visualEditors.h:408
DtModelDefinitionEditor * myEditor
Definition: visualEditors.h:332
bool myInitiallyUseDiGuy
Definition: visualEditors.h:328
DtModelDefinitionSelectionDialog * myModelDefinitions
Definition: visualEditors.h:326
makVrv::DtVisualAttributeSymbolSelector * myImageSymbolAttribute
Definition: visualEditors.h:384
makVrv::DtVisualizerAttributeFontGlyph * myMilStdAttribute
Definition: visualEditors.h:382
QLabel * myTexture
Definition: visualEditors.h:151
DtRwNLengthStringVector is a named, readable/writable vector of strings of arbitrary length...
Definition: rwNLengthStringVector.h:28
Definition: displayDefinitionWidget.h:169
virtual void setShowingSpotReports(bool b)
Definition: visualEditors.h:87
DtDiGuyInformation myDiGuyData
Definition: visualEditors.h:189
virtual void setDiGuyData(const DtUiElementEvent &)
Definition: visualEditors.h:66
QGridLayout * mySchemaLayout
Definition: visualEditors.h:143
DtObjectType myObjectType
Definition: visualEditors.h:436
virtual void reeditVisualizers(const QString &title="")
Definition: visualEditors.h:89
DtObjectType myObjectType
Definition: visualEditors.h:110
const makVrv::DtVisualizerDefinition * myVisualizerDefinition
Definition: visualEditors.h:105
bool myCenterIcon
Definition: visualEditors.h:389
bool myUseMilStd
Definition: visualEditors.h:390
int myEditingForce
Definition: visualEditors.h:237
QWidget * myImageSymbol
Definition: visualEditors.h:248
Definition: visualEditors.h:335
QRadioButton * myUse3DModel
Definition: visualEditors.h:325
A widget for creating new model definition instances.
Definition: DtModelDefinitionInstanceEditorWidget.h:21
The makVrv::DtVisualizerDefinitionSet is a collection of makVrv::DtVisualizerDefinition instances...
Definition: DtVisualizerDefinitionSet.h:20
bool myCanUseDIGuy
Definition: visualEditors.h:191
boost::function< void()> AskToChangeIfShared
Definition: displayDefinitionWidget.h:174
bool myIsAggregate
Definition: visualEditors.h:192
const makVrv::DtVisualizerDefinitionSet * visualizerDefinitionSet() const
Definition: visualEditors.h:72
virtual void setDisplayDefinitionWidget(DtDisplayDefinitionWidget *d)
Definition: visualEditors.h:401
std::vector< AlternateNamesPair > AlternateNamesList
Definition: diGuyCharacterData.h:26
QWidget * myMilStd
Definition: visualEditors.h:238
QPushButton * myEdit
Definition: visualEditors.h:379
makVrv::DtModelDefinitionInstanceEditorWidget * myModelDefinitions
Definition: visualEditors.h:428
virtual void setup(makVrv::DtElementDefinitionNew *, const makVrv::DtVisualizerDefinition *, const makVrv::DtVisualizerDefinitionSet *, int m)
A simple editor widget with an embedded de.
Definition: visualEditors.h:52
DtObjectType myObjectType
Definition: visualEditors.h:260
Definition: objectType.h:27
QLineEdit * myModelDefinition
Definition: visualEditors.h:187
QString myTitleToUseOnReedit
Definition: visualEditors.h:112
bool myIs2D
Definition: visualEditors.h:434
makVrv::DtDe & myDe
Definition: visualEditors.h:102
makVrv::DtDe & myAppDe
Definition: visualEditors.h:432
makVrv::DtDe & myAppDe
Definition: visualEditors.h:331
const makVrv::DtVisualizerAttributeFontGlyph * myMilStdFill
Definition: visualEditors.h:258
bool myShowingSpotReports
Definition: visualEditors.h:111
QLineEdit * myFillEdit
Definition: visualEditors.h:246
QLabel * myLabel
Definition: visualEditors.h:144
boost::signals2::signal< void()> signal_doubleClicked
Definition: visualEditors.h:451
QLabel * myTextureLabel
Definition: visualEditors.h:148
const makVrv::DtVisualizerDefinitionSet * myVisualizerDefinitionSet
Definition: visualEditors.h:106
bool myIs2D
Definition: visualEditors.h:457
The element definition class contains the element definition information.
Definition: DtElementDefinitionNew.h:25
DtDisplayDefinitionWidget * myParent
Definition: visualEditors.h:109
Definition: visualEditors.h:117
bool myModified
Definition: visualEditors.h:108
virtual void edit(DtDisplayDefinitionWidget::AskToChangeIfShared, const QString &title)=0
Definition: visualEditors.h:195
QPushButton * mySelect
Definition: visualEditors.h:146
bool myCanUseDIGuy
Definition: visualEditors.h:329
QCheckBox * myNoFill
Definition: visualEditors.h:241
int myImageSymbolDefinition
Definition: visualEditors.h:387
QRadioButton * myUseImage
Definition: visualEditors.h:249
int myMilStdDefinition
Definition: visualEditors.h:386
makVrv::DtElementDefinitionNew * myElementDefinition
Definition: visualEditors.h:104
QLabel * myUsing
Definition: visualEditors.h:378
QString myCurValue
Definition: visualEditors.h:435
virtual void setObjectType(const DtObjectType &t)
Definition: visualEditors.h:393
const makVrv::DtVisualAttributeSymbolSelector * myImageSymbolAttribute
Definition: visualEditors.h:259
const makVrv::DtVisualizerAttributeFontGlyph * myMilStdAttribute
Definition: visualEditors.h:257
QTreeWidget * myFonts
Definition: visualEditors.h:240
Definition: visualEditors.h:263
Symbol Selector visual attribute.
Definition: DtVisualizerAttribute.h:417
Font glyph type visualizer attribute.
Definition: DtVisualizerAttribute.h:372
A definition of a visualizer.
Definition: DtVisualizerDefinition.h:22
QCheckBox * myForceEffectsGlyph
Definition: visualEditors.h:242
QRadioButton * myUseDiGuy
Definition: visualEditors.h:324
DtObjectType myObjectType
Definition: visualEditors.h:330
DtDisplayDefinitionWidget * myDisplayDefinitionWidget
Definition: visualEditors.h:430
QRadioButton * myUseMilStd
Definition: visualEditors.h:239
std::map< int, DtUnicode > ImageSymbolMap
Definition: DtVisualizerAttribute.h:422
The DtUiElement class is the base for which all UI elements are defined.
Definition: uiElement.h:92
makVrv::DtDe & myAppDe
Definition: visualEditors.h:103
QTreeWidget * myImages
Definition: visualEditors.h:250
DtDiGuyConfigurationWidget * myDiGuyWidget
Definition: visualEditors.h:323
QLineEdit * myTextureLineEdit
Definition: visualEditors.h:149
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
makVrv::DtDe & myDe
Definition: visualEditors.h:327
Contains information about the current DI-Guy character instance and some of its available options...
Definition: diGuyInformation.h:20
QPushButton * myTextureEdit
Definition: visualEditors.h:150
QLabel * myLabel
Definition: visualEditors.h:186
This class manages the dialog box that appears when the user modifies a DI-Guy entity in the Simulati...
Definition: diGuyConfigurationWidget.h:44
makVrv::DtDe & myDe
Definition: visualEditors.h:431
void setDisplayWidgetParent(DtDisplayDefinitionWidget *p)
Definition: visualEditors.h:82
!!!!!!!!!!! DtVrfModelDefinitionInstanceEditorWidget
Definition: visualEditors.h:440
int myModelSet
Definition: visualEditors.h:107
QLabel * myFillLabel
Definition: visualEditors.h:245
std::map< int, QTreeWidgetItem * > myItemMap
Definition: visualEditors.h:253
Contains makVrv::DtModelDefinitionInstanceEditorWidget class.
#define DT_DLL_simulationObjectEditorimpl
This file is used to determine how to build.
Definition: simulationObjectEditorImplDefines.h:32
QLineEdit * myFontEdit
Definition: visualEditors.h:244
DtDisplayDefinitionWidget * displayWidgetParent()
Definition: visualEditors.h:83
Definition: visualEditors.h:154
const makVrv::DtVisualizerDefinition * visualizerDefinition() const
Definition: visualEditors.h:77
DtDiGuyInformation myOriginalDiGuyData
Definition: visualEditors.h:190
QLabel * myFontLabel
Definition: visualEditors.h:243

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)