00001 00026 #ifndef GUIPROMPT_H_ 00027 #define GUIPROMPT_H_ 00028 00029 #include "GUIConfirm.h" 00030 00031 template <class T> 00032 class CGUIPrompt : public CGUIConfirm<T>{ 00033 00034 public: 00035 CGUIPrompt(); 00036 virtual ~CGUIPrompt(); 00037 00038 virtual void initChilds(); 00039 virtual string getResult(); 00040 00041 void setMaxChars( int count ); 00042 00043 }; 00044 00045 template <class T> 00046 CGUIPrompt<T>::CGUIPrompt() { 00047 00048 } 00049 00050 template <class T> 00051 CGUIPrompt<T>::~CGUIPrompt() { 00052 // TODO Auto-generated destructor stub 00053 } 00054 00055 template <class T> 00056 void CGUIPrompt<T>::initChilds(){ 00057 00058 CGUILabel* text = new CGUILabel(); 00059 00060 CGUIButton<CGUIPrompt> *buttonOK = new CGUIButton<CGUIPrompt> (this); 00061 buttonOK->setMouseDownCallback(&CGUIPrompt::onConfirm); 00062 buttonOK->setString("OK"); 00063 buttonOK->setDimension(25, 14); 00064 00065 CGUIButton<CGUIPrompt> *buttonCancel = new CGUIButton<CGUIPrompt> (this); 00066 buttonCancel->setMouseDownCallback(&CGUIPrompt::onCancel); 00067 buttonCancel->setString("CANCEL"); 00068 buttonCancel->setDimension(50, 14); 00069 00070 CGUIInput* input = new CGUIInput(); 00071 input->setDimension(86,14); 00072 input->setBackgroundColor(255,255,255, 50); 00073 00074 this->addChild(text); 00075 this->addChild(input); 00076 this->addChild(buttonOK); 00077 this->addChild(buttonCancel); 00078 00079 } 00080 00081 template<class T> 00082 string CGUIPrompt<T>::getResult(){ 00083 CGUIElement* input = NULL; 00084 if( ( input = this->getChild(1) ) != NULL ){ 00085 00086 string str = input->getString(); 00087 input->setString(""); 00088 00089 return str; 00090 } 00091 00092 return NULL; 00093 } 00094 00095 template<class T> 00096 void CGUIPrompt<T>::setMaxChars( int count ){ 00097 CGUIElement* vstup = this->getChild(1); 00098 if( vstup != NULL ){ 00099 dynamic_cast<CGUIInput*>(vstup)->setMaxChars(count); 00100 } 00101 } 00102 00103 00104 #endif /* GUIPROMPT_H_ */