april  1.0.0
...
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
dock.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 __DOCK_INC__
21 #define __DOCK_INC__
22 //
23 //
24 //
25 //
26 /* INCLUDES ------------------------------------------------------------ */
27 
28 #include <april/april.h>
29 #include <QDockWidget>
30 #include <QAction>
31 
32 /* INCLUDES ============================================================ */
33 //
34 //
35 //
36 //
37 /* DEFINITIONS --------------------------------------------------------- */
38 
39 namespace april {
40 
41 namespace Gui {
42 
43 class MW;
44 
45 /* DEFINITIONS ========================================================= */
46 //
47 //
48 //
49 //
50 /* CLASS --------------------------------------------------------------- */
51 
55 class Dock : public QObject, public MemTrack {
56  Q_OBJECT
57  BBM_TRACK( Dock );
58 
59  //
60  //
61  //
62  //
63  /* DEFINITIONS ----------------------------------------------------- */
64 
66 # define DOCK_ADD_IPROP(id,name) \
67  d_->props_[id] = d_->intManager->addProperty(name); \
68  d_->props_[id]->setEnabled( false ); \
69  d_->tree_->addProperty( d_->props_[id] );
70 
72 # define DOCK_ADD_IPROP_B(id,name,i_min,i_max) \
73  d_->props_[id] = d_->intManager->addProperty( name ); \
74  d_->props_[id]->setEnabled( false ); \
75  d_->tree_->addProperty( d_->props_[id] ); \
76  d_->intManager->setMinimum( d_->props_[id], i_min ); \
77  d_->intManager->setMaximum( d_->props_[id], i_max );
78 
79 
80  /* DEFINITIONS ===================================================== */
81  //
82  //
83  //
84  //
85  /* DATA ------------------------------------------------------------ */
86 
87 private:
88 
90  MW * mw_;
91 
93  QDockWidget * wdok_;
94 
96  QAction act_sh_;
97 
99  Qt::DockWidgetArea side_;
100 
102  bool b_flip_;
103 
105  int id_;
106 
107  /* DATA ============================================================ */
108  //
109  //
110  //
111  //
112  /* FUNCTIONS ------------------------------------------------------- */
113 
114 public:
115 
116 
120  Dock ( MW * mw, const QString & s_text );
121 
122 
126  virtual ~Dock ( void );
127 
129  QAction * action ( void )
130  { return &act_sh_; }
131 
133  MW * mainWindow ( void ) const
134  { return mw_; }
135 
137  QDockWidget * dock ( void ) const
138  { return wdok_; }
139 
140 
141 
142 private slots:
143 
145  void changeVisibility ( bool b_vis );
146 
148  void saveDockLoc ( Qt::DockWidgetArea );
149 
151  void dockVisibilityChanged ( bool b );
152 
153 private:
154 
156  void timerEvent ( QTimerEvent * );
157 
158 protected:
159 
161  virtual void construct ( void ) = 0;
162 
164  virtual void deconstruct ( void ) = 0;
165 
166  /* FUNCTIONS ======================================================= */
167  //
168  //
169  //
170  //
171 
172 }; /* class Dock */
173 
174 /* CLASS =============================================================== */
175 //
176 //
177 //
178 //
179 
180 } // namespace Gui
181 } // namespace april
182 
183 #endif // __DOCK_INC__
184 /* ------------------------------------------------------------------------- */
185 /* ========================================================================= */