1 #ifndef __frmContactEditor__
2 #define __frmContactEditor__
9 #include <SFML/Audio.hpp>
13 Subclass of frmContactEditorADT, which is generated by wxFormBuilder.
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
28 struct frmActivityMgr;
30 // Special Audio Stream for detecting when a sound has stopped playing.
31 class AudioStream: public sf::Music
35 bool onGetData(SoundStream::Chunk& data)
38 bool running = sf::Music::onGetData(data);
45 bool GetPlayingStatus(){ return FilePlaying; }
49 void load(const sf::SoundBuffer& buffer)
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
57 // initialize the base class
58 initialize(buffer.getChannelCount(), buffer.getSampleRate());
61 bool GetPlayingStatus(){ return FilePlaying; }
65 virtual bool onGetData(Chunk& data)
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())
78 // end not reached: stream the samples and continue
79 data.sampleCount = samplesToStream;
80 m_currentSample += samplesToStream;
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();
94 virtual void onSeek(sf::Time TimeOffset)
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());
100 std::vector<sf::Int16> m_samples;
101 std::size_t m_currentSample;
104 bool FilePlaying = TRUE;
107 /** Implementing frmContactEditorADT */
108 class frmContactEditor : public frmContactEditorADT
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,
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);
325 frmContactEditor( wxWindow* parent );
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);
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 () {} ;
341 template<typename MapData, typename... Args>
342 void DeleteMapDataB(MapData* mapdata, Args*... args) {
344 DeleteMapDataProcess(intSeekSelectedData, mapdata);
345 DeleteMapDataB(args...);
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...);
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);
373 void ProcessSaveDataB () { } ;
374 void ProcessSaveDataC () { } ;
376 template<typename PropName, typename MapData, typename... Args>
377 void ProcessSaveDataB(PropName propname, MapData* mapdata, Args*... args) {
379 ProcessSaveDataProc(propname, mapdata);
380 ProcessSaveDataB(args...);
384 template<typename PropName, typename MapData, typename... Args>
385 void ProcessSaveDataC(PropName propname, MapData* mapdata, Args*... args) {
387 ProcessSaveDataStrProc(propname, mapdata);
388 ProcessSaveDataC(args...);
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,
403 //int intSeekSelectedData = 0;
405 //DeleteMapDataProcess(IndexNum, Moo);
407 strPropertyPtr = strPropertyInc;
408 boolAdditionalPtr = boolAdditionalInc;
409 boolExtraPtr = boolExtraInc;
410 iterDataPtr = iterDataInc;
411 iterFileTypePtr = iterFileTypeInc;
412 iterFileEncPtr = iterFileEncInc;
413 ProcessSaveDataB(args...);
415 std::map<int,wxString>::iterator strIter;
416 wxString strMainValue;
418 int intSeekData = (*iterDataStringPtr)->first;
419 strIter = MainMapData->find(intSeekData);
421 wxString strFileType = (*iterFileTypePtr)->second;
422 wxString strFileEnc = (*iterFileEncPtr)->second;
424 EscapeString(&strFileType, FALSE);
425 EscapeString(&strFileEnc, FALSE);
427 if (strIter->first == intSeekData){
429 strMainValue = strIter->second;
430 strMainValue.insert(0, wxT("data:") + strFileType + wxT(";") + strFileEnc + wxT(","));
434 if (*boolExtraPtr == TRUE){
436 vCardData->AddRaw(strPropertyName + wxT(";") + *strPropertyPtr, strMainValue);
440 vCardData->AddRaw(strPropertyName, strMainValue);
444 boolExtraPtr = FALSE;
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,
460 //int intSeekSelectedData = 0;
462 //DeleteMapDataProcess(IndexNum, Moo);
464 strPropertyPtr = strPropertyInc;
465 boolAdditionalPtr = boolAdditionalInc;
466 boolExtraPtr = boolExtraInc;
467 iterDataStringPtr = iterDataInc;
468 iterFileTypePtr = iterFileTypeInc;
469 iterFileEncPtr = iterFileEncInc;
471 ProcessSaveDataC(args...);
473 std::map<int,std::string>::iterator strIter;
474 wxString strMainValue;
476 int intSeekData = (*iterDataStringPtr)->first;
477 strIter = MainMapData->find(intSeekData);
479 wxString strFileType = (*iterFileTypePtr)->second;
480 wxString strFileEnc = (*iterFileEncPtr)->second;
482 EscapeString(&strFileType, FALSE);
483 EscapeString(&strFileEnc, FALSE);
485 if (strIter->first == intSeekData){
487 strMainValue = wxString::FromAscii(strIter->second.c_str());
488 strMainValue.insert(0, wxT("data:") + strFileType + wxT(";") + strFileEnc + wxT(","));
492 if (*boolExtraPtr == TRUE && !strPropertyPtr->IsEmpty()){
494 vCardData->AddRaw(strPropertyName + wxT(";") + *strPropertyPtr, strMainValue);
498 vCardData->AddRaw(strPropertyName, strMainValue);
502 *boolExtraPtr = FALSE;
503 *boolAdditionalPtr = FALSE;
504 iterDataStringPtr = 0;
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,
517 //int intSeekSelectedData = 0;
519 //DeleteMapDataProcess(IndexNum, Moo);
520 strPropertyPtr = strPropertyInc;
521 boolAdditionalPtr = boolAdditionalInc;
522 boolExtraPtr = boolExtraInc;
523 iterDataPtr = iterDataInc;
524 ProcessSaveDataB(args...);
526 std::map<int,wxString>::iterator strIter;
527 wxString strMainValue;
529 int intSeekData = (*iterDataPtr)->first;
530 strIter = MainMapData->find(intSeekData);
532 if (strIter->first == intSeekData){
534 strMainValue = strIter->second;
538 EscapeString(&strMainValue, FALSE);
540 if (*boolExtraPtr == TRUE && !strPropertyPtr->IsEmpty()){
542 vCardData->AddRaw(strPropertyName + wxT(";") + *strPropertyPtr, strMainValue);
546 vCardData->AddRaw(strPropertyName, strMainValue);
550 *boolExtraPtr = FALSE;
551 *boolAdditionalPtr = FALSE;
556 template<typename... Args>
557 void ProcessSaveData(wxString strPropertyName,
558 wxString *strPropertyInc,
559 bool *boolAdditionalInc, bool *boolExtraInc,
560 std::map<int,wxString>::iterator *iterDataInc,
565 //int intSeekSelectedData = 0;
567 //DeleteMapDataProcess(IndexNum, Moo);
568 strPropertyPtr = strPropertyInc;
569 boolAdditionalPtr = boolAdditionalInc;
570 boolExtraPtr = boolExtraInc;
571 iterDataPtr = iterDataInc;
573 ProcessSaveDataB(args...);
575 std::map<int,wxString>::iterator strIter;
577 if (*boolExtraPtr == TRUE && !strPropertyPtr->IsEmpty()){
579 vCardData->AddRaw(strPropertyName + wxT(";") + *strPropertyPtr, *MainData);
583 vCardData->AddRaw(strPropertyName, *MainData);
587 *boolExtraPtr = FALSE;
588 *boolAdditionalPtr = FALSE;
593 void ProcessCaptureStringsB () {} ;
595 void ProcessCaptureStringsProc(wxString *strCapture);
597 template<typename StringCapture, typename... Args>
598 void ProcessCaptureStringsB(StringCapture *string, Args*... args) {
600 ProcessCaptureStringsProc(string);
601 ProcessCaptureStringsB(args...);
605 template<typename... Args>
606 void ProcessCaptureStrings(Args*... args) {
608 //int intSeekSelectedData = 0;
610 ProcessCaptureStringsB(args...);
614 void ResetSaveProcessData();
615 void ContactFileChanged( wxCommandEvent &event );
618 int intValueSeek = 1;
619 bool IsGroup = FALSE;
621 /* Items on General Tab */
624 wxString NameForename;
625 wxString NameSurname;
626 wxString NameOtherNames;
628 wxString NameNickname;
629 wxString NameDisplayAs;
630 wxString NameLanguage;
635 wxString BirthdayAltID;
636 wxString BirthdayCalScale;
637 wxString BirthdayTokens;
638 wxString Anniversary;
639 wxString AnniversaryAltID;
640 wxString AnniversaryCalScale;
641 wxString AnniversaryTokens;
644 wxString GenderDetails;
645 wxString GenderTokens;
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;*/
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
782 /* Items on Home Tab */
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
903 /* Items on the Business tab */
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
1024 /* Items on the Categories tab */
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;
1033 /* Items on the Groups tab */
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;
1042 /* Items on the Pictures tab */
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 */
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;
1066 /* Items on the Sounds tab */
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;
1078 /* Items on the Calendaring tab */
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;
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;
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;
1104 /* Items on the Security tab */
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;
1116 /* Items on the Other tab */
1118 std::map<int, wxString> VendorList;
1119 std::map<int, wxString> VendorListPEN;
1120 std::map<int, wxString> VendorListElement;
1122 std::map<int, wxString> XTokenList;
1123 std::map<int, wxString> XTokenListTokens;
1125 /* Items regarding account and filename */
1127 wxString wxSContactFilename;
1128 wxString wxSContactAccount;
1129 bool boolContactModified;
1130 int intSeekSelectedData;
1132 /* Section for saving/loading data */
1134 wxString *strPropertyPtr;
1135 bool *boolAdditionalPtr;
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;
1143 wxString ETagOriginal;
1149 bool boolValue = FALSE;
1150 bool boolValue2 = FALSE;
1151 size_t intValue = 0;
1154 bool BinaryDataProc = FALSE;
1155 bool EditMode = FALSE;
1156 bool DialogOpen = FALSE;
1159 std::string base64dec;
1160 sf::Sound AudioPlayback;
1161 sf::SoundBuffer AudioBuffer;
1164 size_t base64declen;
1165 std::string base64dec;
1166 sf::Music AudioPlayback;
1167 AudioStream AudioStreamPlayback;
1168 sf::SoundBuffer AudioBuffer;
1170 wxBitmap PictureImage;
1173 void SplitValues(wxString *PropertyLine,
1174 std::map<int,int> *SplitPoints,
1175 std::map<int,int> *SplitLength,
1179 frmActivityMgr *ActMgrPtr;
1180 wxETagProcessTimer *ETagTmrPtr;
1181 wxContactFileMonitorTimer FMTimer;
1183 int ContactEditorUID;
1185 DECLARE_EVENT_TABLE()
1187 //// end generated class members
1191 #endif // __frmContactEditor__