+ virtual docstring const buttonLabel(BufferView const &) const;
+ ///
+ bool isOpen(BufferView const & bv) const
+ { return geometry(bv) != ButtonOnly; }
+ ///
+ enum CollapseStatus {
+ Collapsed,
+ Open
+ };
+ ///
+ virtual void setStatus(Cursor & cur, CollapseStatus st);
+ ///
+ CollapseStatus status(BufferView const & bv) const;
+ /** Of the old CollapseStatus we only keep the values
+ * Open and Collapsed.
+ * We define a list of possible inset decoration
+ * styles, and a list of possible (concrete, visual)
+ * inset geometries. Relationships between them
+ * (geometries in body of table):
+ *
+ * \ CollapseStatus:
+ * Decoration: \ Open Collapsed
+ * -------------+-------------------------------
+ * Classic | *) TopButton, <--x) ButtonOnly
+ * | LeftButton
+ * Minimalistic | NoButton ButtonOnly
+ * Conglomerate | SubLabel Corners
+ * ---------------------------------------------
+ * *) toggled by openinlined_
+ * x) toggled by auto_open_
+ */
+
+ /// Default looks
+ virtual InsetLayout::InsetDecoration decoration() const;
+ ///
+ enum Geometry {
+ TopButton,
+ ButtonOnly,
+ NoButton,
+ LeftButton,
+ SubLabel,
+ Corners
+ };
+ /// Returns the geometry based on CollapseStatus
+ /// (status_), auto_open_[BufferView] and openinlined_,
+ /// and of course decoration().
+ Geometry geometry(BufferView const & bv) const;
+ /// Returns the geometry disregarding auto_open_
+ Geometry geometry() const;