dataformbase.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef DATAFORMBASE_H__
00015 #define DATAFORMBASE_H__
00016
00017 #include "dataformfield.h"
00018
00019 #include <string>
00020 #include <list>
00021
00022 namespace gloox
00023 {
00024
00033 class GLOOX_API DataFormBase
00034 {
00035 public:
00039 DataFormBase();
00040
00044 virtual ~DataFormBase();
00045
00049 typedef std::list<DataFormField*> FieldList;
00050
00056 bool hasField( const std::string& field );
00057
00064 DataFormField* field( const std::string& field );
00065
00070 FieldList& fields() { return m_fields; }
00071
00077 virtual void setFields( FieldList& fields ) { m_fields = fields; }
00078
00084 virtual void addField( DataFormField *field ) { m_fields.push_back( field ); }
00085
00094 DataFormField* addField( DataFormField::DataFormFieldType type, const std::string& name,
00095 const std::string& value = "", const std::string& label = "" )
00096 { m_fields.push_back( new DataFormField( name, value, label, type ) ); return m_fields.back(); }
00097
00098 protected:
00099 FieldList m_fields;
00100
00101 };
00102
00103 }
00104
00105 #endif // DATAFORMBASE_H__