1 // textprocessing.h - Text processing subroutines header.
3 // (c) 2012-2015 Xestia Software Development.
5 // This file is part of Xestia Address Book.
7 // Xestia Address Book is free software: you can redistribute it and/or modify
8 // it under the terms of the GNU General Public License as published by the
9 // Free Software Foundation, version 3 of the license.
11 // Xestia Address Book 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.
16 // You should have received a copy of the GNU General Public License along
17 // with Xestia Address Book. If not, see <http://www.gnu.org/licenses/>
23 #ifndef TEXTPROCESSING_H
24 #define TEXTPROCESSING_H
26 void EscapeString(wxString *ReceivedString, bool StripQuotes);
27 void GetEscapeString(wxTextCtrl *TextCtrl, wxString *ProcessString, bool StripQuotes);
28 void GetEscapeString(wxComboBox *ComboCtrl, wxString *ProcessString, bool StripQuotes);
29 void GetEscapeString(wxChoice *ChoiceCtrl, wxString *ProcessString, bool StripQuotes);
30 void CaptureString(wxString *ProcessString, bool StripQuotes);
31 void ConvertToHTML(wxString *ProcessString);
33 void DeleteMapDataProcess(int IndexNum, std::map<int, std::string>* MapData);
34 void DeleteMapDataProcess(int IndexNum, std::map<int, wxString>* MapData);
35 void DeleteMapDataProcess(int IndexNum, std::map<int, bool>* MapData);
36 void DeleteMapDataProcess(int IndexNum, std::map<int, int>* MapData);
38 bool MapDataExists(int *ItemIndex, std::map<int,wxString> *MapPtr);
39 bool MapDataExists(int *ItemIndex, std::map<int,int> *MapPtr);
41 //void DeleteMapDataB() {};
43 //void DeleteMapData() {};
47 template <typename ArgMap, typename... Args>
48 void DeleteMapData(ArgMap* ArgMapPtr, Args*... ArgsList){
57 void test(const char* s, T t) {
59 if (*s == '%' && *(++s) != '%') {
61 //throw std::runtime_error("Not enough parameters!");
70 //throw std::logic_error("Too many arguments!");
75 template<class T, class U, class... Args>
76 void test(const char* s, T t, U u, Args... args) {
78 if (*s == '%' && *(++s) != '%') {
81 // width = t; // Uncommenting this would cause a failure if the parameters aren't all int's.
83 std::cout << std::setw(width) << u;
87 test(++s, u, args...);
93 //throw std::logic_error("Too many arguments!");
99 template<typename... Args>
100 void DeleteMapData(int IndexNum, Args*... args) {
102 //DeleteMapDataProcess(IndexNum, t);
104 intSeekSelectedData = IndexNum;
105 DeleteMapDataB(args...);
107 //throw std::logic_error("Too many arguments!");
112 //void DeleteMapDataB() { };
114 template<typename MapData, typename... Args>
115 void DeleteMapDataB(MapData* mapdata, Args*... args) {
117 DeleteMapDataB(args...);
121 template<typename... Args>
122 void DeleteMapData(int IndexNum, Args*... args) {
124 //int intSeekSelectedData = 0;
126 //DeleteMapDataProcess(IndexNum, Moo);
128 //intSeekSelectedData = IndexNum;
129 DeleteMapDataB(args...);
133 //void DeleteMapData<ArgMap, Args>(ArgMap* ArgMapPtr, Args*... ArgsList);