#ifndef FORM_H #define FORM_H #include #include #include class Request; class FormField { public: std::string name; std::string label; std::map attribues; virtual std::string render(); virtual bool validate(Request *request, std::vector *errors); FormField(); virtual ~FormField(); }; class InputFormField : public FormField { std::string render(); }; class InputTextFormField : public InputFormField { std::string render(); }; class InputPasswordFormField : public InputFormField { std::string render(); }; class Form { public: std::string name; std::map attribues; std::vector fields; //call Theme->render(); in it, and that will go though all attribs and call their renders virtual std::string render(); Form(); virtual ~Form(); }; #endif