index e53e06d08ce1ee65d41128610b8101d6126f21cf..e8c78b7e57e72e5300cb122781a3eb130bda215b 100644 (file)
--- a/fold.h
+++ b/fold.h
-#ifndef _TEXTMODEL_H_
-#define _TEXTMODEL_H_
+#ifndef _FOLD_H_
+#define _FOLD_H_
#include <oberon.h>
#include <typeregister.h>
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<View> PROXY;
+ static const TypeProxy<View, Store> 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<Fold> PROXY;
+ static const TypeProxy<Fold, View> 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_