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