ubuttons.hpp

00001 /* ==================================================== ======== ======= *
00002  *
00003  *  ubuttons.hpp
00004  *  Ubit Project
00005  *  Part of the Ubit Toolkit: A Brick Construction Game Model for Creating GUIs
00006  *  (C) 1999-2006 / Eric Lecolinet / ENST Paris / http://www.enst.fr/~elc/ubit
00007  *
00008  * ***********************************************************************
00009  * COPYRIGHT NOTICE : 
00010  * THIS PROGRAM IS DISTRIBUTED WITHOUT ANY WARRANTY AND WITHOUT EVEN THE 
00011  * IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 
00012  * YOU CAN REDISTRIBUTE IT AND/OR MODIFY IT UNDER THE TERMS OF THE GNU 
00013  * GENERAL PUBLIC LICENSE AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION; 
00014  * EITHER VERSION 2 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
00015  * SEE FILES 'COPYRIGHT' AND 'COPYING' FOR MORE DETAILS.
00016  * ***********************************************************************
00017  * ==================================================== [(c)Elc] ======= *
00018  * ==================================================== ======== ======= */
00019 
00020 #ifndef _ubuttons_hpp_
00021 #define _ubuttons_hpp_
00022 //pragma ident  "@(#)ubuttons.hpp       ubit:05.05.00"
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 /* ==================================================== [Elc] ======= */
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 /* ==================================================== [Elc] ======= */
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 /* ==================================================== [Elc] ======= */
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 /* ==================================================== [Elc] ======= */
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 /* ==================================================== [TheEnd] ======= */
00341 /* ==================================================== [(c)Elc] ======= */

Generated on Mon Jan 29 00:20:37 2007 for Ubit by  doxygen 1.4.7