]> git.lyx.org Git - features.git/blobdiff - src/insets/InsetCollapsable.cpp
* Lazy MathData to avoid unneeded interpretation of macro definitions
[features.git] / src / insets / InsetCollapsable.cpp
index 7e68f092d589d3139f8a4845e1e9d3086bf35bd7..fe747bc9e8b840db7e264d4d4a53d3e0edc0372d 100644 (file)
 #include "BufferParams.h"
 #include "BufferView.h"
 #include "Cursor.h"
-#include "debug.h"
+#include "support/debug.h"
 #include "Dimension.h"
 #include "DispatchResult.h"
 #include "FloatList.h"
 #include "FuncStatus.h"
-#include "gettext.h"
+#include "support/gettext.h"
 #include "Language.h"
 #include "LaTeXFeatures.h"
 #include "Lexer.h"
 #include "FuncRequest.h"
 #include "MetricsInfo.h"
 #include "ParagraphParameters.h"
+#include "TextClass.h"
 
 #include "frontends/FontMetrics.h"
 #include "frontends/Painter.h"
 
+#include "support/docstream.h"
 
-namespace lyx {
+using namespace std;
 
-using std::endl;
-using std::max;
-using std::ostream;
-using std::string;
+namespace lyx {
 
 
 InsetCollapsable::CollapseStatus InsetCollapsable::status() const
@@ -87,9 +86,9 @@ InsetCollapsable::InsetCollapsable(BufferParams const & bp,
 
 InsetCollapsable::InsetCollapsable(InsetCollapsable const & rhs)
        : InsetText(rhs),
-               button_dim(rhs.button_dim),
                layout_(rhs.layout_),
                labelstring_(rhs.labelstring_),
+               button_dim(rhs.button_dim),
                status_(rhs.status_),
                openinlined_(rhs.openinlined_),
                autoOpen_(rhs.autoOpen_),
@@ -153,8 +152,7 @@ void InsetCollapsable::read(Buffer const & buf, Lexer & lex)
                                lex.pushToken(token);
                        }
                } else {
-                       lyxerr << "InsetCollapsable::read: Missing 'status'-tag!"
-                                  << endl;
+                       LYXERR0("InsetCollapsable::read: Missing 'status'-tag!");
                        // take countermeasures
                        lex.pushToken(token);
                }
@@ -428,7 +426,7 @@ docstring const InsetCollapsable::getNewLabel(docstring const & l) const
        docstring label;
        pos_type const max_length = 15;
        pos_type const p_siz = paragraphs().begin()->size();
-       pos_type const n = std::min(max_length, p_siz);
+       pos_type const n = min(max_length, p_siz);
        pos_type i = 0;
        pos_type j = 0;
        for (; i < n && j < p_siz; ++j) {
@@ -609,7 +607,7 @@ bool InsetCollapsable::allowMultiPar() const
 void InsetCollapsable::resetParagraphsFont()
 {
        Font font;
-       font.fontInfo() = sane_font;
+       font.fontInfo() = inherit_font;
        if (layout_->forceltr)
                font.setLanguage(latex_language);
        if (layout_->passthru) {
@@ -650,14 +648,12 @@ bool InsetCollapsable::getStatus(Cursor & cur, FuncRequest const & cmd,
        case LFUN_BIBITEM_INSERT:
        case LFUN_BOX_INSERT:
        case LFUN_BRANCH_INSERT:
-       case LFUN_BREAK_LINE:
+       case LFUN_NEW_LINE:
        case LFUN_CAPTION_INSERT:
        case LFUN_CLEARPAGE_INSERT:
        case LFUN_CLEARDOUBLEPAGE_INSERT:
        case LFUN_DEPTH_DECREMENT:
        case LFUN_DEPTH_INCREMENT:
-       case LFUN_DOTS_INSERT:
-       case LFUN_END_OF_SENTENCE_PERIOD_INSERT:
        case LFUN_ENVIRONMENT_INSERT:
        case LFUN_ERT_INSERT:
        case LFUN_FILE_INSERT:
@@ -682,14 +678,13 @@ bool InsetCollapsable::getStatus(Cursor & cur, FuncRequest const & cmd,
        case LFUN_FOOTNOTE_INSERT:
        case LFUN_HFILL_INSERT:
        case LFUN_HYPERLINK_INSERT:
-       case LFUN_HYPHENATION_POINT_INSERT:
        case LFUN_INDEX_INSERT:
        case LFUN_INDEX_PRINT:
        case LFUN_INSET_INSERT:
        case LFUN_LABEL_GOTO:
        case LFUN_LABEL_INSERT:
-       case LFUN_LIGATURE_BREAK_INSERT:
        case LFUN_LINE_INSERT:
+       case LFUN_NEWPAGE_INSERT:
        case LFUN_PAGEBREAK_INSERT:
        case LFUN_LAYOUT:
        case LFUN_LAYOUT_PARAGRAPH:
@@ -700,7 +695,6 @@ bool InsetCollapsable::getStatus(Cursor & cur, FuncRequest const & cmd,
        case LFUN_MATH_MATRIX:
        case LFUN_MATH_MODE:
        case LFUN_MENU_OPEN:
-       case LFUN_MENU_SEPARATOR_INSERT:
        case LFUN_NOACTION:
        case LFUN_NOMENCL_INSERT:
        case LFUN_NOMENCL_PRINT:
@@ -716,6 +710,7 @@ bool InsetCollapsable::getStatus(Cursor & cur, FuncRequest const & cmd,
        case LFUN_SERVER_NOTIFY:
        case LFUN_SERVER_SET_XY:
        case LFUN_SPACE_INSERT:
+       case LFUN_SPECIALCHAR_INSERT:
        case LFUN_TABULAR_INSERT:
        case LFUN_TOC_INSERT:
        case LFUN_WRAP_INSERT:
@@ -787,6 +782,22 @@ InsetCollapsable::Decoration InsetCollapsable::decoration() const
 }
 
 
+bool InsetCollapsable::isMacroScope(Buffer const & buf) const
+{
+       // layout_ == 0 leads to no latex output, so ignore 
+       // the macros outside
+       if (!layout_)
+               return true;
+
+       // see InsetCollapsable::latex(...) below. In these case
+       // an environment is opened there
+       if (!layout_->latexname.empty())
+               return true;
+
+       return false;
+}
+
+
 int InsetCollapsable::latex(Buffer const & buf, odocstream & os,
                          OutputParams const & runparams) const
 {