OpendTect  6.3
uistratdisplay.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: Bruno
8  Date: Mar 2010
9 ________________________________________________________________________
10 
11 -*/
12 
13 #include "uistratmod.h"
14 #include "uidialog.h"
15 #include "uigraphicsview.h"
16 
17 #include "uigraphicsitem.h"
18 #include "geometry.h"
19 #include "uistratdispdata.h"
20 #include "uistring.h"
21 
22 class uiAxisHandler;
23 class uiGenInput;
24 class uiGraphicsScene;
25 class uiLabeledSpinBox;
26 class uiParent;
27 class uiPolygonItem;
28 class uiPolyLineItem;
29 class uiPushButton;
30 class uiStratViewControl;
31 class uiTextItem;
32 class uiToolButton;
33 class MouseEvent;
34 
35 
36 
38 { mODTextTranslationClass(uiStratDrawer)
39 public:
40  uiStratDrawer(uiGraphicsScene&,
41  const StratDispData&);
42  ~uiStratDrawer();
43 
44  void setZRange(const StepInterval<float>&);
45 
46  void draw();
47  void drawColumns();
48  void setNewAxis(uiAxisHandler*,bool isx);
49 
50  uiAxisHandler* xAxis() { return xax_; }
51  uiAxisHandler* yAxis() { return yax_; }
52  const uiAxisHandler* xAxis() const { return xax_; }
53  const uiAxisHandler* yAxis() const { return yax_; }
54 
55  mStruct(uiStrat) ColumnItem
56  {
57  ColumnItem(const char* nm)
58  : name_(nm)
59  , borderitm_(0)
60  , bordertxtitm_(0) {}
61 
62  BufferString name_;
63  int size_;
64  int pos_;
65 
66  uiPolyLineItem* borderitm_;
67  uiTextItem* bordertxtitm_;
68  uiGraphicsItemSet txtitms_;
69  uiGraphicsItemSet unititms_;
70  uiGraphicsItemSet lvlitms_;
71  };
72 
73  const ColumnItem& colItem( int idx ) const
74  { return *colitms_[idx]; }
75 
76 protected:
77 
80 
84 
85  //data
87 
88  //graphics
89  void addUnit(float);
90  void drawBorders(ColumnItem&);
91  void drawLevels(ColumnItem&);
92  void drawUnits(ColumnItem&);
93  void drawEmptyText();
94  void eraseAll();
95  void initAxis();
96  void updateAxis();
97 };
98 
99 
100 
103 public:
105  ~uiStratDisplay();
106 
107  void display(bool,bool shrk=false,bool max=false);
108  void setZRange(const Interval<float>&);
109 
110  void addControl(uiToolBar*);
111  uiStratViewControl* control() { return uicontrol_; }
112 
113  void setTree();
114 
115  void setIsLocked( bool yn ) { islocked_ = yn; }
116  bool isLocked() const { return islocked_; }
117 
118 protected :
119 
122 
126 
132  bool islocked_;
133 
135 
136  void createDispParamGrp();
137  void setRange();
138 
139  bool handleUserClick(const MouseEvent&);
140 
141  int getColIdxFromPos() const;
142  StratDispData::Column* getColFromPos() const;
143  const StratDispData::Unit* getUnitFromPos() const;
144  const StratDispData::Unit* getParentUnitFromPos() const;
145  const StratDispData::Unit* getUnitFromPos(int colidx) const;
146  const StratDispData::Level* getLevelFromPos() const;
147  Geom::Point2D<float> getPos() const;
148 
149  void controlRange(CallBacker*);
150  void dispParamChgd(CallBacker*);
151  void reDraw(CallBacker*);
152  void selCols(CallBacker*);
153  void usrClickCB(CallBacker*);
154  void mouseMoveCB(CallBacker*);
155 };
156 
157 
160 public:
161 
162  struct Setup
163  {
164  Setup( const Interval<float>& rg )
165  : maxrg_(rg)
166  , tb_(0) {}
167 
170  };
171 
174 
175  void setRange( const Interval<float>& rg )
176  { range_ = rg; }
177  const Interval<float>& range() const
178  { return range_; }
179 
180  void setSensitive(bool);
181 
183 
184 protected:
185 
192 
195 
198 
199  MouseEventHandler& mouseEventHandler();
200  void updatePosButtonStates();
201 
202  void zoomCB(CallBacker*);
203  void cancelZoomCB(CallBacker*);
204  void handDragged(CallBacker* );
205  void handDragStarted(CallBacker*);
206  void handDragging(CallBacker*);
207  void keyPressed(CallBacker*);
208  void rubBandCB(CallBacker*);
209  void dragModeCB(CallBacker*);
210  void wheelMoveCB(CallBacker*);
211 };
Definition: uigroup.h:53
Definition: uitoolbar.h:30
#define mExpClass(module)
Definition: commondefs.h:157
uiStratDispToTree uidatawriter_
Definition: uistratdisplay.h:121
void setIsLocked(bool yn)
Definition: uistratdisplay.h:115
Inherit from this class to be able to send and/or receive CallBacks.
Definition: callback.h:182
Notifier< uiStratViewControl > rangeChanged
Definition: uistratdisplay.h:182
FixedString Setup()
Definition: keystrs.h:113
const ColumnItem & colItem(int idx) const
Definition: uistratdisplay.h:73
Interval< float > range_
Definition: uistratdisplay.h:193
FixedString Level()
Definition: keystrs.h:78
is the base class for all buttons.
Definition: uibutton.h:80
const Interval< float > & range() const
Definition: uistratdisplay.h:177
uiTextItem * emptyitm_
Definition: uistratdisplay.h:79
#define mStruct(module)
Definition: commondefs.h:162
#define mODTextTranslationClass(clss)
Definition: uistring.h:37
uiAxisHandler * yax_
Definition: uistratdisplay.h:82
uiToolButton * rubbandzoombut_
Definition: uistratdisplay.h:187
uiAxisHandler * yAxis()
Definition: uistratdisplay.h:51
const uiAxisHandler * yAxis() const
Definition: uistratdisplay.h:53
Definition: uigraphicsitemimpl.h:197
uiToolButton * vertzoominbut_
Definition: uistratdisplay.h:188
Handles an axis on a plot.
Definition: uiaxishandler.h:50
bool islocked_
Definition: uistratdisplay.h:132
used to gather all units and tied levels from a tree for display
Definition: uistratdispdata.h:117
Definition: uiparent.h:24
bool isLocked() const
Definition: uistratdisplay.h:116
uiPushButton * fillbutton_
Definition: uistratdisplay.h:130
FixedString Unit()
Definition: keystrs.h:140
uiGraphicsScene & scene_
Definition: uistratdisplay.h:81
Definition: uispinbox.h:123
uiToolButton * vertzoomoutbut_
Definition: uistratdisplay.h:189
ObjectSet< ColumnItem > colitms_
Definition: uistratdisplay.h:78
uiStratViewControl * uicontrol_
Definition: uistratdisplay.h:123
uiAxisHandler * xAxis()
Definition: uistratdisplay.h:50
General Input Element.
Definition: uigeninput.h:56
uiToolButton * cancelzoombut_
Definition: uistratdisplay.h:190
float startdragpos_
Definition: uistratdisplay.h:196
Interval< float > boundingrange_
Definition: uistratdisplay.h:194
uiLabeledSpinBox * stepfld_
Definition: uistratdisplay.h:128
#define mDefSetupMemb(typ, memb)
Definition: commondefs.h:129
uiStratDrawer drawer_
Definition: uistratdisplay.h:125
uiToolBar * tb_
Definition: uistratdisplay.h:191
Definition: mouseevent.h:166
uiStratViewControl * control()
Definition: uistratdisplay.h:111
uiGroup * dispparamgrp_
Definition: uistratdisplay.h:129
StratDispData data_
Definition: uistratdisplay.h:124
Definition: uigraphicsitemimpl.h:219
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:38
Definition: uistratdispdata.h:32
Definition: uistratdisplay.h:101
Definition: uistratdisplay.h:37
Definition: uigraphicsitem.h:141
Definition: uigraphicsview.h:49
Definition: uistratdispdata.h:157
Definition: uitoolbutton.h:20
const StratDispData & data_
Definition: uistratdisplay.h:86
Definition: uigraphicsitemimpl.h:277
Interval< float > maxrg_
Definition: uistratdisplay.h:134
uiGenInput * rangefld_
Definition: uistratdisplay.h:127
uiAxisHandler * xax_
Definition: uistratdisplay.h:83
void setRange(const Interval< float > &rg)
Definition: uistratdisplay.h:175
const uiAxisHandler * xAxis() const
Definition: uistratdisplay.h:52
~uiStratViewControl()
Definition: uistratdisplay.h:173
bool mousepressed_
Definition: uistratdisplay.h:197
uiStratTreeToDisp * uidatagather_
Definition: uistratdisplay.h:120
uiPushButton * viewcolbutton_
Definition: uistratdisplay.h:131
Definition: mouseevent.h:72
Definition: uistratdisplay.h:158
Definition: uigraphicsscene.h:35
uiGraphicsView & viewer_
Definition: uistratdisplay.h:186
Displays a Strat::RefTree.
Definition: uistratreftree.h:31
Geom::Point2D< int > pos_
Definition: mouseevent.h:128

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