1/* 2 * Copyright 2013, Stephan A��mus <superstippi@gmx.de>. 3 * All rights reserved. Distributed under the terms of the MIT License. 4 */ 5 6#include "ParagraphStyleData.h" 7 8#include <new> 9 10 11ParagraphStyleData::ParagraphStyleData() 12 : 13 fAlignment(ALIGN_LEFT), 14 fJustify(false), 15 16 fFirstLineInset(0.0f), 17 fLineInset(0.0f), 18 fLineSpacing(0.0f), 19 20 fSpacingTop(0.0f), 21 fSpacingBottom(0.0f), 22 23 fBullet() 24{ 25} 26 27 28ParagraphStyleData::ParagraphStyleData(const ParagraphStyleData& other) 29 : 30 fAlignment(other.fAlignment), 31 fJustify(other.fJustify), 32 33 fFirstLineInset(other.fFirstLineInset), 34 fLineInset(other.fLineInset), 35 fLineSpacing(other.fLineSpacing), 36 37 fSpacingTop(other.fSpacingTop), 38 fSpacingBottom(other.fSpacingBottom), 39 40 fBullet(other.fBullet) 41{ 42} 43 44 45bool 46ParagraphStyleData::operator==(const ParagraphStyleData& other) const 47{ 48 if (this == &other) 49 return true; 50 51 return fAlignment == other.fAlignment 52 && fJustify == other.fJustify 53 && fFirstLineInset == other.fFirstLineInset 54 && fLineInset == other.fLineInset 55 && fLineSpacing == other.fLineSpacing 56 && fSpacingTop == other.fSpacingTop 57 && fSpacingBottom == other.fSpacingBottom 58 && fBullet == other.fBullet; 59} 60 61 62bool 63ParagraphStyleData::operator!=(const ParagraphStyleData& other) const 64{ 65 return !(*this == other); 66} 67 68 69ParagraphStyleDataRef 70ParagraphStyleData::SetAlignment(::Alignment alignment) 71{ 72 if (fAlignment == alignment) 73 return ParagraphStyleDataRef(this); 74 75 ParagraphStyleData* ret = new(std::nothrow) ParagraphStyleData(*this); 76 if (ret == NULL) 77 return ParagraphStyleDataRef(this); 78 79 ret->fAlignment = alignment; 80 return ParagraphStyleDataRef(ret, true); 81} 82 83 84ParagraphStyleDataRef 85ParagraphStyleData::SetJustify(bool justify) 86{ 87 if (fJustify == justify) 88 return ParagraphStyleDataRef(this); 89 90 ParagraphStyleData* ret = new(std::nothrow) ParagraphStyleData(*this); 91 if (ret == NULL) 92 return ParagraphStyleDataRef(this); 93 94 ret->fJustify = justify; 95 return ParagraphStyleDataRef(ret, true); 96} 97 98 99ParagraphStyleDataRef 100ParagraphStyleData::SetFirstLineInset(float inset) 101{ 102 if (fFirstLineInset == inset) 103 return ParagraphStyleDataRef(this); 104 105 ParagraphStyleData* ret = new(std::nothrow) ParagraphStyleData(*this); 106 if (ret == NULL) 107 return ParagraphStyleDataRef(this); 108 109 ret->fFirstLineInset = inset; 110 return ParagraphStyleDataRef(ret, true); 111} 112 113 114ParagraphStyleDataRef 115ParagraphStyleData::SetLineInset(float inset) 116{ 117 if (fLineInset == inset) 118 return ParagraphStyleDataRef(this); 119 120 ParagraphStyleData* ret = new(std::nothrow) ParagraphStyleData(*this); 121 if (ret == NULL) 122 return ParagraphStyleDataRef(this); 123 124 ret->fLineInset = inset; 125 return ParagraphStyleDataRef(ret, true); 126} 127 128 129ParagraphStyleDataRef 130ParagraphStyleData::SetLineSpacing(float spacing) 131{ 132 if (fLineSpacing == spacing) 133 return ParagraphStyleDataRef(this); 134 135 ParagraphStyleData* ret = new(std::nothrow) ParagraphStyleData(*this); 136 if (ret == NULL) 137 return ParagraphStyleDataRef(this); 138 139 ret->fLineSpacing = spacing; 140 return ParagraphStyleDataRef(ret, true); 141} 142 143 144ParagraphStyleDataRef 145ParagraphStyleData::SetSpacingTop(float spacing) 146{ 147 if (fSpacingTop == spacing) 148 return ParagraphStyleDataRef(this); 149 150 ParagraphStyleData* ret = new(std::nothrow) ParagraphStyleData(*this); 151 if (ret == NULL) 152 return ParagraphStyleDataRef(this); 153 154 ret->fSpacingTop = spacing; 155 return ParagraphStyleDataRef(ret, true); 156} 157 158 159ParagraphStyleDataRef 160ParagraphStyleData::SetSpacingBottom(float spacing) 161{ 162 if (fSpacingBottom == spacing) 163 return ParagraphStyleDataRef(this); 164 165 ParagraphStyleData* ret = new(std::nothrow) ParagraphStyleData(*this); 166 if (ret == NULL) 167 return ParagraphStyleDataRef(this); 168 169 ret->fSpacingBottom = spacing; 170 return ParagraphStyleDataRef(ret, true); 171} 172 173 174ParagraphStyleDataRef 175ParagraphStyleData::SetBullet(const ::Bullet& bullet) 176{ 177 if (fBullet == bullet) 178 return ParagraphStyleDataRef(this); 179 180 ParagraphStyleData* ret = new(std::nothrow) ParagraphStyleData(*this); 181 if (ret == NULL) 182 return ParagraphStyleDataRef(this); 183 184 ret->fBullet = bullet; 185 return ParagraphStyleDataRef(ret, true); 186} 187 188 189// #pragma mark - private 190 191 192ParagraphStyleData& 193ParagraphStyleData::operator=(const ParagraphStyleData& other) 194{ 195 return *this; 196} 197