VR-Forces 4.1 Class Documentation
featureActionManager.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2009 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 /*******************************************************************************
6 ** $RCSfile: featureActionManager.h,v $ $Revision: 1.8 $ $State: Exp $
7 *******************************************************************************/
8 
11 
12 /* This class will allow a developer to add shortcuts or icons tied to a particular
13 ** feature type that can be looked up when creating a menu item. This class will
14 ** also be used in determing which items can/cannot be used when creating a user
15 ** definable toolbar
16 */
17 
18 #ifndef DTFEATUREACTIONMANAGER_H_
19 #define DTFEATUREACTIONMANAGER_H_
20 
23 #include <QtCore/QString>
24 #include <QtCore/QHash>
25 #include <QtGui/QIcon>
26 #include <QtCore/QVector>
27 
28 #define DtKeepIcon "DtKeepIcon"
29 #define DtAssignIconByFeatureName "DtAssignIconByFeatureName"
30 
31 class QAction;
33 class QToolBar;
34 
35 typedef QWidget* (*DtToolbarWidgetCreatorFcn)(QWidget* parent, QToolBar* bar, const DtToolbarCallbackStructure&);
36 
38 {
39 public:
43 
45  QVector<void*> myUserParameters;
46 };
47 
48 
50 {
51 public:
53  virtual ~DtFeatureAction();
55  DtFeatureAction& operator=(const DtFeatureAction&);
56 
57  void clearQAction();
58 
59  QString myFeatureName;
60  QString myShortcut;
61  QString myNormalIcon;
62  QString myDisabledIcon;
63  QString myNormalOnIcon;
64  QString myToolTip;
65  QString myDisplayName;
71 };
72 
74 {
75  Q_OBJECT
76 
77 public:
78  DtFeatureActionManager(const QString& name = "featureActionManager");
80  virtual ~DtFeatureActionManager();
81 
82  virtual bool init();
83  virtual void addFeatureAction(const DtFeatureAction&, bool replaceShortcutInAction = true);
84 
85  virtual DtFeatureActionManager& operator=(const DtFeatureActionManager&);
86 
88  virtual void replaceShortcut(const QString& feature, const QString& shortcut, bool replaceInAction = true);
89 
90  virtual void removeFeatureAction(const QString& featureName);
91  virtual void addFeatureAction(const QString& feature,
92  const QString& shortcut = QString::null, const QString& normalIcon = DtAssignIconByFeatureName,
93  const QString& disabledIcon = DtKeepIcon, const QString& normalOnIcon = DtKeepIcon);
94 
95  virtual void addFeatureAction(const QString& feature, QObject* slotObj, const char* slot, const QString& displayName,
96  bool isToggle = false, const QString& toolTip = QString::null, const QString& normalIcon = DtAssignIconByFeatureName,
97  const QString& disabledIcon = DtKeepIcon, const QString& normalOnIcon = DtKeepIcon);
98 
99  virtual void addFeatureAction(const QString& feature, const QString& displayName, const DtToolbarCallbackStructure& str);
100 
102  virtual bool shortcutInUse(const QString&) const;
103 
105  virtual bool hasShortcutOverride(const QString&) const;
106 
108  virtual bool hasShortcut(const QString&) const;
109 
111  virtual QString shortcutFor(const QString&) const;
112 
114  virtual QString iconFor(const QString& feature, QIcon::Mode mode = QIcon::Normal, QIcon::State = QIcon::Off,
115  bool useDefault = false) const;
116 
118  virtual void setCanBePlacedOnToolbar(const QString& feature, bool);
119  virtual bool canBePlacedOnToolbar(const QString& feature) const;
120 
122  virtual QString featureUsingShortcut(const QString& shortcut) const;
123 
124  static DtFeatureActionManager* create();
125 
128  virtual bool shortcutIsUsed(const QString& shortcut);
129 
131  virtual void registerAction(const QString& featureName, QAction* act);
132 
134  virtual DtFeatureAction featureFor(const QString& feature) const;
135 
136  const QHash<QString, DtFeatureAction>& featureActions() const;
137 
139  virtual void removeFeatureAction(QAction*);
140 
142  virtual void clearQActions();
143 
145  virtual DtFeatureActionManager* clone();
146 
148  virtual void merge(const DtFeatureActionManager&);
149 
150 signals:
152  void replacedShortcut(const QString&, const QString&, const QString&);
153 
154 protected:
155 
158  virtual void write(QTextStream&);
159  virtual void read(QTextStream&);
160 
161  virtual QString defaultIcon(const QString& featureName, const QString& iconName) const;
162 
163 protected:
164  QHash<QString, DtFeatureAction> myFeatureActions;
165  QHash<QString, QString> myShortcutToFeature;
166 };
167 
168 inline const QHash<QString, DtFeatureAction>& DtFeatureActionManager::featureActions() const
169 {
170  return myFeatureActions;
171 }
172 
173 #endif
174 

Document ID: Generated on Tue Jan 29 18:21:16 EST 2013 from SVN revision 123193
Copyright © 2005-2013 VT MÄK Inc. All Rights Reserved (www.mak.com)