Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
Initial import of code already done for Xestia Address Book
[xestiaab/.git] / source / contacteditor / frmContactEditor.h
1 #ifndef __frmContactEditor__
2 #define __frmContactEditor__
4 #include <wx/wx.h>
6 #include <map>
7 #include <string>
9 #include <SFML/Audio.hpp>
11 /**
12 @file
13 Subclass of frmContactEditorADT, which is generated by wxFormBuilder.
14 */
16 #include "../AppXestiaAddrBk.h"
17 #include "../vcard/vcard.h"
18 #include "../common/textprocessing.h"
19 #include "../common/etag.h"
20 #include "../common/timers.h"
22 #include "../frmActivityMgr.h"
23 #include "../frmMain.h"
25 //// end generated include
27 struct frmMain;
28 struct frmActivityMgr;
30 // Special Audio Stream for detecting when a sound has stopped playing.
31 class AudioStream: public sf::Music
32 {
33 private:
35    bool onGetData(SoundStream::Chunk& data)
36    {
37        FilePlaying = TRUE;
38        bool running = sf::Music::onGetData(data);
39        if(!running)
40            OnMusicEnd();
41        return running;
42    }
43 public:
44    void OnMusicEnd() { }
45    bool GetPlayingStatus(){ return FilePlaying; }   
48 /*
49     void load(const sf::SoundBuffer& buffer)
50     {
51         // extract the audio samples from the sound buffer to our own container
52         m_samples.assign(buffer.getSamples(), buffer.getSamples() + buffer.getSampleCount());
54         // reset the current playing position 
55         m_currentSample = 0;
57         // initialize the base class
58         initialize(buffer.getChannelCount(), buffer.getSampleRate());
59     }
60     
61     bool GetPlayingStatus(){ return FilePlaying; }
63 private:
65     virtual bool onGetData(Chunk& data)
66     {
67         // number of samples to stream every time the function is called;
68         // in a more robust implementation, it would rather be a fixed
69         // amount of time rather than an arbitrary number of samples
70         const int samplesToStream = 50000;
72         // set the pointer to the next audio samples to be played
73         data.samples = &m_samples[m_currentSample];
75         // have we reached the end of the sound?
76         if (m_currentSample + samplesToStream <= m_samples.size())
77         {
78             // end not reached: stream the samples and continue
79             data.sampleCount = samplesToStream;
80             m_currentSample += samplesToStream;
81             FilePlaying = TRUE;
82             return true;
83             }
84         else
85         {
86             // end of stream reached: stream the remaining samples and stop playback
87             data.sampleCount = m_samples.size() - m_currentSample;
88             m_currentSample = m_samples.size();
89             FilePlaying = FALSE;
90                 return false;
91         }
92     }
94     virtual void onSeek(sf::Time TimeOffset)
95     {
96         // compute the corresponding sample index according to the sample rate and channel count
97         m_currentSample = static_cast<std::size_t>(TimeOffset.asSeconds() * getSampleRate() * getChannelCount());
98     }
100     std::vector<sf::Int16> m_samples;
101     std::size_t m_currentSample;
102     
103     */
104     bool FilePlaying = TRUE;
105 };
107 /** Implementing frmContactEditorADT */
108 class frmContactEditor : public frmContactEditorADT
110         protected:
111                 // Handlers for frmContactEditorADT events.
112                 void AddGeneralNickname( wxCommandEvent& event );
113                 void ModifyGeneralNickname( wxCommandEvent& event );
114                 void DeleteGeneralNickname( wxCommandEvent& event );
115                 void AddHomeNickname( wxCommandEvent& event );
116                 void ModifyHomeNickname( wxCommandEvent& event );
117                 void DeleteHomeNickname( wxCommandEvent& event );
118                 void AddBusinessNickname( wxCommandEvent& event );
119                 void ModifyBusinessNickname( wxCommandEvent& event );
120                 void DeleteBusinessNickname( wxCommandEvent& event );
121                 void AddGeneralAddress( wxCommandEvent& event );
122                 void ModifyGeneralAddress( wxCommandEvent& event );
123                 void DeleteGeneralAddress( wxCommandEvent& event );
124                 void AddGeneralEmail( wxCommandEvent& event );
125                 void ModifyGeneralEmail( wxCommandEvent& event );
126                 void DeleteGeneralEmail( wxCommandEvent& event );
127                 void AddGeneralIM( wxCommandEvent& event );
128                 void ModifyGeneralIM( wxCommandEvent& event );
129                 void DeleteGeneralIM( wxCommandEvent& event );
130                 void MoveGeneralIMUp( wxCommandEvent& event );
131                 void MoveGeneralIMDown( wxCommandEvent& event );
132                 void AddGeneralTelephone( wxCommandEvent& event );
133                 void ModifyGeneralTelephone( wxCommandEvent& event );
134                 void DeleteGeneralTelephone( wxCommandEvent& event );
135                 void AddGeneralLanguages( wxCommandEvent& event );
136                 void ModifyGeneralLanguages( wxCommandEvent& event );
137                 void DeleteGeneralLanguage( wxCommandEvent& event );
138                 void AddGeneralTimezone( wxCommandEvent& event );
139                 void ModifyGeneralTimezone( wxCommandEvent& event );
140                 void DeleteGeneralTimezone( wxCommandEvent& event );
141                 void AddGeneralGeoposition( wxCommandEvent& event );
142                 void ModifyGeneralGeoposition( wxCommandEvent& event );
143                 void DeleteGeneralGeoposition( wxCommandEvent& event ); 
144                 void AddGeneralRelated( wxCommandEvent& event );
145                 void ModifyGeneralRelated( wxCommandEvent& event );
146                 void DeleteGeneralRelated( wxCommandEvent& event );
147                 void AddGeneralWebsite( wxCommandEvent& event );
148                 void ModifyGeneralWebsite( wxCommandEvent& event );
149                 void DeleteGeneralWebsite( wxCommandEvent& event );
150                 void MoveGeneralWebsiteUp( wxCommandEvent& event );
151                 void MoveGeneralWebsiteDown( wxCommandEvent& event );
152                 void AddGeneralTitle( wxCommandEvent& event );
153                 void ModifyGeneralTitle( wxCommandEvent& event );
154                 void DeleteGeneralTitle( wxCommandEvent& event );
155                 void MoveGeneralTitleUp( wxCommandEvent& event );
156                 void MoveGeneralTitleDown( wxCommandEvent& event );
157                 void AddGeneralRole( wxCommandEvent& event );
158                 void ModifyGeneralRole( wxCommandEvent& event );
159                 void DeleteGeneralRole( wxCommandEvent& event );
160                 void MoveGeneralRoleUp( wxCommandEvent& event );
161                 void MoveGeneralRoleDown( wxCommandEvent& event );
162                 void AddGeneralOrganisation( wxCommandEvent& event );
163                 void ModifyGeneralOrganisation( wxCommandEvent& event );
164                 void DeleteGeneralOrganisation( wxCommandEvent& event );
165                 void MoveGeneralOrganisationUp( wxCommandEvent& event );
166                 void MoveGeneralOrganisationDown( wxCommandEvent& event );
167                 void AddGeneralNote( wxCommandEvent& event );
168                 void ModifyGeneralNote( wxCommandEvent& event );
169                 void DeleteGeneralNote( wxCommandEvent& event );
170                 void MoveGeneralNoteUp( wxCommandEvent& event );
171                 void MoveGeneralNoteDown( wxCommandEvent& event );
172                 void AddHomeAddress( wxCommandEvent& event );
173                 void ModifyHomeAddress( wxCommandEvent& event );
174                 void DeleteHomeAddress( wxCommandEvent& event );
175                 void AddHomeEmail( wxCommandEvent& event );
176                 void ModifyHomeEmail( wxCommandEvent& event );
177                 void DeleteHomeEmail( wxCommandEvent& event );          
178                 void AddHomeIM( wxCommandEvent& event );
179                 void ModifyHomeIM( wxCommandEvent& event );
180                 void DeleteHomeIM( wxCommandEvent& event );
181                 void AddHomeTelephone( wxCommandEvent& event );
182                 void ModifyHomeTelephone( wxCommandEvent& event );
183                 void DeleteHomeTelephone( wxCommandEvent& event );
184                 void AddHomeLanguage( wxCommandEvent& event );
185                 void ModifyHomeLanguage( wxCommandEvent& event );
186                 void DeleteHomeLanguage( wxCommandEvent& event );
187                 void AddHomeTimezone( wxCommandEvent& event );
188                 void ModifyHomeTimezone( wxCommandEvent& event );
189                 void DeleteHomeTimezone( wxCommandEvent& event );
190                 void AddHomeGeoposition( wxCommandEvent& event );
191                 void ModifyHomeGeoposition( wxCommandEvent& event );
192                 void DeleteHomeGeoposition( wxCommandEvent& event );
193                 void AddHomeRelated( wxCommandEvent& event );
194                 void ModifyHomeRelated( wxCommandEvent& event );
195                 void DeleteHomeRelated( wxCommandEvent& event );
196                 void AddHomeWebsite( wxCommandEvent& event );
197                 void ModifyHomeWebsite( wxCommandEvent& event );
198                 void DeleteHomeWebsite( wxCommandEvent& event );
199                 void AddHomeTitle( wxCommandEvent& event );
200                 void ModifyHomeTitle( wxCommandEvent& event );
201                 void DeleteHomeTitle( wxCommandEvent& event );
202                 void AddHomeRole( wxCommandEvent& event );
203                 void ModifyHomeRole( wxCommandEvent& event );
204                 void DeleteHomeRole( wxCommandEvent& event );
205                 void MoveHomeRoleUp( wxCommandEvent& event );
206                 void MoveHomeRoleDown( wxCommandEvent& event );
207                 void AddHomeOrganisation( wxCommandEvent& event );
208                 void ModifyHomeOrganisation( wxCommandEvent& event );
209                 void DeleteHomeOrganisation( wxCommandEvent& event );
210                 void MoveHomeOrganisationUp( wxCommandEvent& event );
211                 void MoveHomeOrganisationDown( wxCommandEvent& event );
212                 void AddHomeNote( wxCommandEvent& event );
213                 void ModifyHomeNote( wxCommandEvent& event );
214                 void DeleteHomeNote( wxCommandEvent& event );
215                 void MoveHomeNoteUp( wxCommandEvent& event );
216                 void MoveHomeNoteDown( wxCommandEvent& event );
217                 void AddBusinessAddress( wxCommandEvent& event );
218                 void ModifyBusinessAddress( wxCommandEvent& event );
219                 void DeleteBusinessAddress( wxCommandEvent& event );
220                 void AddBusinessEmail( wxCommandEvent& event );
221                 void ModifyBusinessEmail( wxCommandEvent& event );
222                 void DeleteBusinessEmail( wxCommandEvent& event );
223                 void AddBusinessIM( wxCommandEvent& event );
224                 void ModifyBusinessIM( wxCommandEvent& event );
225                 void DeleteBusinessIM( wxCommandEvent& event );
226                 void AddBusinessTelephone( wxCommandEvent& event );
227                 void ModifyBusinessTelephone( wxCommandEvent& event );
228                 void DeleteBusinessTelephone( wxCommandEvent& event );
229                 void AddBusinessLanguage( wxCommandEvent& event );
230                 void ModifyBusinessLanguage( wxCommandEvent& event );
231                 void DeleteBusinessLanguage( wxCommandEvent& event );
232                 void AddBusinessTimezone( wxCommandEvent& event );
233                 void ModifyBusinessTimezone( wxCommandEvent& event );
234                 void DeleteBusinessTimezone( wxCommandEvent& event );
235                 void AddBusinessGeoposition( wxCommandEvent& event );
236                 void ModifyBusinessGeoposition( wxCommandEvent& event );
237                 void DeleteBusinessGeoposition( wxCommandEvent& event );
238                 void AddBusinessRelated( wxCommandEvent& event );
239                 void ModifyBusinessRelated( wxCommandEvent& event );
240                 void DeleteBusinessRelated( wxCommandEvent& event );
241                 void AddBusinessWebsite( wxCommandEvent& event );
242                 void ModifyBusinessWebsite( wxCommandEvent& event );
243                 void DeleteBusinessWebsite( wxCommandEvent& event );
244                 void AddBusinessTitle( wxCommandEvent& event );
245                 void ModifyBusinessTitle( wxCommandEvent& event );
246                 void DeleteBusinessTitle( wxCommandEvent& event );
247                 void MoveBusinessTitleUp( wxCommandEvent& event );
248                 void MoveBusinessTitleDown( wxCommandEvent& event );
249                 void AddBusinessRole( wxCommandEvent& event );
250                 void ModifyBusinessRole( wxCommandEvent& event );
251                 void DeleteBusinessRole( wxCommandEvent& event );
252                 void MoveBusinessRoleUp( wxCommandEvent& event );
253                 void MoveBusinessRoleDown( wxCommandEvent& event );
254                 void AddBusinessOrganisation( wxCommandEvent& event );
255                 void ModifyBusinessOrganisation( wxCommandEvent& event );
256                 void DeleteBusinessOrganisation( wxCommandEvent& event );
257                 void MoveBusinessOrganisationUp( wxCommandEvent& event );
258                 void MoveBusinessOrganisationDown( wxCommandEvent& event );
259                 void AddBusinessNote( wxCommandEvent& event );
260                 void ModifyBusinessNote( wxCommandEvent& event );
261                 void DeleteBusinessNote( wxCommandEvent& event );
262                 void MoveBusinessNoteUp( wxCommandEvent& event );
263                 void MoveBusinessNoteDown( wxCommandEvent& event );
264                 void AddCategory( wxCommandEvent& event );
265                 void ModifyCategory( wxCommandEvent& event );
266                 void DeleteCategory( wxCommandEvent& event );
267                 void AddGroup( wxCommandEvent& event );
268                 void ModifyGroup( wxCommandEvent& event );
269                 void DeleteGroup( wxCommandEvent& event );
270                 void AddPicture( wxCommandEvent& event );
271                 void ModifyPicture( wxCommandEvent& event );
272                 void DeletePicture( wxCommandEvent& event );
273                 void LoadPicture( wxListEvent& event );
274                 void AddLogo( wxCommandEvent& event );
275                 void ModifyLogo( wxCommandEvent& event );
276                 void DeleteLogo( wxCommandEvent& event );               
277                 void LoadLogo( wxListEvent& event );            
278                 void AddSound( wxCommandEvent& event );
279                 void ModifySound( wxCommandEvent& event );
280                 void DeleteSound( wxCommandEvent& event );
281                 void PlaySoundDetach();
282                 void PlaySound( wxCommandEvent& event );
283                 void StopSound( wxCommandEvent& event );
284                 void AddCalendarAddress( wxCommandEvent& event );
285                 void ModifyCalendarAddress( wxCommandEvent& event );
286                 void DeleteCalendarAddress( wxCommandEvent& event );
287                 void AddCalendarRequest( wxCommandEvent& event );
288                 void ModifyCalendarRequest( wxCommandEvent& event );
289                 void DeleteCalendarRequest( wxCommandEvent& event );
290                 void AddFreeBusy( wxCommandEvent& event );
291                 void ModifyFreeBusy( wxCommandEvent& event );
292                 void DeleteFreeBusy( wxCommandEvent& event );
293                 void AddKey( wxCommandEvent& event );
294                 void ModifyKey( wxCommandEvent& event );
295                 void DeleteKey( wxCommandEvent& event );
296                 void AddVendorNamespace( wxCommandEvent& event );
297                 void ModifyVendorNamespace( wxCommandEvent& event );
298                 void DeleteVendorNamespace( wxCommandEvent& event );
299                 void MoveVendorNamespaceUp( wxCommandEvent& event );
300                 void MoveVendorNamespaceDown( wxCommandEvent& event );
301                 void AddXToken( wxCommandEvent& event );
302                 void ModifyXToken( wxCommandEvent& event );
303                 void DeleteXToken( wxCommandEvent& event );
304                 void MoveXTokenUp( wxCommandEvent& event );
305                 void MoveXTokenDown( wxCommandEvent& event );
306                 void SaveContact( wxCommandEvent& event );
307                 void SaveCloseContact( wxCommandEvent& event );
308                 void CloseContact( wxCommandEvent& event );
309                 void CloseWindow( wxCloseEvent& event );
310                 void CutText( wxCommandEvent& event );
311                 void CopyText( wxCommandEvent& event );
312                 void PasteText( wxCommandEvent& event );
313                 void SetupColumn(wxString ColumnType, wxListCtrl *ListCtrl);
314                 void UpdateMembersTab( wxCommandEvent &event );
315                 void UpdateDisplayAs( wxCommandEvent &event );
316                 void UpdateName( wxCommandEvent &event );
317                 bool GetSelectedItem(wxListCtrl *ListCtrlPtr, 
318                         long *longSelected,
319                         int *intSelectedData);
320                 int GetLastInt(std::map<int, wxString> *MapData);
321                 int GetLastInt(std::map<int, std::string> *MapData);
322                 bool ProcessEvent(wxEvent& event);
323         public:
324                 /** Constructor */
325                 frmContactEditor( wxWindow* parent );
326                 void SetupHeaders();
327                 void SetupContact(wxString AccountName);
328                 void SetupPointers(frmActivityMgr *ActMgr, wxETagProcessTimer *ETagProc,
329                                         frmMain *MainPtrInc);
330                 bool LoadContact(wxString Filename);
331                 void SetUID(int UID);
332         private:
333         
334                 void DeleteMapDataProcess(int IndexNum, std::map<int, std::string>* MapData);
335                 void DeleteMapDataProcess(int IndexNum, std::map<int, wxString>* MapData);
336                 void DeleteMapDataProcess(int IndexNum, std::map<int, bool>* MapData);
337                 void DeleteMapDataProcess(int IndexNum, std::map<int, int>* MapData);
339                 void DeleteMapDataB () {} ;
340         
341                 template<typename MapData, typename... Args>
342                 void DeleteMapDataB(MapData* mapdata, Args*... args) {
344                         DeleteMapDataProcess(intSeekSelectedData, mapdata);
345                         DeleteMapDataB(args...);
347                 }
349                 template<typename... Args>
350                 void DeleteMapData(int IndexNum, Args*... args) {
352                         //int intSeekSelectedData = 0;
354                         //DeleteMapDataProcess(IndexNum, Moo);
356                         intSeekSelectedData = IndexNum;
357                         DeleteMapDataB(args...);
358         
359                 }
361                 void ProcessSaveDataProc(wxString PropName,
362                                 std::map<int,int>* MapData);
363                 void ProcessSaveDataProc(wxString PropName,
364                                 std::map<int,wxString>* MapData);
365                 void ProcessSaveDataStrProc(wxString PropName,
366                                 std::map<int,int>* MapData);
367                 void ProcessSaveDataStrProc(wxString PropName,
368                                 std::map<int,wxString>* MapData);
369                 void ProcessSaveDataStrProc(wxString PropName,
370                                 std::map<int,std::string>* MapData);
372                 
373                 void ProcessSaveDataB () {  } ;
374                 void ProcessSaveDataC () {  } ;
375                 
376                 template<typename PropName, typename MapData, typename... Args>
377                 void ProcessSaveDataB(PropName propname, MapData* mapdata, Args*... args) {
379                         ProcessSaveDataProc(propname, mapdata);
380                         ProcessSaveDataB(args...);
381                         
382                 }
383                 
384                 template<typename PropName, typename MapData, typename... Args>
385                 void ProcessSaveDataC(PropName propname, MapData* mapdata, Args*... args) {
387                         ProcessSaveDataStrProc(propname, mapdata);
388                         ProcessSaveDataC(args...);
389                         
390                 }
392                 template<typename... Args>
393                 void ProcessSaveData(wxString strPropertyName,
394                         wxString *strPropertyInc, 
395                         bool *boolAdditionalInc, bool *boolExtraInc, 
396                         std::map<int,wxString>::iterator *iterDataInc,
397                         std::map<int,wxString> *MainMapData,
398                         std::map<int,wxString>::iterator *iterFileTypeInc,
399                         std::map<int,wxString>::iterator *iterFileEncInc,                       
400                         vCard *vCardData,
401                         Args*... args) {
403                         //int intSeekSelectedData = 0;
405                         //DeleteMapDataProcess(IndexNum, Moo);
406                         
407                         strPropertyPtr = strPropertyInc;
408                         boolAdditionalPtr = boolAdditionalInc;
409                         boolExtraPtr = boolExtraInc;
410                         iterDataPtr = iterDataInc;
411                         iterFileTypePtr = iterFileTypeInc;
412                         iterFileEncPtr = iterFileEncInc;
413                         ProcessSaveDataB(args...);
414                         
415                         std::map<int,wxString>::iterator strIter;
416                         wxString strMainValue;
417                         
418                         int intSeekData = (*iterDataStringPtr)->first;
419                         strIter = MainMapData->find(intSeekData);
420                         
421                         wxString strFileType = (*iterFileTypePtr)->second;
422                         wxString strFileEnc = (*iterFileEncPtr)->second;
423                         
424                         EscapeString(&strFileType, FALSE);
425                         EscapeString(&strFileEnc, FALSE);
427                         if (strIter->first == intSeekData){
428         
429                                 strMainValue = strIter->second;
430                                 strMainValue.insert(0, wxT("data:") + strFileType + wxT(";") + strFileEnc + wxT(","));
431         
432                         }
433                         
434                         if (*boolExtraPtr == TRUE){
436                                 vCardData->AddRaw(strPropertyName + wxT(";") + *strPropertyPtr, strMainValue);
438                         } else {
440                                 vCardData->AddRaw(strPropertyName, strMainValue);
442                         }
443                         
444                         boolExtraPtr = FALSE;
445                         iterDataPtr = 0;
446         
447                 }
449                 template<typename... Args>
450                 void ProcessSaveData(wxString strPropertyName,
451                         wxString *strPropertyInc, 
452                         bool *boolAdditionalInc, bool *boolExtraInc, 
453                         std::map<int,std::string>::iterator *iterDataInc,
454                         std::map<int,std::string> *MainMapData,
455                         std::map<int,wxString>::iterator *iterFileTypeInc,
456                         std::map<int,wxString>::iterator *iterFileEncInc,                       
457                         vCard *vCardData,
458                         Args*... args) {
460                         //int intSeekSelectedData = 0;
462                         //DeleteMapDataProcess(IndexNum, Moo);
463                         
464                         strPropertyPtr = strPropertyInc;
465                         boolAdditionalPtr = boolAdditionalInc;
466                         boolExtraPtr = boolExtraInc;
467                         iterDataStringPtr = iterDataInc;
468                         iterFileTypePtr = iterFileTypeInc;
469                         iterFileEncPtr = iterFileEncInc;                        
471                         ProcessSaveDataC(args...);
472                         
473                         std::map<int,std::string>::iterator strIter;
474                         wxString strMainValue;
475                         
476                         int intSeekData = (*iterDataStringPtr)->first;
477                         strIter = MainMapData->find(intSeekData);
478                         
479                         wxString strFileType = (*iterFileTypePtr)->second;
480                         wxString strFileEnc = (*iterFileEncPtr)->second;
482                         EscapeString(&strFileType, FALSE);
483                         EscapeString(&strFileEnc, FALSE);
485                         if (strIter->first == intSeekData){
486         
487                                 strMainValue = wxString::FromAscii(strIter->second.c_str());
488                                 strMainValue.insert(0, wxT("data:") + strFileType + wxT(";") + strFileEnc + wxT(","));
489         
490                         }
491                         
492                         if (*boolExtraPtr == TRUE && !strPropertyPtr->IsEmpty()){
494                                 vCardData->AddRaw(strPropertyName + wxT(";") + *strPropertyPtr, strMainValue);
496                         } else {
498                                 vCardData->AddRaw(strPropertyName, strMainValue);
500                         }
501                         
502                         *boolExtraPtr = FALSE;
503                         *boolAdditionalPtr = FALSE;
504                         iterDataStringPtr = 0;
505         
506                 }
507                 
508                 template<typename... Args>
509                 void ProcessSaveData(wxString strPropertyName,
510                         wxString *strPropertyInc, 
511                         bool *boolAdditionalInc, bool *boolExtraInc, 
512                         std::map<int,wxString>::iterator *iterDataInc,
513                         std::map<int,wxString> *MainMapData,
514                         vCard *vCardData,
515                         Args*... args) {
517                         //int intSeekSelectedData = 0;
519                         //DeleteMapDataProcess(IndexNum, Moo);
520                         strPropertyPtr = strPropertyInc;
521                         boolAdditionalPtr = boolAdditionalInc;
522                         boolExtraPtr = boolExtraInc;
523                         iterDataPtr = iterDataInc;
524                         ProcessSaveDataB(args...);
525                         
526                         std::map<int,wxString>::iterator strIter;
527                         wxString strMainValue;
528                         
529                         int intSeekData = (*iterDataPtr)->first;
530                         strIter = MainMapData->find(intSeekData);
531         
532                         if (strIter->first == intSeekData){
533         
534                             strMainValue = strIter->second;
535         
536                         }
537                         
538                         EscapeString(&strMainValue, FALSE);
539                         
540                         if (*boolExtraPtr == TRUE && !strPropertyPtr->IsEmpty()){
542                                 vCardData->AddRaw(strPropertyName + wxT(";") + *strPropertyPtr, strMainValue);
544                         } else {
546                                 vCardData->AddRaw(strPropertyName, strMainValue);
548                         }
549                         
550                         *boolExtraPtr = FALSE;
551                         *boolAdditionalPtr = FALSE;
552                         iterDataPtr = 0;
553         
554                 }
555                 
556                 template<typename... Args>
557                 void ProcessSaveData(wxString strPropertyName,
558                         wxString *strPropertyInc, 
559                         bool *boolAdditionalInc, bool *boolExtraInc, 
560                         std::map<int,wxString>::iterator *iterDataInc,
561                         wxString *MainData,
562                         vCard *vCardData,
563                         Args*... args) {
565                         //int intSeekSelectedData = 0;
567                         //DeleteMapDataProcess(IndexNum, Moo);
568                         strPropertyPtr = strPropertyInc;
569                         boolAdditionalPtr = boolAdditionalInc;
570                         boolExtraPtr = boolExtraInc;
571                         iterDataPtr = iterDataInc;
572                         
573                         ProcessSaveDataB(args...);
574                         
575                         std::map<int,wxString>::iterator strIter;
577                         if (*boolExtraPtr == TRUE && !strPropertyPtr->IsEmpty()){
579                                 vCardData->AddRaw(strPropertyName + wxT(";") + *strPropertyPtr, *MainData);
581                         } else {
583                                 vCardData->AddRaw(strPropertyName, *MainData);
585                         }
586                         
587                         *boolExtraPtr = FALSE;
588                         *boolAdditionalPtr = FALSE;
589                         iterDataPtr = 0;
590         
591                 }
593                 void ProcessCaptureStringsB () {} ;
594                 
595                 void ProcessCaptureStringsProc(wxString *strCapture);
596                 
597                 template<typename StringCapture, typename... Args>
598                 void ProcessCaptureStringsB(StringCapture *string, Args*... args) {
600                         ProcessCaptureStringsProc(string);
601                         ProcessCaptureStringsB(args...);
603                 }
604                 
605                 template<typename... Args>
606                 void ProcessCaptureStrings(Args*... args) {
608                         //int intSeekSelectedData = 0;
610                         ProcessCaptureStringsB(args...);
611         
612                 }
613                 
614                 void ResetSaveProcessData();
615                 void ContactFileChanged( wxCommandEvent &event );
616                 void ClearContact();
617         
618                 int intValueSeek = 1;
619                 bool IsGroup = FALSE;
620         
621                 /* Items on General Tab */
622         
623                 wxString NameTitle;
624                 wxString NameForename;
625                 wxString NameSurname;
626                 wxString NameOtherNames;
627                 wxString NameSuffix;
628                 wxString NameNickname;
629                 wxString NameDisplayAs;
630                 wxString NameLanguage;
631                 wxString NameAltID;
632                 wxString NameTokens;
633                 
634                 wxString Birthday;
635                 wxString BirthdayAltID;
636                 wxString BirthdayCalScale;
637                 wxString BirthdayTokens;
638                 wxString Anniversary;
639                 wxString AnniversaryAltID;
640                 wxString AnniversaryCalScale;
641                 wxString AnniversaryTokens;
642                 
643                 wxString Gender;
644                 wxString GenderDetails;
645                 wxString GenderTokens;
646                 
647                 wxString UIDToken;
649                 /* We don't use these at the moment but we want to keep
650                   them for compatability reasons */
652                 /*std::map<int, wxString> ExtraFullNames;*/
653                 /*std::map<int, wxString> ExtraNicknames;*/
654         
655                 std::map<int, wxString> FullNamesList;  
656                 std::map<int, wxString> FullNamesListType;
657                 std::map<int, wxString> FullNamesListLanguage;
658                 std::map<int, wxString> FullNamesListAltID;
659                 std::map<int, wxString> FullNamesListPID;
660                 std::map<int, wxString> FullNamesListTokens;
661                 std::map<int, int> FullNamesListPref;
662                 
663                 std::map<int, wxString> GeneralNicknamesList;
664                 std::map<int, wxString> GeneralNicknamesListType;
665                 std::map<int, wxString> GeneralNicknamesListLanguage;
666                 std::map<int, wxString> GeneralNicknamesListAltID;
667                 std::map<int, wxString> GeneralNicknamesListPID;
668                 std::map<int, wxString> GeneralNicknamesListTokens;             
669                 std::map<int, int> GeneralNicknamesListPref;            
670         
671                 std::map<int, wxString> GeneralAddressList;
672                 std::map<int, wxString> GeneralAddressListTown;
673                 std::map<int, wxString> GeneralAddressListCounty;
674                 std::map<int, wxString> GeneralAddressListPostCode;
675                 std::map<int, wxString> GeneralAddressListCountry;
676                 std::map<int, wxString> GeneralAddressListLabel;
677                 std::map<int, wxString> GeneralAddressListLang;         
678                 std::map<int, wxString> GeneralAddressListAltID;
679                 std::map<int, wxString> GeneralAddressListPID;
680                 std::map<int, wxString> GeneralAddressListTokens;
681                 std::map<int, wxString> GeneralAddressListGeo;
682                 std::map<int, wxString> GeneralAddressListTimezone;             
683                 std::map<int, wxString> GeneralAddressListType;
684                 std::map<int, wxString> GeneralAddressListMediatype;
685                 std::map<int, int> GeneralAddressListPref;
686                 
687                 std::map<int, wxString> GeneralEmailList;
688                 std::map<int, wxString> GeneralEmailListAltID;
689                 std::map<int, wxString> GeneralEmailListPID;
690                 std::map<int, wxString> GeneralEmailListType;
691                 std::map<int, wxString> GeneralEmailListTokens;
692                 std::map<int, int> GeneralEmailListPref;
693                 
694                 std::map<int, wxString> GeneralIMList;
695                 std::map<int, wxString> GeneralIMListAltID;
696                 std::map<int, wxString> GeneralIMListPID;
697                 std::map<int, wxString> GeneralIMListType;
698                 std::map<int, wxString> GeneralIMListTokens;
699                 std::map<int, wxString> GeneralIMListMediatype;
700                 std::map<int, int> GeneralIMListPref;
701                 
702                 std::map<int, wxString> GeneralTelephoneList;
703                 std::map<int, wxString> GeneralTelephoneListAltID;
704                 std::map<int, wxString> GeneralTelephoneListPID;
705                 std::map<int, wxString> GeneralTelephoneListType;
706                 std::map<int, wxString> GeneralTelephoneListTokens;
707                 std::map<int, int> GeneralTelephoneListPref;
708                 
709                 std::map<int, wxString> GeneralLanguageList;
710                 std::map<int, wxString> GeneralLanguageListAltID;
711                 std::map<int, wxString> GeneralLanguageListPID;
712                 std::map<int, wxString> GeneralLanguageListType;
713                 std::map<int, wxString> GeneralLanguageListTokens;
714                 std::map<int, int> GeneralLanguageListPref;
715                 
716                 std::map<int, wxString> GeneralTZList;
717                 std::map<int, wxString> GeneralTZListAltID;
718                 std::map<int, wxString> GeneralTZListPID;
719                 std::map<int, wxString> GeneralTZListType;
720                 std::map<int, wxString> GeneralTZListTokens;
721                 std::map<int, wxString> GeneralTZListMediatype;
722                 std::map<int, int> GeneralTZListPref;
723                 
724                 std::map<int, wxString> GeneralGeographyList;
725                 std::map<int, wxString> GeneralGeographyListAltID;
726                 std::map<int, wxString> GeneralGeographyListPID;
727                 std::map<int, wxString> GeneralGeographyListType;
728                 std::map<int, wxString> GeneralGeographyListTokens;
729                 std::map<int, wxString> GeneralGeographyListMediatype;
730                 std::map<int, int> GeneralGeographyListPref;
731         
732                 std::map<int, wxString> GeneralRelatedList;
733                 std::map<int, wxString> GeneralRelatedListRelType;
734                 std::map<int, wxString> GeneralRelatedListLanguage;
735                 std::map<int, wxString> GeneralRelatedListAltID;
736                 std::map<int, wxString> GeneralRelatedListPID;
737                 std::map<int, wxString> GeneralRelatedListType;
738                 std::map<int, wxString> GeneralRelatedListTokens;
739                 std::map<int, int> GeneralRelatedListPref;
740                 
741                 std::map<int, wxString> GeneralWebsiteList;
742                 std::map<int, wxString> GeneralWebsiteListAltID;
743                 std::map<int, wxString> GeneralWebsiteListPID;
744                 std::map<int, wxString> GeneralWebsiteListType;
745                 std::map<int, wxString> GeneralWebsiteListTokens;
746                 std::map<int, wxString> GeneralWebsiteListMediatype;
747                 std::map<int, int> GeneralWebsiteListPref;
748                 
749                 std::map<int, wxString> GeneralTitleList;
750                 std::map<int, wxString> GeneralTitleListLanguage;               
751                 std::map<int, wxString> GeneralTitleListAltID;
752                 std::map<int, wxString> GeneralTitleListPID;
753                 std::map<int, wxString> GeneralTitleListType;
754                 std::map<int, wxString> GeneralTitleListTokens;
755                 std::map<int, int> GeneralTitleListPref;
756                 
757                 std::map<int, wxString> GeneralRoleList;
758                 std::map<int, wxString> GeneralRoleListLanguage;                
759                 std::map<int, wxString> GeneralRoleListAltID;
760                 std::map<int, wxString> GeneralRoleListPID;
761                 std::map<int, wxString> GeneralRoleListType;
762                 std::map<int, wxString> GeneralRoleListTokens;
763                 std::map<int, int> GeneralRoleListPref;
764                 
765                 std::map<int, wxString> GeneralOrganisationsList;
766                 std::map<int, wxString> GeneralOrganisationsListLanguage;               
767                 std::map<int, wxString> GeneralOrganisationsListAltID;
768                 std::map<int, wxString> GeneralOrganisationsListPID;
769                 std::map<int, wxString> GeneralOrganisationsListType;
770                 std::map<int, wxString> GeneralOrganisationsListTokens;
771                 std::map<int, wxString> GeneralOrganisationsListSortAs;
772                 std::map<int, int> GeneralOrganisationsListPref;
773         
774                 std::map<int, wxString> GeneralNoteList;
775                 std::map<int, wxString> GeneralNoteListLanguage;                
776                 std::map<int, wxString> GeneralNoteListAltID;
777                 std::map<int, wxString> GeneralNoteListPID;
778                 std::map<int, wxString> GeneralNoteListType;
779                 std::map<int, wxString> GeneralNoteListTokens;
780                 std::map<int, int> GeneralNoteListPref;
781                 
782                 /* Items on Home Tab */         
783                 
784                 std::map<int, wxString> HomeNicknamesList;
785                 std::map<int, wxString> HomeNicknamesListType;
786                 std::map<int, wxString> HomeNicknamesListLanguage;
787                 std::map<int, wxString> HomeNicknamesListAltID;
788                 std::map<int, wxString> HomeNicknamesListPID;
789                 std::map<int, wxString> HomeNicknamesListTokens;                
790                 std::map<int, int> HomeNicknamesListPref;               
791                 
792                 std::map<int, wxString> HomeAddressList;
793                 std::map<int, wxString> HomeAddressListTown;
794                 std::map<int, wxString> HomeAddressListCounty;
795                 std::map<int, wxString> HomeAddressListPostCode;
796                 std::map<int, wxString> HomeAddressListCountry;
797                 std::map<int, wxString> HomeAddressListLabel;
798                 std::map<int, wxString> HomeAddressListLang;            
799                 std::map<int, wxString> HomeAddressListAltID;
800                 std::map<int, wxString> HomeAddressListPID;
801                 std::map<int, wxString> HomeAddressListTokens;
802                 std::map<int, wxString> HomeAddressListGeo;
803                 std::map<int, wxString> HomeAddressListTimezone;                
804                 std::map<int, wxString> HomeAddressListType;
805                 std::map<int, wxString> HomeAddressListMediatype;
806                 std::map<int, int> HomeAddressListPref;
807                 
808                 std::map<int, wxString> HomeEmailList;
809                 std::map<int, wxString> HomeEmailListAltID;
810                 std::map<int, wxString> HomeEmailListPID;
811                 std::map<int, wxString> HomeEmailListType;
812                 std::map<int, wxString> HomeEmailListTokens;
813                 std::map<int, int> HomeEmailListPref;
814                 
815                 std::map<int, wxString> HomeIMList;
816                 std::map<int, wxString> HomeIMListAltID;
817                 std::map<int, wxString> HomeIMListPID;
818                 std::map<int, wxString> HomeIMListType;
819                 std::map<int, wxString> HomeIMListTokens;
820                 std::map<int, wxString> HomeIMListMediatype;
821                 std::map<int, int> HomeIMListPref;
822                 
823                 std::map<int, wxString> HomeTelephoneList;
824                 std::map<int, wxString> HomeTelephoneListAltID;
825                 std::map<int, wxString> HomeTelephoneListPID;
826                 std::map<int, wxString> HomeTelephoneListType;
827                 std::map<int, wxString> HomeTelephoneListTokens;
828                 std::map<int, int> HomeTelephoneListPref;
829                 
830                 std::map<int, wxString> HomeLanguageList;
831                 std::map<int, wxString> HomeLanguageListAltID;
832                 std::map<int, wxString> HomeLanguageListPID;
833                 std::map<int, wxString> HomeLanguageListType;
834                 std::map<int, wxString> HomeLanguageListTokens;
835                 std::map<int, int> HomeLanguageListPref;
836                 
837                 std::map<int, wxString> HomeTZList;
838                 std::map<int, wxString> HomeTZListAltID;
839                 std::map<int, wxString> HomeTZListPID;
840                 std::map<int, wxString> HomeTZListType;
841                 std::map<int, wxString> HomeTZListTokens;
842                 std::map<int, wxString> HomeTZListMediatype;
843                 std::map<int, int> HomeTZListPref;
844                 
845                 std::map<int, wxString> HomeGeographyList;
846                 std::map<int, wxString> HomeGeographyListAltID;
847                 std::map<int, wxString> HomeGeographyListPID;
848                 std::map<int, wxString> HomeGeographyListType;
849                 std::map<int, wxString> HomeGeographyListTokens;
850                 std::map<int, wxString> HomeGeographyListMediatype;
851                 std::map<int, int> HomeGeographyListPref;
852                 
853                 std::map<int, wxString> HomeRelatedList;
854                 std::map<int, wxString> HomeRelatedListRelType;
855                 std::map<int, wxString> HomeRelatedListLanguage;
856                 std::map<int, wxString> HomeRelatedListAltID;
857                 std::map<int, wxString> HomeRelatedListPID;
858                 std::map<int, wxString> HomeRelatedListType;
859                 std::map<int, wxString> HomeRelatedListTokens;
860                 std::map<int, int> HomeRelatedListPref;         
861                 
862                 std::map<int, wxString> HomeWebsiteList;
863                 std::map<int, wxString> HomeWebsiteListAltID;
864                 std::map<int, wxString> HomeWebsiteListPID;
865                 std::map<int, wxString> HomeWebsiteListType;
866                 std::map<int, wxString> HomeWebsiteListTokens;
867                 std::map<int, wxString> HomeWebsiteListMediatype;
868                 std::map<int, int> HomeWebsiteListPref;
869                 
870                 std::map<int, wxString> HomeTitleList;
871                 std::map<int, wxString> HomeTitleListLanguage;
872                 std::map<int, wxString> HomeTitleListAltID;
873                 std::map<int, wxString> HomeTitleListPID;
874                 std::map<int, wxString> HomeTitleListType;
875                 std::map<int, wxString> HomeTitleListTokens;
876                 std::map<int, int> HomeTitleListPref;
877                 
878                 std::map<int, wxString> HomeRoleList;
879                 std::map<int, wxString> HomeRoleListLanguage;           
880                 std::map<int, wxString> HomeRoleListAltID;
881                 std::map<int, wxString> HomeRoleListPID;
882                 std::map<int, wxString> HomeRoleListType;
883                 std::map<int, wxString> HomeRoleListTokens;
884                 std::map<int, int> HomeRoleListPref;
885                 
886                 std::map<int, wxString> HomeOrganisationsList;
887                 std::map<int, wxString> HomeOrganisationsListLanguage;          
888                 std::map<int, wxString> HomeOrganisationsListAltID;
889                 std::map<int, wxString> HomeOrganisationsListPID;
890                 std::map<int, wxString> HomeOrganisationsListType;
891                 std::map<int, wxString> HomeOrganisationsListTokens;
892                 std::map<int, wxString> HomeOrganisationsListSortAs;
893                 std::map<int, int> HomeOrganisationsListPref;
894                 
895                 std::map<int, wxString> HomeNoteList;
896                 std::map<int, wxString> HomeNoteListLanguage;           
897                 std::map<int, wxString> HomeNoteListAltID;
898                 std::map<int, wxString> HomeNoteListPID;
899                 std::map<int, wxString> HomeNoteListType;
900                 std::map<int, wxString> HomeNoteListTokens;
901                 std::map<int, int> HomeNoteListPref;            
902         
903                 /* Items on the Business tab */
904                 
905                 std::map<int, wxString> BusinessNicknamesList;
906                 std::map<int, wxString> BusinessNicknamesListType;
907                 std::map<int, wxString> BusinessNicknamesListLanguage;
908                 std::map<int, wxString> BusinessNicknamesListAltID;
909                 std::map<int, wxString> BusinessNicknamesListPID;
910                 std::map<int, wxString> BusinessNicknamesListTokens;            
911                 std::map<int, int> BusinessNicknamesListPref;           
912                 
913                 std::map<int, wxString> BusinessAddressList;
914                 std::map<int, wxString> BusinessAddressListTown;
915                 std::map<int, wxString> BusinessAddressListCounty;
916                 std::map<int, wxString> BusinessAddressListPostCode;
917                 std::map<int, wxString> BusinessAddressListCountry;
918                 std::map<int, wxString> BusinessAddressListLabel;
919                 std::map<int, wxString> BusinessAddressListLang;                
920                 std::map<int, wxString> BusinessAddressListAltID;
921                 std::map<int, wxString> BusinessAddressListPID;
922                 std::map<int, wxString> BusinessAddressListTokens;
923                 std::map<int, wxString> BusinessAddressListGeo;
924                 std::map<int, wxString> BusinessAddressListTimezone;            
925                 std::map<int, wxString> BusinessAddressListType;
926                 std::map<int, wxString> BusinessAddressListMediatype;
927                 std::map<int, int> BusinessAddressListPref;
928                 
929                 std::map<int, wxString> BusinessEmailList;
930                 std::map<int, wxString> BusinessEmailListAltID;
931                 std::map<int, wxString> BusinessEmailListPID;
932                 std::map<int, wxString> BusinessEmailListType;
933                 std::map<int, wxString> BusinessEmailListTokens;
934                 std::map<int, int> BusinessEmailListPref;
935                 
936                 std::map<int, wxString> BusinessIMList;
937                 std::map<int, wxString> BusinessIMListAltID;
938                 std::map<int, wxString> BusinessIMListPID;
939                 std::map<int, wxString> BusinessIMListType;
940                 std::map<int, wxString> BusinessIMListTokens;
941                 std::map<int, wxString> BusinessIMListMediatype;
942                 std::map<int, int> BusinessIMListPref;
943                 
944                 std::map<int, wxString> BusinessTelephoneList;
945                 std::map<int, wxString> BusinessTelephoneListAltID;
946                 std::map<int, wxString> BusinessTelephoneListPID;
947                 std::map<int, wxString> BusinessTelephoneListType;
948                 std::map<int, wxString> BusinessTelephoneListTokens;
949                 std::map<int, int> BusinessTelephoneListPref;
950                 
951                 std::map<int, wxString> BusinessLanguageList;
952                 std::map<int, wxString> BusinessLanguageListAltID;
953                 std::map<int, wxString> BusinessLanguageListPID;
954                 std::map<int, wxString> BusinessLanguageListType;
955                 std::map<int, wxString> BusinessLanguageListTokens;
956                 std::map<int, int> BusinessLanguageListPref;
957                 
958                 std::map<int, wxString> BusinessTZList;
959                 std::map<int, wxString> BusinessTZListAltID;
960                 std::map<int, wxString> BusinessTZListPID;
961                 std::map<int, wxString> BusinessTZListType;
962                 std::map<int, wxString> BusinessTZListTokens;
963                 std::map<int, wxString> BusinessTZListMediatype;
964                 std::map<int, int> BusinessTZListPref;
965                 
966                 std::map<int, wxString> BusinessGeographyList;
967                 std::map<int, wxString> BusinessGeographyListAltID;
968                 std::map<int, wxString> BusinessGeographyListPID;
969                 std::map<int, wxString> BusinessGeographyListType;
970                 std::map<int, wxString> BusinessGeographyListTokens;
971                 std::map<int, wxString> BusinessGeographyListMediatype;
972                 std::map<int, int> BusinessGeographyListPref;
973                 
974                 std::map<int, wxString> BusinessRelatedList;
975                 std::map<int, wxString> BusinessRelatedListRelType;
976                 std::map<int, wxString> BusinessRelatedListLanguage;
977                 std::map<int, wxString> BusinessRelatedListAltID;
978                 std::map<int, wxString> BusinessRelatedListPID;
979                 std::map<int, wxString> BusinessRelatedListType;
980                 std::map<int, wxString> BusinessRelatedListTokens;
981                 std::map<int, int> BusinessRelatedListPref;                     
982                 
983                 std::map<int, wxString> BusinessWebsiteList;
984                 std::map<int, wxString> BusinessWebsiteListAltID;
985                 std::map<int, wxString> BusinessWebsiteListPID;
986                 std::map<int, wxString> BusinessWebsiteListType;
987                 std::map<int, wxString> BusinessWebsiteListTokens;
988                 std::map<int, wxString> BusinessWebsiteListMediatype;
989                 std::map<int, int> BusinessWebsiteListPref;
990                 
991                 std::map<int, wxString> BusinessTitleList;
992                 std::map<int, wxString> BusinessTitleListLanguage;              
993                 std::map<int, wxString> BusinessTitleListAltID;
994                 std::map<int, wxString> BusinessTitleListPID;
995                 std::map<int, wxString> BusinessTitleListType;
996                 std::map<int, wxString> BusinessTitleListTokens;
997                 std::map<int, int> BusinessTitleListPref;
998                 
999                 std::map<int, wxString> BusinessRoleList;
1000                 std::map<int, wxString> BusinessRoleListLanguage;               
1001                 std::map<int, wxString> BusinessRoleListAltID;
1002                 std::map<int, wxString> BusinessRoleListPID;
1003                 std::map<int, wxString> BusinessRoleListType;
1004                 std::map<int, wxString> BusinessRoleListTokens;
1005                 std::map<int, int> BusinessRoleListPref;
1006                 
1007                 std::map<int, wxString> BusinessOrganisationsList;
1008                 std::map<int, wxString> BusinessOrganisationsListLanguage;              
1009                 std::map<int, wxString> BusinessOrganisationsListAltID;
1010                 std::map<int, wxString> BusinessOrganisationsListPID;
1011                 std::map<int, wxString> BusinessOrganisationsListType;
1012                 std::map<int, wxString> BusinessOrganisationsListTokens;
1013                 std::map<int, wxString> BusinessOrganisationsListSortAs;                
1014                 std::map<int, int> BusinessOrganisationsListPref;
1015                 
1016                 std::map<int, wxString> BusinessNoteList;
1017                 std::map<int, wxString> BusinessNoteListLanguage;               
1018                 std::map<int, wxString> BusinessNoteListAltID;
1019                 std::map<int, wxString> BusinessNoteListPID;
1020                 std::map<int, wxString> BusinessNoteListType;
1021                 std::map<int, wxString> BusinessNoteListTokens;
1022                 std::map<int, int> BusinessNoteListPref;                
1023                 
1024                 /* Items on the Categories tab */
1025                 
1026                 std::map<int, wxString> CategoriesList;
1027                 std::map<int, wxString> CategoriesListAltID;
1028                 std::map<int, wxString> CategoriesListPID;
1029                 std::map<int, wxString> CategoriesListType;
1030                 std::map<int, wxString> CategoriesListTokens;
1031                 std::map<int, int> CategoriesListPref;  
1032                 
1033                 /* Items on the Groups tab */
1034                 
1035                 std::map<int, wxString> GroupsList;
1036                 std::map<int, wxString> GroupsListAltID;
1037                 std::map<int, wxString> GroupsListPID;
1038                 std::map<int, wxString> GroupsListType;
1039                 std::map<int, wxString> GroupsListTokens;
1040                 std::map<int, int> GroupsListPref;
1041                 
1042                 /* Items on the Pictures tab */
1043                 
1044                 std::map<int, std::string> PicturesList;
1045                 std::map<int, wxString> PicturesListAltID;
1046                 std::map<int, wxString> PicturesListPID;
1047                 std::map<int, wxString> PicturesListType;
1048                 std::map<int, wxString> PicturesListPicEncType;
1049                 std::map<int, wxString> PicturesListPictureType;
1050                 std::map<int, wxString> PicturesListTokens;
1051                 std::map<int, wxString> PicturesListMediatype;          
1052                 std::map<int, int> PicturesListPref;
1054                 /* Items on the Logos tab */
1055                 
1056                 std::map<int, std::string> LogosList;
1057                 std::map<int, wxString> LogosListAltID;
1058                 std::map<int, wxString> LogosListPID;
1059                 std::map<int, wxString> LogosListType;
1060                 std::map<int, wxString> LogosListPicEncType;            
1061                 std::map<int, wxString> LogosListPictureType;
1062                 std::map<int, wxString> LogosListTokens;
1063                 std::map<int, wxString> LogosListMediatype;             
1064                 std::map<int, int> LogosListPref;
1065                 
1066                 /* Items on the Sounds tab */
1067                 
1068                 std::map<int, std::string> SoundsList;
1069                 std::map<int, wxString> SoundsListAltID;
1070                 std::map<int, wxString> SoundsListPID;
1071                 std::map<int, wxString> SoundsListType;
1072                 std::map<int, wxString> SoundsListAudioEncType;         
1073                 std::map<int, wxString> SoundsListAudioType;            
1074                 std::map<int, wxString> SoundsListTokens;
1075                 std::map<int, wxString> SoundsListMediatype;            
1076                 std::map<int, int> SoundsListPref;      
1077                 
1078                 /* Items on the Calendaring tab */
1079                 
1080                 std::map<int, wxString> CalendarList;
1081                 std::map<int, wxString> CalendarListAltID;
1082                 std::map<int, wxString> CalendarListPID;
1083                 std::map<int, wxString> CalendarListType;
1084                 std::map<int, wxString> CalendarListTokens;
1085                 std::map<int, wxString> CalendarListMediatype;          
1086                 std::map<int, int> CalendarListPref;
1087                 
1088                 std::map<int, wxString> CalendarRequestList;
1089                 std::map<int, wxString> CalendarRequestListAltID;
1090                 std::map<int, wxString> CalendarRequestListPID;
1091                 std::map<int, wxString> CalendarRequestListType;
1092                 std::map<int, wxString> CalendarRequestListTokens;
1093                 std::map<int, wxString> CalendarRequestListMediatype;           
1094                 std::map<int, int> CalendarRequestListPref;             
1095                                 
1096                 std::map<int, wxString> FreeBusyList;
1097                 std::map<int, wxString> FreeBusyListAltID;
1098                 std::map<int, wxString> FreeBusyListPID;
1099                 std::map<int, wxString> FreeBusyListType;
1100                 std::map<int, wxString> FreeBusyListTokens;
1101                 std::map<int, wxString> FreeBusyListMediatype;          
1102                 std::map<int, int> FreeBusyListPref;
1103                 
1104                 /* Items on the Security tab */
1105                 
1106                 std::map<int, wxString> KeyList;
1107                 std::map<int, wxString> KeyListAltID;
1108                 std::map<int, wxString> KeyListPID;
1109                 std::map<int, bool> KeyListKeyType;             
1110                 std::map<int, wxString> KeyListDataType;                
1111                 std::map<int, wxString> KeyListDataEncType;
1112                 std::map<int, wxString> KeyListType;
1113                 std::map<int, wxString> KeyListTokens;
1114                 std::map<int, int> KeyListPref;
1115                 
1116                 /* Items on the Other tab */
1117                 
1118                 std::map<int, wxString> VendorList;
1119                 std::map<int, wxString> VendorListPEN;
1120                 std::map<int, wxString> VendorListElement;
1121                 
1122                 std::map<int, wxString> XTokenList;             
1123                 std::map<int, wxString> XTokenListTokens;                       
1124         
1125                 /* Items regarding account and filename */
1126                 
1127                 wxString wxSContactFilename;
1128                 wxString wxSContactAccount;
1129                 bool boolContactModified;
1130                 int intSeekSelectedData;
1131                 
1132                 /* Section for saving/loading data */
1133                 
1134                 wxString *strPropertyPtr;
1135                 bool *boolAdditionalPtr;
1136                 bool *boolExtraPtr;
1137                 std::map<int,wxString>::iterator *iterDataPtr = 0;
1138                 std::map<int,std::string>::iterator *iterDataStringPtr = 0;
1139                 std::map<int,wxString>::iterator *iterFileTypePtr = 0;
1140                 std::map<int,wxString>::iterator *iterFileEncPtr = 0;
1141                 
1142                 wxString ETag;
1143                 wxString ETagOriginal;
1144                 
1145                 wxString strValue;
1146                 wxString strValue2;
1147                 wxString strValue3;
1149                 bool boolValue = FALSE;
1150                 bool boolValue2 = FALSE;
1151                 size_t intValue = 0;
1152                 int intValue2 = 0;
1153                 int intValue3 = 0;
1154                 bool BinaryDataProc = FALSE;
1155                 bool EditMode = FALSE;
1156                 bool DialogOpen = FALSE;
1157                 
1158                 /*
1159                 std::string base64dec;
1160                 sf::Sound AudioPlayback;
1161                 sf::SoundBuffer AudioBuffer;
1162                 */
1163                 
1164                 size_t base64declen;
1165                 std::string base64dec;
1166                 sf::Music AudioPlayback;
1167                 AudioStream AudioStreamPlayback;
1168                 sf::SoundBuffer AudioBuffer;
1169                 
1170                 wxBitmap PictureImage;
1171                 wxBitmap LogoImage;
1172                 
1173                 void SplitValues(wxString *PropertyLine,
1174                         std::map<int,int> *SplitPoints, 
1175                         std::map<int,int> *SplitLength, 
1176                         int intSize);
1177                 
1178                 frmMain *MainPtr;
1179                 frmActivityMgr *ActMgrPtr;
1180                 wxETagProcessTimer *ETagTmrPtr;
1181                 wxContactFileMonitorTimer FMTimer;
1182                 
1183                 int ContactEditorUID;
1184                 
1185                 DECLARE_EVENT_TABLE()
1186         
1187         //// end generated class members
1188         
1189 };
1191 #endif // __frmContactEditor__
Xestia Software Development
Yn Maystri
© 2006 - 2019 Xestia Software Development
Software

Xestia Address Book
Xestia Calendar
Development

Xestia Gelforn
Everything else

About
News
Privacy Policy