april  1.0.0
...
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
dnaeditordlg.h
Go to the documentation of this file.
1 /* ========================================================================= */
2 /* ------------------------------------------------------------------------- *//*
12 
13 
14  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
15  Please read COPYING and README files in root folder
16  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
17 */
18 /* ------------------------------------------------------------------------- */
19 /* ========================================================================= */
20 #ifndef __DNAEDITORDLG_INC__
21 #define __DNAEDITORDLG_INC__
22 //
23 //
24 //
25 //
26 /* INCLUDES ------------------------------------------------------------ */
27 
28 #include <QDialog>
29 #include <april/april.h>
30 #include <april/logic/uniqueid.h>
31 #include <april/logic/dna.h>
32 #include "ui_dnaeditordlg.h"
33 
34 /* INCLUDES ============================================================ */
35 //
36 //
37 //
38 //
39 /* DEFINITIONS --------------------------------------------------------- */
40 
41 namespace april {
42 
43 class World;
44 class DNA;
45 
46 namespace Gui {
47 
48 class MW;
49 
50 /* DEFINITIONS ========================================================= */
51 //
52 //
53 //
54 //
55 /* CLASS --------------------------------------------------------------- */
56 
57 
61 class DNAEditorDlg : public QDialog, public MemTrack {
62  Q_OBJECT
63  BBM_TRACK( DNAEditorDlg );
64 
65  //
66  //
67  //
68  //
69  /* DEFINITIONS ----------------------------------------------------- */
70 
72  enum Tabs {
73  TabGeneral = 0,
74  TabSensors,
75  TabReflexes,
76  TabBrains,
77  TabActuators
78  };
79 
80 
81  /* DEFINITIONS ===================================================== */
82  //
83  //
84  //
85  //
86  /* DATA ------------------------------------------------------------ */
87 
88 private:
89 
91  Ui::DNAEditorDlg ui;
92 
94  World * w_;
95 
97  DNA & dna_;
98 
100  static DNA invalid_dna_;
101 
102  /* DATA ============================================================ */
103  //
104  //
105  //
106  //
107  /* FUNCTIONS ------------------------------------------------------- */
108 
109 public:
110 
112  explicit DNAEditorDlg ( MW * parent, World * w );
113 
115  explicit DNAEditorDlg ( MW * parent, World * w, DNA & dna );
116 
118  ~DNAEditorDlg (void);
119 
120 private:
121 
123  void init ( void );
124 
125 protected:
126 
129  void changeEvent ( QEvent *e );
131 
132 protected slots:
133 
136  void addActuators ( void );
137  void addBrains ( void );
138  void addReflex ( void );
139  void addSensor ( void );
140  void remActuators ( void );
141  void remBrains ( void );
142  void remReflex ( void );
143  void remSensor ( void );
145 
147  void validate ( void );
148 
149 private:
150 
151 
154  QString getName ( ID & id_for_name );
155  void validateNew ( DNA::InitData &init_d );
156  void validateEdit ( DNA::InitData & init_d );
157  void componentsToDNA ( DNA & dna );
159 
160  /* FUNCTIONS ======================================================= */
161  //
162  //
163  //
164  //
165 
166 }; /* class DNAEditorDlg */
167 
168 /* CLASS =============================================================== */
169 //
170 //
171 //
172 //
173 
174 } // namespace Gui
175 
176 } // namespace april
177 
178 #endif // __DNAEDITORDLG_INC__
179 /* ------------------------------------------------------------------------- */
180 /* ========================================================================= */