+ hideDialog();
+}
+
+
+void InsetMinipage::write(Buffer const * buf, ostream & os) const
+{
+ os << getInsetName() << "\n"
+ << "position " << pos_ << "\n"
+ << "inner_position " << inner_pos_ << "\n"
+ << "height \"" << height_.asString() << "\"\n"
+ << "width \"" << width_.asString() << "\"\n";
+ InsetCollapsable::write(buf, os);
+}
+
+
+void InsetMinipage::read(Buffer const * buf, LyXLex & lex)
+{
+ if (lex.isOK()) {
+ lex.next();
+ string const token = lex.getString();
+ if (token == "position") {
+ lex.next();
+ pos_ = static_cast<Position>(lex.getInteger());
+ } else {
+ lyxerr << "InsetMinipage::Read: Missing 'position'-tag!"
+ << endl;
+ // take countermeasures
+ lex.pushToken(token);
+ }
+ }
+ if (lex.isOK()) {
+ lex.next();
+ string const token = lex.getString();
+ if (token == "inner_position") {
+ lex.next();
+ inner_pos_ = static_cast<InnerPosition>(lex.getInteger());
+ } else {
+ lyxerr << "InsetMinipage::Read: Missing 'inner_position'-tag!"
+ << endl;
+ // take countermeasures
+ lex.pushToken(token);
+ }
+ }
+ if (lex.isOK()) {
+ lex.next();
+ string const token = lex.getString();
+ if (token == "height") {
+ lex.next();
+ height_ = LyXLength(lex.getString());
+ } else {
+ lyxerr << "InsetMinipage::Read: Missing 'height'-tag!"
+ << endl;
+ // take countermeasures
+ lex.pushToken(token);
+ }
+ }
+ if (lex.isOK()) {
+ lex.next();
+ string const token = lex.getString();
+ if (token == "width") {
+ lex.next();
+ width_ = LyXLength(lex.getString());
+ } else {
+ lyxerr << "InsetMinipage::Read: Missing 'width'-tag!"
+ << endl;
+ // take countermeasures
+ lex.pushToken(token);
+ }
+ }
+ InsetCollapsable::read(buf, lex);
+}
+
+
+int InsetMinipage::ascent(BufferView * bv, LyXFont const & font) const
+{
+ if (collapsed_)
+ return ascent_collapsed();
+ else {
+ // Take placement into account.
+ int i = 0;
+ switch (pos_) {
+ case top:
+ i = InsetCollapsable::ascent(bv, font);
+ break;
+ case center:
+ i = (InsetCollapsable::ascent(bv, font)
+ + InsetCollapsable::descent(bv, font)) / 2;
+ break;
+ case bottom:
+ i = InsetCollapsable::descent(bv, font);
+ break;
+ }
+ return i;
+ }
+}
+
+
+int InsetMinipage::descent(BufferView * bv, LyXFont const & font) const
+{
+ if (collapsed_)
+ return descent_collapsed();
+ else {
+ // Take placement into account.
+ int i = 0;
+ switch (pos_) {
+ case top:
+ i = InsetCollapsable::descent(bv, font);
+ break;
+ case center:
+ i = (InsetCollapsable::ascent(bv, font)
+ + InsetCollapsable::descent(bv, font)) / 2;
+ break;
+ case bottom:
+ i = InsetCollapsable::ascent(bv, font);
+ break;
+ }
+ return i;
+ }