OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | List of all members
ossimFontFactoryRegistry Class Reference

#include <ossimFontFactoryRegistry.h>

Public Member Functions

bool registerFactory (ossimFontFactoryBase *factory)
 
void unregisterFactory (ossimFontFactoryBase *factory)
 
bool findFactory (ossimFontFactoryBase *factory) const
 
ossimFontcreateFont (const ossimFontInformation &information) const
 
ossimFontcreateFont (const ossimFilename &file) const
 
void getFontInformation (std::vector< ossimFontInformation > &informationList) const
 
void getFontInformationFamilyName (std::vector< ossimFontInformation > &informationList, const ossimString &familyName) const
 
void getFontInformationContainingFamilyName (std::vector< ossimFontInformation > &informationList, const ossimString &familyName) const
 
ossimFontgetDefaultFont () const
 

Static Public Member Functions

static ossimFontFactoryRegistryinstance ()
 

Protected Member Functions

 ossimFontFactoryRegistry ()
 

Protected Attributes

ossimRefPtr< ossimFonttheDefaultFont
 
std::vector< ossimFontFactoryBase * > theFactoryList
 

Private Member Functions

 ossimFontFactoryRegistry (const ossimFontFactoryRegistry &rhs)
 
void operator= (const ossimFontFactoryRegistry &rhs)
 

Detailed Description

Definition at line 20 of file ossimFontFactoryRegistry.h.

Constructor & Destructor Documentation

◆ ossimFontFactoryRegistry() [1/2]

ossimFontFactoryRegistry::ossimFontFactoryRegistry ( )
protected

Definition at line 22 of file ossimFontFactoryRegistry.cpp.

References ossimFreeTypeFontFactory::instance(), and registerFactory().

23 :theDefaultFont(NULL)
24 {
25  // theInstance = this;
26 #if OSSIM_HAS_FREETYPE
28 #endif
29 }
static ossimFreeTypeFontFactory * instance()
bool registerFactory(ossimFontFactoryBase *factory)
ossimRefPtr< ossimFont > theDefaultFont

◆ ossimFontFactoryRegistry() [2/2]

ossimFontFactoryRegistry::ossimFontFactoryRegistry ( const ossimFontFactoryRegistry rhs)
private

Definition at line 183 of file ossimFontFactoryRegistry.cpp.

184 {
185 }

Member Function Documentation

◆ createFont() [1/2]

ossimFont * ossimFontFactoryRegistry::createFont ( const ossimFontInformation information) const

◆ createFont() [2/2]

ossimFont * ossimFontFactoryRegistry::createFont ( const ossimFilename file) const

Definition at line 83 of file ossimFontFactoryRegistry.cpp.

References theFactoryList.

84 {
85  ossimFont* result = (ossimFont*)NULL;
86  int i = 0;
87 
88  for(i= 0; ( (i < (int)theFactoryList.size()) &&(!result)); ++i)
89  {
90  result = theFactoryList[i]->createFont(file);
91  }
92 
93  return result;
94 }
std::vector< ossimFontFactoryBase * > theFactoryList

◆ findFactory()

bool ossimFontFactoryRegistry::findFactory ( ossimFontFactoryBase factory) const

Definition at line 62 of file ossimFontFactoryRegistry.cpp.

References theFactoryList.

Referenced by registerFactory().

63 {
64  return (std::find(theFactoryList.begin(),
65  theFactoryList.end(),
66  factory)!=theFactoryList.end());
67 }
std::vector< ossimFontFactoryBase * > theFactoryList

◆ getDefaultFont()

ossimFont * ossimFontFactoryRegistry::getDefaultFont ( ) const

This font should not be deleted. It returns the default font. If you want to make a copy then just call the dup method on font.

Definition at line 147 of file ossimFontFactoryRegistry.cpp.

References createFont(), ossimRefPtr< T >::get(), getFontInformation(), getFontInformationContainingFamilyName(), ossimFont::setPixelSize(), and theDefaultFont.

Referenced by ossimVpfAnnotationFeatureInfo::ossimVpfAnnotationFeatureInfo(), ossimInfo::printFonts(), and ossimAnnotationFontObject::setFont().

148 {
149  if(!theDefaultFont)
150  {
151  std::vector<ossimFontInformation> infoList;
153  "Times");
154  if(infoList.size() < 1)
155  {
157  "Roman");
158  }
159  if(infoList.size() < 1)
160  {
162  "Sanz");
163  }
164  if(infoList.size() < 1)
165  {
166  getFontInformation(infoList);
167  }
168  if(infoList.size())
169  {
170  theDefaultFont = createFont(infoList[0]);
171  theDefaultFont->setPixelSize(12, 12);
172  }
173  else
174  {
175  theDefaultFont = new ossimGdBitmapFont("gd sans",
176  "bold",
177  ossimGdSansBold);
178  }
179  }
180  return theDefaultFont.get();
181 }
void getFontInformationContainingFamilyName(std::vector< ossimFontInformation > &informationList, const ossimString &familyName) const
void getFontInformation(std::vector< ossimFontInformation > &informationList) const
ossimFont * createFont(const ossimFontInformation &information) const
virtual void setPixelSize(int horizontalPixelSize, int verticalPixelSize)
Definition: ossimFont.h:205
ossimRefPtr< ossimFont > theDefaultFont

