#endif
class Painter;
+class TextPainter;
/** This class extends a MathArray by drawing routines and caches for
void metrics(MathMetricsInfo const & st) const;
/// redraw cell using cache metrics information
void draw(Painter & pain, int x, int y) const;
+ /// rebuild cached metrics information
+ void metricsT(TextMetricsInfo const & st) const;
+ /// redraw cell using cache metrics information
+ void drawT(TextPainter & pain, int x, int y) const;
+ /// mark cell for re-drawing
+ void touch() const;
/// access to cached x coordinate of last drawing
int xo() const { return xo_; }
const_iterator begin() const { return data_.begin(); }
/// end iterator of the underlying MathArray
const_iterator end() const { return data_.end(); }
-
+
public:
/// the underlying MathArray
MathArray data_;
mutable int yo_;
/// cache size information of last drawing
mutable MathMetricsInfo size_;
+ /// cached cleaness of cell
+ mutable bool clean_;
+ /// cached draw status of cell
+ mutable bool drawn_;
};
/// output cell on a stream