// -*- C++ -*-
/**
* \file paragraph_pimpl.h
- * Copyright 1995-2002 the LyX Team
- * Read the file COPYING
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
+ *
+ * \author Lars Gullik Bjønnes
+ * \author Jean-Marc Lasgouttes
+ * \author John Levon
+ * \author André Pönitz
+ *
+ * Full author contact details are available in file CREDITS.
*/
#ifndef PARAGRAPH_PIMPL_H
#define PARAGRAPH_PIMPL_H
-#ifdef __GNUG__
-#pragma interface
-#endif
-
#include "paragraph.h"
#include "ParagraphParameters.h"
#include "changes.h"
-#include "counters.h"
#include <boost/scoped_ptr.hpp>
-
+
class LyXLayout;
struct Paragraph::Pimpl {
///
Pimpl(Paragraph * owner);
/// Copy constructor
- Pimpl(Pimpl const &, Paragraph * owner, bool same_ids = false);
+ Pimpl(Pimpl const &, Paragraph * owner);
///
lyx::pos_type size() const {
return text.size();
///
void clear();
///
- void setContentsFromPar(Paragraph const * par);
+ void setContentsFromPar(Paragraph const & par);
/// set tracking mode
void trackChanges(Change::Type type = Change::UNCHANGED);
/// stop tracking
bool isChanged(lyx::pos_type start, lyx::pos_type end) const;
/// is there a non-addition in this range ?
bool isChangeEdited(lyx::pos_type start, lyx::pos_type end) const;
-
+
/// set change at pos
void setChange(lyx::pos_type pos, Change::Type type);
-
+
/// mark as erased
void markErased();
-
+
/// accept change
void acceptChange(lyx::pos_type start, lyx::pos_type end);
/// reject change
void rejectChange(lyx::pos_type start, lyx::pos_type end);
-
+
/// are we tracking changes ?
bool tracking() const {
return changes_.get();
}
-
+
///
value_type getChar(lyx::pos_type pos) const;
///
///
void insertChar(lyx::pos_type pos, value_type c, LyXFont const & font, Change change = Change(Change::INSERTED));
///
- void insertInset(lyx::pos_type pos, Inset * inset, LyXFont const & font, Change change = Change(Change::INSERTED));
+ void insertInset(lyx::pos_type pos, InsetOld * inset, LyXFont const & font, Change change = Change(Change::INSERTED));
/// definite erase
void eraseIntern(lyx::pos_type pos);
- /// erase the given position
- void erase(lyx::pos_type pos);
+ /// erase the given position. Returns true if it was actually erased
+ bool erase(lyx::pos_type pos);
/// erase the given range
- bool erase(lyx::pos_type start, lyx::pos_type end);
- ///
- LyXFont const realizeFont(LyXFont const & font,
- BufferParams const & bparams) const;
+ int erase(lyx::pos_type start, lyx::pos_type end);
///
- Inset * inset_owner;
+ UpdatableInset * inset_owner;
/** A font entry covers a range of positions. Notice that the
entries in the list are inserted in random order.
///
FontList fontlist;
- ///
- Paragraph * TeXDeeper(Buffer const *, BufferParams const &,
- std::ostream &, TexRow & texrow);
///
void simpleTeXBlanks(std::ostream &, TexRow & texrow,
lyx::pos_type const i,
LyXFont const & font,
LyXLayout const & style);
///
- void simpleTeXSpecialChars(Buffer const *, BufferParams const &,
+ void simpleTeXSpecialChars(Buffer const &, BufferParams const &,
std::ostream &, TexRow & texrow,
- bool moving_arg,
+ LatexRunParams const &,
LyXFont & font, LyXFont & running_font,
- LyXFont & basefont, bool & open_font,
+ LyXFont & basefont,
+ LyXFont const & outerfont,
+ bool & open_font,
Change::Type & running_change,
LyXLayout const & style,
lyx::pos_type & i,
void validate(LaTeXFeatures & features,
LyXLayout const & layout) const;
- ///
- Paragraph * getParFromID(int id) const;
///
unsigned int id_;
///
ParagraphParameters params;
private:
- /// erase at the given position. Returns true if it was actually erased
- bool erasePos(lyx::pos_type pos);
-
/// match a string against a particular point in the paragraph
bool isTextAt(string const & str, lyx::pos_type pos) const;
/// for recording and looking up changes in revision tracking mode
boost::scoped_ptr<Changes> changes_;
-
+
/// Who owns us?
Paragraph * owner_;
///