OpendTect  6.3
uistratselunits.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: July 2011
9 ________________________________________________________________________
10 
11 -*/
12 
13 #include "uistratmod.h"
14 #include "uigroup.h"
15 #include "stratunitrefiter.h"
16 class uiStratSelUnitsListItem;
17 class uiTreeView;
18 class uiComboBox;
19 
20 
21 
23 {
24 public:
25 
26  enum Type { Simple, Single, Multi };
27 
28  mExpClass(uiStrat) Setup
29  {
30  public:
31 
33  : type_(t)
34  , pol_(p)
35  , maxnrlines_(12)
36  , autochoosechildparent_(true)
37  , chooseallinitial_(false)
38  , fldtxt_(t==Multi?"Units":"Unit") {}
39 
40  mDefSetupMemb(Type,type)
42  mDefSetupMemb(int,maxnrlines)
44  mDefSetupMemb(bool,chooseallinitial)
45  mDefSetupMemb(bool,autochoosechildparent)
46  };
49 
51  const Strat::NodeUnitRef&,
52  const Setup&);
53  ~uiStratSelUnits();
54 
55  bool isChosen(const Strat::UnitRef&) const;
56  bool isPresent(const Strat::UnitRef&) const;
57  const Strat::UnitRef* firstChosen() const;
58  void getChosen(ObjectSet<const Strat::UnitRef>&) const;
59  void setCurrent(const Strat::UnitRef&);
60  void setChosen(const Strat::UnitRef&,bool yn=true);
61  void setExpanded(int dpth=mUdf(int)); // not for Simple
62 
67 
68 protected:
69 
73 
77 
78  void mkBoxFld();
79  void mkTreeFld();
80 
81  void curChg(CallBacker*);
82  void choiceChg(CallBacker*);
83  void treeFinalSel(CallBacker*);
84 
85  inline bool isMulti() const { return setup_.type_==Multi; }
86  void checkParent(const Strat::UnitRef*);
87  void checkChildren(const Strat::UnitRef*,bool);
88  void chooseRelated(const Strat::UnitRef*,bool);
89  void unChooseParentIfLast(const Strat::UnitRef*);
90 
91  uiStratSelUnitsListItem* find(const Strat::UnitRef*);
92  const uiStratSelUnitsListItem* find( const Strat::UnitRef* ur ) const
93  { return const_cast<uiStratSelUnits*>(this)->find(ur); }
94 
95 };
Definition: uigroup.h:53
#define mExpClass(module)
Definition: commondefs.h:157
Inherit from this class to be able to send and/or receive CallBacks.
Definition: callback.h:182
Setup(Type t, Strat::UnitRefIter::Pol p)
Definition: uistratselunits.h:32
Type
Definition: uistratselunits.h:26
ObjectSet< uiStratSelUnitsListItem > lvitms_
Definition: uistratselunits.h:72
bool doingautochoose_
Definition: uistratselunits.h:76
bool isPresent(const char *) const
const Strat::NodeUnitRef & topnode_
Definition: uistratselunits.h:74
uiTreeView * tree_
Definition: uistratselunits.h:71
Combo box.
Definition: uicombobox.h:30
Definition: uiparent.h:24
Set of pointers to objects.
Definition: commontypes.h:28
uiComboBox * combo_
Definition: uistratselunits.h:70
Definition: uistratselunits.h:28
#define mUdf(type)
Use this macro to get the undefined for simple types.
Definition: undefval.h:270
UnitRef for units containing other units only.
Definition: stratunitref.h:120
#define mDefSetupMemb(typ, memb)
Definition: commondefs.h:129
Definition: uitreeview.h:29
Reference data for a stratigraphic unit.
Definition: stratunitref.h:36
const T * find(const ObjectSet< T > &os, const S &val)
Get const object in set.
Definition: objectset.h:187
Setup setup_
Definition: uistratselunits.h:75
Notifier< uiStratSelUnits > currentChanged
Definition: uistratselunits.h:63
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:38
Definition: uistratselunits.h:22
const Strat::UnitRef * curunit_
Definition: uistratselunits.h:66
bool isMulti() const
Definition: uistratselunits.h:85
Notifier< uiStratSelUnits > unitChosen
Only issued for Multi.
Definition: uistratselunits.h:64
Pol
Definition: stratunitrefiter.h:32
Notifier< uiStratSelUnits > unitPicked
Only for Single.
Definition: uistratselunits.h:65
const uiStratSelUnitsListItem * find(const Strat::UnitRef *ur) const
Definition: uistratselunits.h:92

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