00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef _ubuttons_hpp_
00021 #define _ubuttons_hpp_
00022
00023 #include <ubit/ustr.hpp>
00024 #include <ubit/ubox.hpp>
00025 namespace ubit {
00026
00027
00030 class USepar: public UBox {
00031 public:
00032 UBIT_ELEMENT_CLASS(USepar,UBox)
00033
00034 USepar(const UArgs& = UArgs::none);
00039 static UStyle* createStyle();
00040 };
00041
00042 inline USepar& usepar(const UArgs& a = UArgs::none) {return *new USepar(a);}
00044
00045
00046
00066 class ULabel: public UBox {
00067 public:
00068 UBIT_ELEMENT_CLASS(ULabel,UBox)
00069
00070 ULabel(const UArgs& a = UArgs::none);
00072
00073 static UStyle* createStyle();
00074 };
00075
00076 inline ULabel& ulabel(const UArgs& a = UArgs::none) {return *new ULabel(a);}
00078
00079
00080
00090 class UItem: public UBox {
00091 public:
00092 UBIT_ELEMENT_CLASS(UItem,UBox)
00093
00094 UItem(const UArgs& = UArgs::none);
00096
00097 static UStyle* createStyle();
00098 };
00099
00100 inline UItem& uitem(const UArgs& a = UArgs::none) {return *new UItem(a);}
00102
00103
00104
00162 class UButton: public UBox {
00163 public:
00164 UBIT_ELEMENT_CLASS(UButton,UBox)
00165
00166 UButton(const UArgs& = UArgs::none);
00168
00169 static UStyle* createStyle();
00170 };
00171
00172 inline UButton& ubutton(const UArgs& a = UArgs::none) {return *new UButton(a);}
00174
00175
00179 class UTabbutton: public UButton {
00180 public:
00181 UBIT_ELEMENT_CLASS(UTabbutton,UButton)
00182
00183 UTabbutton(const UArgs& a = UArgs::none);
00185
00186 static UStyle* createStyle();
00187 };
00188
00189 inline UTabbutton& utabbutton(const UArgs& a = UArgs::none) {return *new UTabbutton(a);}
00191
00192
00197 class UFlatbutton: public UButton {
00198 public:
00199 UBIT_ELEMENT_CLASS(UFlatbutton,UButton)
00200
00201 UFlatbutton(const UArgs& a = UArgs::none);
00203
00204 static UStyle* createStyle();
00205 };
00206
00207 inline UFlatbutton& uflatbutton(const UArgs& a = UArgs::none) {return *new UFlatbutton(a);}
00209
00210
00215 class ULinkbutton: public UButton {
00216 public:
00217 UBIT_ELEMENT_CLASS(ULinkbutton,UButton)
00218
00219 ULinkbutton(const UArgs& a = UArgs::none);
00221
00222 static UStyle* createStyle();
00223 };
00224
00225 inline ULinkbutton& ulinkbutton(const UArgs& a = UArgs::none) {return *new ULinkbutton(a);}
00227
00228
00232 class URadiobutton: public UButton {
00233 public:
00234 UBIT_ELEMENT_CLASS(URadiobutton,UButton)
00235
00236 URadiobutton(const UArgs& a = UArgs::none);
00238
00239 static UStyle* createStyle();
00240 };
00241
00242 inline URadiobutton& uradiobutton(const UArgs& a = UArgs::none) {return *new URadiobutton(a);}
00244
00245
00259 class UCheckbox: public UButton {
00260 public:
00261 UBIT_ELEMENT_CLASS(UCheckbox,UButton)
00262
00263 UCheckbox(const UArgs& = UArgs::none);
00265
00266 static UStyle* createStyle();
00267 };
00268
00269 inline UCheckbox& ucheckbox(const UArgs& a = UArgs::none) {return *new UCheckbox(a);};
00271
00272
00273
00283 class USpinbox : public UBox {
00284 public:
00285 UBIT_ELEMENT_CLASS(USpinbox,UBox)
00286
00287 USpinbox(const UArgs& = UArgs::none);
00289
00290 USpinbox(UInteger& value, const UArgs& = UArgs::none);
00292
00293 static UStyle* createStyle();
00294
00295
00296
00297 virtual int getValue() const {return *pvalue;}
00299
00300 virtual void setValue(int);
00305 UInteger& value() {return *pvalue;}
00311 int getIncrement() const {return increment;}
00313
00314 virtual void setIncrement(int);
00316
00317 UStr& str() {return *pstr;}
00322
00323 protected:
00324 virtual void constructs(const UArgs& a);
00325 virtual void updateValue(int dir);
00326 virtual void changed();
00327
00328 private:
00329 uptr<UInteger> pvalue;
00330 uptr<UStr> pstr;
00331 uptr<UTextbox> ptextbox;
00332 int increment;
00333 };
00334
00335 inline USpinbox& uspinbox(const UArgs& a = UArgs::none) {return *new USpinbox(a);}
00337
00338 }
00339 #endif
00340
00341