VR-Forces 4.7 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 
72  const makVrv::DtVisualizerDefinitionSet* visualizerDefinitionSet() const
73  {
74  return myVisualizerDefinitionSet;
75  }
76 
77  const makVrv::DtVisualizerDefinition* visualizerDefinition() const
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 
183 public:
191 };
192 
194 {
195  Q_OBJECT
196 
197 public:
198  DtSymbolEditorDialog(makVrv::DtDe&, makVrv::DtDe& appDe, QWidget* parent, const DtObjectType& o, bool useMilStd);
199 
200  virtual ~DtSymbolEditorDialog();
201 
202  bool useMilStd() const;
203  makVrv::DtUnicode milStdFont() const;
204  makVrv::DtUnicode milStdFill() const;
205 
206  virtual void setup(makVrv::DtVisualizerAttributeFontGlyph* myMilStdAttribute,
208  bool forceEffectsGlyph);
209 
210  virtual makVrv::DtVisualAttributeSymbolSelector::ImageSymbolMap imageMapValues() const;
211 
212 protected:
213  virtual void setupMilStd();
214  virtual void setupImageSymbol();
215  virtual void addGlyphRange( unsigned int first,
216  unsigned int last, QFontMetrics &mets, QTreeWidget* widget, QFont font );
217 
218  virtual void initializeMilStdValues();
219  virtual void initializeImageSymbolValues();
220 
221 protected slots:
222  virtual void visualizerTypeChanged();
223  virtual void fontSelectionChanged();
224  virtual void fontEditChanged();
225  virtual void selectImageDefinition();
226  virtual void setImageValueForEditingForce(const std::string&);
227  virtual void checkForceEffectsGlyph();
228 
229 signals:
230  void fontChanged(const makVrv::DtUnicode&, const makVrv::DtUnicode&, bool, bool);
232  void modelDefinitionModified();
233 
234 public:
236  QWidget* myMilStd;
237  QRadioButton* myUseMilStd;
245 
246  QWidget* myImageSymbol;
247  QRadioButton* myUseImage;
249 
250 protected:
251  std::map<int, QTreeWidgetItem*> myItemMap;
252 
259 };
260 
262 {
263  Q_OBJECT
264 
265 public:
267  const DtObjectType& o, bool useDiGuy, bool canSelectDIGuy = true);
268 
270 
271  virtual bool useDiGuy() const;
272  virtual void setup(const makVrv::DtUnicode& modelDef, const DtDiGuyInformation& diGuyData);
273  DtString getCurrentCharacter() const;
274  DtString getCurrentAnimation() const;
275  const AlternateNamesList& getTaskableAnimationList() const;
276  DtString getCurrentAppearance() const;
277  bool useRandomAppearances() const;
278  void getRandomAppearances(DtRwNLengthStringVector*) const;
279  bool randomAppearancesChanged() const;
280  DtString getCurrentHandItem() const;
281  bool useRandomHandItems() const;
282  void getRandomHandItems(DtRwNLengthStringVector*) const;
283  bool randomHandItemsChanged() const;
284  DtString getCurrentHead() const;
285  bool useRandomHeads() const;
286  void getRandomHeads(DtRwNLengthStringVector*) const;
287  bool randomHeadsChanged() const;
288  bool getDiGuyEnabled() const;
289  virtual void updateDiGuyDataFromDialog();
290 
291  virtual void generateCharacterDefinitions(bool allPossible, bool setInModelDef = false);
292  virtual std::string appearanceFromModelDefinition(const std::string& modelDef) const;
293 
294 protected:
295  virtual void setupDiGuy();
296  virtual void setup3DModelDefinition();
297  virtual std::string diGuyModelDefinition(const DtString& character,
298  const DtString& appearance, bool createIfMissing = true);
299 
300 public slots:
301  virtual void visualizerTypeChanged();
302 
303 protected slots:
304  virtual void set3DModel(const std::string&);
305  virtual void diGuyCharacterChanged();
306  virtual void diGuyCharacterChangedFromDialog();
307  virtual void diGuyAppearanceChangedFromDialog();
308  virtual void handItemChangedFromDialog();
309  virtual void headChangedFromDialog();
310  virtual void generateAllPossible();
311 
312 signals:
313  void modelChanged(const makVrv::DtUnicode&, bool);
314  void modelListChanged(const std::vector<std::string>&, bool);
315  void modelDefinitionModified();
316  void uiElementEvent(const DtUiElementEvent&);
317  void diGuyDataChanged(const DtDiGuyInformation&);
318  void finalizeModelChange();
319 
320 protected:
322  QRadioButton* myUseDiGuy;
323  QRadioButton* myUse3DModel;
331 };
332 
334 {
335  Q_OBJECT
336 
337 public:
339  DtSymbolEditor(makVrv::DtDe& appDe, makVrv::DtDe& de, QWidget * parent = 0, Qt::WindowFlags f = 0 );
340 
342  virtual ~DtSymbolEditor();
343 
345 
346  static DtVisualEditor* create(makVrv::DtDe&, makVrv::DtDe&, QWidget*);
347 
348  virtual void addMilStdDefinition();
349  virtual void addImageSymbolDefinition();
350  virtual void enableIconVisualizer(bool);
351 
352  virtual void setEnabled(bool b) { DtVisualEditor::setEnabled(b); };
353  virtual void setCenterIcon(bool);
354 
355  virtual void edit(DtDisplayDefinitionWidget::AskToChangeIfShared, const QString& title);
356 
357 protected:
358  virtual void useMilStd();
359  virtual void useImageSymbol();
360 
361  virtual makVrv::DtElementDefinitionNew* findParent();
362  virtual void updateVisualizersEnabled(bool useMilStd);
363 
364  virtual void setEnabled(int, bool);
365  virtual void reeditVisualizers(const QString& title = "");
366  virtual void editVisualizers(const QString& title);
367 
368 protected slots:
369  virtual void editVisualizers();
370 
371  virtual void setMilStdValues(const makVrv::DtUnicode&, const makVrv::DtUnicode&, bool forceEffectsGlyph, bool noFill);
372  virtual void setImageSymbolValues(const makVrv::DtVisualAttributeSymbolSelector::ImageSymbolMap&);
373 
374 public:
377 
378 protected:
382 
385 
388 };
389 
391 {
392  Q_OBJECT
393 
394 public:
395  DtModelDefinitionSelectionDialog(makVrv::DtDe& myDe, makVrv::DtDe& appDe, QWidget* parent, const DtObjectType& o, bool is2D = false, bool addButtons = true);
396 
398  virtual void setDisplayDefinitionWidget(DtDisplayDefinitionWidget* d) { myDisplayDefinitionWidget = d; };
399 
400  virtual void setDefault(const QString&);
401 
402  virtual std::string selectedInstance() const;
403  virtual void selectFilter( const std::string& filter );
404 
405  void setModelDefinitionManager(makVrv::DtModelDefinitionManager* m) { myModelDefinitionManager = m; };
406 
408  {
409  return myModelDefinitions;
410  }
411 
412  virtual void setDefinitionFilter( const std::string& filter );
413 
414 protected:
415  virtual void createModelDefinition(const std::string& definitionName, const std::string& schema );
416  virtual void setupInstances();
417  virtual void setupFilters();
418  virtual void definitionSelected(const std::string& s);
419 
420 signals:
421  void modelChanged(const std::string&);
422  void modelDefinitionModified();
423 
424 protected:
430  std::string myFilter;
431  bool myIs2D;
432  QString myCurValue;
434 };
435 
438 {
439  Q_OBJECT
440 
441 public:
442  DtVrfModelDefinitionInstanceEditorWidget(makVrv::DtDe& de, QWidget* parent, bool is2D);
443 
445 
446  virtual void on_myAddButton_clicked();
447 
448  boost::signal<void ()> signal_doubleClicked;
449 
450 protected slots:
451  virtual void itemDoubleClicked(QTreeWidgetItem* item, int col);
452 
453 protected:
454  bool myIs2D;
455 };

Document ID: Generated on Fri Apr 26 21:53:14 EDT 2019 from SVN revision 197883
Copyright © 2005-2019 VT MAK. All Rights Reserved (www.mak.com)