OpendTect  6.3
uitoolbutton.h
Go to the documentation of this file.
1 #pragma once
2 /*+
3 ________________________________________________________________________
4 
5  (C) dGB Beheer B.V.; (LICENSE) http://opendtect.org/OpendTect_license.txt
6  Author: Bert
7  Date: Nov 2010
8 ________________________________________________________________________
9 
10 -*/
11 
12 #include "uibasemod.h"
13 #include "uibutton.h"
14 #include "uistrings.h"
15 
16 class uiToolButtonBody;
17 class uiToolButtonSetup;
18 
19 
20 mExpClass(uiBase) uiToolButton : public uiButton
21 {
22 public:
23 
25  UpArrow, DownArrow, LeftArrow, RightArrow };
26  enum PopupMode { DelayedPopup, MenuButtonPopup, InstantPopup };
27 
29  const uiToolButtonSetup&);
30  uiToolButton(uiParent*,const char* filenm,
31  const uiString& tooltip,
32  const CallBack&);
34  const uiString& tooltip,
35  const CallBack&);
36  ~uiToolButton();
37 
38  static uiToolButton* getStd(uiParent*,OD::StdActionType,
39  const CallBack&,const uiString& ttip);
40 
41  bool isOn() const;
42  void setOn(bool yn=true);
43 
44  void setToggleButton(bool yn=true);
45  bool isToggleButton() const;
46 
47  void setArrowType(ArrowType);
48 
49  void setShortcut(const char*);
50  void setMenu(uiMenu*,PopupMode=MenuButtonPopup);
52 
53  const uiMenu* menu() const { return uimenu_; }
54 
55  void setID( int i ) { id_ = i; }
56  int id() const { return id_; }
57 
58  void click();
59 
60 private:
61 
62  uiToolButtonBody* tbbody_;
63  uiToolButtonBody& mkbody(uiParent*,const char* icon_identifier,
64  const uiString&);
65 
66  int id_; // Used by toolbar
67 
69 };
70 
71 
72 #define mDefuiTBSUMemb(typ,memb) mDefSetupClssMemb(uiToolButtonSetup,typ,memb)
73 
75 {
76 public:
77  uiToolButtonSetup( const char* ic, const uiString& tt,
78  const CallBack& c , const uiString&
80  : icid_(ic)
81  , cb_(c)
82  , tooltip_(tt)
83  , istoggle_(false)
84  , ison_(false)
85  , isimmediate_(false)
86  , arrowtype_(uiToolButton::NoArrow)
87  , name_(!nm.isEmpty() ? nm : tt){}
88 
90  mDefuiTBSUMemb(uiString,tooltip);
92 
93  mDefuiTBSUMemb(bool,istoggle);
94  mDefuiTBSUMemb(bool,ison);
95  mDefuiTBSUMemb(bool,isimmediate);
97  mDefuiTBSUMemb(BufferString,shortcut);
99 
100  uiButton* getButton(uiParent*,bool forcetoolbutton=false) const;
103  uiPushButton* getPushButton(uiParent*,bool withicon=true) const;
104 
105 };
#define mExpClass(module)
Definition: commondefs.h:157
uiPushButton * getPushButton(uiParent *, bool withicon=true) const
PopupMode
Definition: uitoolbutton.h:26
uiButton * getButton(uiParent *, bool forcetoolbutton=false) const
pushbutton if name_ != tooltip_ and !istoggle_
is the base class for all buttons.
Definition: uibutton.h:80
Definition: uitoolbutton.h:24
Definition: uistring.h:88
Definition: uiparent.h:24
uiToolButtonBody * tbbody_
Definition: uitoolbutton.h:62
ArrowType
Definition: uitoolbutton.h:24
const uiMenu * menu() const
Definition: uitoolbutton.h:53
Definition: uitoolbutton.h:74
uiToolButtonSetup(const char *ic, const uiString &tt, const CallBack &c, const uiString &nm=uiStrings::sEmptyString())
Definition: uitoolbutton.h:77
bool isOn(int flag=0xffff)
int id() const
Definition: uitoolbutton.h:56
StdActionType
Definition: oduicommon.h:59
Definition: uimenu.h:64
uiMenu * uimenu_
Definition: uitoolbutton.h:68
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:38
bool isEmpty(const char *)
int id_
Definition: uitoolbutton.h:66
void setID(int i)
Definition: uitoolbutton.h:55
Definition: uitoolbutton.h:20
Definition: uitoolbutton.h:25
static uiString sEmptyString()
Definition: uistrings.h:307
uiToolButton * getToolButton(uiParent *) const
CallBacks object-oriented (object + method).
Definition: callback.h:62
#define mDefuiTBSUMemb(typ, memb)
Definition: uitoolbutton.h:72

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