#include "frontends/LyXView.h"
#include "support/lstrings.h"
-
#include "support/std_sstream.h"
-using namespace lyx::support;
+using lyx::support::rtrim;
using std::istringstream;
using std::ostream;
using std::ostringstream;
+using std::string;
// Initialize static member var.
void ParagraphParameters::clear()
{
ParameterStruct tmp(*param);
- tmp.line_top = false;
- tmp.line_bottom = false;
- tmp.pagebreak_top = false;
- tmp.pagebreak_bottom = false;
- tmp.added_space_top = VSpace(VSpace::NONE);
- tmp.added_space_bottom = VSpace(VSpace::NONE);
tmp.spacing.set(Spacing::Default);
tmp.align = LYX_ALIGN_LAYOUT;
tmp.depth = 0;
bool ParagraphParameters::sameLayout(ParagraphParameters const & pp) const
{
return param->align == pp.param->align &&
- param->line_bottom == pp.param->line_bottom &&
- param->pagebreak_bottom == pp.param->pagebreak_bottom &&
- param->added_space_bottom == pp.param->added_space_bottom &&
-
- param->line_top == pp.param->line_top &&
- param->pagebreak_top == pp.param->pagebreak_top &&
- param->added_space_top == pp.param->added_space_top &&
param->spacing == pp.param->spacing &&
param->noindent == pp.param->noindent &&
param->depth == pp.param->depth;
}
-VSpace const & ParagraphParameters::spaceTop() const
-{
- return param->added_space_top;
-}
-
-
-void ParagraphParameters::spaceTop(VSpace const & vs)
-{
- ParameterStruct tmp(*param);
- tmp.added_space_top = vs;
- set_from_struct(tmp);
-}
-
-
-VSpace const & ParagraphParameters::spaceBottom() const
-{
- return param->added_space_bottom;
-}
-
-
-void ParagraphParameters::spaceBottom(VSpace const & vs)
-{
- ParameterStruct tmp(*param);
- tmp.added_space_bottom = vs;
- set_from_struct(tmp);
-}
-
-
Spacing const & ParagraphParameters::spacing() const
{
return param->spacing;
}
-bool ParagraphParameters::lineTop() const
-{
- return param->line_top;
-}
-
-
-void ParagraphParameters::lineTop(bool lt)
-{
- ParameterStruct tmp(*param);
- tmp.line_top = lt;
- set_from_struct(tmp);
-}
-
-
-bool ParagraphParameters::lineBottom() const
-{
- return param->line_bottom;
-}
-
-
-void ParagraphParameters::lineBottom(bool lb)
-{
- ParameterStruct tmp(*param);
- tmp.line_bottom = lb;
- set_from_struct(tmp);
-}
-
-
-bool ParagraphParameters::pagebreakTop() const
-{
- return param->pagebreak_top;
-}
-
-
-void ParagraphParameters::pagebreakTop(bool pbt)
-{
- ParameterStruct tmp(*param);
- tmp.pagebreak_top = pbt;
- set_from_struct(tmp);
-}
-
-
-bool ParagraphParameters::pagebreakBottom() const
-{
- return param->pagebreak_bottom;
-}
-
-
-void ParagraphParameters::pagebreakBottom(bool pbb)
-{
- ParameterStruct tmp(*param);
- tmp.pagebreak_bottom = pbb;
- set_from_struct(tmp);
-}
-
-
LyXAlignment ParagraphParameters::align() const
{
return param->align;
lex.nextToken();
LyXLength value(lex.getString());
leftIndent(value);
- } else if (token == "\\fill_top") {
- spaceTop(VSpace(VSpace::VFILL));
- } else if (token == "\\fill_bottom") {
- spaceBottom(VSpace(VSpace::VFILL));
- } else if (token == "\\line_top") {
- lineTop(true);
- } else if (token == "\\line_bottom") {
- lineBottom(true);
- } else if (token == "\\pagebreak_top") {
- pagebreakTop(true);
- } else if (token == "\\pagebreak_bottom") {
- pagebreakBottom(true);
} else if (token == "\\start_of_appendix") {
startOfAppendix(true);
} else if (token == "\\paragraph_spacing") {
if (tmpret == -1)
++tmpret;
align(LyXAlignment(1 << tmpret));
- } else if (token == "\\added_space_top") {
- lex.nextToken();
- VSpace value = VSpace(lex.getString());
- // only add the length when value > 0 or
- // with option keep
- if ((value.length().len().value() != 0) ||
- value.keep() ||
- (value.kind() != VSpace::LENGTH))
- spaceTop(value);
- } else if (token == "\\added_space_bottom") {
- lex.nextToken();
- VSpace value = VSpace(lex.getString());
- // only add the length when value > 0 or
- // with option keep
- if ((value.length().len().value() != 0) ||
- value.keep() ||
- (value.kind() != VSpace::LENGTH))
- spaceBottom(value);
} else if (token == "\\labelwidthstring") {
lex.eatLine();
labelWidthString(lex.getString());
void ParagraphParameters::write(ostream & os) const
{
- // Maybe some vertical spaces.
- if (spaceTop().kind() != VSpace::NONE)
- os << "\\added_space_top "
- << spaceTop().asLyXCommand() << ' ';
- if (spaceBottom().kind() != VSpace::NONE)
- os << "\\added_space_bottom "
- << spaceBottom().asLyXCommand() << ' ';
-
// Maybe the paragraph has special spacing
spacing().writeFile(os, true);
os << "\\labelwidthstring "
<< labelWidthString() << '\n';
- // Lines above or below?
- if (lineTop())
- os << "\\line_top ";
- if (lineBottom())
- os << "\\line_bottom ";
-
- // Pagebreaks above or below?
- if (pagebreakTop())
- os << "\\pagebreak_top ";
- if (pagebreakBottom())
- os << "\\pagebreak_bottom ";
-
// Start of appendix?
if (startOfAppendix())
os << "\\start_of_appendix ";
}
-
void setParagraphParams(BufferView & bv, string const & data)
{
- istringstream is(STRCONV(data));
+ istringstream is(data);
LyXLex lex(0,0);
lex.setStream(is);
params.read(lex);
LyXText * text = bv.getLyXText();
- text->setParagraph(params.lineTop(),
- params.lineBottom(),
- params.pagebreakTop(),
- params.pagebreakBottom(),
- params.spaceTop(),
- params.spaceBottom(),
+ text->setParagraph(
params.spacing(),
params.align(),
params.labelWidthString(),
/// is paragraph in inset
os << "\\ininset " << (par.inInset()?1:0) << '\n';
- data = STRCONV(os.str());
+ data = os.str();
}