+// -*- C++ -*-
+/**
+ * \file math_parboxinset.h
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
+ *
+ * \author André Pönitz
+ *
+ * Full author contact details are available in file CREDITS.
+ */
+
#ifndef MATH_PARBOXINSET_H
#define MATH_PARBOXINSET_H
-#include "math_nestinset.h"
-class MathParboxInset : public MathNestInset {
+#include "math_textinset.h"
+
+// implements support for \parbox
+
+class MathParboxInset : public MathTextInset {
public:
///
MathParboxInset();
///
MathParboxInset * asParboxInset() { return this; }
///
- MathInset * clone() const;
+ virtual std::auto_ptr<InsetBase> clone() const;
///
mode_type currentMode() const { return TEXT_MODE; }
- /// get cursor position
- void getPos(idx_type idx, pos_type pos, int & x, int & y) const;
///
- void metrics(MathMetricsInfo & mi) const;
+ void metrics(MetricsInfo & mi, Dimension & dim) const;
///
- void draw(MathPainterInfo &, int x, int y) const;
- /// draw selection background
- void drawSelection(MathPainterInfo & pi,
- idx_type idx1, pos_type pos1, idx_type idx2, pos_type pos2) const;
+ void draw(PainterInfo &, int x, int y) const;
///
void infoize(std::ostream & os) const;
///
void write(WriteStream & os) const;
///
- void setWidth(string const & width);
+ void setWidth(std::string const & width);
///
- void setPosition(string const & pos);
- /// moves cursor up or down
- bool idxUpDown(idx_type &, pos_type & pos, bool up, int targetx) const;
+ void setPosition(std::string const & pos);
private:
- /// number of rows on screen
- int screenrows() const;
- /// row corresponding to given position
- int pos2row(pos_type pos) const;
/// width on screen
int lyx_width_;
/// width for TeX
- string tex_width_;
- /// htb
+ std::string tex_width_;
+ /// one of htb
char position_;
- /// cached metrics
- mutable std::vector<MathXArray::Row> rows_;
};
#endif