]> granicus.if.org Git - imagemagick/blob - Magick++/lib/Montage.cpp
Build fix.
[imagemagick] / Magick++ / lib / Montage.cpp
1 // This may look like C code, but it is really -*- C++ -*-
2 //
3 // Copyright Bob Friesenhahn, 1999, 2000, 2001, 2002, 2003
4 //
5 // Implementation of Montage
6 //
7
8 #define MAGICKCORE_IMPLEMENTATION  1
9 #define MAGICK_PLUSPLUS_IMPLEMENTATION 1
10
11 #include "Magick++/Include.h"
12 #include <string>
13 #include <string.h>
14
15 #include "Magick++/Montage.h"
16 #include "Magick++/Functions.h"
17
18 Magick::Montage::Montage(void)
19   : _backgroundColor("#ffffff"),
20     _compose(OverCompositeOp),
21     _fileName(),
22     _fill("#000000ff"),
23     _font(),
24     _geometry("120x120+4+3>"),
25     _gravity(CenterGravity),
26     _label(),
27     _pointSize(12),
28     _shadow(false),
29     _stroke(),
30     _texture(),
31     _tile("6x4"),
32     _title(),
33     _transparentColor()
34 {
35 }
36
37 Magick::Montage::~Montage(void)
38 {
39 }
40
41 void Magick::Montage::backgroundColor(const Magick::Color &backgroundColor_)
42 {
43   _backgroundColor=backgroundColor_;
44 }
45
46 Magick::Color Magick::Montage::backgroundColor(void) const
47 {
48   return(_backgroundColor);
49 }
50
51 void Magick::Montage::compose(Magick::CompositeOperator compose_)
52 {
53   _compose=compose_;
54 }
55
56 Magick::CompositeOperator Magick::Montage::compose(void) const
57 {
58   return(_compose);
59 }
60
61 void Magick::Montage::fileName(const std::string &fileName_)
62 {
63   _fileName=fileName_;
64 }
65
66 std::string Magick::Montage::fileName(void) const
67 {
68   return(_fileName);
69 }
70
71 void Magick::Montage::fillColor(const Color &fill_)
72 {
73   _fill=fill_;
74 }
75
76 Magick::Color Magick::Montage::fillColor(void) const
77 {
78   return(_fill);
79 }
80
81 void Magick::Montage::font(const std::string &font_)
82 {
83   _font=font_;
84 }
85
86 std::string Magick::Montage::font(void) const
87 {
88   return(_font);
89 }
90
91 void Magick::Montage::geometry(const Magick::Geometry &geometry_)
92 {
93   _geometry=geometry_;
94 }
95
96 Magick::Geometry Magick::Montage::geometry(void) const
97 {
98   return(_geometry);
99 }
100
101 void Magick::Montage::gravity(Magick::GravityType gravity_)
102 {
103   _gravity=gravity_;
104 }
105
106 Magick::GravityType Magick::Montage::gravity(void) const
107 {
108   return(_gravity);
109 }
110
111 void Magick::Montage::label(const std::string &label_)
112 {
113   _label=label_;
114 }
115
116 std::string Magick::Montage::label(void) const
117 {
118   return(_label);
119 }
120
121 void Magick::Montage::pointSize(size_t pointSize_)
122 {
123   _pointSize=pointSize_;
124 }
125
126 size_t Magick::Montage::pointSize(void) const
127 {
128   return(_pointSize);
129 }
130
131 void Magick::Montage::shadow(bool shadow_)
132 {
133   _shadow=shadow_;
134 }
135
136 bool Magick::Montage::shadow(void) const
137 {
138   return(_shadow);
139 }
140
141 void Magick::Montage::strokeColor(const Color &stroke_)
142 {
143   _stroke=stroke_;
144 }
145
146 Magick::Color Magick::Montage::strokeColor(void) const
147 {
148   return(_stroke);
149 }
150
151 void Magick::Montage::texture(const std::string &texture_)
152 {
153   _texture=texture_;
154 }
155
156 std::string Magick::Montage::texture(void) const
157 {
158   return(_texture);
159 }
160
161 void Magick::Montage::tile(const Geometry &tile_)
162 {
163   _tile=tile_;
164 }
165
166 Magick::Geometry Magick::Montage::tile(void) const
167 {
168   return(_tile);
169 }
170
171 void Magick::Montage::title(const std::string &title_)
172 {
173   _title=title_;
174 }
175
176 std::string Magick::Montage::title(void) const
177 {
178   return(_title);
179 }
180
181 void Magick::Montage::transparentColor(const Magick::Color &transparentColor_)
182 {
183   _transparentColor=transparentColor_;
184 }
185
186 Magick::Color Magick::Montage::transparentColor(void) const
187 {
188   return(_transparentColor);
189 }
190
191 void Magick::Montage::updateMontageInfo(MontageInfo &montageInfo_ ) const
192 {
193   (void) MagickCore::ResetMagickMemory(&montageInfo_,0,sizeof(montageInfo_));
194
195   // background_color
196   montageInfo_.background_color=_backgroundColor;
197   // border_color
198   montageInfo_.border_color=Color();
199   // border_width
200   montageInfo_.border_width=0;
201   // filename
202   if (_font.length() != 0)
203     {
204       _fileName.copy(montageInfo_.filename,MaxTextExtent-1);
205       montageInfo_.filename[ _fileName.length() ] = 0; // null terminate
206     }
207   // fill
208   montageInfo_.fill=_fill;
209   // font
210   if (_font.length() != 0)
211     Magick::CloneString(&montageInfo_.font,_font);
212   // geometry
213   if (_geometry.isValid())
214     Magick::CloneString(&montageInfo_.geometry,_geometry);
215   // gravity
216   montageInfo_.gravity=_gravity;
217   // matte_color
218   montageInfo_.matte_color=Color();
219   // pointsize
220   montageInfo_.pointsize=_pointSize;
221   // shadow
222   montageInfo_.shadow=static_cast<MagickBooleanType>
223     (_shadow ? MagickTrue : MagickFalse);
224   // signature (validity stamp)
225   montageInfo_.signature=MagickSignature;
226   // stroke
227   montageInfo_.stroke=_stroke;
228   // texture
229   if (_texture.length() != 0)
230     Magick::CloneString(&montageInfo_.texture,_texture);
231   // tile
232   if (_tile.isValid())
233     Magick::CloneString(&montageInfo_.tile,_tile);
234   // title
235   if (_title.length() != 0)
236     Magick::CloneString(&montageInfo_.title,_title);
237 }
238
239 //
240 // Implementation of MontageFramed
241 //
242
243 Magick::MontageFramed::MontageFramed(void)
244   : _borderColor("#dfdfdf"),
245     _borderWidth(0),
246     _frame(),
247     _matteColor("#bdbdbd")
248 {
249 }
250
251 Magick::MontageFramed::~MontageFramed(void)
252 {
253 }
254
255 void Magick::MontageFramed::borderColor(const Magick::Color &borderColor_)
256 {
257   _borderColor=borderColor_;
258 }
259
260 Magick::Color Magick::MontageFramed::borderColor(void) const
261 {
262   return(_borderColor);
263 }
264
265 void Magick::MontageFramed::borderWidth(size_t borderWidth_)
266 {
267   _borderWidth=borderWidth_;
268 }
269
270 size_t Magick::MontageFramed::borderWidth(void) const
271 {
272   return(_borderWidth);
273 }
274
275 void Magick::MontageFramed::frameGeometry(const Magick::Geometry &frame_)
276 {
277   _frame=frame_;
278 }
279
280 Magick::Geometry Magick::MontageFramed::frameGeometry(void) const
281 {
282   return(_frame);
283 }
284
285 void Magick::MontageFramed::matteColor(const Magick::Color &matteColor_)
286 {
287   _matteColor=matteColor_;
288 }
289
290 Magick::Color Magick::MontageFramed::matteColor(void) const
291 {
292   return(_matteColor);
293 }
294
295 void Magick::MontageFramed::updateMontageInfo(MontageInfo &montageInfo_) const
296 {
297   // Do base updates
298   Montage::updateMontageInfo(montageInfo_);
299
300   // border_color
301   montageInfo_.border_color=_borderColor;
302   // border_width
303   montageInfo_.border_width=_borderWidth;
304   // frame
305   if (_frame.isValid())
306     Magick::CloneString(&montageInfo_.frame,_frame);
307   // matte_color
308   montageInfo_.matte_color=_matteColor;
309 }