#include <iosfwd>
#include "array.h"
+#include "math_metricsinfo.h"
#ifdef __GNUG__
#pragma interface
class MathXArray
{
public:
+ ///
+ typedef MathArray::size_type size_type;
+ ///
+ typedef MathArray::const_iterator const_iterator;
+
///
MathXArray();
///
- void Metrics(MathStyles st);
+ void metrics(MathMetricsInfo const & st) const;
///
- void draw(Painter & pain, int x, int y);
+ void draw(Painter & pain, int x, int y) const;
///
int xo() const { return xo_; }
///
int yo() const { return yo_; }
///
- int pos2x(int pos) const;
- ///
- int x2pos(int pos) const;
+ int pos2x(size_type pos) const;
///
- int width(int pos) const;
+ size_type x2pos(int pos) const;
///
int ascent() const { return ascent_; }
int height() const { return ascent_ + descent_; }
///
int width() const { return width_; }
+
+ ///
+ const_iterator begin() const { return data_.begin(); }
///
- MathStyles style() const { return style_; }
+ const_iterator end() const { return data_.end(); }
-
+public:
///
MathArray data_;
///
- int width_;
+ mutable int width_;
///
- int ascent_;
+ mutable int ascent_;
///
- int descent_;
+ mutable int descent_;
///
- int xo_;
+ mutable int xo_;
///
- int yo_;
+ mutable int yo_;
///
- MathStyles style_;
+ mutable MathMetricsInfo size_;
};
std::ostream & operator<<(std::ostream & os, MathXArray const & ar);