00001 /************************************************************************ 00002 filename: CEGUIFalXMLEnumHelper.cpp 00003 created: Mon Jul 18 2005 00004 author: Paul D Turner <paul@cegui.org.uk> 00005 *************************************************************************/ 00006 /************************************************************************* 00007 Crazy Eddie's GUI System (http://www.cegui.org.uk) 00008 Copyright (C)2004 - 2005 Paul D Turner (paul@cegui.org.uk) 00009 00010 This library is free software; you can redistribute it and/or 00011 modify it under the terms of the GNU Lesser General Public 00012 License as published by the Free Software Foundation; either 00013 version 2.1 of the License, or (at your option) any later version. 00014 00015 This library is distributed in the hope that it will be useful, 00016 but WITHOUT ANY WARRANTY; without even the implied warranty of 00017 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00018 Lesser General Public License for more details. 00019 00020 You should have received a copy of the GNU Lesser General Public 00021 License along with this library; if not, write to the Free Software 00022 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00023 *************************************************************************/ 00024 #include "falagard/CEGUIFalXMLEnumHelper.h" 00025 00026 // Start of CEGUI namespace section 00027 namespace CEGUI 00028 { 00029 VerticalFormatting FalagardXMLHelper::stringToVertFormat(const String& str) 00030 { 00031 if (str == "CentreAligned") 00032 { 00033 return VF_CENTRE_ALIGNED; 00034 } 00035 else if (str == "BottomAligned") 00036 { 00037 return VF_BOTTOM_ALIGNED; 00038 } 00039 else if (str == "Tiled") 00040 { 00041 return VF_TILED; 00042 } 00043 else if (str == "Stretched") 00044 { 00045 return VF_STRETCHED; 00046 } 00047 else 00048 { 00049 return VF_TOP_ALIGNED; 00050 } 00051 } 00052 00053 HorizontalFormatting FalagardXMLHelper::stringToHorzFormat(const String& str) 00054 { 00055 if (str == "CentreAligned") 00056 { 00057 return HF_CENTRE_ALIGNED; 00058 } 00059 else if (str == "RightAligned") 00060 { 00061 return HF_RIGHT_ALIGNED; 00062 } 00063 else if (str == "Tiled") 00064 { 00065 return HF_TILED; 00066 } 00067 else if (str == "Stretched") 00068 { 00069 return HF_STRETCHED; 00070 } 00071 else 00072 { 00073 return HF_LEFT_ALIGNED; 00074 } 00075 } 00076 00077 VerticalAlignment FalagardXMLHelper::stringToVertAlignment(const String& str) 00078 { 00079 if (str == "CentreAligned") 00080 { 00081 return VA_CENTRE; 00082 } 00083 else if (str == "BottomAligned") 00084 { 00085 return VA_BOTTOM; 00086 } 00087 else 00088 { 00089 return VA_TOP; 00090 } 00091 } 00092 00093 HorizontalAlignment FalagardXMLHelper::stringToHorzAlignment(const String& str) 00094 { 00095 if (str == "CentreAligned") 00096 { 00097 return HA_CENTRE; 00098 } 00099 else if (str == "RightAligned") 00100 { 00101 return HA_RIGHT; 00102 } 00103 else 00104 { 00105 return HA_LEFT; 00106 } 00107 } 00108 00109 DimensionType FalagardXMLHelper::stringToDimensionType(const String& str) 00110 { 00111 if (str == "LeftEdge") 00112 { 00113 return DT_LEFT_EDGE; 00114 } 00115 else if (str == "XPosition") 00116 { 00117 return DT_X_POSITION; 00118 } 00119 else if (str == "TopEdge") 00120 { 00121 return DT_TOP_EDGE; 00122 } 00123 else if (str == "YPosition") 00124 { 00125 return DT_Y_POSITION; 00126 } 00127 else if (str == "RightEdge") 00128 { 00129 return DT_RIGHT_EDGE; 00130 } 00131 else if (str == "BottomEdge") 00132 { 00133 return DT_BOTTOM_EDGE; 00134 } 00135 else if (str == "Width") 00136 { 00137 return DT_WIDTH; 00138 } 00139 else if (str == "Height") 00140 { 00141 return DT_HEIGHT; 00142 } 00143 else if (str == "XOffset") 00144 { 00145 return DT_X_OFFSET; 00146 } 00147 else if (str == "YOffset") 00148 { 00149 return DT_Y_OFFSET; 00150 } 00151 else 00152 { 00153 return DT_INVALID; 00154 } 00155 } 00156 00157 VerticalTextFormatting FalagardXMLHelper::stringToVertTextFormat(const String& str) 00158 { 00159 if (str == "CentreAligned") 00160 { 00161 return VTF_CENTRE_ALIGNED; 00162 } 00163 else if (str == "BottomAligned") 00164 { 00165 return VTF_BOTTOM_ALIGNED; 00166 } 00167 else 00168 { 00169 return VTF_TOP_ALIGNED; 00170 } 00171 } 00172 00173 HorizontalTextFormatting FalagardXMLHelper::stringToHorzTextFormat(const String& str) 00174 { 00175 if (str == "CentreAligned") 00176 { 00177 return HTF_CENTRE_ALIGNED; 00178 } 00179 else if (str == "RightAligned") 00180 { 00181 return HTF_RIGHT_ALIGNED; 00182 } 00183 else if (str == "Justified") 00184 { 00185 return HTF_JUSTIFIED; 00186 } 00187 else if (str == "WordWrapLeftAligned") 00188 { 00189 return HTF_WORDWRAP_LEFT_ALIGNED; 00190 } 00191 else if (str == "WordWrapCentreAligned") 00192 { 00193 return HTF_WORDWRAP_CENTRE_ALIGNED; 00194 } 00195 else if (str == "WordWrapRightAligned") 00196 { 00197 return HTF_WORDWRAP_RIGHT_ALIGNED; 00198 } 00199 else if (str == "WordWrapJustified") 00200 { 00201 return HTF_WORDWRAP_JUSTIFIED; 00202 } 00203 else 00204 { 00205 return HTF_LEFT_ALIGNED; 00206 } 00207 } 00208 00209 FontMetricType FalagardXMLHelper::stringToFontMetricType(const String& str) 00210 { 00211 if (str == "LineSpacing") 00212 { 00213 return FMT_LINE_SPACING; 00214 } 00215 else if (str == "Baseline") 00216 { 00217 return FMT_BASELINE; 00218 } 00219 else 00220 { 00221 return FMT_HORZ_EXTENT; 00222 } 00223 } 00224 00225 DimensionOperator FalagardXMLHelper::stringToDimensionOperator(const String& str) 00226 { 00227 if (str == "Add") 00228 { 00229 return DOP_ADD; 00230 } 00231 else if (str == "Subtract") 00232 { 00233 return DOP_SUBTRACT; 00234 } 00235 else if (str == "Multiply") 00236 { 00237 return DOP_MULTIPLY; 00238 } 00239 else if (str == "Divide") 00240 { 00241 return DOP_DIVIDE; 00242 } 00243 else 00244 { 00245 return DOP_NOOP; 00246 } 00247 } 00248 00249 FrameImageComponent FalagardXMLHelper::stringToFrameImageComponent(const String& str) 00250 { 00251 if (str == "TopLeftCorner") 00252 { 00253 return FIC_TOP_LEFT_CORNER; 00254 } 00255 if (str == "TopRightCorner") 00256 { 00257 return FIC_TOP_RIGHT_CORNER; 00258 } 00259 if (str == "BottomLeftCorner") 00260 { 00261 return FIC_BOTTOM_LEFT_CORNER; 00262 } 00263 if (str == "BottomRightCorner") 00264 { 00265 return FIC_BOTTOM_RIGHT_CORNER; 00266 } 00267 if (str == "LeftEdge") 00268 { 00269 return FIC_LEFT_EDGE; 00270 } 00271 if (str == "RightEdge") 00272 { 00273 return FIC_RIGHT_EDGE; 00274 } 00275 if (str == "TopEdge") 00276 { 00277 return FIC_TOP_EDGE; 00278 } 00279 if (str == "BottomEdge") 00280 { 00281 return FIC_BOTTOM_EDGE; 00282 } 00283 else 00284 { 00285 return FIC_BACKGROUND; 00286 } 00287 } 00288 00289 00290 String FalagardXMLHelper::vertFormatToString(VerticalFormatting format) 00291 { 00292 switch (format) 00293 { 00294 case VF_BOTTOM_ALIGNED: 00295 return String("BottomAligned"); 00296 break; 00297 case VF_CENTRE_ALIGNED: 00298 return String("CentreAligned"); 00299 break; 00300 case VF_TILED: 00301 return String("Tiled"); 00302 break; 00303 case VF_STRETCHED: 00304 return String("Stretched"); 00305 break; 00306 default: 00307 return String("TopAligned"); 00308 break; 00309 } 00310 } 00311 00312 String FalagardXMLHelper::horzFormatToString(HorizontalFormatting format) 00313 { 00314 switch (format) 00315 { 00316 case HF_RIGHT_ALIGNED: 00317 return String("RightAligned"); 00318 break; 00319 case HF_CENTRE_ALIGNED: 00320 return String("CentreAligned"); 00321 break; 00322 case HF_TILED: 00323 return String("Tiled"); 00324 break; 00325 case HF_STRETCHED: 00326 return String("Stretched"); 00327 break; 00328 default: 00329 return String("LeftAligned"); 00330 break; 00331 } 00332 } 00333 00334 String FalagardXMLHelper::vertAlignmentToString(VerticalAlignment alignment) 00335 { 00336 switch (alignment) 00337 { 00338 case VA_BOTTOM: 00339 return String("BottomAligned"); 00340 break; 00341 case VA_CENTRE: 00342 return String("CentreAligned"); 00343 break; 00344 default: 00345 return String("TopAligned"); 00346 break; 00347 } 00348 } 00349 00350 String FalagardXMLHelper::horzAlignmentToString(HorizontalAlignment alignment) 00351 { 00352 switch (alignment) 00353 { 00354 case HA_RIGHT: 00355 return String("RightAligned"); 00356 break; 00357 case HA_CENTRE: 00358 return String("CentreAligned"); 00359 break; 00360 default: 00361 return String("LeftAligned"); 00362 break; 00363 } 00364 } 00365 00366 String FalagardXMLHelper::dimensionTypeToString(DimensionType dim) 00367 { 00368 switch (dim) 00369 { 00370 case DT_LEFT_EDGE: 00371 return String("LeftEdge"); 00372 break; 00373 case DT_X_POSITION: 00374 return String("XPosition"); 00375 break; 00376 case DT_TOP_EDGE: 00377 return String("TopEdge"); 00378 break; 00379 case DT_Y_POSITION: 00380 return String("YPosition"); 00381 break; 00382 case DT_RIGHT_EDGE: 00383 return String("RightEdge"); 00384 break; 00385 case DT_BOTTOM_EDGE: 00386 return String("BottomEdge"); 00387 break; 00388 case DT_WIDTH: 00389 return String("Width"); 00390 break; 00391 case DT_HEIGHT: 00392 return String("Height"); 00393 break; 00394 case DT_X_OFFSET: 00395 return String("XOffset"); 00396 break; 00397 case DT_Y_OFFSET: 00398 return String("YOffset"); 00399 break; 00400 default: 00401 return String("Invalid"); 00402 break; 00403 } 00404 } 00405 00406 String FalagardXMLHelper::vertTextFormatToString(VerticalTextFormatting format) 00407 { 00408 switch (format) 00409 { 00410 case VTF_BOTTOM_ALIGNED: 00411 return String("BottomAligned"); 00412 break; 00413 case VTF_CENTRE_ALIGNED: 00414 return String("CentreAligned"); 00415 break; 00416 default: 00417 return String("TopAligned"); 00418 break; 00419 } 00420 } 00421 00422 String FalagardXMLHelper::horzTextFormatToString(HorizontalTextFormatting format) 00423 { 00424 switch (format) 00425 { 00426 case HTF_RIGHT_ALIGNED: 00427 return String("RightAligned"); 00428 break; 00429 case HTF_CENTRE_ALIGNED: 00430 return String("CentreAligned"); 00431 break; 00432 case HTF_JUSTIFIED: 00433 return String("Justified"); 00434 break; 00435 case HTF_WORDWRAP_LEFT_ALIGNED: 00436 return String("WordWrapLeftAligned"); 00437 break; 00438 case HTF_WORDWRAP_RIGHT_ALIGNED: 00439 return String("WordWrapRightAligned"); 00440 break; 00441 case HTF_WORDWRAP_CENTRE_ALIGNED: 00442 return String("WordWrapCentreAligned"); 00443 break; 00444 case HTF_WORDWRAP_JUSTIFIED: 00445 return String("WordWrapJustified"); 00446 break; 00447 default: 00448 return String("LeftAligned"); 00449 break; 00450 } 00451 } 00452 00453 String FalagardXMLHelper::fontMetricTypeToString(FontMetricType metric) 00454 { 00455 switch (metric) 00456 { 00457 case FMT_BASELINE: 00458 return String("Baseline"); 00459 break; 00460 case FMT_HORZ_EXTENT: 00461 return String("HorzExtent"); 00462 break; 00463 default: 00464 return String("LineSpacing"); 00465 break; 00466 } 00467 } 00468 00469 String FalagardXMLHelper::dimensionOperatorToString(DimensionOperator op) 00470 { 00471 switch (op) 00472 { 00473 case DOP_ADD: 00474 return String("Add"); 00475 break; 00476 case DOP_SUBTRACT: 00477 return String("Subtract"); 00478 break; 00479 case DOP_MULTIPLY: 00480 return String("Multiply"); 00481 break; 00482 case DOP_DIVIDE: 00483 return String("Divide"); 00484 break; 00485 default: 00486 return String("Noop"); 00487 break; 00488 } 00489 } 00490 00491 String FalagardXMLHelper::frameImageComponentToString(FrameImageComponent imageComp) 00492 { 00493 switch (imageComp) 00494 { 00495 case FIC_TOP_LEFT_CORNER: 00496 return String("TopLeftCorner"); 00497 break; 00498 case FIC_TOP_RIGHT_CORNER: 00499 return String("TopRightCorner"); 00500 break; 00501 case FIC_BOTTOM_LEFT_CORNER: 00502 return String("BottomLeftCorner"); 00503 break; 00504 case FIC_BOTTOM_RIGHT_CORNER: 00505 return String("BottomRightCorner"); 00506 break; 00507 case FIC_LEFT_EDGE: 00508 return String("LeftEdge"); 00509 break; 00510 case FIC_RIGHT_EDGE: 00511 return String("RightEdge"); 00512 break; 00513 case FIC_TOP_EDGE: 00514 return String("TopEdge"); 00515 break; 00516 case FIC_BOTTOM_EDGE: 00517 return String("BottomEdge"); 00518 break; 00519 default: 00520 return String("Background"); 00521 break; 00522 } 00523 } 00524 } // End of CEGUI namespace section