◆ getFontInformation()

void ossimFontFactoryRegistry::getFontInformation ( std::vector< ossimFontInformation > &  informationList) const

Returns all font information.

Definition at line 96 of file ossimFontFactoryRegistry.cpp.

References theFactoryList.

Referenced by getDefaultFont(), getFontInformationContainingFamilyName(), getFontInformationFamilyName(), ossimMapCompositionSource::ossimMapCompositionSource(), and ossimInfo::printFonts().

97 {
98  int i = 0;
99  for(i= 0; i < (int)theFactoryList.size(); ++i)
100  {
101  theFactoryList[i]->getFontInformation(informationList);
102  }
103 }
std::vector< ossimFontFactoryBase * > theFactoryList

◆ getFontInformationContainingFamilyName()

void ossimFontFactoryRegistry::getFontInformationContainingFamilyName ( std::vector< ossimFontInformation > &  informationList,
const ossimString familyName 
) const

Matches the sub-string. Does a case insensitive match.

Definition at line 126 of file ossimFontFactoryRegistry.cpp.

References ossimString::contains(), getFontInformation(), ossimString::push_back(), ossimString::trim(), and ossimString::upcase().

Referenced by getDefaultFont().

128 {
129  vector<ossimFontInformation> info;
130  getFontInformation(info);
131 
132  ossimString right = familyName;
133  right = right.upcase().trim();
134  int i = 0;
135  for(i = 0; i < (int)info.size(); ++i)
136  {
137  ossimString left = info[i].theFamilyName;
138 
139  left = left.upcase().trim();
140  if(left.contains(right))
141  {
142  informationList.push_back(info[i]);
143  }
144  }
145 }
static ossimString upcase(const ossimString &aString)
Definition: ossimString.cpp:34
bool contains(char aChar) const
Definition: ossimString.h:58
void push_back(char c)
Equivalent to insert(end(), c).
Definition: ossimString.h:905
void getFontInformation(std::vector< ossimFontInformation > &informationList) const
ossimString trim(const ossimString &valueToTrim=ossimString(" \\)) const
this will strip lead and trailing character passed in.

◆ getFontInformationFamilyName()

void ossimFontFactoryRegistry::getFontInformationFamilyName ( std::vector< ossimFontInformation > &  informationList,
const ossimString familyName 
) const

Matches the entire string. Does a case insensitive match.

Definition at line 105 of file ossimFontFactoryRegistry.cpp.

References getFontInformation(), ossimString::push_back(), ossimString::trim(), and ossimString::upcase().

107 {
108  vector<ossimFontInformation> info;
109  getFontInformation(info);
110 
111  ossimString right = familyName;
112  right = right.upcase().trim();
113  int i = 0;
114  for(i = 0; i < (int)info.size(); ++i)
115  {
116  ossimString left = info[i].theFamilyName;
117  left = left.upcase().trim();
118 
119  if(left == right)
120  {
121  informationList.push_back(info[i]);
122  }
123  }
124 }
static ossimString upcase(const ossimString &aString)
Definition: ossimString.cpp:34
void push_back(char c)
Equivalent to insert(end(), c).
Definition: ossimString.h:905
void getFontInformation(std::vector< ossimFontInformation > &informationList) const
ossimString trim(const ossimString &valueToTrim=ossimString(" \\)) const
this will strip lead and trailing character passed in.

◆ instance()

ossimFontFactoryRegistry * ossimFontFactoryRegistry::instance ( )
static

◆ operator=()

void ossimFontFactoryRegistry::operator= ( const ossimFontFactoryRegistry rhs)
private

Definition at line 187 of file ossimFontFactoryRegistry.cpp.

188 {
189 }

◆ registerFactory()

bool ossimFontFactoryRegistry::registerFactory ( ossimFontFactoryBase factory)

Definition at line 39 of file ossimFontFactoryRegistry.cpp.

References findFactory(), and theFactoryList.

Referenced by ossimFontFactoryRegistry().

40 {
41  bool result = false;
42  if(factory&&!findFactory(factory))
43  {
44  theFactoryList.push_back(factory);
45  result = true;
46  }
47 
48  return result;
49 }
std::vector< ossimFontFactoryBase * > theFactoryList
bool findFactory(ossimFontFactoryBase *factory) const

◆ unregisterFactory()

void ossimFontFactoryRegistry::unregisterFactory ( ossimFontFactoryBase factory)

Definition at line 51 of file ossimFontFactoryRegistry.cpp.

References theFactoryList.

52 {
53  std::vector<ossimFontFactoryBase*>::iterator iter = std::find(theFactoryList.begin(),
54  theFactoryList.end(),
55  factory);
56  if(iter != theFactoryList.end())
57  {
58  theFactoryList.erase(iter);
59  }
60 }
std::vector< ossimFontFactoryBase * > theFactoryList

Member Data Documentation

◆ theDefaultFont

ossimRefPtr<ossimFont> ossimFontFactoryRegistry::theDefaultFont
mutableprotected

Definition at line 57 of file ossimFontFactoryRegistry.h.

Referenced by getDefaultFont().

◆ theFactoryList

std::vector<ossimFontFactoryBase*> ossimFontFactoryRegistry::theFactoryList
protected

The documentation for this class was generated from the following files: