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
00026
00027
00028
00029 #ifndef PG_PROPERTYFIELD_STRING_H
00030 #define PG_PROPERTYFIELD_STRING_H
00031
00032 #include "pgpropertyeditor_linefield.h"
00033
00034
00040 template<class StringType=std::string>
00041 class PG_PropertyField_String : public PG_PropertyEditor_LineField {
00042 StringType* myProperty;
00043
00044 protected:
00045
00046 bool EditEnd() {
00047 sigValueChanged(this,lineEdit->GetText());
00048 return true;
00049 }
00050
00051 public:
00052 typedef PG_Signal2<PG_PropertyField_String*, StringType> StringPropertySignal;
00053 StringPropertySignal sigValueChanged;
00054 StringPropertySignal sigValueApplied;
00055
00061 PG_PropertyField_String( PG_PropertyEditor* propertyEditor, const std::string& name, StringType* string ) : PG_PropertyEditor_LineField( propertyEditor, name ), myProperty( string ) {
00062 Reload();
00063 };
00064
00070 PG_PropertyField_String( PG_PropertyEditor* propertyEditor, const std::string& name, const StringType& string ) : PG_PropertyEditor_LineField( propertyEditor, name ), myProperty( NULL ) {
00071 lineEdit->SetText( string );
00072 };
00073
00074 bool Valid() {
00075 return true;
00076 };
00077 bool Apply() {
00078 if ( myProperty )
00079 *myProperty = lineEdit->GetText();
00080
00081 sigValueApplied( this, lineEdit->GetText() );
00082
00083 return true;
00084 };
00085 void Reload() {
00086 if ( myProperty )
00087 lineEdit->SetText( *myProperty );
00088 };
00089
00090 void SetPassHidden (const PG_Char &passchar) {
00091 lineEdit->SetPassHidden( passchar );
00092 };
00093 };
00094
00095 #endif