X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=fold.h;h=e8c78b7e57e72e5300cb122781a3eb130bda215b;hb=4016b9a7f02803e28582abb02cd410dcb5021fe6;hp=e53e06d08ce1ee65d41128610b8101d6126f21cf;hpb=cf035fa1849a5e65c0d636ce2718bc2c85994680;p=odcread.git diff --git a/fold.h b/fold.h index e53e06d..e8c78b7 100644 --- a/fold.h +++ b/fold.h @@ -1,5 +1,5 @@ -#ifndef _TEXTMODEL_H_ -#define _TEXTMODEL_H_ +#ifndef _FOLD_H_ +#define _FOLD_H_ #include #include @@ -7,38 +7,51 @@ namespace odc { + /** + * Supertype for views (in MVC framework). + * Included because a Fold is a View and not a Model, for some reason. + */ class View : public Store { private: - static const std::string TYPENAME; - static const TypeProxy PROXY; + static const TypeProxy PROXY; public: - View(INTEGER id); - static const std::string &getType(); - static const std::string *getSuper(); + static const std::string TYPENAME; virtual const std::string &getTypeName() const; + + View(INTEGER id); + /** + * Just calls super and reads the version and checks that its in the allowed range. + */ virtual void internalize(Reader &reader); }; + /** + * Folds are collapsible components in a text document. + */ class Fold : public View { private: - static const std::string TYPENAME; - static const TypeProxy PROXY; + static const TypeProxy PROXY; Store *d_hidden; SHORTCHAR *d_label; + bool d_collapsed; public: - Fold(INTEGER id); - static const std::string &getType(); - static const std::string *getSuper(); + static const std::string TYPENAME; virtual const std::string &getTypeName() const; + + Fold(INTEGER id); + /** + * Calls super and reads the version and checks that its in the allowed range. + * Then reads the state of the Fold, including the hidden part. + */ virtual void internalize(Reader &reader); virtual std::string toString(); - virtual std::string toPlainText(); + virtual void accept(Visitor &visitor) const; }; } -#endif +#endif // _FOLD_H_