MarkupTextManager.cpp
Go to the documentation of this file.00001 //*** MarkupTextManager.cpp *** 00002 00003 #include "MarkupTextManager.h" 00004 #include "Font.h" 00005 #include "StandardLibrary.h" 00006 00007 00008 //*** Constructor *** 00009 00010 MarkupTextManager::MarkupTextManager() 00011 { 00012 } 00013 00014 00015 //*** Destructor *** 00016 00017 MarkupTextManager::~MarkupTextManager() 00018 { 00019 for (int i=0; i<fontStyleDefinitions_.GetItemCount(); i++) 00020 { 00021 FontStyleDefinition& definition=fontStyleDefinitions_.Get(i); 00022 delete definition.font; 00023 } 00024 } 00025 00026 00027 00028 00029 //*** FindFontStyle *** 00030 00031 MarkupTextManager::FontStyleDefinition* MarkupTextManager::FindFontStyle(FontStyle style) 00032 { 00033 for (int i=0; i<fontStyleDefinitions_.GetItemCount(); i++) 00034 { 00035 FontStyleDefinition& definition=fontStyleDefinitions_.Get(i); 00036 if (definition.style==style) 00037 { 00038 return &definition; 00039 } 00040 } 00041 00042 return 0; 00043 } 00044 00045 00046 //*** FindFontStyle *** 00047 00048 MarkupTextManager::FontStyleDefinition* MarkupTextManager::FindFontStyle(StringId style) 00049 { 00050 for (int i=0; i<fontStyleDefinitions_.GetItemCount(); i++) 00051 { 00052 FontStyleDefinition& definition=fontStyleDefinitions_.Get(i); 00053 if (definition.style==FontStyle_StringId && definition.styleId==style) 00054 { 00055 return &definition; 00056 } 00057 } 00058 00059 return 0; 00060 } 00061 00062 00063 //*** RemoveFontStyle *** 00064 00065 void MarkupTextManager::RemoveFontStyle(FontStyle style) 00066 { 00067 for (int i=0; i<fontStyleDefinitions_.GetItemCount(); i++) 00068 { 00069 FontStyleDefinition& definition=fontStyleDefinitions_.Get(i); 00070 if (definition.style==style) 00071 { 00072 delete definition.font; 00073 fontStyleDefinitions_.Remove(i); 00074 return; 00075 } 00076 } 00077 } 00078 00079 00080 //*** AddFontStyle *** 00081 00082 void MarkupTextManager::AddFontStyle(FontStyle style, const Asset& font, unsigned short color, unsigned char opacity, unsigned short bgcolor) 00083 { 00084 FontStyleDefinition definition; 00085 definition.style=style; 00086 definition.styleId=0; 00087 definition.font=new Font(font); 00088 definition.color=color; 00089 definition.opacity=opacity; 00090 definition.bgcolor=bgcolor; 00091 00092 fontStyleDefinitions_.Add(definition); 00093 } 00094 00095 00096 //*** RemoveFontStyle *** 00097 00098 void MarkupTextManager::RemoveFontStyle(StringId style) 00099 { 00100 for (int i=0; i<fontStyleDefinitions_.GetItemCount(); i++) 00101 { 00102 FontStyleDefinition& definition=fontStyleDefinitions_.Get(i); 00103 if (definition.style==FontStyle_StringId && definition.styleId==style) 00104 { 00105 delete definition.font; 00106 fontStyleDefinitions_.Remove(i); 00107 return; 00108 } 00109 } 00110 } 00111 00112 00113 //*** AddFontStyle *** 00114 00115 void MarkupTextManager::AddFontStyle(StringId style, const Asset& font, unsigned short color, unsigned char opacity, unsigned short bgcolor) 00116 { 00117 FontStyleDefinition definition; 00118 definition.style=FontStyle_StringId; 00119 definition.styleId=style; 00120 definition.font=new Font(font); 00121 definition.color=color; 00122 definition.opacity=opacity; 00123 definition.bgcolor=bgcolor; 00124 00125 fontStyleDefinitions_.Add(definition); 00126 } 00127 00128 //*** SetFontStyle *** 00129 00130 void MarkupTextManager::SetFontStyle(FontStyle style, const Asset& font, unsigned short color) 00131 { 00132 RemoveFontStyle(style); 00133 AddFontStyle(style,font,color,0,0xffff); 00134 } 00135 00136 00137 //*** SetFontStyle *** 00138 00139 void MarkupTextManager::SetFontStyle(FontStyle style, const Asset& font, unsigned short color, unsigned short bgcolor, unsigned char opacity) 00140 { 00141 RemoveFontStyle(style); 00142 AddFontStyle(style,font,color,opacity,bgcolor); 00143 } 00144 00145 00146 //*** SetFontStyle *** 00147 00148 void MarkupTextManager::SetFontStyle(StringId style, const Asset& font, unsigned short color) 00149 { 00150 RemoveFontStyle(style); 00151 AddFontStyle(style,font,color,0,0xffff); 00152 } 00153 00154 00155 //*** SetFontStyle *** 00156 00157 void MarkupTextManager::SetFontStyle(StringId style, const Asset& font, unsigned short color, unsigned short bgcolor, unsigned char opacity) 00158 { 00159 RemoveFontStyle(style); 00160 AddFontStyle(style,font,color,opacity,bgcolor); 00161 } 00162 00163 00164 //*** GetFont *** 00165 00166 Font* MarkupTextManager::GetFont(FontStyle style) 00167 { 00168 FontStyleDefinition* definition=FindFontStyle(style); 00169 if (definition) 00170 { 00171 return definition->font; 00172 } 00173 00174 return 0; 00175 } 00176 00177 00178 //*** GetFontColor *** 00179 00180 unsigned short MarkupTextManager::GetFontColor(FontStyle style) 00181 { 00182 FontStyleDefinition* definition=FindFontStyle(style); 00183 if (definition) 00184 { 00185 return definition->color; 00186 } 00187 00188 return 0; 00189 } 00190 00191 00192 //*** GetFontOpacity *** 00193 00194 unsigned char MarkupTextManager::GetFontBgOpacity(FontStyle style) 00195 { 00196 FontStyleDefinition* definition=FindFontStyle(style); 00197 if (definition) 00198 { 00199 return definition->opacity; 00200 } 00201 00202 return 0; 00203 } 00204 00205 00206 //*** GetFontBgColor *** 00207 00208 unsigned short MarkupTextManager::GetFontBgColor(FontStyle style) 00209 { 00210 FontStyleDefinition* definition=FindFontStyle(style); 00211 if (definition) 00212 { 00213 return definition->bgcolor; 00214 } 00215 00216 return 0xffff; 00217 } 00218 00219 00220 //*** GetFont *** 00221 00222 Font* MarkupTextManager::GetFont(StringId style) 00223 { 00224 FontStyleDefinition* definition=FindFontStyle(style); 00225 if (definition) 00226 { 00227 return definition->font; 00228 } 00229 00230 return 0; 00231 } 00232 00233 00234 //*** GetFontColor *** 00235 00236 unsigned short MarkupTextManager::GetFontColor(StringId style) 00237 { 00238 FontStyleDefinition* definition=FindFontStyle(style); 00239 if (definition) 00240 { 00241 return definition->color; 00242 } 00243 00244 return 0; 00245 } 00246 00247 00248 //*** GetFontOpacity *** 00249 00250 unsigned char MarkupTextManager::GetFontBgOpacity(StringId style) 00251 { 00252 FontStyleDefinition* definition=FindFontStyle(style); 00253 if (definition) 00254 { 00255 return definition->opacity; 00256 } 00257 00258 return 0; 00259 } 00260 00261 00262 //*** GetFontBgColor *** 00263 00264 unsigned short MarkupTextManager::GetFontBgColor(StringId style) 00265 { 00266 FontStyleDefinition* definition=FindFontStyle(style); 00267 if (definition) 00268 { 00269 return definition->bgcolor; 00270 } 00271 00272 return 0xffff; 00273 } 00274 00275 00276 //*** FindRegisteredVariable *** 00277 00278 const MarkupTextManager::RegisteredVariable* MarkupTextManager::FindRegisteredVariable(StringId name) 00279 { 00280 for (int i=registeredVariables_.GetItemCount()-1; i>=0; i--) 00281 { 00282 const RegisteredVariable& variable=registeredVariables_.Get(i); 00283 if (variable.name==name) 00284 { 00285 return &variable; 00286 } 00287 } 00288 00289 return 0; 00290 } 00291 00292 00293 //*** RegisterVariable *** 00294 00295 void MarkupTextManager::RegisterVariable(StringId name, int* value) 00296 { 00297 RegisteredVariable variable; 00298 variable.name=name; 00299 variable.intValue=value; 00300 variable.stringIdValue=0; 00301 variable.intArray=0; 00302 variable.stringIdArray=0; 00303 registeredVariables_.Add(variable); 00304 } 00305 00306 00307 //*** RegisterVariable *** 00308 00309 void MarkupTextManager::RegisterVariable(StringId name, StringId* value) 00310 { 00311 RegisteredVariable variable; 00312 variable.name=name; 00313 variable.intValue=0; 00314 variable.stringIdValue=value; 00315 variable.intArray=0; 00316 variable.stringIdArray=0; 00317 registeredVariables_.Add(variable); 00318 } 00319 00320 00321 //*** RegisterVariable *** 00322 00323 void MarkupTextManager::RegisterVariable(StringId name, Array<int>* values) 00324 { 00325 RegisteredVariable variable; 00326 variable.name=name; 00327 variable.intValue=0; 00328 variable.stringIdValue=0; 00329 variable.intArray=values; 00330 variable.stringIdArray=0; 00331 registeredVariables_.Add(variable); 00332 } 00333 00334 00335 //*** RegisterVariable *** 00336 00337 void MarkupTextManager::RegisterVariable(StringId name, Array<StringId>* values) 00338 { 00339 RegisteredVariable variable; 00340 variable.name=name; 00341 variable.intValue=0; 00342 variable.stringIdValue=0; 00343 variable.intArray=0; 00344 variable.stringIdArray=values; 00345 registeredVariables_.Add(variable); 00346 } 00347 00348 00349 //*** UnregisterVariable *** 00350 00351 void MarkupTextManager::UnregisterVariable(StringId name) 00352 { 00353 for (int i=registeredVariables_.GetItemCount()-1; i>=0; i--) 00354 { 00355 const RegisteredVariable& variable=registeredVariables_.Get(i); 00356 if (variable.name==name) 00357 { 00358 registeredVariables_.Remove(i); 00359 return; 00360 } 00361 } 00362 } 00363 00364 00365 //*** GetVariableValue *** 00366 00367 void MarkupTextManager::GetVariableValue(StringId name, char* buffer, int bufferSize) 00368 { 00369 StrCpy(buffer,""); 00370 00371 const RegisteredVariable* variable=FindRegisteredVariable(name); 00372 if (!variable) 00373 { 00374 return; 00375 } 00376 00377 if (variable->intValue) 00378 { 00379 if (*variable->intValue!=0) 00380 { 00381 SNPrintF(buffer,bufferSize,"%d",*(variable->intValue)); 00382 } 00383 } 00384 else if (variable->stringIdValue) 00385 { 00386 if (variable->stringIdValue->GetString()!=0) 00387 { 00388 SNPrintF(buffer,bufferSize,"%s",variable->stringIdValue->GetString()); 00389 } 00390 } 00391 } 00392 00393 00394 //*** GetVariableValue *** 00395 00396 void MarkupTextManager::GetVariableValue(StringId name, int index, char* buffer, int bufferSize) 00397 { 00398 StrCpy(buffer,""); 00399 00400 const RegisteredVariable* variable=FindRegisteredVariable(name); 00401 if (!variable) 00402 { 00403 return; 00404 } 00405 00406 if (variable->intArray) 00407 { 00408 if (index>=0 && index<variable->intArray->GetItemCount() && variable->intArray->Get(index)!=0) 00409 { 00410 SNPrintF(buffer,bufferSize,"%d",variable->intArray->Get(index)); 00411 } 00412 } 00413 else if (variable->stringIdArray) 00414 { 00415 if (index>=0 && index<variable->stringIdArray->GetItemCount() && variable->stringIdArray->Get(index)!=0) 00416 { 00417 SNPrintF(buffer,bufferSize,"%s",variable->stringIdArray->Get(index).GetString()); 00418 } 00419 } 00420 }
Reproduction/republishing of any material on this site without permission is strictly prohibited.
