OpendTect  6.6
uilistbox.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: 16/05/2000
9  RCS: $Id$
10 ________________________________________________________________________
11 
12 -*/
13 
14 #include "uibasemod.h"
15 #include "uigroup.h"
16 #include "uistrings.h"
17 #include "keyenum.h"
18 #include "draw.h"
19 
20 class BufferStringSet;
21 class uiCheckBox;
22 class uiLabel;
23 class uiListBoxBody;
24 class uiMenu;
25 class uiString;
26 
27 mFDQtclass(QListWidgetItem)
28 
29 
30 
31 
59 mExpClass(uiBase) uiListBoxObj : public uiObject
60 {
61 public:
62  uiListBoxObj(uiParent*,const char* nm,OD::ChoiceMode);
63  ~uiListBoxObj();
64 
65  uiListBoxBody& body() { return *body_; }
66 
67 private:
68  uiListBoxBody* body_;
69  uiListBoxBody& mkbody(uiParent*,const char*,OD::ChoiceMode);
70 };
71 
72 
73 
74 mExpClass(uiBase) uiListBox : public uiGroup
76 friend class i_listMessenger;
77 friend class uiListBoxBody;
78 public:
79  enum LblPos { LeftTop, RightTop, LeftMid, RightMid,
80  AboveLeft, AboveMid, AboveRight,
81  BelowLeft, BelowMid, BelowRight };
82 
83  mExpClass(uiBase) Setup
84  {
85  public:
89  : lbl_(l)
90  , cm_(icm)
91  , prefnrlines_(0)
92  , prefwidth_(0)
93  , lblpos_(lp)
94  {}
95 
98  mDefSetupMemb(int,prefnrlines)
99  mDefSetupMemb(int,prefwidth)
101 
102  };
103 
104  uiListBox(uiParent*,const char* nm=0,
106  uiListBox(uiParent*,const Setup&,const char* nm=0);
107  virtual ~uiListBox();
108 
109  uiListBoxObj* box() { return lb_; }
110  uiGroup* checkGroup() { return checkgrp_; }
111  uiCheckBox* primaryCheckBox() { return cb_; }
112  int nrLabels() const { return lbls_.size(); }
113  uiLabel* label( int nr=0 ) { return lbls_[nr]; }
114  void setLabelText(const uiString&,int nr=0);
115  void addLabel(const uiString&,LblPos);
116 
117  inline OD::ChoiceMode choiceMode() const { return choicemode_; }
118  inline bool isMultiChoice() const
119  { return ::isMultiChoice(choicemode_); }
121  void setMultiChoice(bool yn=true);
122  void setAllowNoneChosen(bool);
124 
125  int size() const;
126  inline bool isEmpty() const { return size() == 0; }
127  bool validIdx(int) const;
128  bool isPresent(const char*) const;
129  int maxNrOfChoices() const;
130 
131  Alignment::HPos alignment() const { return alignment_; }
133  void setNrLines(int);
134  void setFieldWidth(int);
137 
138  void setEmpty();
139  void removeItem(int);
140  void removeItem(const char*);
141  void removeItem( const FixedString& fs )
142  { removeItem( fs.str() ); }
143  void setAllowDuplicates(bool yn);
144  void addItem(const uiString&,bool marked=false,int id=-1);
145  void addItem(const uiString&,const uiPixmap&,int id=-1);
146  void addItem(const uiString&,const Color&,int id=-1);
147  void addItem( const char* str, bool marked=false, int id=-1 )
148  { addItem( toUiString(str), marked, id ); }
149  void addItems(const char**);
150  void addItems(const BufferStringSet&);
151  void addItems(const uiStringSet&);
152  void insertItem(const uiString&,int idx=-1,
153  bool marked=false,int id=-1);
154  void insertItem(const uiString&,const uiPixmap&,
155  int idx=-1,int id=-1);
156  void insertItem(const uiString&,const Color&,
157  int idx=-1,int id=-1);
158  void setPixmap(int,const Color&);
159  void setPixmap(int,const uiPixmap&);
160  void setIcon(int,const char* icon_identifier);
161  void setColor(int,const Color&);
162  Color getColor(int) const;
163 
164  void sortItems(bool asc=true);
165 
166  int indexOf(const char*) const;
167  const char* textOfItem(int) const;
168  void setItemText(int,const uiString&);
169  void setItemText( int idx, const char* txt )
170  { setItemText( idx, toUiString(txt) ); }
171  void getItems(BufferStringSet&) const;
172 
173  int currentItem() const;
174  const char* getText() const { return textOfItem(currentItem()); }
175  void setCurrentItem(int);
176  void setCurrentItem(const char*);
177  void setCurrentItem( const FixedString& fs )
178  { setCurrentItem( fs.str() ); }
179  void setItemSelectable(int,bool);
180 
181  int nrChosen() const;
182  bool isChoosable(int) const;
183  bool isChosen(int) const;
184  int firstChosen() const;
185  int nextChosen(int prev=-1) const;
187  void getChosen(TypeSet<int>&) const;
188  void setChoosable(int,bool yn);
189  void setChosen(int,bool yn=true);
190  void setChosen(Interval<int>,bool yn=true);
191  void chooseAll(bool yn=true);
193  void setChosen(const TypeSet<int>&);
194 
195  void displayItem(int, bool);
196 
197  bool isMarked(int) const;
198  void setMarked(int,bool);
199 
200  void setItemID(int idx,int id);
201  int currentItemID() const;
202  int getItemID(int idx) const;
203  int getItemIdx(int id) const;
204 
205  void scrollToTop();
208  void disableRightClick(bool yn);
209  void blockScrolling(bool yn) { scrollingblocked_ = yn; }
210 
212  CNotifier<uiListBox,int> itemChosen; /*< if itmidx==-1, many items were
213  chosen at once */
218 
220  const CallBack& wcb )
221  { retrievecb_ = rcb; savecb_ = wcb; }
222 
223 private:
224 
226 
236  bool allshown_;
237 
239  void handleCheckChange(mQtclass(QListWidgetItem*));
240  void usrChooseAll(bool yn=true);
241 
242  bool isNone() const { return choicemode_ == OD::ChooseNone;}
243  int optimumFieldWidth(int minwdth=20,int maxwdth=40) const;
244  static int cDefNrLines();
245 
247  void initNewItem(int);
248  void setItemCheckable(int,bool);
249 
250  void setItemsCheckable( bool yn ) { setMultiChoice(yn); }
251  void setAllItemsChecked(bool);
252  void setItemChecked(int,bool);
253  void setItemChecked(const char*,bool);
254  bool isItemChecked(const char*) const;
255  int nrChecked() const;
260 
261 protected:
262  uiListBoxObj* lb_;
266 
267  void mkLabel(const uiString&,LblPos);
268  void mkCheckGroup();
271  void addItemNoUpdate(const uiString&,bool marked=false,
272  int id=-1);
273 
274 public:
276  bool isItemChecked(int) const;
277 
278 // Deprecated. Don't use in new code
280  const char* nm=0);
282  const char* nm,OD::ChoiceMode cm,
283  int prefNrLines=0,int prefFieldWidth=0);
285  const char* nm,OD::ChoiceMode cm,
286  int prefNrLines=0,int prefFieldWidth=0);
287 
288  mDeprecated("Use primaryCheckBox()")
289  uiCheckBox* masterCheckBox() { return cb_; }
290 };
291 
292 
297 {
298 public:
299 
300  enum LblPos { LeftTop, RightTop, LeftMid, RightMid,
301  AboveLeft, AboveMid, AboveRight,
302  BelowLeft, BelowMid, BelowRight };
303 
306  OD::ChoiceMode,LblPos p=LeftMid);
308  const uiString& lbltxt,
309  OD::ChoiceMode,LblPos p=LeftMid);
310 
311  uiListBox* box() { return this; }
312 
313 protected:
314 
315 };
316 
317 
uiListBox::insertItem
void insertItem(const uiString &, int idx=-1, bool marked=false, int id=-1)
uiListBox::setIcon
void setIcon(int, const char *icon_identifier)
uiListBox::setChoosable
void setChoosable(int, bool yn)
uiListBox::usrChooseAll
void usrChooseAll(bool yn=true)
uiListBox::setHSzPol
void setHSzPol(uiObject::SzPolicy)
uiListBox::Setup
Definition: uilistbox.h:84
uiListBox::lbls_
ObjectSet< uiLabel > lbls_
Definition: uilistbox.h:263
uiPixmap
Off-screen pixel-based paint device.
Definition: uipixmap.h:34
uiListBox::nrChecked
int nrChecked() const
uiListBox::blockScrolling
void blockScrolling(bool yn)
Definition: uilistbox.h:209
uiLabeledListBox::uiLabeledListBox
uiLabeledListBox(uiParent *, const BufferStringSet &, const uiString &lbltxt, OD::ChoiceMode, LblPos p=LeftMid)
uiListBox::setLabelText
void setLabelText(const uiString &, int nr=0)
uiListBox::choicemode_
OD::ChoiceMode choicemode_
Definition: uilistbox.h:227
uiListBox::initNewItem
void initNewItem(int)
uiListBox::Setup::Setup
Setup(OD::ChoiceMode icm=OD::ChooseOnlyOne, const uiString &l=uiStrings::sEmptyString(), uiListBox::LblPos lp=uiListBox::LeftTop)
Definition: uilistbox.h:86
uiListBox::setAllItemsChecked
void setAllItemsChecked(bool)
uiLabeledListBox::uiLabeledListBox
uiLabeledListBox(uiParent *, const uiString &lbltxt, OD::ChoiceMode, LblPos p=LeftMid)
uiListBox::addItems
void addItems(const uiStringSet &)
uiListBox::firstChosen
int firstChosen() const
uiStringSet
Definition: uistringset.h:23
uiListBox::choiceMode
OD::ChoiceMode choiceMode() const
Definition: uilistbox.h:117
ObjectSet< uiLabel >
uiListBox::LeftTop
@ LeftTop
Definition: uilistbox.h:79
uiListBox::getCheckedItems
void getCheckedItems(BufferStringSet &) const
uiListBox::mDeprecated
mDeprecated("Use primaryCheckBox()") uiCheckBox *masterCheckBox()
Definition: uilistbox.h:288
uiListBox::setCurrentItem
void setCurrentItem(int)
BufferStringSet
Set of BufferString objects.
Definition: bufstringset.h:26
File::toUiString
Export_Basic uiString toUiString(ViewStyle)
uiListBox::uiListBox
uiListBox(uiParent *, const BufferStringSet &, const char *nm=0)
uiListBox::setColor
void setColor(int, const Color &)
uiListBox::setEmpty
void setEmpty()
uiListBox::nextChosen
int nextChosen(int prev=-1) const
uiListBox::cb_
uiCheckBox * cb_
Definition: uilistbox.h:265
uiListBox::mODTextTranslationClass
mODTextTranslationClass(uiListBox) friend class i_listMessenger
uiListBox::maxNrOfChoices
int maxNrOfChoices() const
uiListBox::label
uiLabel * label(int nr=0)
Definition: uilistbox.h:113
uiListBox::offerReadWriteSelection
void offerReadWriteSelection(const CallBack &rcb, const CallBack &wcb)
Definition: uilistbox.h:219
isMultiChoice
bool isMultiChoice(OD::ChoiceMode cm)
Definition: oduicommon.h:114
uiListBox::setCurrentItem
void setCurrentItem(const FixedString &fs)
Definition: uilistbox.h:177
uiListBox::addItem
void addItem(const uiString &, bool marked=false, int id=-1)
mFDQtclass
#define mFDQtclass(cls)
Definition: commondefs.h:233
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
uiCheckBox
Definition: uibutton.h:167
uiListBox::setCheckedItems
void setCheckedItems(const TypeSet< int > &)
uiListBox::updateCheckState
void updateCheckState()
uiListBox::addItem
void addItem(const uiString &, const Color &, int id=-1)
uiListBox::scrollToBottom
void scrollToBottom()
uiListBox::setFieldWidth
void setFieldWidth(int)
uiLabeledListBox::RightTop
@ RightTop
Definition: uilistbox.h:300
uiListBox::setItemText
void setItemText(int idx, const char *txt)
Definition: uilistbox.h:169
mDefSetupMemb
#define mDefSetupMemb(typ, memb)
Definition: commondefs.h:154
uiListBox::setPixmap
void setPixmap(int, const uiPixmap &)
uiListBox::getChosen
void getChosen(TypeSet< int > &) const
CallBacker
Inherit from this class to be able to send and/or receive CallBacks.
Definition: callback.h:185
uiListBox::setPixmap
void setPixmap(int, const Color &)
uiListBox::rightclickmnu_
uiMenu & rightclickmnu_
Definition: uilistbox.h:230
uiListBox::box
uiListBoxObj * box()
Definition: uilistbox.h:109
OD::ButtonState
ButtonState
Definition: keyenum.h:20
keyenum.h
uiLabeledListBox::box
uiListBox * box()
Definition: uilistbox.h:311
uiListBox::uiListBox
uiListBox(uiParent *, const BufferStringSet &, const char *nm, OD::ChoiceMode cm, int prefNrLines=0, int prefFieldWidth=0)
uiListBox::isMultiChoice
bool isMultiChoice() const
Definition: uilistbox.h:118
uiListBox::addItem
void addItem(const uiString &, const uiPixmap &, int id=-1)
uiListBox::checkCB
void checkCB(CallBacker *)
uigroup.h
uiListBox::handleLongTabletPress
bool handleLongTabletPress()
uiListBox::validIdx
bool validIdx(int) const
uiListBox::scrollToTop
void scrollToTop()
uiListBox::translateText
void translateText()
uiListBox::getItems
void getItems(BufferStringSet &) const
uiListBox::savecb_
CallBack savecb_
Definition: uilistbox.h:233
uiListBox::updateFields2ChoiceMode
void updateFields2ChoiceMode()
uiListBox::checkgrp_
uiGroup * checkgrp_
Definition: uilistbox.h:264
uiListBox::deleteButtonPressed
Notifier< uiListBox > deleteButtonPressed
Definition: uilistbox.h:217
uiListBox::RightTop
@ RightTop
Definition: uilistbox.h:79
uiListBox::setAllowDuplicates
void setAllowDuplicates(bool yn)
uiListBox::setChoiceMode
void setChoiceMode(OD::ChoiceMode)
uiListBox::insertItem
void insertItem(const uiString &, const uiPixmap &, int idx=-1, int id=-1)
Alignment::HPos
HPos
Definition: draw.h:25
uiListBox::optimumFieldWidth
int optimumFieldWidth(int minwdth=20, int maxwdth=40) const
uiListBox::setNrLines
void setNrLines(int)
uiLabeledListBox::uiLabeledListBox
uiLabeledListBox(uiParent *, const uiString &lbltxt)
uiListBox::cDefNrLines
static int cDefNrLines()
== 7
uiListBox::setNotSelectable
void setNotSelectable()
uiListBox::getCheckedItems
void getCheckedItems(TypeSet< int > &) const
CallBack
CallBacks object-oriented (object + method).
Definition: callback.h:62
uiListBox::removeItem
void removeItem(const FixedString &fs)
Definition: uilistbox.h:141
uiListBox::setVSzPol
void setVSzPol(uiObject::SzPolicy)
uiListBox::textOfItem
const char * textOfItem(int) const
uiListBox::setChosen
void setChosen(const BufferStringSet &)
uiListBox::primaryCheckBox
uiCheckBox * primaryCheckBox()
Definition: uilistbox.h:111
uiListBox::chooseAll
void chooseAll(bool yn=true)
OD::String::str
const char * str() const
Definition: odstring.h:47
uiListBox::addItems
void addItems(const BufferStringSet &)
uiListBox::AboveRight
@ AboveRight
Definition: uilistbox.h:80
uiListBox::menuCB
void menuCB(CallBacker *)
uiListBox::isItemChecked
bool isItemChecked(const char *) const
uiGroup
Definition: uigroup.h:54
OD::ChooseOnlyOne
@ ChooseOnlyOne
Definition: oduicommon.h:44
uiListBox::leftButtonClicked
Notifier< uiListBox > leftButtonClicked
Definition: uilistbox.h:216
uiListBox::setMultiChoice
void setMultiChoice(bool yn=true)
uiListBox::disableRightClick
void disableRightClick(bool yn)
uiListBox::isNone
bool isNone() const
Definition: uilistbox.h:242
uistrings.h
i_listMessenger
Helper class for uiListBox to relay Qt's messages.
Definition: i_qlistbox.h:27
uiListBox
List Box.
Definition: uilistbox.h:75
uiStrings::sEmptyString
static uiString sEmptyString()
Definition: uistrings.h:354
uiListBox::setItemChecked
void setItemChecked(const char *, bool)
Notifier< uiListBox >
uiListBox::sortItems
void sortItems(bool asc=true)
uiListBox::allshown_
bool allshown_
Definition: uilistbox.h:236
uiListBox::indexOf
int indexOf(const char *) const
First match.
uiListBox::LblPos
LblPos
Definition: uilistbox.h:79
uiListBox::addItemNoUpdate
void addItemNoUpdate(const uiString &, bool marked=false, int id=-1)
FixedString
OD::String that holds an existing text string.
Definition: fixedstring.h:29
uiListBox::setItemCheckable
void setItemCheckable(int, bool)
uiListBox::getChosen
void getChosen(BufferStringSet &) const
uiListBox::addItems
void addItems(const char **)
draw.h
uiListBox::scrollingblocked_
bool scrollingblocked_
Definition: uilistbox.h:235
OD::ChooseNone
@ ChooseNone
Definition: oduicommon.h:43
uiListBox::setItemsCheckable
void setItemsCheckable(bool yn)
Definition: uilistbox.h:250
BufferString
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size.
Definition: bufstring.h:40
uiListBox::setItemChecked
void setItemChecked(int, bool)
uiListBox::removeItem
void removeItem(int)
uiListBox::isPresent
bool isPresent(const char *) const
uiListBox::~uiListBox
virtual ~uiListBox()
uiListBox::itemChosen
CNotifier< uiListBox, int > itemChosen
Definition: uilistbox.h:212
uiListBox::checkGroup
uiGroup * checkGroup()
Definition: uilistbox.h:110
uiObject::SzPolicy
SzPolicy
How should the object's size behave? Undef : use default. Small : 1 base sz. Medium : 2* base sz + 1....
Definition: uiobj.h:55
mQtclass
#define mQtclass(cls)
Definition: commondefs.h:234
uiObject
The base class for most UI elements.
Definition: uiobj.h:38
uiListBox::getItemID
int getItemID(int idx) const
uiListBox::alignment
Alignment::HPos alignment() const
Definition: uilistbox.h:131
uiListBox::addItem
void addItem(const char *str, bool marked=false, int id=-1)
Definition: uilistbox.h:147
uiString
String that is able to hold international (UTF-8) strings for the user interface.
Definition: uistring.h:121
uiListBox::setChosen
void setChosen(int, bool yn=true)
uiListBox::alignment_
Alignment::HPos alignment_
Definition: uilistbox.h:228
uiListBox::setChosen
void setChosen(Interval< int >, bool yn=true)
uiListBox::mkCheckGroup
void mkCheckGroup()
OD::ChoiceMode
ChoiceMode
What to choose from any list-type UI object.
Definition: oduicommon.h:42
uiListBox::isEmpty
bool isEmpty() const
Definition: uilistbox.h:126
uiListBox::setItemSelectable
void setItemSelectable(int, bool)
uiListBox::addLabel
void addLabel(const uiString &, LblPos)
uiListBox::allowduplicates_
bool allowduplicates_
Definition: uilistbox.h:229
uiListBox::getText
const char * getText() const
Definition: uilistbox.h:174
uiListBox::isChosen
bool isChosen(int) const
uiLabel
Definition: uilabel.h:24
uiListBox::currentItemID
int currentItemID() const
uiListBox::mkLabel
void mkLabel(const uiString &, LblPos)
uiListBox::setItemID
void setItemID(int idx, int id)
uiListBox::currentItem
int currentItem() const
uiListBox::isChoosable
bool isChoosable(int) const
uiListBox::nrChosen
int nrChosen() const
uiMenu
Definition: uimenu.h:65
uiListBox::handleCheckChange
void handleCheckChange(mQtclass(QListWidgetItem *))
uiListBox::setChosen
void setChosen(const TypeSet< int > &)
uiParent
Definition: uiparent.h:26
uiListBox::getItemIdx
int getItemIdx(int id) const
First match.
uiListBox::insertItem
void insertItem(const uiString &, const Color &, int idx=-1, int id=-1)
uiLabeledListBox::AboveRight
@ AboveRight
Definition: uilistbox.h:301
uiListBox::isItemChecked
bool isItemChecked(int) const
To be called by CmdDriver only, not for casual use.
uiListBox::setCurrentItem
void setCurrentItem(const char *)
First match.
uiListBox::uiListBox
uiListBox(uiParent *, const uiStringSet &, const char *nm, OD::ChoiceMode cm, int prefNrLines=0, int prefFieldWidth=0)
uiListBox::setCheckedItems
void setCheckedItems(const BufferStringSet &)
uiLabeledListBox
uiLabeledListBox. Deprecated. Don't use in new code
Definition: uilistbox.h:297
uiListBox::rightButtonClicked
Notifier< uiListBox > rightButtonClicked
Definition: uilistbox.h:215
uiListBox::uiListBox
uiListBox(uiParent *, const char *nm=0, OD::ChoiceMode cm=OD::ChooseOnlyOne)
uiListBox::lb_
uiListBoxObj * lb_
Definition: uilistbox.h:262
uiListBox::selectionChanged
Notifier< uiListBox > selectionChanged
Definition: uilistbox.h:211
Interval< int >
uiListBox::uiListBox
uiListBox(uiParent *, const Setup &, const char *nm=0)
uiListBox::retrievecb_
CallBack retrievecb_
Definition: uilistbox.h:234
Color
Color is an RGB color object, with a transparancy. The storage is in a 4-byte integer,...
Definition: color.h:26
uiListBox::displayItem
void displayItem(int, bool)
uiListBox::setItemText
void setItemText(int, const uiString &)
uiListBox::setAlignment
void setAlignment(Alignment::HPos)
uiListBox::isMarked
bool isMarked(int) const
uiListBox::nrLabels
int nrLabels() const
Definition: uilistbox.h:112
uiListBox::rettxt_
BufferString rettxt_
Definition: uilistbox.h:231
CNotifier< uiListBox, int >
uiListBox::removeItem
void removeItem(const char *)
uiListBox::getColor
Color getColor(int) const
uiListBox::size
int size() const
TypeSet< int >
uiListBox::doubleClicked
Notifier< uiListBox > doubleClicked
Definition: uilistbox.h:214
uiListBox::setMarked
void setMarked(int, bool)
uiListBox::setAllowNoneChosen
void setAllowNoneChosen(bool)
uiListBox::buttonstate_
OD::ButtonState buttonstate_
Definition: uilistbox.h:232

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