Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/branches/new_class_id/src/lib/util/loading/load_param_description.cc @ 9775

Last change on this file since 9775 was 9775, checked in by bensch, 18 years ago

loadParam descriptions can be printed nicely, and also switched on and off globally

File size: 2.4 KB
RevLine 
[4597]1/*
[4250]2   orxonox - the future of 3D-vertical-scrollers
3
4   Copyright (C) 2004 orx
5
6   This program is free software; you can redistribute it and/or modify
7   it under the terms of the GNU General Public License as published by
8   the Free Software Foundation; either version 2, or (at your option)
9   any later version.
10
11   ### File Specific:
[4285]12   main-programmer: Benjamin Grauer
[4250]13   co-programmer: ...
14*/
15
[5546]16#include "load_param_description.h"
[5556]17
[5691]18#include "multi_type.h"
[8362]19#include "debug.h"
20
[4860]21/**
[4836]22 * @param paramName the name of the parameter to load
[5546]23 */
[7221]24LoadParamDescription::LoadParamDescription(const std::string& paramName)
[9772]25    : _name(paramName), _parameterCount(0)
[9765]26{ }
[4254]27
[4256]28/**
[4836]29 *  removes all the alocated memory
[5546]30 */
[4746]31LoadParamDescription::~LoadParamDescription()
[9772]32{}
[4254]33
[4256]34/**
[4836]35 * @param descriptionText The text to set as a description for this Parameter
[5546]36 */
[7221]37void LoadParamDescription::setDescription(const std::string& descriptionText)
[4255]38{
[9767]39  this->_description = descriptionText;
[4255]40}
[4254]41
[9772]42void LoadParamDescription::setValues(unsigned int paramCount,
43                                     const MultiType* const defaultValues,
44                                     bool retVal)
45{
46  this->_parameterCount = paramCount;
47  for (unsigned int i = 0; i < paramCount; ++i)
48  {
49    this->_defaultValues.push_back(defaultValues[i].getString());
50    this->_types.push_back(MultiType::MultiTypeToString(defaultValues[i].getType()));
51  }
52
53}
54
55
[4256]56/**
[4836]57 *  prints out this parameter, its input method and the description (if availiable)
[5546]58 */
[4746]59void LoadParamDescription::print() const
[4255]60{
[9772]61  PRINT(0)(" <%s>", this->_name.c_str());
[9767]62  for (unsigned int i = 0; i < this->_parameterCount; i++)
[5546]63  {
64    if (i > 0)
[9774]65      PRINT(0)(",");
66    PRINT(0)("%s", this->_types[i].c_str());
[5546]67  }
[9772]68  PRINT(0)("</%s>", this->_name.c_str());
[9767]69  if (!this->_description.empty())
[9773]70    PRINT(0)(" <!-- %s", this->_description.c_str());
[4623]71  // default values
[9767]72  if (this->_parameterCount > 0)
[4623]73  {
[9772]74    PRINT(0)(" (Default: ");
[9767]75    for (unsigned int i = 0; i < this->_parameterCount; i++)
[4623]76    {
77      if (i > 0)
[9772]78        PRINT(0)(", ");
[9767]79      if (this->_types[i] == "string")
[4625]80      { // leave brackets !!
[9772]81        PRINT(0)("\"%s\"", this->_defaultValues[i].c_str());
[4625]82      }
83      else
84      {
[9772]85        PRINT(0)("%s", this->_defaultValues[i].c_str());
[4625]86      }
[4623]87    }
[9772]88    PRINT(0)(")");
[4623]89  }
[9773]90  if (!this->_description.empty() || this->_parameterCount > 0)
91    PRINT(0)(" -->");
92
[9772]93  PRINT(0)("\n");
[4255]94}
[9768]95
96
Note: See TracBrowser for help on using the repository browser.