#include "Cursor.h"
#include "CutAndPaste.h"
#include "DispatchResult.h"
-#include "Encoding.h"
#include "ErrorList.h"
#include "FuncRequest.h"
#include "factory.h"
#include "insets/InsetNewline.h"
#include "insets/InsetNewpage.h"
#include "insets/InsetArgument.h"
+#include "insets/InsetIPAMacro.h"
#include "insets/InsetSpace.h"
#include "insets/InsetSpecialChar.h"
#include "insets/InsetTabular.h"
+#include "support/convert.h"
#include "support/debug.h"
#include "support/docstream.h"
#include "support/gettext.h"
}
+int Text::getTocLevel(pit_type par_offset) const
+{
+ Paragraph const & par = pars_[par_offset];
+
+ if (par.layout().isEnvironment() && !isFirstInSequence(par_offset))
+ return Layout::NOT_IN_TOC;
+
+ return par.layout().toclevel;
+}
+
+
Font const Text::outerFont(pit_type par_offset) const
{
depth_type par_depth = pars_[par_offset].getDepth();
inset->read(lex);
inset->setBuffer(*buf);
par.insertInset(par.size(), inset.release(), font, change);
+ } else if (token == "\\IPAChar") {
+ auto_ptr<Inset> inset;
+ inset.reset(new InsetIPAChar);
+ inset->read(lex);
+ inset->setBuffer(*buf);
+ par.insertInset(par.size(), inset.release(), font, change);
} else if (token == "\\backslash") {
par.appendChar('\\', font, change);
} else if (token == "\\LyXTable") {
return res;
}
+
// Returns the current font and depth as a message.
docstring Text::currentState(Cursor const & cur) const
{
// For captions, we just take the caption type
Inset * caption_inset = cur.innerInsetOfType(CAPTION_CODE);
if (caption_inset) {
- string const & ftype = static_cast<InsetCaption *>(caption_inset)->type();
+ string const & ftype = static_cast<InsetCaption *>(caption_inset)->floattype();
FloatList const & fl = cur.buffer()->params().documentClass().floats();
if (fl.typeExist(ftype)) {
Floating const & flt = fl.getType(ftype);
if (!name.empty())
text = name + ':' + text;
- return text;
+ // We need a unique label
+ docstring label = text;
+ int i = 1;
+ while (cur.buffer()->insetLabel(label)) {
+ label = text + '-' + convert<docstring>(i);
+ ++i;
+ }
+
+ return label;
}