1 //////////////////////////////////////////////////////////////////////////////// 2 // Scorched3D (c) 2000-2011 3 // 4 // This file is part of Scorched3D. 5 // 6 // Scorched3D 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 of the License, or 9 // (at your option) any later version. 10 // 11 // Scorched3D is distributed in the hope that it will be useful, 12 // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 // GNU General Public License for more details. 15 // 16 // You should have received a copy of the GNU General Public License along 17 // with this program; if not, write to the Free Software Foundation, Inc., 18 // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 19 //////////////////////////////////////////////////////////////////////////////// 20 21 #if !defined(__INCLUDE_LangParam_INCLUDE__) 22 #define __INCLUDE_LangParam_INCLUDE__ 23 24 #include <lang/LangString.h> 25 #include <vector> 26 27 #define LANG_PARAM_1(key, param1) \ 28 LangParam::getKey(key, param1) 29 #define LANG_PARAM_2(key, param1, param2) \ 30 LangParam::getKey(key, param1, param2) 31 #define LANG_PARAM_3(key, param1, param2, param3) \ 32 LangParam::getKey(key, param1, param2, param3) 33 #define LANG_PARAM_4(key, param1, param2, param3, param4) \ 34 LangParam::getKey(key, param1, param2, param3, param4) 35 #define LANG_PARAM_5(key, param1, param2, param3, param4, param5) \ 36 LangParam::getKey(key, param1, param2, param3, param4, param5) 37 38 class LangParam 39 { 40 public: 41 LangParam(const LangStringConverter &value); 42 43 LangString getValue(); 44 45 LangString getParameterizedString(); 46 LangString getParameterizedString(const LangStringConverter ¶m1); 47 LangString getParameterizedString(const LangStringConverter ¶m1, 48 const LangStringConverter ¶m2); 49 LangString getParameterizedString(const LangStringConverter ¶m1, 50 const LangStringConverter ¶m2, const LangStringConverter ¶m3); 51 LangString getParameterizedString(const LangStringConverter ¶m1, 52 const LangStringConverter ¶m2, const LangStringConverter ¶m3, 53 const LangStringConverter ¶m4); 54 LangString getParameterizedString(const LangStringConverter ¶m1, 55 const LangStringConverter ¶m2, const LangStringConverter ¶m3, 56 const LangStringConverter ¶m4, const LangStringConverter ¶m5); 57 58 static LangString getKey(const LangStringConverter &value, 59 const LangStringConverter ¶m1); 60 static LangString getKey(const LangStringConverter &value, 61 const LangStringConverter ¶m1, 62 const LangStringConverter ¶m2); 63 static LangString getKey(const LangStringConverter &value, 64 const LangStringConverter ¶m1, 65 const LangStringConverter ¶m2, 66 const LangStringConverter ¶m3); 67 static LangString getKey(const LangStringConverter &value, 68 const LangStringConverter ¶m1, 69 const LangStringConverter ¶m2, 70 const LangStringConverter ¶m3, 71 const LangStringConverter ¶m4); 72 static LangString getKey(const LangStringConverter &value, 73 const LangStringConverter ¶m1, 74 const LangStringConverter ¶m2, 75 const LangStringConverter ¶m3, 76 const LangStringConverter ¶m4, 77 const LangStringConverter ¶m5); 78 79 private: 80 std::vector<LangString> parts_; 81 std::vector<int> positions_; 82 }; 83 84 #endif // __INCLUDE_LangParam_INCLUDE__ 85