]> git.lyx.org Git - lyx.git/blobdiff - src/insets/insetminipage.C
Clean up InsetGraphics::Cache and rename as GraphicsInset.
[lyx.git] / src / insets / insetminipage.C
index 540ff456b879ec8610951b0f9758de0858dbb94a..f7cd3b4e7b3c30a45212dcd35158244ebfae049d 100644 (file)
 
 #include "BufferView.h"
 #include "debug.h"
+#include "dimension.h"
 #include "funcrequest.h"
 #include "gettext.h"
+#include "Lsstream.h"
 #include "lyxfont.h"
 #include "lyxlex.h"
 #include "lyxtext.h"
@@ -27,7 +29,6 @@
 #include "frontends/Dialogs.h"
 
 #include "support/LOstream.h"
-#include "support/lstrings.h"
 
 using std::ostream;
 using std::endl;
@@ -87,14 +88,14 @@ InsetMinipage::InsetMinipage(BufferParams const & bp)
 }
 
 
-InsetMinipage::InsetMinipage(InsetMinipage const & in, bool same_id)
-       : InsetCollapsable(in, same_id), params_(in.params_)
+InsetMinipage::InsetMinipage(InsetMinipage const & in)
+       : InsetCollapsable(in), params_(in.params_)
 {}
 
 
-Inset * InsetMinipage::clone(Buffer const &, bool same_id) const
+Inset * InsetMinipage::clone() const
 {
-       return new InsetMinipage(*const_cast<InsetMinipage *>(this), same_id);
+       return new InsetMinipage(*this);
 }
 
 
@@ -107,8 +108,6 @@ InsetMinipage::~InsetMinipage()
 
 dispatch_result InsetMinipage::localDispatch(FuncRequest const & cmd)
 {
-       Inset::RESULT result = UNDISPATCHED;
-
        switch (cmd.action) {
        case LFUN_INSET_MODIFY: {
                InsetMinipage::Params params;
@@ -125,21 +124,16 @@ dispatch_result InsetMinipage::localDispatch(FuncRequest const & cmd)
                inset.update(cmd.view(), true);
                t->setCursorIntern(t->cursor.par(), t->cursor.pos());
                cmd.view()->updateInset(this);
-               result = DISPATCHED;
+               return DISPATCHED;
        }
-       break;
 
-       case LFUN_INSET_DIALOG_UPDATE: {
-               InsetMinipageMailer mailer(*this);
-               mailer.updateDialog(cmd.view());
-       }
-       break;
+       case LFUN_INSET_DIALOG_UPDATE:
+               InsetMinipageMailer(*this).updateDialog(cmd.view());
+               return DISPATCHED;
 
        default:
-               result = InsetCollapsable::localDispatch(cmd);
+               return InsetCollapsable::localDispatch(cmd);
        }
-
-       return result;
 }
 
 
@@ -224,50 +218,28 @@ void InsetMinipage::read(Buffer const * buf, LyXLex & lex)
 }
 
 
-int InsetMinipage::ascent(BufferView * bv, LyXFont const & font) const
+void InsetMinipage::metrics(MetricsInfo & mi, Dimension & dim) const
 {
        if (collapsed_)
-               return ascent_collapsed();
+               dimension_collapsed(dim);
        else {
-               // Take placement into account.
-               int i = 0;
+               Dimension d;
+               InsetCollapsable::metrics(mi, d);
                switch (params_.pos) {
                case top:
-                       i = InsetCollapsable::ascent(bv, font);
+                       dim.asc = d.asc;
+                       dim.des = d.des;
                        break;
                case center:
-                       i = (InsetCollapsable::ascent(bv, font)
-                            + InsetCollapsable::descent(bv, font)) / 2;
+                       dim.asc = d.ascent() + d.descent() / 2;
+                       dim.des = dim.asc;
                        break;
                case bottom:
-                       i = InsetCollapsable::descent(bv, font);
+                       dim.asc = d.des;
+                       dim.des = d.asc;
                        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 (params_.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;
+               dim.wid = d.wid;
        }
 }
 
@@ -278,8 +250,8 @@ string const InsetMinipage::editMessage() const
 }
 
 
-int InsetMinipage::latex(Buffer const * buf,
-                        ostream & os, bool fragile, bool fp) const
+int InsetMinipage::latex(Buffer const * buf, ostream & os,
+                        LatexRunParams const & runparams) const
 {
        string s_pos;
        switch (params_.pos) {
@@ -296,7 +268,7 @@ int InsetMinipage::latex(Buffer const * buf,
        os << "\\begin{minipage}[" << s_pos << "]{"
           << params_.width.asLatexString() << "}%\n";
 
-       int i = inset.latex(buf, os, fragile, fp);
+       int i = inset.latex(buf, os, runparams);
 
        os << "\\end{minipage}%\n";
        return i + 2;
@@ -305,7 +277,7 @@ int InsetMinipage::latex(Buffer const * buf,
 
 bool InsetMinipage::insetAllowed(Inset::Code code) const
 {
-       if ((code == Inset::FLOAT_CODE) || (code == Inset::MARGIN_CODE))
+       if (code == Inset::FLOAT_CODE || code == Inset::MARGIN_CODE)
                return false;
 
        return InsetCollapsable::insetAllowed(code);
@@ -377,8 +349,8 @@ void InsetMinipageMailer::string2params(string const & in,
 
        if (in.empty())
                return;
-       
-       istringstream data(in);
+
+       istringstream data(STRCONV(in));
        LyXLex lex(0,0);
        lex.setStream(data);
 
@@ -410,6 +382,5 @@ InsetMinipageMailer::params2string(InsetMinipage::Params const & params)
        ostringstream data;
        data << name_ << ' ';
        params.write(data);
-
-       return data.str();
+       return STRCONV(data.str());
 }