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