OpendTect  6.3
uicombobox.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: A.H. Lammertink
8  Date: 25/05/2000
9 ________________________________________________________________________
10 
11 -*/
12 #include "uibasemod.h"
13 #include "uigroup.h"
14 #include "userinputobj.h"
15 #include "enums.h"
16 
17 class uiLabel;
18 class uiComboBoxBody;
19 class BufferStringSet;
20 
30 mExpClass(uiBase) uiComboBox : public uiObject, public UserInputObjImpl<int>
31 {
32 public:
33 
34  uiComboBox(uiParent*,const char* nm);
36  const char* nm);
37  uiComboBox(uiParent*,const char**,const char* nm);
38  uiComboBox(uiParent*,const uiString*,const char* nm);
41  uiComboBox(uiParent*,const EnumDef&,const char* nm);
43  virtual ~uiComboBox();
44 
45  virtual void setReadOnly(bool yn=true);
46  virtual bool isReadOnly() const;
47  void setEditable(bool yn);
48  bool isEditable() const;
49 
50  int size() const;
51  inline bool isEmpty() const { return size() == 0; }
52  void setEmpty();
53  bool isPresent(const char*) const;
54  int indexOf(const uiString&) const;
55  int indexOf(const char*) const;
56  inline int indexOf( const OD::String& str ) const
57  { return indexOf( str.str() ); }
58 
59  const char* text() const;
60  void setText(const char*);
61  void setText(uiString&);
62  int currentItem() const;
63  void setCurrentItem(int);
64  void setCurrentItem(const char*);
65  void setCurrentItem(uiString&);
66  void setCurrentItem( const FixedString& fs )
67  { setCurrentItem( fs.str() ); }
68  virtual void addItem(const uiString&);
69  void addItem(const uiString&,int id);
70  void addItems(const uiStringSet&);
71  void addSeparator();
72  void insertItem(const uiString&,int index=-1,int id=-1);
73  void insertItem(const uiPixmap&,const uiString&,
74  int index=-1,int id=-1);
75 
76  const char* itemText(int) const;
77  const uiString textOfItem(int) const;
78  void getItems(BufferStringSet&) const;
79 
80  void setItemText(int,const uiString&);
81  void setPixmap(int index,const uiPixmap&);
82  void setIcon(int index,const char* icon_identifier);
83 
84  void setItemID(int index,int id);
85  int currentItemID() const;
86  int getItemID(int index) const;
87  int getItemIndex(int id) const;
88 
91 
92 protected:
93 
94  virtual void setvalue_( int i ) { setCurrentItem(i); }
95  virtual int getvalue_() const { return currentItem(); }
96 
97  virtual bool notifyUpdateRequested_(const CallBack&) {return false;}
98  virtual bool notifyValueChanging_(const CallBack&) {return false;}
99  virtual bool notifyValueChanged_( const CallBack& cb )
100  { selectionChanged.notify(cb); return true; }
101  void translateText();
103  const char* nm);
104  mDeprecated void addItems(const BufferStringSet&);
105 private:
106 
111 
113 
114  uiComboBoxBody* body_;
115  uiComboBoxBody& mkbody(uiParent*,const char*);
116  void adjustWidth(const uiString&);
119 
120 public:
121 
122  void setToolTip( const uiString& tt )
123  { uiObject::setToolTip(tt); }
124 
125  virtual bool update_( const DataInpSpec& spec );
126  void getItemSize(int,int& h,int& w) const;
127 
128  void notifyHandler(bool selectionchanged);
129 
130  bool handleLongTabletPress();
131  void popupVirtualKeyboard(int globalx=-1,int globaly=-1);
132 
133 };
134 
135 
136 
138 {
139 public:
140  uiLabeledComboBox(uiParent*,const uiString& lbl,
141  const char* nm=0);
142  uiLabeledComboBox(uiParent*,const char**,
143  const uiString& lbl,const char* nm=0);
145  const uiString& lbl,const char* nm=0);
147  const uiString& lbl,const char* nm=0);
148 
149  uiComboBox* box() { return cb_; }
150  uiLabel* label() { return labl_; }
151 
152 
153 protected:
154 
158  const uiString& lbl,const char* nm=0);
159 
160 };
Definition: uigroup.h:53
#define mExpClass(module)
Definition: commondefs.h:157
const char * str() const
Definition: odstring.h:46
bool isPresent(const BufferString *b) const
Definition: bufstringset.h:45
uiComboBox * box()
Definition: uicombobox.h:149
void setToolTip(const uiString &)
OD::String that holds an existing text string.
Definition: fixedstring.h:27
int oldnritems_
Definition: uicombobox.h:107
The base class for most UI elements.
Definition: uiobj.h:35
bool isEmpty() const
Definition: uicombobox.h:51
Combo box.
Definition: uicombobox.h:30
Definition: uistring.h:88
Definition: uiparent.h:24
Set of BufferString objects.
Definition: bufstringset.h:25
ObjectSet< T >::size_type indexOf(const ObjectSet< T > &os, const S &val)
Locate object in set.
Definition: objectset.h:173
uiLabel * labl_
Definition: uicombobox.h:156
TypeSet< int > itemids_
Definition: uicombobox.h:109
int oldcuritem_
Definition: uicombobox.h:108
void setToolTip(const uiString &tt)
Definition: uicombobox.h:122
Specification of input characteristics.
Definition: datainpspec.h:88
BufferString rettxt_
Definition: uicombobox.h:112
void setCurrentItem(const FixedString &fs)
Definition: uicombobox.h:66
encapsulates the read-access-only part of strings in OD.
Definition: odstring.h:29
virtual bool notifyValueChanged_(const CallBack &cb)
return false if not available
Definition: uicombobox.h:99
virtual int getvalue_() const
Definition: uicombobox.h:95
int indexOf(const OD::String &str) const
Definition: uicombobox.h:56
const EnumDef * enumdef_
Definition: uicombobox.h:118
virtual void setvalue_(int i)
Definition: uicombobox.h:94
void setEmpty()
Definition: bufstringset.h:56
Off-screen pixel-based paint device.
Definition: uipixmap.h:33
Definition: uicombobox.h:137
int curwidth_
Definition: uicombobox.h:117
uiLabel * label()
Definition: uicombobox.h:150
uiComboBoxBody * body_
Definition: uicombobox.h:114
#define mDeprecated
Definition: plfdefs.h:213
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:38
Definition: uilabel.h:22
Notifier< uiComboBox > editTextChanged
Definition: uicombobox.h:89
virtual bool notifyValueChanging_(const CallBack &)
return false if not available
Definition: uicombobox.h:98
uiStringSet itemstrings_
Definition: uicombobox.h:110
Definition: uistring.h:235
size_type size() const
Definition: bufstringset.h:37
Notifier< uiComboBox > selectionChanged
Definition: uicombobox.h:90
CallBacks object-oriented (object + method).
Definition: callback.h:62
Holds data pertinent to a certain enum. It does not know the enum values themselves, but treat them as integers.
Definition: enums.h:44
virtual bool notifyUpdateRequested_(const CallBack &)
Definition: uicombobox.h:97
Definition: userinputobj.h:80
uiComboBox * cb_
Definition: uicombobox.h:155
void notify(const CallBack &, bool first=false) const

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