* Copyright 2013, Stephan Aßmus <superstippi@gmx.de>.
* All rights reserved. Distributed under the terms of the MIT License.
*/
#include "ParagraphStyle.h"
ParagraphStyle::ParagraphStyle()
:
fStyleData(new ParagraphStyleData(), true)
{
}
ParagraphStyle::ParagraphStyle(const ParagraphStyle& other)
:
fStyleData(other.fStyleData)
{
}
ParagraphStyle&
ParagraphStyle::operator=(const ParagraphStyle& other)
{
if (this == &other)
return *this;
fStyleData = other.fStyleData;
return *this;
}
bool
ParagraphStyle::operator==(const ParagraphStyle& other) const
{
if (this == &other)
return true;
if (fStyleData == other.fStyleData)
return true;
if (fStyleData.IsSet() && other.fStyleData.IsSet())
return *fStyleData == *other.fStyleData;
return false;
}
bool
ParagraphStyle::operator!=(const ParagraphStyle& other) const
{
return !(*this == other);
}
bool
ParagraphStyle::SetAlignment(::Alignment alignment)
{
ParagraphStyleDataRef data = fStyleData->SetAlignment(alignment);
if (data == fStyleData)
return data->Alignment() == alignment;
fStyleData = data;
return true;
}
::Alignment
ParagraphStyle::Alignment() const
{
return fStyleData->Alignment();
}
bool
ParagraphStyle::SetJustify(bool justify)
{
ParagraphStyleDataRef data = fStyleData->SetJustify(justify);
if (data == fStyleData)
return data->Justify() == justify;
fStyleData = data;
return true;
}
bool
ParagraphStyle::Justify() const
{
return fStyleData->Justify();
}
bool
ParagraphStyle::SetFirstLineInset(float inset)
{
ParagraphStyleDataRef data = fStyleData->SetFirstLineInset(inset);
if (data == fStyleData)
return data->FirstLineInset() == inset;
fStyleData = data;
return true;
}
float
ParagraphStyle::FirstLineInset() const
{
return fStyleData->FirstLineInset();
}
bool
ParagraphStyle::SetLineInset(float inset)
{
ParagraphStyleDataRef data = fStyleData->SetLineInset(inset);
if (data == fStyleData)
return data->LineInset() == inset;
fStyleData = data;
return true;
}
float
ParagraphStyle::LineInset() const
{
return fStyleData->LineInset();
}
bool
ParagraphStyle::SetLineSpacing(float spacing)
{
ParagraphStyleDataRef data = fStyleData->SetLineSpacing(spacing);
if (data == fStyleData)
return data->LineSpacing() == spacing;
fStyleData = data;
return true;
}
float
ParagraphStyle::LineSpacing() const
{
return fStyleData->LineSpacing();
}
bool
ParagraphStyle::SetSpacingTop(float spacing)
{
ParagraphStyleDataRef data = fStyleData->SetSpacingTop(spacing);
if (data == fStyleData)
return data->SpacingTop() == spacing;
fStyleData = data;
return true;
}
float
ParagraphStyle::SpacingTop() const
{
return fStyleData->SpacingTop();
}
bool
ParagraphStyle::SetSpacingBottom(float spacing)
{
ParagraphStyleDataRef data = fStyleData->SetSpacingBottom(spacing);
if (data == fStyleData)
return data->SpacingBottom() == spacing;
fStyleData = data;
return true;
}
float
ParagraphStyle::SpacingBottom() const
{
return fStyleData->SpacingBottom();
}
bool
ParagraphStyle::SetBullet(const ::Bullet& bullet)
{
ParagraphStyleDataRef data = fStyleData->SetBullet(bullet);
if (data == fStyleData)
return data->Bullet() == bullet;
fStyleData = data;
return true;
}
const ::Bullet&
ParagraphStyle::Bullet() const
{
return fStyleData->Bullet();
}