00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef HK_SUBFORM
00012 #define HK_SUBFORM
00013 #include "hk_dsvisible.h"
00014 #include "hk_definitions.h"
00015 #include <list>
00016 class hk_form;
00017 class hk_subformprivate;
00018 class hk_subformmodeprivate;
00019
00028 class hk_subform: public hk_dsvisible
00029 {
00030 friend class hk_form;
00031 public:
00032 hk_subform(hk_presentation* parent);
00033 virtual ~hk_subform();
00037 void set_name(const hk_string&, bool registerchange=true);
00038 hk_string name(void) const;
00042 hk_form* subform();
00050 void add_depending_fields( const hk_string& subfield,const hk_string& masterfield,bool registerchange=true);
00054 void clear_depending_fields(bool registerchange=true);
00058 void activate_subform(void);
00059 list<dependingclass>* depending_on_fields(void);
00060 virtual void savedata(ostream& s, bool savedatasource,bool saveall);
00061 virtual void savedata(ostream& s );
00062 virtual void loaddata(xmlNodePtr definition);
00063
00064 protected:
00065 void set_subform(hk_form*);
00066 virtual void before_datasource_enables(void);
00067 virtual bool presentationmode_changed(void);
00068 void internal_set_datasourcevalues(void);
00069 private:
00070
00071 hk_subformprivate* p_private;
00072 hk_subformmodeprivate* p_viewdata;
00073 hk_subformmodeprivate* p_designdata;
00074 };
00075
00076 #endif