#pragma interface
#endif
-class Painter;
+class MathPainterInfo;
+class TextPainter;
/** This class extends a MathArray by drawing routines and caches for
/// constructor
MathXArray();
/// rebuild cached metrics information
- void metrics(MathMetricsInfo const & st) const;
+ void metrics(MathMetricsInfo & st) const;
/// redraw cell using cache metrics information
- void draw(Painter & pain, int x, int y) const;
+ void draw(MathPainterInfo & 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