OpenCMISS-Zinc C++ API Documentation
font.hpp
Go to the documentation of this file.
1 
4 /* OpenCMISS-Zinc Library
5 *
6 * This Source Code Form is subject to the terms of the Mozilla Public
7 * License, v. 2.0. If a copy of the MPL was not distributed with this
8 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
9 #ifndef CMZN_FONT_HPP__
10 #define CMZN_FONT_HPP__
11 
12 #include "opencmiss/zinc/font.h"
13 #include "opencmiss/zinc/context.hpp"
14 
15 namespace OpenCMISS
16 {
17 namespace Zinc
18 {
19 
26 class Font
27 {
28 protected:
29  cmzn_font_id id;
30 
31 public:
32 
33  Font() : id(0)
34  { }
35 
36  // takes ownership of C handle, responsibility for destroying it
37  explicit Font(cmzn_font_id font_id) : id(font_id)
38  { }
39 
40  Font(const Font& font) : id(cmzn_font_access(font.id))
41  { }
42 
43  Font& operator=(const Font& font)
44  {
45  cmzn_font_id temp_id = cmzn_font_access(font.id);
46  cmzn_font_destroy(&id);
47  id = temp_id;
48  return *this;
49  }
50 
51  ~Font()
52  {
53  cmzn_font_destroy(&id);
54  }
55 
60  {
61  RENDER_TYPE_INVALID = CMZN_FONT_RENDER_TYPE_INVALID,
63  RENDER_TYPE_BITMAP = CMZN_FONT_RENDER_TYPE_BITMAP,
66  RENDER_TYPE_PIXMAP = CMZN_FONT_RENDER_TYPE_PIXMAP,
68  RENDER_TYPE_POLYGON = CMZN_FONT_RENDER_TYPE_POLYGON,
70  RENDER_TYPE_OUTLINE = CMZN_FONT_RENDER_TYPE_OUTLINE,
73  RENDER_TYPE_EXTRUDE = CMZN_FONT_RENDER_TYPE_EXTRUDE
75  };
76 
81  {
82  TYPEFACE_TYPE_INVALID = CMZN_FONT_TYPEFACE_TYPE_INVALID,
84  TYPEFACE_TYPE_OPENSANS = CMZN_FONT_TYPEFACE_TYPE_OPENSANS
86  };
87 
93  bool isValid() const
94  {
95  return (0 != id);
96  }
97 
103  cmzn_font_id getId() const
104  {
105  return id;
106  }
107 
115  char *getName()
116  {
117  return cmzn_font_get_name(id);
118  }
119 
127  int setName(const char *name)
128  {
129  return cmzn_font_set_name(id, name);
130  }
131 
137  bool isBold()
138  {
139  return cmzn_font_is_bold(id);
140  }
141 
148  int setBold(bool bold)
149  {
150  return cmzn_font_set_bold(id, bold);
151  }
152 
158  double getDepth()
159  {
160  return cmzn_font_get_depth(id);
161  }
162 
170  int setDepth(double depth)
171  {
172  return cmzn_font_set_depth(id, depth);
173  }
174 
180  bool isItalic()
181  {
182  return cmzn_font_is_italic(id);
183  }
184 
191  int setItalic(bool italic)
192  {
193  return cmzn_font_set_italic(id, italic);
194  }
195 
202  {
203  return cmzn_font_get_point_size(id);
204  }
205 
212  int setPointSize(int size)
213  {
214  return cmzn_font_set_point_size(id, size);
215  }
216 
223  {
224  return static_cast<RenderType>(cmzn_font_get_render_type(id));
225  }
226 
234  int setRenderType(RenderType renderType)
235  {
236  return cmzn_font_set_render_type(id,
237  static_cast<cmzn_font_render_type>(renderType));
238  }
239 
246  {
247  return static_cast<TypefaceType>(cmzn_font_get_typeface_type(id));
248  }
249 
257  int setTypefaceType(TypefaceType typefaceType)
258  {
259  return cmzn_font_set_typeface_type(id, static_cast<cmzn_font_typeface_type>(typefaceType));
260  }
261 };
262 
263 inline bool operator==(const Font& a, const Font& b)
264 {
265  return a.getId() == b.getId();
266 }
267 
274 {
275 protected:
276  cmzn_fontmodule_id id;
277 
278 public:
279 
280  Fontmodule() : id(0)
281  { }
282 
283  // takes ownership of C handle, responsibility for destroying it
284  explicit Fontmodule(cmzn_fontmodule_id in_fontmodule_id) :
285  id(in_fontmodule_id)
286  { }
287 
288  Fontmodule(const Fontmodule& fontModule) :
289  id(cmzn_fontmodule_access(fontModule.id))
290  { }
291 
292  Fontmodule& operator=(const Fontmodule& fontModule)
293  {
294  cmzn_fontmodule_id temp_id = cmzn_fontmodule_access(
295  fontModule.id);
296  if (0 != id)
297  {
298  cmzn_fontmodule_destroy(&id);
299  }
300  id = temp_id;
301  return *this;
302  }
303 
304  ~Fontmodule()
305  {
306  if (0 != id)
307  {
308  cmzn_fontmodule_destroy(&id);
309  }
310  }
311 
317  bool isValid() const
318  {
319  return (0 != id);
320  }
321 
327  cmzn_fontmodule_id getId() const
328  {
329  return id;
330  }
331 
339  {
340  return Font(cmzn_fontmodule_create_font(id));
341  }
342 
349  Font findFontByName(const char *name)
350  {
351  return Font(cmzn_fontmodule_find_font_by_name(id, name));
352  }
353 
364  {
365  return cmzn_fontmodule_begin_change(id);
366  }
367 
377  int endChange()
378  {
379  return cmzn_fontmodule_end_change(id);
380  }
381 
388  {
389  return Font(cmzn_fontmodule_get_default_font(id));
390  }
391 
398  int setDefaultFont(const Font& font)
399  {
400  return cmzn_fontmodule_set_default_font(id, font.getId());
401  }
402 };
403 
405 {
406  return Fontmodule(cmzn_context_get_fontmodule(id));
407 }
408 
409 } // namespace Zinc
410 }
411 
412 #endif
cmzn_fontmodule_id getId() const
Definition: font.hpp:327
Fontmodule getFontmodule()
Definition: font.hpp:404
bool isItalic()
Definition: font.hpp:180
Module managing all fonts.
Definition: font.hpp:273
enum RenderType getRenderType()
Definition: font.hpp:222
RenderType
Definition: font.hpp:59
TypefaceType getTypefaceType()
Definition: font.hpp:245
TypefaceType
Definition: font.hpp:80
Font getDefaultFont()
Definition: font.hpp:387
int setDefaultFont(const Font &font)
Definition: font.hpp:398
int beginChange()
Definition: font.hpp:363
char * getName()
Definition: font.hpp:115
int setName(const char *name)
Definition: font.hpp:127
int setPointSize(int size)
Definition: font.hpp:212
double getDepth()
Definition: font.hpp:158
bool isValid() const
Definition: font.hpp:317
int setDepth(double depth)
Definition: font.hpp:170
cmzn_font_id getId() const
Definition: font.hpp:103
bool isValid() const
Definition: font.hpp:93
int setRenderType(RenderType renderType)
Definition: font.hpp:234
int setBold(bool bold)
Definition: font.hpp:148
int getPointSize()
Definition: font.hpp:201
int endChange()
Definition: font.hpp:377
Font createFont()
Definition: font.hpp:338
The OpenCMISS namespace.
Definition: context.hpp:20
int setTypefaceType(TypefaceType typefaceType)
Definition: font.hpp:257
bool isBold()
Definition: font.hpp:137
Font object controlling attributes of rendering text.
Definition: font.hpp:26
Font findFontByName(const char *name)
Definition: font.hpp:349
int setItalic(bool italic)
Definition: font.hpp:191