* \author Jürgen Vigna
* \author Lars Gullik Bjønnes
*
- * Full author contact details are available in file CREDITS
+ * Full author contact details are available in file CREDITS.
*/
#include <config.h>
#include "insetminipage.h"
-#include "insettext.h"
#include "BufferView.h"
#include "debug.h"
-#include "dimension.h"
#include "funcrequest.h"
#include "gettext.h"
-#include "Lsstream.h"
-#include "lyxfont.h"
+#include "LColor.h"
#include "lyxlex.h"
-#include "lyxtext.h"
-#include "Lsstream.h"
+#include "metricsinfo.h"
+#include "paragraph.h"
-#include "frontends/LyXView.h"
-#include "frontends/Dialogs.h"
+#include "support/std_sstream.h"
-#include "support/LOstream.h"
-using std::ostream;
+using std::string;
using std::endl;
+using std::auto_ptr;
+using std::istringstream;
+using std::ostream;
+using std::ostringstream;
// Some information about Minipages in LaTeX:
#if 0
setAutoCollapse(false);
#endif
-
-#if 0
-#ifdef WITH_WARNINGS
-#warning Remove this color definitions before 1.2.0 final!
-#endif
- // just for experimentation :)
- setBackgroundColor(LColor::green);
-#endif
-
- inset.setFrameColor(0, LColor::blue);
+ inset.setFrameColor(LColor::blue);
setInsetName("Minipage");
}
{}
-InsetBase * InsetMinipage::clone() const
+auto_ptr<InsetBase> InsetMinipage::clone() const
{
- return new InsetMinipage(*this);
+ return auto_ptr<InsetBase>(new InsetMinipage(*this));
}
InsetMinipage::~InsetMinipage()
{
- InsetMinipageMailer mailer(*this);
- mailer.hideDialog();
+ InsetMinipageMailer(*this).hideDialog();
}
}
-void InsetMinipage::write(Buffer const * buf, ostream & os) const
+void InsetMinipage::write(Buffer const & buf, ostream & os) const
{
params_.write(os);
InsetCollapsable::write(buf, os);
}
-void InsetMinipage::read(Buffer const * buf, LyXLex & lex)
+void InsetMinipage::read(Buffer const & buf, LyXLex & lex)
{
params_.read(lex);
InsetCollapsable::read(buf, lex);
void InsetMinipage::metrics(MetricsInfo & mi, Dimension & dim) const
{
- if (collapsed_)
- dimension_collapsed(dim);
- else {
+ if (isOpen()) {
Dimension d;
- InsetCollapsable::metrics(mi, d);
+ MetricsInfo m = mi;
+ m.base.textwidth = params_.width.inPixels(mi.base.textwidth);
+ InsetCollapsable::metrics(m, d);
switch (params_.pos) {
case top:
dim.asc = d.asc;
break;
}
dim.wid = d.wid;
- }
+ } else
+ dimension_collapsed(dim);
+
+ dim_ = dim;
}
}
-int InsetMinipage::latex(Buffer const * buf, ostream & os,
+int InsetMinipage::latex(Buffer const & buf, ostream & os,
LatexRunParams const & runparams) const
{
string s_pos;
}
-bool InsetMinipage::insetAllowed(Inset::Code code) const
+bool InsetMinipage::insetAllowed(InsetOld::Code code) const
{
- if (code == Inset::FLOAT_CODE || code == Inset::MARGIN_CODE)
+ if (code == InsetOld::FLOAT_CODE || code == InsetOld::MARGIN_CODE)
return false;
return InsetCollapsable::insetAllowed(code);
}
-int InsetMinipage::getMaxWidth(BufferView * bv, UpdatableInset const * inset)
- const
-{
- if (owner() &&
- static_cast<UpdatableInset*>(owner())->getMaxWidth(bv, inset) < 0) {
- return -1;
- }
- if (!params_.width.zero()) {
- int ww1 = latexTextWidth(bv);
- int ww2 = InsetCollapsable::getMaxWidth(bv, inset);
- if (ww2 > 0 && ww2 < ww1) {
- return ww2;
- }
- return ww1;
- }
- // this should not happen!
- return InsetCollapsable::getMaxWidth(bv, inset);
-}
-
-
int InsetMinipage::latexTextWidth(BufferView * bv) const
{
return params_.width.inPixels(InsetCollapsable::latexTextWidth(bv));
{}
-string const InsetMinipageMailer::inset2string() const
+string const InsetMinipageMailer::inset2string(Buffer const &) const
{
return params2string(inset_.params());
}
if (in.empty())
return;
- istringstream data(STRCONV(in));
- LyXLex lex(0,0);
+ istringstream data(in);
+ LyXLex lex(0, 0);
lex.setStream(data);
if (lex.isOK()) {
ostringstream data;
data << name_ << ' ';
params.write(data);
- return STRCONV(data.str());
+ return data.str();
}