Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
May 27, 2008, 6:29:08 PM (16 years ago)
Author:
landauf
Message:

you'll love this: separated displayed strings in autocompletion from actually inserted strings, to make fancy things like a really good autocompletion for files and directories.

@bensch: this is the "better system" I was talking about

File:
1 edited

Legend:

Unmodified
Added
Removed
  • code/branches/console/src/core/ArgumentCompleter.h

    r1436 r1441  
    3030#define _ArgumentCompleter_H__
    3131
    32 #include <list>
    33 #include <string>
    34 
    3532#include "CorePrereqs.h"
     33#include "ArgumentCompletionListElement.h"
    3634
    3735namespace orxonox
     
    4038    {
    4139        public:
    42             ArgumentCompleter(std::list<std::pair<std::string, std::string> > (*function) (void)) : paramCount_(0), function_0_(function) {}
    43             ArgumentCompleter(std::list<std::pair<std::string, std::string> > (*function) (const std::string& param1)) : paramCount_(1), function_1_(function) {}
    44             ArgumentCompleter(std::list<std::pair<std::string, std::string> > (*function) (const std::string& param1, const std::string& param2)) : paramCount_(2), function_2_(function) {}
    45             ArgumentCompleter(std::list<std::pair<std::string, std::string> > (*function) (const std::string& param1, const std::string& param2, const std::string& param3)) : paramCount_(3), function_3_(function) {}
    46             ArgumentCompleter(std::list<std::pair<std::string, std::string> > (*function) (const std::string& param1, const std::string& param2, const std::string& param3, const std::string& param4)) : paramCount_(4), function_4_(function) {}
    47             ArgumentCompleter(std::list<std::pair<std::string, std::string> > (*function) (const std::string& param1, const std::string& param2, const std::string& param3, const std::string& param4, const std::string& param5)) : paramCount_(5), function_5_(function) {}
     40            ArgumentCompleter(ArgumentCompletionList (*function) (void)) : paramCount_(0), function_0_(function) {}
     41            ArgumentCompleter(ArgumentCompletionList (*function) (const std::string& param1)) : paramCount_(1), function_1_(function) {}
     42            ArgumentCompleter(ArgumentCompletionList (*function) (const std::string& param1, const std::string& param2)) : paramCount_(2), function_2_(function) {}
     43            ArgumentCompleter(ArgumentCompletionList (*function) (const std::string& param1, const std::string& param2, const std::string& param3)) : paramCount_(3), function_3_(function) {}
     44            ArgumentCompleter(ArgumentCompletionList (*function) (const std::string& param1, const std::string& param2, const std::string& param3, const std::string& param4)) : paramCount_(4), function_4_(function) {}
     45            ArgumentCompleter(ArgumentCompletionList (*function) (const std::string& param1, const std::string& param2, const std::string& param3, const std::string& param4, const std::string& param5)) : paramCount_(5), function_5_(function) {}
    4846
    49             std::list<std::pair<std::string, std::string> > operator()(const std::string& param1 = "", const std::string& param2 = "", const std::string& param3 = "", const std::string& param4 = "", const std::string& param5 = "")
     47            ArgumentCompletionList operator()(const std::string& param1 = "", const std::string& param2 = "", const std::string& param3 = "", const std::string& param4 = "", const std::string& param5 = "")
    5048            {
    5149                switch (this->paramCount_)
     
    6462                        return (*this->function_5_)(param1, param2, param3, param4, param5);
    6563                    default:
    66                         return std::list<std::pair<std::string, std::string> >();
     64                        return ArgumentCompletionList();
    6765                }
    6866            }
     
    7068        private:
    7169            unsigned char paramCount_;
    72             std::list<std::pair<std::string, std::string> > (*function_0_) (void);
    73             std::list<std::pair<std::string, std::string> > (*function_1_) (const std::string& param1);
    74             std::list<std::pair<std::string, std::string> > (*function_2_) (const std::string& param1, const std::string& param2);
    75             std::list<std::pair<std::string, std::string> > (*function_3_) (const std::string& param1, const std::string& param2, const std::string& param3);
    76             std::list<std::pair<std::string, std::string> > (*function_4_) (const std::string& param1, const std::string& param2, const std::string& param3, const std::string& param4);
    77             std::list<std::pair<std::string, std::string> > (*function_5_) (const std::string& param1, const std::string& param2, const std::string& param3, const std::string& param4, const std::string& param5);
     70            ArgumentCompletionList (*function_0_) (void);
     71            ArgumentCompletionList (*function_1_) (const std::string& param1);
     72            ArgumentCompletionList (*function_2_) (const std::string& param1, const std::string& param2);
     73            ArgumentCompletionList (*function_3_) (const std::string& param1, const std::string& param2, const std::string& param3);
     74            ArgumentCompletionList (*function_4_) (const std::string& param1, const std::string& param2, const std::string& param3, const std::string& param4);
     75            ArgumentCompletionList (*function_5_) (const std::string& param1, const std::string& param2, const std::string& param3, const std::string& param4, const std::string& param5);
    7876    };
    7977}
Note: See TracChangeset for help on using the changeset viewer.