X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2Finsetert.C;h=9daea852d7b7aee8c56c8d537e6cb369fef6ae35;hb=4a5b7a5952ad2381fcdf4830511293e184c7c5a1;hp=f1bef0a34f01e0646536ec8b19aecc9c97559c36;hpb=60ca300e1d398d2288a8a7b53c4458b28867d210;p=lyx.git diff --git a/src/insets/insetert.C b/src/insets/insetert.C index f1bef0a34f..9daea852d7 100644 --- a/src/insets/insetert.C +++ b/src/insets/insetert.C @@ -16,17 +16,29 @@ #include "insetert.h" #include "gettext.h" #include "lyxfont.h" +#include "language.h" #include "buffer.h" -#include "insets/insettext.h" -#include "support/LOstream.h" #include "lyx_gui_misc.h" #include "BufferView.h" #include "LyXView.h" #include "lyxtext.h" -#include "frontends/Dialogs.h" #include "debug.h" +#include "lyxtextclasslist.h" + +#include "insets/insettext.h" + +#include "frontends/Dialogs.h" +#include "frontends/Alert.h" + +#include "support/LOstream.h" + using std::ostream; +using std::min; +using std::endl; + +using lyx::pos_type; + void InsetERT::init() { @@ -36,7 +48,6 @@ void InsetERT::init() labelfont.decSize(); labelfont.setColor(LColor::latex); setInsetName("ERT"); - } @@ -80,7 +91,7 @@ InsetERT::InsetERT(string const & contents, bool collapsed) font.setColor(LColor::latex); string::const_iterator cit = contents.begin(); string::const_iterator end = contents.end(); - Paragraph::size_type pos = 0; + pos_type pos = 0; for (; cit != end; ++cit) { inset.paragraph()->insertChar(pos++, *cit, font); } @@ -118,11 +129,12 @@ void InsetERT::read(Buffer const * buf, LyXLex & lex) token_found = true; } else { lyxerr << "InsetERT::Read: Missing 'status'-tag!" - << std::endl; + << endl; // take countermeasures lex.pushToken(token); } } +#if 0 #warning this should be really short lived only for compatibility to #warning files written 07/08/2001 so this has to go before 1.2.0! (Jug) if (lex.isOK()) { @@ -136,6 +148,7 @@ void InsetERT::read(Buffer const * buf, LyXLex & lex) lex.pushToken(token); } } +#endif inset.read(buf, lex); #ifndef INHERIT_LANG @@ -148,8 +161,8 @@ void InsetERT::read(Buffer const * buf, LyXLex & lex) font.setColor(LColor::latex); Paragraph * par = inset.paragraph(); while (par) { - Paragraph::size_type siz = par->size(); - for (Paragraph::size_type i = 0; i < siz; ++i) { + pos_type siz = par->size(); + for (pos_type i = 0; i < siz; ++i) { par->setFont(i, font); } par = par->next(); @@ -170,7 +183,7 @@ void InsetERT::write(Buffer const * buf, ostream & os) const { string st; - switch(status_) { + switch (status_) { case Open: st = "Open"; break; @@ -191,14 +204,14 @@ void InsetERT::write(Buffer const * buf, ostream & os) const Paragraph * par = inset.paragraph(); while (par) { os << "\n\\layout " << layout << "\n"; - Paragraph::size_type siz = par->size(); - for (Paragraph::size_type i = 0; i < siz; ++i) { + pos_type siz = par->size(); + for (pos_type i = 0; i < siz; ++i) { Paragraph::value_type c = par->getChar(i); switch (c) { case Paragraph::META_INSET: case Paragraph::META_HFILL: lyxerr << "Element is not allowed in insertERT" - << std::endl; + << endl; case Paragraph::META_NEWLINE: os << "\n\\newline \n"; break; @@ -232,7 +245,7 @@ void InsetERT::setFont(BufferView *, LyXFont const &, bool, bool selectall) // if selectall is activated then the fontchange was an outside general // fontchange and this messages is not needed if (!selectall) - WriteAlert(_("Impossible Operation!"), + Alert::alert(_("Impossible Operation!"), _("Not permitted to change font-types inside ERT-insets!"), _("Sorry.")); } @@ -254,10 +267,16 @@ void InsetERT::edit(BufferView * bv, int x, int y, unsigned int button) { if (button == 3) return; - - InsetCollapsable::edit(bv, x, y, button); - updateStatus(0); + + if (status_ == Inlined) { + if (!bv->lockInset(this)) + return; + inset.edit(bv, x, y, button); + } else { + InsetCollapsable::edit(bv, x, y, button); + } set_latex_font(bv); + updateStatus(bv); } @@ -277,11 +296,24 @@ void InsetERT::edit(BufferView * bv, bool front) } -void InsetERT::insetButtonRelease(BufferView * bv, int x, int y, int button) + + +void InsetERT::insetButtonPress(BufferView * bv, + int x, int y, int button) +{ + if (status_ == Inlined) { + inset.insetButtonPress(bv, x, y, button); + } else { + InsetCollapsable::insetButtonPress(bv, x, y, button); + } +} + + +bool InsetERT::insetButtonRelease(BufferView * bv, int x, int y, int button) { if (button == 3) { showInsetDialog(bv); - return; + return true; } if (status_ != Inlined && (x >= 0) && (x < button_length) && @@ -300,17 +332,29 @@ void InsetERT::insetButtonRelease(BufferView * bv, int x, int y, int button) inset.insetButtonRelease(bv, x, yy, button); } } + return false; +} + + +void InsetERT::insetMotionNotify(BufferView * bv, + int x, int y, int state) +{ + if (status_ == Inlined) { + inset.insetMotionNotify(bv, x, y, state); + } else { + InsetCollapsable::insetMotionNotify(bv, x, y, state); + } } -int InsetERT::latex(Buffer const *, std::ostream & os, bool /*fragile*/, +int InsetERT::latex(Buffer const *, ostream & os, bool /*fragile*/, bool /*free_spc*/) const { Paragraph * par = inset.paragraph(); int lines = 0; while (par) { - Paragraph::size_type siz = par->size(); - for (Paragraph::size_type i = 0; i < siz; ++i) { + pos_type siz = par->size(); + for (pos_type i = 0; i < siz; ++i) { Paragraph::value_type c = par->getChar(i); switch (c) { case Paragraph::META_NEWLINE: @@ -334,19 +378,19 @@ int InsetERT::latex(Buffer const *, std::ostream & os, bool /*fragile*/, int InsetERT::ascii(Buffer const *, - std::ostream &, int /*linelen*/) const + ostream &, int /*linelen*/) const { return 0; } -int InsetERT::linuxdoc(Buffer const *, std::ostream & os) const +int InsetERT::linuxdoc(Buffer const *, ostream & os) const { Paragraph * par = inset.paragraph(); int lines = 0; while (par) { - Paragraph::size_type siz = par->size(); - for (Paragraph::size_type i = 0; i < siz; ++i) { + pos_type siz = par->size(); + for (pos_type i = 0; i < siz; ++i) { Paragraph::value_type c = par->getChar(i); switch (c) { case Paragraph::META_NEWLINE: @@ -369,13 +413,13 @@ int InsetERT::linuxdoc(Buffer const *, std::ostream & os) const } -int InsetERT::docbook(Buffer const *, std::ostream & os) const +int InsetERT::docbook(Buffer const *, ostream & os) const { Paragraph * par = inset.paragraph(); int lines = 0; while (par) { - Paragraph::size_type siz = par->size(); - for (Paragraph::size_type i = 0; i < siz; ++i) { + pos_type siz = par->size(); + for (pos_type i = 0; i < siz; ++i) { Paragraph::value_type c = par->getChar(i); switch (c) { case Paragraph::META_NEWLINE: @@ -407,14 +451,14 @@ InsetERT::localDispatch(BufferView * bv, kb_action action, string const & arg) set_latex_font(bv); } - switch(action) { + switch (action) { case LFUN_LAYOUT: bv->owner()->setLayout(inset.paragraph()->getLayout()); break; default: result = InsetCollapsable::localDispatch(bv, action, arg); } - switch(action) { + switch (action) { case LFUN_BREAKPARAGRAPH: case LFUN_BREAKPARAGRAPHKEEPLAYOUT: case LFUN_BACKSPACE: @@ -436,10 +480,9 @@ InsetERT::localDispatch(BufferView * bv, kb_action action, string const & arg) string const InsetERT::get_new_label() const { string la; - Paragraph::size_type const max_length = 15; - - Paragraph::size_type const p_siz = inset.paragraph()->size(); - Paragraph::size_type const n = std::min(max_length, p_siz); + pos_type const max_length = 15; + pos_type const p_siz = inset.paragraph()->size(); + pos_type const n = min(max_length, p_siz); int i = 0; int j = 0; for(; i < n && j < p_siz; ++j) { @@ -578,7 +621,7 @@ void InsetERT::status(BufferView * bv, ERTStatus const st) const { if (st != status_) { status_ = st; - switch(st) { + switch (st) { case Inlined: inset.setAutoBreakRows(false); break;