Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
May 27, 2008, 12:27:13 AM (16 years ago)
Author:
landauf
Message:

autocompletion is almost done

File:
1 edited

Legend:

Unmodified
Added
Removed
  • code/branches/console/src/core/ArgumentCompletionFunctions.cc

    r1430 r1434  
    2828
    2929#include <iostream>
     30#include <map>
    3031
    3132#include "ArgumentCompletionFunctions.h"
     33#include "CoreIncludes.h"
     34#include "Identifier.h"
     35#include "ConfigValueContainer.h"
     36#include "TclThreadManager.h"
     37#include "util/String.h"
    3238
    3339namespace orxonox
     
    3945            return std::list<std::pair<std::string, std::string> >();
    4046        }
     47
     48        ARGUMENT_COMPLETION_FUNCTION_IMPLEMENTATION(configvalueclasses)()
     49        {
     50            std::list<std::pair<std::string, std::string> > classlist;
     51
     52            for (std::map<std::string, Identifier*>::const_iterator it = Identifier::getIdentifierMapBegin(); it != Identifier::getIdentifierMapEnd(); ++it)
     53                if ((*it).second->hasConfigValues())
     54                    classlist.push_back(std::pair<std::string, std::string>(getLowercase((*it).first), (*it).second->getName()));
     55
     56            return classlist;
     57        }
     58
     59        ARGUMENT_COMPLETION_FUNCTION_IMPLEMENTATION(configvalues)(const std::string& classname)
     60        {
     61            std::list<std::pair<std::string, std::string> > configvalues;
     62            std::map<std::string, Identifier*>::const_iterator identifier = Identifier::getIdentifierMap().find(classname);
     63
     64            if (identifier != Identifier::getIdentifierMapEnd() && (*identifier).second->hasConfigValues())
     65            {
     66                for (std::map<std::string, ConfigValueContainer*>::const_iterator it = (*identifier).second->getConfigValueMapBegin(); it != (*identifier).second->getConfigValueMapEnd(); ++it)
     67                    configvalues.push_back(std::pair<std::string, std::string>(getLowercase((*it).first), (*it).second->getName()));
     68            }
     69
     70            return configvalues;
     71        }
     72
     73        ARGUMENT_COMPLETION_FUNCTION_IMPLEMENTATION(configvalue)(const std::string& varname, const std::string& classname)
     74        {
     75            std::list<std::pair<std::string, std::string> > oldvalue;
     76            std::map<std::string, Identifier*>::const_iterator identifier = Identifier::getLowercaseIdentifierMap().find(getLowercase(classname));
     77            if (identifier != Identifier::getLowercaseIdentifierMapEnd())
     78            {
     79                std::map<std::string, ConfigValueContainer*>::const_iterator variable = (*identifier).second->getLowercaseConfigValueMap().find(getLowercase(varname));
     80                if (variable != (*identifier).second->getLowercaseConfigValueMapEnd())
     81                {
     82                    std::string valuestring = (*variable).second->toString();
     83                    oldvalue.push_back(std::pair<std::string, std::string>(valuestring, valuestring));
     84                }
     85            }
     86            return oldvalue;
     87        }
     88
     89        ARGUMENT_COMPLETION_FUNCTION_IMPLEMENTATION(tclthreads)()
     90        {
     91            return TclThreadManager::getInstance().getThreadList();
     92        }
    4193    }
    4294}
Note: See TracChangeset for help on using the changeset viewer.