OpendTect  6.6
uiaction.h
Go to the documentation of this file.
1 #pragma once
2 
3 /*+
4 ________________________________________________________________________
5 
6  (C) dGB Beheer B.V.; (LICENSE) http://opendtect.org/OpendTect_license.txt
7  Author: Nanne Hemstra
8  Date: May 2007
9  RCS: $Id$
10 ________________________________________________________________________
11 
12 -*/
13 
14 #include "uibasemod.h"
15 
16 #include "separstr.h"
17 #include "uistring.h"
18 #include "uibaseobject.h"
19 
20 
21 class i_ActionMessenger;
22 class uiActionContainer;
23 class uiIcon;
24 class uiMenu;
25 class uiPixmap;
26 class MenuItem;
27 
28 mFDQtclass(QAction)
29 mFDQtclass(QMenu)
30 
31 
32 
35 mExpClass(uiBase) uiAction : public CallBacker
36 {
37 friend class i_ActionMessenger;
38 public:
39  uiAction(const uiString&);
40  uiAction(const uiString&,const CallBack&);
41  uiAction(const uiString&,const CallBack&,
42  const uiIcon&);
43  uiAction(const uiString&,const CallBack&,
44  const char* icon_identifier);
45  uiAction(const uiString&,const char* icon_identifier);
46  uiAction(const MenuItem&);
47  uiAction(mQtclass(QAction*));
48  ~uiAction();
49 
50  void setText(const uiString&);
51  const uiString& text() const;
53  void setIconText(const uiString&);
54  const uiString& iconText() const;
56  void setToolTip(const uiString&);
57  const uiString& toolTip() const;
60  static void updateToolTips();
61  void setMenu(uiMenu*);
63 
64  uiMenu* getMenu() { return menu_; }
65  const uiMenu* getMenu() const { return menu_; }
66 
67  void setShortcut(const char*);
68 
69  void setIcon(const char* identifier);
70  void setIcon(const uiIcon&);
71  const char* getIconName() const { return iconfile_; }
72  void setPixmap(const uiPixmap&);
73 
74  void setCheckable(bool);
75  bool isCheckable() const;
76  void setChecked(bool);
77  bool isChecked() const;
78  void setEnabled(bool);
79  bool isEnabled() const;
80  void setVisible(bool);
81  bool isVisible() const;
82 
83  void setSeparator(bool);
84  bool isSeparator() const;
85 
86  void setParentContainer(const uiActionContainer*);
87  int getID() const;
90  mQtclass(QAction*) qaction() { return qaction_; }
91  const mQtclass(QAction*) qaction() const { return qaction_; }
92 
95 
96  void reloadIcon();
97 
98 protected:
99 
100  virtual void trigger(bool checked);
101  void translateCB(CallBacker*);
102 
103  void updateToolTip(CallBacker* = 0);
104  uiString tooltip_;
105  uiString text_;
106  uiString icontext_;
107 
108  void updateEnabled(CallBacker* = 0);
109  void updateCheckable(CallBacker* = 0);
110  void updateChecked(CallBacker* = 0);
111  void updateVisible(CallBacker* = 0);
112  bool enabled_;
113  bool checkable_;
114  bool ischecked_;
115  bool visible_;
116 
117 private:
118 
119  uiMenu* menu_;
120 
121  BufferString iconfile_;
122  const uiActionContainer* parentcontainer_;
123  i_ActionMessenger* msgr_;
124  mQtclass(QAction*) qaction_;
125 
126  bool checked_;
127 
128  int cmdrecrefnr_;
129 
130  void init(const uiString&);
131 
132 public:
133  mDeprecated ("use uiString")
134  uiAction( const char* nm )
135  :uiAction(toUiString(nm)) {}
136  mDeprecated ("use uiString")
137  uiAction( const char* nm, const CallBack& cb )
138  :uiAction(toUiString(nm),cb) {}
139  mDeprecated ("use uiString")
140  uiAction( const char* nm, const CallBack& cb,
141  const uiIcon& icon )
142  :uiAction(toUiString(nm),cb,icon) {}
143  mDeprecated ("use uiString")
144  uiAction( const char* nm, const CallBack& cb,
145  const char* icon )
146  :uiAction(toUiString(nm),cb,icon) {}
147  mDeprecated ("use uiString")
148  uiAction( const char* nm, const char* icon )
149  :uiAction(toUiString(nm),icon) {}
150 
152  static void addCmdRecorder(const CallBack&);
153  static void removeCmdRecorder(const CallBack&);
154  int /* refnr */ beginCmdRecEvent(const char* msg=0);
155  void endCmdRecEvent(int refnr,const char* msg=0);
156 };
157 
162 {
163 public:
164  uiActionSeparString(const char* str=0) : SeparString(str,'`') {}
165 };
166 
167 
168 /*Generalization of a menubar, a menu or a toolbar that can contain actions. */
170 {
171 public:
173 
174  int nrActions() const;
175  const ObjectSet<uiAction>& actions() const;
176  bool isEmpty() const;
177 
179  uiAction* findAction(const char* itmtxt);
180  uiAction* findAction(const uiString& itmtxt);
185  { return findAction(fs.str()); }
186  int getID(const uiAction*) const;
187  int getID(const mQtclass(QAction)*) const;
188 
189  int insertAction(uiAction*,int id=-1,
190  const uiAction* before = 0);
195  int insertAction(const MenuItem&);
196 
197  uiMenu* addMenu(uiMenu*,const uiMenu* before = 0);
201 
203  void removeAction(int id);
205  void reloadIcons();
206 
207 protected:
209 
210  int getFreeID() const;
211 
212  virtual void doInsertSeparator(mQtclass(QAction)* before) = 0;
213  virtual void doInsertMenu(mQtclass(QMenu)*,
214  mQtclass(QAction)* before ) = 0;
215  virtual void doInsertAction(mQtclass(QAction)*,
216  mQtclass(QAction)* before ) = 0;
217  virtual void doClear() = 0;
218  virtual void doRemoveAction(mQtclass(QAction)*) = 0;
219 
222 
223 public:
224 
225  mDeprecated ("Use insertAction")
226  int insertItem(uiAction* a,int id=-1,
227  const uiAction* before = 0)
228  { return insertAction( a, id, before ); }
229  mDeprecated ("Use addMenu")
230  int insertItem(uiMenu* mnu);
231  void removeItem(uiAction* a) { removeAction(a); }
233  void removeItem(int id) { removeAction(id); }
235 };
236 
uiActionContainer::actions
const ObjectSet< uiAction > & actions() const
Strat::init
void init()
uiPixmap
Off-screen pixel-based paint device.
Definition: uipixmap.h:34
uiActionContainer::ids_
TypeSet< int > ids_
Definition: uiaction.h:221
uistring.h
ObjectSet< uiAction >
uiActionContainer::doInsertSeparator
virtual void doInsertSeparator(mQtclass(QAction) *before)=0
File::toUiString
Export_Basic uiString toUiString(ViewStyle)
mFDQtclass
#define mFDQtclass(cls)
Definition: commondefs.h:233
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
uiActionContainer::doInsertAction
virtual void doInsertAction(mQtclass(QAction) *, mQtclass(QAction) *before)=0
MenuItem
Definition: menuhandler.h:76
uiActionContainer::findAction
uiAction * findAction(const uiString &itmtxt)
The full string of the text will be used.
uiActionContainer::getID
int getID(const uiAction *) const
CallBacker
Inherit from this class to be able to send and/or receive CallBacks.
Definition: callback.h:185
uiActionContainer::isEmpty
bool isEmpty() const
uiActionContainer::removeAction
void removeAction(int id)
uiActionContainer::findAction
uiAction * findAction(const uiActionSeparString &)
i_ActionMessenger::toggled
void toggled(bool checked)
Definition: i_qaction.h:48
CallBack
CallBacks object-oriented (object + method).
Definition: callback.h:62
uiActionContainer
Definition: uiaction.h:170
OD::String::str
const char * str() const
Definition: odstring.h:47
uiActionContainer::mDeprecated
mDeprecated("Use insertAction") int insertItem(uiAction *a
mDeprecated
#define mDeprecated(msg)
Definition: plfdefs.h:215
i_ActionMessenger::uiAction
friend class uiAction
Definition: i_qaction.h:27
uiActionContainer::getID
int getID(const mQtclass(QAction) *) const
uibaseobject.h
SeparString
Definition: separstr.h:136
Notifier
Class to help setup a callback handling.
Definition: notify.h:126
i_ActionMessenger
Helper class for uiAction to relay Qt's messages.
Definition: i_qaction.h:25
FixedString
OD::String that holds an existing text string.
Definition: fixedstring.h:29
uiActionSeparString
Definition: uiaction.h:162
uiActionContainer::actions_
ObjectSet< uiAction > actions_
Definition: uiaction.h:220
uiActionContainer::findAction
uiAction * findAction(const uiMenu *)
HDF5::isEnabled
bool isEnabled(const char *typ=0)
Definition: hdf5access.h:253
uiActionContainer::~uiActionContainer
virtual ~uiActionContainer()
uiActionContainer::removeItem
void removeItem(int id)
Legacy.
Definition: uiaction.h:233
BufferString
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size.
Definition: bufstring.h:40
mQtclass
#define mQtclass(cls)
Definition: commondefs.h:234
uiString
String that is able to hold international (UTF-8) strings for the user interface.
Definition: uistring.h:121
uiActionContainer::reloadIcons
void reloadIcons()
uiActionContainer::removeAllActions
void removeAllActions()
uiActionContainer::insertAction
int insertAction(const MenuItem &)
uiMenu
Definition: uimenu.h:65
uiActionContainer::findAction
uiAction * findAction(const FixedString &fs)
Definition: uiaction.h:184
uiActionContainer::doClear
virtual void doClear()=0
uiActionContainer::addMenu
uiMenu * addMenu(uiMenu *, const uiMenu *before=0)
uiActionContainer::getFreeID
int getFreeID() const
i_ActionMessenger::triggered
void triggered(bool checked)
Definition: i_qaction.h:54
uiActionContainer::doRemoveAction
virtual void doRemoveAction(mQtclass(QAction) *)=0
uiActionContainer::doInsertMenu
virtual void doInsertMenu(mQtclass(QMenu) *, mQtclass(QAction) *before)=0
uiActionContainer::findAction
uiAction * findAction(const char *itmtxt)
uiActionContainer::insertSeparator
uiAction * insertSeparator()
uiActionContainer::findAction
uiAction * findAction(int id)
uiActionContainer::removeAction
void removeAction(uiAction *)
uiActionContainer::insertAction
int insertAction(uiAction *, int id=-1, const uiAction *before=0)
uiActionContainer::uiActionContainer
uiActionContainer()
uiActionSeparString::uiActionSeparString
uiActionSeparString(const char *str=0)
Definition: uiaction.h:164
TypeSet< int >
uiActionContainer::nrActions
int nrActions() const
separstr.h

Generated at for the OpendTect seismic interpretation project. Copyright (C): dGB Beheer B.V. 1995-2021