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
Line 
1/*
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:
12   main-programmer: Benjamin Grauer
13   co-programmer: ...
14*/
15
16#include "load_param_description.h"
17
18#include "multi_type.h"
19#include "debug.h"
20
21/**
22 * @param paramName the name of the parameter to load
23 */
24LoadParamDescription::LoadParamDescription(const std::string& paramName)
25    : _name(paramName), _parameterCount(0)
26{ }
27
28/**
29 *  removes all the alocated memory
30 */
31LoadParamDescription::~LoadParamDescription()
32{}
33
34/**
35 * @param descriptionText The text to set as a description for this Parameter
36 */
37void LoadParamDescription::setDescription(const std::string& descriptionText)
38{
39  this->_description = descriptionText;
40}
41
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
56/**
57 *  prints out this parameter, its input method and the description (if availiable)
58 */
59void LoadParamDescription::print() const
60{
61  PRINT(0)(" <%s>", this->_name.c_str());
62  for (unsigned int i = 0; i < this->_parameterCount; i++)
63  {
64    if (i > 0)
65      PRINT(0)(",");
66    PRINT(0)("%s", this->_types[i].c_str());
67  }
68  PRINT(0)("</%s>", this->_name.c_str());
69  if (!this->_description.empty())
70    PRINT(0)(" <!-- %s", this->_description.c_str());
71  // default values
72  if (this->_parameterCount > 0)
73  {
74    PRINT(0)(" (Default: ");
75    for (unsigned int i = 0; i < this->_parameterCount; i++)
76    {
77      if (i > 0)
78        PRINT(0)(", ");
79      if (this->_types[i] == "string")
80      { // leave brackets !!
81        PRINT(0)("\"%s\"", this->_defaultValues[i].c_str());
82      }
83      else
84      {
85        PRINT(0)("%s", this->_defaultValues[i].c_str());
86      }
87    }
88    PRINT(0)(")");
89  }
90  if (!this->_description.empty() || this->_parameterCount > 0)
91    PRINT(0)(" -->");
92
93  PRINT(0)("\n");
94}
95
96
Note: See TracBrowser for help on using the repository browser.