VR-Forces 4.3 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
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>
23 #include <vrvCoreQt/DtDockable.h>
24 #include <vrvCoreQt/DtMenuItem.h>
27 
28 #include <QtGui/QIcon>
29 #include <QtGui/QPixmap>
30 #include <QtGui/QWidget>
31 #include <QtGui/QDockWidget>
32 #include <QtGui/QPushButton>
33 #include <QtGui/QSpacerItem>
34 #include <QtCore/QTimer>
35 #include <map>
36 
37 class QVBoxLayout;
38 
39 namespace makVrv
40 {
41  class DtDe;
42  class DtChannelManager;
43  class DtChannel;
44  class DtObserverObject;
45 }
46 
47 namespace makVrf
48 {
49  class DtAutoHidePanelItem;
50  class DtPropCreatePalette;
51  class DtEntityCreatePalette;
52  class DtTacticalGraphicCreatePalette;
53  class DtHazardAreaCreatePalette;
54 
59  {
60 
61  Q_OBJECT
62 
63  public:
64 
66  DtAutoHideDockViewItem(makVrv::DtDe& de, const std::string& dockName, DtAutoHidePanelItem* item);
67 
69  virtual ~DtAutoHideDockViewItem();
70 
72  virtual QAction* createAction(makVrv::DtDe& de, QWidget* parent);
73 
74  protected:
75 
77  virtual void on_triggered();
78 
79  protected:
80 
84  };
85 
91  {
92  Q_OBJECT
93 
94  public:
95 
98  DtAutoHidePanelItem(makVrv::DtDe& de, QWidget* parent, QString title);
99 
101  virtual ~DtAutoHidePanelItem();
102 
104  DtAutoHideDock* dockToManage();
105  virtual void setDockToManage(DtAutoHideDock* widget);
106 
108  virtual const QPixmap& icon() const;
109  virtual void setIcon(const QIcon& p);
110 
112  virtual QString iconText();
113  virtual void setIconText(const QString& s);
114 
117  virtual bool toggled() const;
118  virtual void setToggled(bool flag);
119 
121  virtual void setSelected(bool flag);
122 
124  virtual void setAvailable(bool visible);
125  virtual bool available() const;
126 
128  virtual void setAboutToBeShown(bool flag);
129 
132  virtual void refreshSize(int minsize=-1);
133 
135  virtual void setToggle(bool flag);
136 
137  protected:
138 
140  virtual void enterEvent(QEvent* e);
141 
143  virtual void leaveEvent(QEvent *);
144 
146  virtual void mouseReleaseEvent( QMouseEvent * event );
147 
149  virtual void paintEvent(QPaintEvent* p);
150 
151  signals:
152 
154  void signal_enter(DtAutoHidePanelItem*);
155 
157  void signal_leave(DtAutoHidePanelItem*);
158 
161  void signal_toggled(DtAutoHidePanelItem*);
162 
165  void signal_clicked(DtAutoHidePanelItem*);
166 
168  void signal_availabilityChanged(DtAutoHidePanelItem*);
169 
170  protected:
171 
172  QPixmap myIcon;
173  QString myIconText;
186  };
187 
189  {
190  public:
192  virtual ~DtAutoHidePanelItemCreator();
193 
195  static DtAutoHidePanelItemCreator& instance(makVrv::DtDe&);
196 
198  static void registerInstance(makVrv::DtDe& de, DtAutoHidePanelItemCreator* instance);
199 
200  virtual DtAutoHidePanelItem* create(makVrv::DtDe&, QWidget* parent, const QString& title);
201  };
202 
208  {
209  Q_OBJECT
210 
211  public:
212 
214  {
215  Hidden = 0,
218  Floating
219  };
220 
221  typedef std::list<DtAutoHidePanelItem*> DtAutoHidePanelItemList;
222  typedef std::list<DtAutoHidePanelItem*>::iterator DtAutoHidePanelItemListIterator;
223 
224  typedef std::list<DtAutoHideDock*> DtAutoHideDockList;
225  typedef std::list<DtAutoHideDock*>::iterator DtAutoHideDockListIterator;
226 
227  typedef std::map<std::string, DtAppearanceOptions> DtAppearanceList;
228  typedef std::map<std::string, DtAppearanceOptions>::iterator DtAppearanceListIterator;
229 
230  public:
231 
232  DtAutoHidePanel(makVrv::DtDe& de, const std::string& name, makVrv::DtQtDeMainWindow* parent);
233 
234  virtual ~DtAutoHidePanel();
235 
239  virtual void addItem(DtAutoHideDock* dock, bool forceVisible=false) ;
240 
242  virtual void clear();
243 
245  virtual DtAutoHidePanelItem* findItemForDock( const DtAutoHideDock* dock );
246 
249  virtual void hideAllDocks();
250 
252  virtual int itemCount();
253 
255  virtual void placeItems();
256 
258  virtual void removeItem(DtAutoHidePanelItem* item);
259 
261  virtual void showDockForItem( DtAutoHidePanelItem* item, bool animate=true);
262 
264  virtual void hideDockForItem( DtAutoHidePanelItem* item, bool animate=true);
265 
267  static DtAutoHidePanel* instance(makVrv::DtDe&);
268 
269  virtual void changeVisibility(bool);
270 
272 
275 
277  virtual void changeFloatingGeometry(int px, int py, int width, int height) {};
278 
281 
283  virtual void changeDockedGeometry(int px, int py, int width, int height) {};
284 
287 
289  virtual void selectPage(const std::string& pageClassName) {};
290 
291  const DtAutoHideDockList& docks() const
292  {
293  return myDocks;
294  }
295 
296  template <typename PaletteClass>
297  PaletteClass* createPalette()
298  {
299  DtAutoHideDockList::iterator iter = myDocks.begin();
300 
301  while (iter != myDocks.end())
302  {
303  PaletteClass* p = dynamic_cast<PaletteClass*>((*iter)->widget());
304 
305  if (p)
306  {
307  return p;
308  }
309 
310  ++iter;
311  }
312 
313  return 0;
314  }
315 
316  template <typename PaletteClass>
317  DtAutoHideDock* creationDock()
318  {
319  DtAutoHideDockList::iterator iter = myDocks.begin();
320 
321  while (iter != myDocks.end())
322  {
323  PaletteClass* p = dynamic_cast<PaletteClass*>((*iter)->widget());
324 
325  if (p)
326  {
327  return *iter;
328  }
329 
330  ++iter;
331  }
332 
333  return 0;
334  }
335 
337  virtual DtEntityCreatePalette* entityCreatePalette()
338  {
339  return createPalette<DtEntityCreatePalette>();
340  }
341 
342  virtual DtAutoHideDock* entityCreationDock()
343  {
344  return creationDock<DtEntityCreatePalette>();
345  }
346 
348  virtual DtHazardAreaCreatePalette* hazardAreaCreatePalette()
349  {
350  return createPalette<DtHazardAreaCreatePalette>();
351  }
352 
353  virtual DtAutoHideDock* hazardAreaCreationDock()
354  {
355  return creationDock<DtHazardAreaCreatePalette>();
356  }
357 
359  virtual DtTacticalGraphicCreatePalette* tacticalGraphicCreatePalette()
360  {
361  return createPalette<DtTacticalGraphicCreatePalette>();
362  }
363 
364  virtual DtAutoHideDock* tacticalGraphicCreationDock()
365  {
366  return creationDock<DtTacticalGraphicCreatePalette>();
367  }
368 
370  virtual DtPropCreatePalette* propCreatePalette()
371  {
372  return createPalette<DtPropCreatePalette>();
373  }
374 
375  virtual DtAutoHideDock* propCreationDock()
376  {
377  return creationDock<DtPropCreatePalette>();
378  }
379 
382  virtual void setItemPinned( DtAutoHidePanelItem*, bool );
383 
384  protected:
385 
387  virtual void setupGui();
388 
390  virtual bool eventFilter(QObject* p, QEvent* e);
391 
393  virtual void installEventFilters();
394 
396  virtual int maxItemWidth();
397 
399  virtual int findDock(const DtAutoHideDock* dock);
400 
402  virtual void removeDock(DtAutoHideDock* dock);
403 
405  virtual void relocateAnyPinnedDock();
406 
408  virtual void refreshItems(int minsize);
409 
411  virtual void refreshAppearanceOfItem(DtAutoHidePanelItem* autoHideItemWidget, bool forceVisible);
412 
414  virtual void addPageToGui(makVrv::DtPage*);
415 
417  virtual void removePageFromGui(makVrv::DtPage*);
418 
420  virtual void selectPageInGui(makVrv::DtPage* page) {};
421 
422  protected slots:
423 
426  virtual void slot_onItemToggled(DtAutoHidePanelItem*);
427 
430  virtual void slot_onItemClicked(DtAutoHidePanelItem*);
431 
433  virtual void slot_dockClosed(DtAutoHideDock* dockWidget);
434 
436  virtual void slot_dockEntered(DtAutoHideDock* dockWidget);
437 
439  virtual void slot_dockLeft(DtAutoHideDock* dockWidget);
440 
442  virtual void slot_dockResized(DtAutoHideDock* dockWidget);
443 
445  virtual void slot_dockDestroyed(DtAutoHideDock* dockWidget);
446 
448  virtual void slot_showDockOfCurrentItem(bool lockIt=false);
449 
451  virtual void slot_closeTimerTimeout();
452 
454  virtual void slot_onItemAvailabilityChanged(DtAutoHidePanelItem* dockWidget);
455 
456  virtual void slot_observerModeSettingChanged( makVrv::DtObserverObject*, int setting, bool value );
457  virtual void placeCompass();
458 
459  virtual void finalizeSetup();
460 
461  protected:
469  QTimer myTimer;
470  QTimer myCloseTimer;
471 
473  };
474 
477  {
478  public:
481 
483  virtual ~DtAutoHidePanelCreator();
484 
486  static DtAutoHidePanelCreator& instance(makVrv::DtDe&);
487 
489  static void registerInstance(makVrv::DtDe&, DtAutoHidePanelCreator*);
490 
492  virtual DtAutoHidePanel* create(const std::string& name, QWidget* parent);
493 
494  protected:
496  };
497 }

Document ID: Generated on Wed Mar 11 21:20:57 EDT 2015 from SVN revision 150940
Copyright © 2005-2014 VT MÄK. All Rights Reserved (www.mak.com)