]> git.lyx.org Git - lyx.git/blobdiff - src/paragraph_pimpl.C
I reactivate the code to resize the InsetText on a resize event of the main
[lyx.git] / src / paragraph_pimpl.C
index 82e73c9dddacda0051c7544eb995c9339d21f485..c223c727853ca3dc61aa6bc0e56c2beb2f7d5706 100644 (file)
 #include "encoding.h"
 #include "lyxrc.h"
 #include "debug.h"
+#include "lyxtextclasslist.h"
+
 #include "support/LAssert.h"
 
 using lyx::pos_type;
+using std::endl;
+using std::ostream;
+using std::upper_bound;
+using std::lower_bound;
 
 extern int tex_code_break_column;
 
@@ -110,7 +116,7 @@ void Paragraph::Pimpl::insertChar(pos_type pos, value_type c,
 
        // Update the font table.
        FontTable search_font(pos, LyXFont());
-       for (FontList::iterator it = std::lower_bound(fontlist.begin(),
+       for (FontList::iterator it = lower_bound(fontlist.begin(),
                                                      fontlist.end(),
                                                      search_font, matchFT());
             it != fontlist.end(); ++it)
@@ -120,7 +126,7 @@ void Paragraph::Pimpl::insertChar(pos_type pos, value_type c,
    
        // Update the inset table.
        InsetTable search_inset(pos, 0);
-       for (InsetList::iterator it = std::lower_bound(owner_->insetlist.begin(),
+       for (InsetList::iterator it = lower_bound(owner_->insetlist.begin(),
                                                       owner_->insetlist.end(),
                                                       search_inset, matchIT());
             it != owner_->insetlist.end(); ++it)
@@ -142,14 +148,15 @@ void Paragraph::Pimpl::insertInset(pos_type pos,
        
        // Add a new entry in the inset table.
        InsetTable search_inset(pos, 0);
-       InsetList::iterator it = std::lower_bound(owner_->insetlist.begin(),
+       InsetList::iterator it = lower_bound(owner_->insetlist.begin(),
                                                  owner_->insetlist.end(),
                                                  search_inset, matchIT());
        if (it != owner_->insetlist.end() && it->pos == pos) {
                lyxerr << "ERROR (Paragraph::InsertInset): "
-                       "there is an inset in position: " << pos << std::endl;
+                       "there is an inset in position: " << pos << endl;
        } else {
                owner_->insetlist.insert(it, InsetTable(pos, inset));
+               inset->parOwner(owner_);
        }
        
        if (inset_owner)
@@ -165,7 +172,7 @@ void Paragraph::Pimpl::erase(pos_type pos)
                // find the entry
                InsetTable search_inset(pos, 0);
                InsetList::iterator it =
-                       std::lower_bound(owner_->insetlist.begin(),
+                       lower_bound(owner_->insetlist.begin(),
                                         owner_->insetlist.end(),
                                         search_inset, matchIT());
                if (it != owner_->insetlist.end() && it->pos == pos) {
@@ -180,7 +187,7 @@ void Paragraph::Pimpl::erase(pos_type pos)
        FontTable search_font(pos, LyXFont());
        
        FontList::iterator it =
-               std::lower_bound(fontlist.begin(),
+               lower_bound(fontlist.begin(),
                            fontlist.end(),
                            search_font, matchFT());
        if (it != fontlist.end() && it->pos() == pos &&
@@ -210,7 +217,7 @@ void Paragraph::Pimpl::erase(pos_type pos)
        InsetTable search_inset(pos, 0);
        InsetList::iterator lend = owner_->insetlist.end();
        for (InsetList::iterator it =
-                    std::upper_bound(owner_->insetlist.begin(),
+                    upper_bound(owner_->insetlist.begin(),
                                      lend,
                                      search_inset, matchIT());
             it != lend; ++it)
@@ -218,7 +225,7 @@ void Paragraph::Pimpl::erase(pos_type pos)
 }
 
 
-void Paragraph::Pimpl::simpleTeXBlanks(std::ostream & os, TexRow & texrow,
+void Paragraph::Pimpl::simpleTeXBlanks(ostream & os, TexRow & texrow,
                                        pos_type const i,
                                        int & column, LyXFont const & font,
                                        LyXLayout const & style)
@@ -256,9 +263,11 @@ void Paragraph::Pimpl::simpleTeXBlanks(std::ostream & os, TexRow & texrow,
 }
 
 
-bool Paragraph::Pimpl::isTextAt(BufferParams const & bp, LyXFont & font,
+bool Paragraph::Pimpl::isTextAt(BufferParams const & bp,
                                string const & str, pos_type pos)
 {
+       LyXFont const & font = owner_->getFont(bp, pos);
        for (string::size_type i = 0; i < str.length(); ++i) {
                if (pos + static_cast<pos_type>(i) >= size())
                        return false;
@@ -273,7 +282,7 @@ bool Paragraph::Pimpl::isTextAt(BufferParams const & bp, LyXFont & font,
  
 void Paragraph::Pimpl::simpleTeXSpecialChars(Buffer const * buf,
                                             BufferParams const & bparams,
-                                            std::ostream & os,
+                                            ostream & os,
                                             TexRow & texrow,
                                             bool moving_arg,
                                             LyXFont & font,
@@ -486,7 +495,7 @@ void Paragraph::Pimpl::simpleTeXSpecialChars(Buffer const * buf,
                        size_t pnr = 0;
  
                        for (; pnr < phrases_nr; ++pnr) {
-                               if (isTextAt(bparams, font, special_phrases[pnr][0], i)) {
+                               if (isTextAt(bparams, special_phrases[pnr][0], i)) {
                                        os << special_phrases[pnr][1];
                                        i += special_phrases[pnr][0].length() - 1;
                                        column += special_phrases[pnr][1].length() - 1;
@@ -506,14 +515,13 @@ void Paragraph::Pimpl::simpleTeXSpecialChars(Buffer const * buf,
 
 Paragraph * Paragraph::Pimpl::TeXDeeper(Buffer const * buf,
                                        BufferParams const & bparams,
-                                       std::ostream & os, TexRow & texrow)
+                                       ostream & os, TexRow & texrow)
 {
-       lyxerr[Debug::LATEX] << "TeXDeeper...     " << this << std::endl;
+       lyxerr[Debug::LATEX] << "TeXDeeper...     " << this << endl;
        Paragraph * par = owner_;
 
        while (par && par->params().depth() == owner_->params().depth()) {
-               if (textclasslist.Style(bparams.textclass, 
-                                       par->layout).isEnvironment()) {
+               if (textclasslist[bparams.textclass][par->layout()].isEnvironment()) {
                        par = par->TeXEnvironment(buf, bparams,
                                                  os, texrow);
                } else {
@@ -521,7 +529,7 @@ Paragraph * Paragraph::Pimpl::TeXDeeper(Buffer const * buf,
                                             os, texrow, false);
                }
        }
-       lyxerr[Debug::LATEX] << "TeXDeeper...done " << par << std::endl;
+       lyxerr[Debug::LATEX] << "TeXDeeper...done " << par << endl;
 
        return par;
 }
@@ -548,12 +556,12 @@ LyXFont const Paragraph::Pimpl::realizeFont(LyXFont const & font,
        // check for environment font information
        char par_depth = owner_->getDepth();
        Paragraph const * par = owner_;
+       LyXTextClass const & tclass = textclasslist[bparams.textclass];
+       
        while (par && par->getDepth() && !tmpfont.resolved()) {
                par = par->outerHook();
                if (par) {
-                       tmpfont.realize(textclasslist.
-                                       Style(bparams.textclass,
-                                             par->getLayout()).font
+                       tmpfont.realize(tclass[par->layout()].font
 #ifdef INHERIT_LANGUAGE
                                        , bparams.language
 #endif
@@ -562,8 +570,7 @@ LyXFont const Paragraph::Pimpl::realizeFont(LyXFont const & font,
                }
        }
 
-       tmpfont.realize(textclasslist.TextClass(bparams.textclass)
-                       .defaultfont()
+       tmpfont.realize(tclass.defaultfont()
 #ifdef INHERIT_LANGUAGE
                , bparams.language
 #endif