lyx_mirror/src/ParagraphParameters.h
André Pönitz 0d43ba149a the stuff from the sneak preview:
For one, it still contains a few things that are already in CVS (the
'brown paperbag' changes).

Secondly, this changes the ParagraphList to a std::vector but does not
yet take full advantage of it except removing LyXText::parOffset() and
similar.

I had an extensive talk with my profiler and we are happy nevertheless.

This also moves almost all Cut&Paste specific stuff from text.C to
CutAndPaste.C. Much smaller interface now... Namespace CutAndPaste is
now  lyx::cap::. Was inconsistent with the rest....

Make ParagraphList a proper class. We'll need this later for a
specialized erase/insert.

Remove some unneeded prototypes and function declarations

Use ParameterStruct directly instead of ShareContainer<ParameterStruct>

Inline a few accesses to CursorSlice members as suggested by the profiler.

Fix commandline conversion crash reported by Kayvan.

Replace PosIterator by DocumentIterator. The latter can also iterate
through math and nested text in math...

Remove math specific hack from Documentiterator

Derive InsetCollapsable from InsetText instead of using an InsetText
member. This give us the opportunity to get rid of the InsetOld::owner_
backpointer.

Cosmetics in CutAndPaste.C and cursor.C. Fix nasty crash (popping slices
off an empty selection anchor). Add a few asserts.

Remove all 'manual' update calls. We do now one per user interaction which
is completely sufficient.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@8527 a592a061-630c-0410-9148-cb99ea01b6c8
2004-03-25 09:16:36 +00:00

120 lines
2.1 KiB
C++

// -*- C++ -*-
/**
* \file ParagraphParameters.h
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
* \author Lars Gullik Bjønnes
* \author Angus Leeming
* \author John Levon
*
* Full author contact details are available in file CREDITS.
*/
#ifndef PARAGRAPHPARAMETERS_H
#define PARAGRAPHPARAMETERS_H
#include "layout.h"
#include "lyxlength.h"
#include "Spacing.h"
#include "support/types.h"
#include <iosfwd>
#include <string>
class BufferView;
class LyXLength;
class LyXLex;
class Paragraph;
class Spacing;
///
class ParagraphParameters {
public:
///
ParagraphParameters();
///
void clear();
///
bool sameLayout(ParagraphParameters const &) const;
///
Spacing const & spacing() const;
///
void spacing(Spacing const &);
///
bool noindent() const;
///
void noindent(bool);
///
LyXAlignment align() const;
///
void align(LyXAlignment);
///
typedef lyx::depth_type depth_type;
///
depth_type depth() const;
///
void depth(depth_type);
///
bool startOfAppendix() const;
///
void startOfAppendix(bool);
///
bool appendix() const;
///
void appendix(bool);
///
std::string const & labelString() const;
///
void labelString(std::string const &);
///
std::string const & labelWidthString() const;
///
void labelWidthString(std::string const &);
///
LyXLength const & leftIndent() const;
///
void leftIndent(LyXLength const &);
/// read the parameters from a lex
void read(LyXLex & lex);
/// write out the parameters to a stream
void write(std::ostream & os) const;
//friend bool operator==(ParameterStruct const & ps1,
//ParameterStruct const & ps2);
private:
///
Spacing spacing_;
///
bool noindent_;
///
bool start_of_appendix_;
///
bool appendix_;
///
LyXAlignment align_;
///
depth_type depth_;
///
std::string labelstring_;
///
std::string labelwidthstring_;
///
LyXLength leftindent_;
};
/** Generate a string \param data from \param par's ParagraphParameters.
The function also generates some additional info needed by the
Paragraph dialog.
*/
void params2string(Paragraph const & par, std::string & data);
#endif