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
00019
00020
00021 class hk_subform: public hk_dsvisible
00022 {
00023 friend class hk_form;
00024 public:
00025 hk_subform(hk_presentation* parent);
00026 virtual ~hk_subform();
00027 void set_name(const hk_string&, bool registerchange=true);
00028 hk_string name(void) const;
00029 hk_form* subform();
00030 void add_depending_fields( const hk_string& subfield,const hk_string& masterfield,bool registerchange=true);
00031 void clear_depending_fields(bool registerchange=true);
00032 list<dependingclass>* depending_on_fields(void);
00033 virtual void savedata(ostream& s, bool savedatasource,bool saveall);
00034 virtual void savedata(ostream& s );
00035 virtual void loaddata(const hk_string& definition);
00036
00037 protected:
00038 void set_subform(hk_form*);
00039 virtual void before_datasource_enables(void);
00040 virtual bool presentationmode_changed(void);
00041 void internal_set_datasourcevalues(void);
00042 private:
00043
00044 hk_subformprivate* p_private;
00045 };
00046
00047 #endif