#ifndef __MASKFLD_H #include #endif #ifndef __TREE_H #include #endif #ifndef __REPORT_H #include #endif /////////////////////////////////////////////////////////// // TReport_tree /////////////////////////////////////////////////////////// class TReport_tree : public TBidirectional_tree { TReport& _report; TString4 _curr; protected: virtual bool get_description(TString& str) const; virtual TImage* image(bool selected) const; virtual void node2id(const TObject* node, TString& id) const; public: virtual bool goto_root(); virtual bool goto_firstson(); virtual bool goto_rbrother(); virtual bool goto_node(const TString &id); virtual bool has_son() const; virtual bool has_rbrother() const; virtual TObject* curr_node() const { return (TObject*)&_curr; } virtual bool has_root() const; virtual bool has_father() const; virtual bool has_lbrother() const; virtual bool goto_father(); virtual bool goto_lbrother(); TReport_section& curr_section() const; bool goto_node(char type, int level); int image_height() const; TReport_tree(TReport& r) : _report(r) { goto_root(); } }; /////////////////////////////////////////////////////////// // TReport_drawer /////////////////////////////////////////////////////////// class TReport_drawer : public TWindowed_field { protected: virtual TField_window* create_window(int x, int y, int dx, int dy, WINDOW parent); public: void set_report_section(TReport_section& sec); TReport_section& curr_section(); TReport_drawer(TMask* m) : TWindowed_field(m) { } };