00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
#ifndef _uchoice_hpp_
00026
#define _uchoice_hpp_
00027
00028
#include <ubit/uprop.hpp>
00029
00030
00033 class UChoice :
public UProp {
00034
public:
00035
UChoice(UBox* container = null);
00037
00038 friend UChoice&
uchoice() {
return *(
new UChoice());}
00040
00041
virtual ~UChoice();
00043
00044
00045
00046
virtual void setCanUnselectMode(
bool);
00047
virtual bool isCanUnselectMode() const;
00049
00050
00051
00052 virtual UBox* getItem() const;
00054
00055 virtual UBox* getLastItem() const;
00056 virtual
int getLastIndex() const;
00057
00058 virtual UBox* setItem(UBox*,
bool update = true);
00059 virtual UBox* setItem(UBox&,
bool update = true);
00060 virtual
void select(UBox&);
00065 virtual
void unselect();
00067
00068
00069
00070 virtual
int getIndex() const;
00072
00073 virtual UBox* setIndex(
int,
bool update = true);
00074 virtual
void select(
int);
00078
00079
00080 virtual
void update();
00082
00083
00084
void changed(
bool update_now, UBox* target);
00092 #ifndef NO_DOC
00093
00094
00095
00096 virtual
void putProp(UContext*, class UCtrl*);
00097
00098 virtual
void addingTo(ULink *selflink,
UGroup *parent);
00099
00100 virtual
void removingFrom(ULink *selflink,
UGroup *parent);
00101
00102 UBox* itemChanged(
UEvent&);
00103
00104 protected:
00105
int index;
00106
bool can_unselect_mode;
00107 uptr<UBox> container;
00108 #endif
00109 };
00110
00111
00112
00113
00127 class
URadioSelect : public
UProp {
00128
public:
00129
URadioSelect();
00130
URadioSelect(
UIntg& index);
00138 friend URadioSelect& uradioSelect() {
return *(
new URadioSelect());}
00140
00141
virtual ~
URadioSelect();
00143
00144
00145
00146
virtual void setCanUnselectMode(
bool);
00147
virtual bool isCanUnselectMode() const;
00149
00150 virtual
UGroup* getItem() const;
00152
00153 virtual
void setItem(
UGroup*);
00154 virtual
void setItem(UGroup&);
00155 virtual
void select(UGroup&);
00157
00158 virtual
void unselect();
00160
00161
00162
00163
UIntg& index()
const {
return *pindex;}
00164
virtual int getIndex() const;
00166
00167 virtual
void setIndex(
int);
00168 virtual
void setIndex(const
UIntg&);
00169 virtual
void select(
int);
00171
00172
00173
00174 virtual
void update();
00176
00177 virtual
void changed(
bool update_now);
00185
00186
00187
00188 #ifndef NO_DOC
00189
00190 virtual
void putProp(UContext*, class UCtrl*);
00191
00192 virtual
void addingTo(ULink *selflink,
UGroup *parent);
00193
00194 virtual
void removingFrom(ULink *selflink,
UGroup *parent);
00195
00196 protected:
00197
void setIndexImpl();
00198
00199
bool can_unselect_mode;
00200 uptr<UIntg> pindex;
00201 uptr<UCall> pselect_callback;
00202
void itemChanged(UEvent&);
00203 #endif
00204 };
00205
00206
00207 #endif
00208
00209