VR-Forces 4.2 Class Documentation
autoHidePanel.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
10 
11 #pragma once
12 
13 #include <vrvUtil/signalslib.h>
14 #include <vrvUtil/DtVirtualBaseClass.h>
18 #include <vrvCore/DtUserInterfaceAssembler.h>
19 #include <vrvCoreQt/DtDockable.h>
20 #include <vrvCoreQt/DtMenuItem.h>
21 #include <vrvCoreQt/DtQtPageCollection.h>
22 #include <vrvUtil/DtSignalConnectionManager.h>
23 
24 #include <QtGui/QIcon>
25 #include <QtGui/QPixmap>
26 #include <QtGui/QWidget>
27 #include <QtGui/QDockWidget>
28 #include <QtGui/QPushButton>
29 #include <QtGui/QSpacerItem>
30 #include <QtCore/QTimer>
31 #include <map>
32 
33 class QVBoxLayout;
34 
35 namespace makVrv
36 {
37  class DtDe;
38  class DtChannelManager;
39  class DtChannel;
40  class DtObserverObject;
41 }
42 
43 namespace makVrf
44 {
45  class DtAutoHidePanelItem;
46  class DtPropCreatePalette;
47  class DtEntityCreatePalette;
48  class DtTacticalGraphicCreatePalette;
49 
53  class DT_DLL_VRFGUICOREQT DtAutoHideDockViewItem : public makVrv::DtMenuItem
54  {
55 
56  Q_OBJECT
57 
58  public:
59 
61  DtAutoHideDockViewItem(makVrv::DtDe& de, const std::string& dockName, DtAutoHidePanelItem* item);
62 
64  virtual ~DtAutoHideDockViewItem();
65 
67  virtual QAction* createAction(makVrv::DtDe& de, QWidget* parent);
68 
69  protected:
70 
72  virtual void on_triggered();
73 
74  protected:
75 
78  makVrv::DtDe& myDe;
79  };
80 
86  {
87  Q_OBJECT
88 
89  public:
90 
93  DtAutoHidePanelItem(makVrv::DtDe& de, QWidget* parent, QString title);
94 
96  virtual ~DtAutoHidePanelItem();
97 
99  DtAutoHideDock* dockToManage();
100  virtual void setDockToManage(DtAutoHideDock* widget);
101 
103  virtual const QPixmap& icon() const;
104  virtual void setIcon(const QIcon& p);
105 
107  virtual QString iconText();
108  virtual void setIconText(const QString& s);
109 
112  virtual bool toggled() const;
113  virtual void setToggled(bool flag);
114 
116  virtual void setSelected(bool flag);
117 
119  virtual void setAvailable(bool visible);
120  virtual bool available() const;
121 
123  virtual void setAboutToBeShown(bool flag);
124 
127  virtual void refreshSize(int minsize=-1);
128 
130  virtual void setToggle(bool flag);
131 
132  protected:
133 
135  virtual void enterEvent(QEvent* e);
136 
138  virtual void leaveEvent(QEvent *);
139 
141  virtual void mouseReleaseEvent( QMouseEvent * event );
142 
144  virtual void paintEvent(QPaintEvent* p);
145 
146  signals:
147 
149  void signal_enter(DtAutoHidePanelItem*);
150 
152  void signal_leave(DtAutoHidePanelItem*);
153 
156  void signal_toggled(DtAutoHidePanelItem*);
157 
160  void signal_clicked(DtAutoHidePanelItem*);
161 
163  void signal_availabilityChanged(DtAutoHidePanelItem*);
164 
165  protected:
166 
167  QPixmap myIcon;
168  QString myIconText;
180  makVrv::DtDe& myDe;
181  };
182 
183  class DT_DLL_VRFGUICOREQT DtAutoHidePanelItemCreator : public makVrv::DtVirtualBaseClass
184  {
185  public:
187  virtual ~DtAutoHidePanelItemCreator();
188 
190  static DtAutoHidePanelItemCreator& instance(makVrv::DtDe&);
191 
193  static void registerInstance(makVrv::DtDe& de, DtAutoHidePanelItemCreator* instance);
194 
195  virtual DtAutoHidePanelItem* create(makVrv::DtDe&, QWidget* parent, const QString& title);
196  };
197 
201  class DT_DLL_VRFGUICOREQT DtAutoHidePanel : public QObject, public makVrv::DtQtPageCollection,
202  public makVrv::DtVirtualBaseClass
203  {
204  Q_OBJECT
205 
206  public:
207 
209  {
210  Hidden = 0,
213  Floating
214  };
215 
216  typedef std::list<DtAutoHidePanelItem*> DtAutoHidePanelItemList;
217  typedef std::list<DtAutoHidePanelItem*>::iterator DtAutoHidePanelItemListIterator;
218 
219  typedef std::list<DtAutoHideDock*> DtAutoHideDockList;
220  typedef std::list<DtAutoHideDock*>::iterator DtAutoHideDockListIterator;
221 
222  typedef std::map<std::string, DtAppearanceOptions> DtAppearanceList;
223  typedef std::map<std::string, DtAppearanceOptions>::iterator DtAppearanceListIterator;
224 
225  public:
226 
227  DtAutoHidePanel(makVrv::DtDe& de, const std::string& name, makVrv::DtQtDeMainWindow* parent);
228 
229  ~DtAutoHidePanel();
230 
234  virtual void addItem(DtAutoHideDock* dock, bool forceVisible=false) ;
235 
237  virtual void clear();
238 
240  virtual DtAutoHidePanelItem* findItemForDock( const DtAutoHideDock* dock );
241 
244  virtual void hideAllDocks();
245 
247  virtual int itemCount();
248 
250  virtual void placeItems();
251 
253  virtual void removeItem(DtAutoHidePanelItem* item);
254 
256  virtual void showDockForItem( DtAutoHidePanelItem* item, bool animate=true);
257 
259  virtual void hideDockForItem( DtAutoHidePanelItem* item, bool animate=true);
260 
262  static DtAutoHidePanel* instance(makVrv::DtDe&);
263 
264  virtual void changeVisibility(bool);
265 
267 
269  virtual void changeLocation(makVrv::DtPageConfiguration::PageCollectionLocation) {};
270 
272  virtual void changeFloatingGeometry(int px, int py, int width, int height) {};
273 
275  virtual void changeFloatingGeometry(makVrv::DtPageConfiguration::PageCollectionGeometry geometry) {};
276 
278  virtual void changeDockedGeometry(int px, int py, int width, int height) {};
279 
281  virtual void changeDockedGeometry(makVrv::DtPageConfiguration::PageCollectionGeometry geometry) {};
282 
284  virtual void selectPage(const std::string& pageClassName) {};
285 
286 
288  virtual DtEntityCreatePalette* entityCreatePalette();
289  virtual DtAutoHideDock* entityCreationDock();
290 
292  virtual DtTacticalGraphicCreatePalette* tacticalGraphicCreatePalette();
293  virtual DtAutoHideDock* tacticalGraphicCreationDock();
294 
296  virtual DtPropCreatePalette* propCreatePalette();
297  virtual DtAutoHideDock* propCreationDock();
298 
301  virtual void setItemPinned( DtAutoHidePanelItem*, bool );
302 
303  protected:
304 
306  virtual void setupGui();
307 
309  virtual bool eventFilter(QObject* p, QEvent* e);
310 
312  virtual void installEventFilters();
313 
315  virtual int maxItemWidth();
316 
318  virtual int findDock(const DtAutoHideDock* dock);
319 
321  virtual void removeDock(DtAutoHideDock* dock);
322 
324  virtual void relocateAnyPinnedDock();
325 
327  virtual void refreshItems(int minsize);
328 
330  virtual void refreshAppearanceOfItem(DtAutoHidePanelItem* autoHideItemWidget, bool forceVisible);
331 
333  virtual void addPageToGui(makVrv::DtPage*);
334 
336  virtual void removePageFromGui(makVrv::DtPage*);
337 
339  virtual void selectPageInGui(makVrv::DtPage* page) {};
340 
341  protected slots:
342 
345  virtual void slot_onItemToggled(DtAutoHidePanelItem*);
346 
349  virtual void slot_onItemClicked(DtAutoHidePanelItem*);
350 
352  virtual void slot_dockClosed(DtAutoHideDock* dockWidget);
353 
355  virtual void slot_dockEntered(DtAutoHideDock* dockWidget);
356 
358  virtual void slot_dockLeft(DtAutoHideDock* dockWidget);
359 
361  virtual void slot_dockResized(DtAutoHideDock* dockWidget);
362 
364  virtual void slot_dockDestroyed(DtAutoHideDock* dockWidget);
365 
367  virtual void slot_showDockOfCurrentItem(bool lockIt=false);
368 
370  virtual void slot_closeTimerTimeout();
371 
373  virtual void slot_onItemAvailabilityChanged(DtAutoHidePanelItem* dockWidget);
374 
375  virtual void slot_observerModeSettingChanged( makVrv::DtObserverObject*, int setting, bool value );
376  virtual void placeCompass();
377 
378  virtual void finalizeSetup();
379 
380  protected:
388  QTimer myTimer;
389  QTimer myCloseTimer;
390 
391  makVrv::DtSignalConnectionManager myConnections;
392  };
393 }

Document ID: Generated on Sun Nov 24 19:49:21 EST 2013 from SVN revision 133924
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)