// -*- 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
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "ShareContainer.h"
-#include "LString.h"
#include "layout.h"
+#include "lyxlength.h"
+#include "Spacing.h"
-// Not yet... lyx 1.3.x or so
-//#define NO_PEXTRA_REALLY 1
+#include "support/types.h"
-#include "ParameterStruct.h"
+#include <iosfwd>
+#include <string>
-class VSpace;
+class BufferView;
+class LyXLength;
+class LyXLex;
+class Paragraph;
class Spacing;
///
bool sameLayout(ParagraphParameters const &) const;
///
- VSpace const & spaceTop() const;
- ///
- void spaceTop(VSpace const &);
- ///
- VSpace const & spaceBottom() const;
- ///
- void spaceBottom(VSpace const &);
- ///
Spacing const & spacing() const;
///
void spacing(Spacing const &);
///
void noindent(bool);
///
- bool lineTop() const;
- ///
- void lineTop(bool);
- ///
- bool lineBottom() const;
- ///
- void lineBottom(bool);
- ///
- bool pagebreakTop() const;
- ///
- void pagebreakTop(bool);
- ///
- bool pagebreakBottom() const;
- ///
- void pagebreakBottom(bool);
- ///
LyXAlignment align() const;
///
void align(LyXAlignment);
///
- typedef ParameterStruct::depth_type depth_type;
+ typedef lyx::depth_type depth_type;
///
depth_type depth() const;
///
///
void appendix(bool);
///
- string const & labelString() const;
+ std::string const & labelString() const;
///
- void labelString(string const &);
+ void labelString(std::string const &);
///
- string const & labelWidthString() const;
+ std::string const & labelWidthString() const;
///
- void labelWidthString(string const &);
-#ifndef NO_PEXTRA_REALLY
+ void labelWidthString(std::string const &);
///
- int pextraType() const;
+ LyXLength const & leftIndent() const;
///
- void pextraType(int);
- ///
- string const & pextraWidth() const;
- ///
- void pextraWidth(string const &);
- ///
- string const & pextraWidthp() const;
- ///
- void pextraWidthp(string 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:
///
- int pextraAlignment() const;
+ Spacing spacing_;
///
- void pextraAlignment(int);
+ bool noindent_;
///
- bool pextraHfill() const;
+ bool start_of_appendix_;
///
- void pextraHfill(bool);
+ bool appendix_;
///
- bool pextraStartMinipage() const;
+ LyXAlignment align_;
///
- void pextraStartMinipage(bool);
-#endif
-private:
+ depth_type depth_;
///
- void set_from_struct(ParameterStruct const &);
+ std::string labelstring_;
///
- boost::shared_ptr<ParameterStruct> param;
+ std::string labelwidthstring_;
///
- static ShareContainer<ParameterStruct> container;
+ LyXLength leftindent_;
};
-inline
-ParagraphParameters::depth_type ParagraphParameters::depth() const
-{
- return param->depth;
-}
+
+/** 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