OpendTect  6.3
uicolseqsel.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: Bert
8  Date: Jan 2017
9 ________________________________________________________________________
10 
11 -*/
12 
13 #include "uitoolsmod.h"
14 #include "uigroup.h"
15 #include "uitoolbar.h"
16 #include "coltabsequence.h"
17 
18 class uiLabel;
19 class uiColSeqMan;
20 class uiColSeqDisp;
21 
22 
23 /* Color sequence selection object. */
24 
27 public:
28 
30 
31  virtual ~uiColSeqSelTool();
32 
33  const Sequence& sequence() const;
34  void setSequence(const Sequence&);
35  const char* seqName() const;
36  void setSeqName(const char*);
37  ColTab::SeqUseMode seqUseMode() const;
38  void setNonSeisDefault();
39 
40  uiColSeqDisp* seqDisp() { return disp_; }
41 
52 
53  void setCurrentAsDefault();
54  void showManageDlg();
55 
57  virtual bool isGroup() const { return false;}
58  virtual uiParent* asParent() = 0;
59  virtual bool isFinalised() const = 0;
60  virtual void addObjectsToToolBar(uiToolBar&);
61  virtual void orientationChanged();
62 
63  static int maxElemLongDimSize();
65 
66 protected:
67 
69 
72 
73  void initDisp(CallBacker*);
74  void seqModifCB(CallBacker*);
75  void selectCB(CallBacker*);
76  void menuCB(CallBacker*);
77  void upCB(CallBacker*) { nextColSeq(true); }
78  void downCB(CallBacker*) { nextColSeq(false); }
79  void setAsDefaultCB(CallBacker*);
80  void manDlgSeqSelCB(CallBacker*);
81  void manageCB(CallBacker*) { showManageDlg(); }
82  void manDlgCloseCB(CallBacker*) { mandlg_ = 0; }
83 
84  void initialise(OD::Orientation);
85  virtual void setIsVertical(bool);
86  void nextColSeq(bool prev);
87  void setToolTip();
89  { return isGroup() ? asParent() : 0; }
90 
91 };
92 
93 
94 #define mImpluiColSeqSelGroup() \
95  virtual uiParent* asParent() { return this; } \
96  virtual bool isGroup() const { return true; } \
97  virtual bool isFinalised() const { return finalised(); }\
98  void setLabelText(const uiString&); \
99  void setOrientation( OD::Orientation orient ) \
100  { setIsVertical(orient==OD::Vertical); } \
101 protected: \
102  uiLabel* lbl_
103 
104 /* uiGroup for color sequence selection */
105 
106 mExpClass(uiTools) uiColSeqSel : public uiGroup
107  , public uiColSeqSelTool
108 {
109 public:
110 
113 
115 
116 };
117 
118 
119 #define mImpluiColSeqSelToolBar(seltoolclssnm) \
120 \
121  seltoolclssnm& selTool() { return seltool_; } \
122  operator seltoolclssnm&() { return seltool_; } \
123 \
124 protected: \
125 \
126  seltoolclssnm& seltool_;
127 
128 
129 
130 /* uiToolBar for color sequence selection */
131 
134 public:
135 
137 
139 
140 };
141 
142 
143 /* Defines toolbar tool class in .cc file. */
144 
145 #define mImpluiColSeqSelToolBarTool(tbarclssnm,baseclssnm) \
146 \
147 class tbarclssnm##Tool : public baseclssnm \
148 { \
149 public: \
150 \
151 tbarclssnm##Tool( tbarclssnm* tb ) \
152  : tbar_(tb) \
153 { \
154  initialise( tbar_->getOrientation() ); \
155  addObjectsToToolBar( *tbar_ ); \
156  mAttachCB( tbar_->orientationChanged, tbarclssnm##Tool::orChgCB ); \
157 } \
158 \
159 void orChgCB( CallBacker* ) \
160 { \
161  setIsVertical( tbar_->getOrientation() == OD::Vertical ); \
162  orientationChanged(); \
163 } \
164 \
165 virtual uiParent* asParent() \
166 { \
167  return tbar_; \
168 } \
169 \
170 virtual bool isFinalised() const \
171 { \
172  return tbar_->finalised(); \
173 } \
174 \
175  tbarclssnm* tbar_; \
176 \
177 };
#define mImpluiColSeqSelGroup()
Definition: uicolseqsel.h:94
const Sequence & sequence() const
Definition: uicolseqdisp.h:47
Definition: uigroup.h:53
Definition: uitoolbar.h:30
#define mExpClass(module)
Definition: commondefs.h:157
OD::Orientation orientation() const
Definition: uicolseqdisp.h:48
#define mImpluiColSeqSelToolBar(seltoolclssnm)
Definition: uicolseqsel.h:119
Inherit from this class to be able to send and/or receive CallBacks.
Definition: callback.h:182
#define mODTextTranslationClass(clss)
Definition: uistring.h:37
A series of color control points able to give an (interpolated) color for every position [0...
Definition: coltabsequence.h:37
void setToolTip(const uiString &)
void manDlgCloseCB(CallBacker *)
Definition: uicolseqsel.h:82
static const uiString & emptyString()
Definition: uistring.h:107
const char * seqName() const
Definition: uicolseqsel.h:106
Definition: uistring.h:88
Definition: uiparent.h:24
void downCB(CallBacker *)
Definition: uicolseqsel.h:78
Notifier< uiColSeqSelTool > seqChanged
Definition: uicolseqsel.h:42
Definition: uicolseqsel.h:25
void upCB(CallBacker *)
Definition: uicolseqsel.h:77
Notifier< uiColSeqSelTool > seqModified
Definition: uicolseqsel.h:44
ColTab::Sequence Sequence
Definition: uicolseqsel.h:29
void setSequence(const Sequence &)
uiColSeqDisp * seqDisp()
Definition: uicolseqsel.h:40
Notifier< uiColSeqSelTool > seqMenuReq
CallBacker* is the uiMenu about to pop up.
Definition: uicolseqsel.h:50
Notifier< uiColSeqSelTool > newManDlg
Definition: uicolseqsel.h:43
Notifier< uiColSeqSelTool > refreshReq
Definition: uicolseqsel.h:47
void manageCB(CallBacker *)
Definition: uicolseqsel.h:81
uiParent * getParent()
Definition: uicolseqsel.h:88
uiColSeqMan * mandlg_
Definition: uicolseqsel.h:71
SeqUseMode
Definition: coltab.h:27
void setSeqName(const char *)
Definition: uilabel.h:22
virtual bool isGroup() const
Definition: uicolseqsel.h:57
Definition: uicolseqman.h:28
uiColSeqDisp * disp_
Definition: uicolseqsel.h:70
Definition: uicolseqsel.h:132
Definition: uicolseqdisp.h:34
Orientation
Fundamental orientation in 2D UIs.
Definition: oduicommon.h:21

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