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 #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
50 struct frmActivityMgr;
52 // Special Audio Stream for detecting when a sound has stopped playing.
53 class AudioStream: public sf::Music
57 bool onGetData(SoundStream::Chunk& data)
60 bool running = sf::Music::onGetData(data);
67 bool GetPlayingStatus(){ return FilePlaying; }
71 void load(const sf::SoundBuffer& buffer)
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
79 // initialize the base class
80 initialize(buffer.getChannelCount(), buffer.getSampleRate());
83 bool GetPlayingStatus(){ return FilePlaying; }
87 virtual bool onGetData(Chunk& data)
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())
100 // end not reached: stream the samples and continue
101 data.sampleCount = samplesToStream;
102 m_currentSample += samplesToStream;
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();
116 virtual void onSeek(sf::Time TimeOffset)
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());
122 std::vector<sf::Int16> m_samples;
123 std::size_t m_currentSample;
126 bool FilePlaying = TRUE;
129 /** Implementing frmContactEditorADT */
130 class frmContactEditor : public frmContactEditorADT
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,
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);
347 frmContactEditor( wxWindow* parent );
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);
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 () {} ;
364 template<typename MapData, typename... Args>
365 void DeleteMapDataB(MapData* mapdata, Args*... args) {
367 DeleteMapDataProcess(intSeekSelectedData, mapdata);
368 DeleteMapDataB(args...);
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...);
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);
396 void ProcessSaveDataB () { } ;
397 void ProcessSaveDataC () { } ;
399 template<typename PropName, typename MapData, typename... Args>
400 void ProcessSaveDataB(PropName propname, MapData* mapdata, Args*... args) {
402 ProcessSaveDataProc(propname, mapdata);
403 ProcessSaveDataB(args...);
407 template<typename PropName, typename MapData, typename... Args>
408 void ProcessSaveDataC(PropName propname, MapData* mapdata, Args*... args) {
410 ProcessSaveDataStrProc(propname, mapdata);
411 ProcessSaveDataC(args...);
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,
426 //int intSeekSelectedData = 0;
428 //DeleteMapDataProcess(IndexNum, Moo);
430 strPropertyPtr = strPropertyInc;
431 boolAdditionalPtr = boolAdditionalInc;
432 boolExtraPtr = boolExtraInc;
433 iterDataPtr = iterDataInc;
434 iterFileTypePtr = iterFileTypeInc;
435 iterFileEncPtr = iterFileEncInc;
436 ProcessSaveDataB(args...);
438 std::map<int,wxString>::iterator strIter;
439 wxString strMainValue;
441 int intSeekData = (*iterDataStringPtr)->first;
442 strIter = MainMapData->find(intSeekData);
444 wxString strFileType = (*iterFileTypePtr)->second;
445 wxString strFileEnc = (*iterFileEncPtr)->second;
447 EscapeString(&strFileType, FALSE);
448 EscapeString(&strFileEnc, FALSE);
450 if (strIter->first == intSeekData){
452 strMainValue = strIter->second;
453 strMainValue.insert(0, wxT("data:") + strFileType + wxT(";") + strFileEnc + wxT(","));
457 if (*boolExtraPtr == TRUE){
459 vCardData->AddRaw(strPropertyName + wxT(";") + *strPropertyPtr, strMainValue);
463 vCardData->AddRaw(strPropertyName, strMainValue);
467 boolExtraPtr = FALSE;
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,
483 //int intSeekSelectedData = 0;
485 //DeleteMapDataProcess(IndexNum, Moo);
487 strPropertyPtr = strPropertyInc;
488 boolAdditionalPtr = boolAdditionalInc;
489 boolExtraPtr = boolExtraInc;
490 iterDataStringPtr = iterDataInc;
491 iterFileTypePtr = iterFileTypeInc;
492 iterFileEncPtr = iterFileEncInc;
494 ProcessSaveDataC(args...);
496 std::map<int,std::string>::iterator strIter;
497 wxString strMainValue;
499 int intSeekData = (*iterDataStringPtr)->first;
500 strIter = MainMapData->find(intSeekData);
502 wxString strFileType = (*iterFileTypePtr)->second;
503 wxString strFileEnc = (*iterFileEncPtr)->second;
505 EscapeString(&strFileType, FALSE);
506 EscapeString(&strFileEnc, FALSE);
508 if (strIter->first == intSeekData){
510 strMainValue = wxString::FromAscii(strIter->second.c_str());
511 strMainValue.insert(0, wxT("data:") + strFileType + wxT(";") + strFileEnc + wxT(","));
515 if (*boolExtraPtr == TRUE && !strPropertyPtr->IsEmpty()){
517 vCardData->AddRaw(strPropertyName + wxT(";") + *strPropertyPtr, strMainValue);
521 vCardData->AddRaw(strPropertyName, strMainValue);
525 *boolExtraPtr = FALSE;
526 *boolAdditionalPtr = FALSE;
527 iterDataStringPtr = 0;
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,
540 //int intSeekSelectedData = 0;
542 //DeleteMapDataProcess(IndexNum, Moo);
543 strPropertyPtr = strPropertyInc;
544 boolAdditionalPtr = boolAdditionalInc;
545 boolExtraPtr = boolExtraInc;
546 iterDataPtr = iterDataInc;
547 ProcessSaveDataB(args...);
549 std::map<int,wxString>::iterator strIter;
550 wxString strMainValue;
552 int intSeekData = (*iterDataPtr)->first;
553 strIter = MainMapData->find(intSeekData);
555 if (strIter->first == intSeekData){
557 strMainValue = strIter->second;
561 EscapeString(&strMainValue, FALSE);
563 if (*boolExtraPtr == TRUE && !strPropertyPtr->IsEmpty()){
565 vCardData->AddRaw(strPropertyName + wxT(";") + *strPropertyPtr, strMainValue);
569 vCardData->AddRaw(strPropertyName, strMainValue);
573 *boolExtraPtr = FALSE;
574 *boolAdditionalPtr = FALSE;
579 template<typename... Args>
580 void ProcessSaveData(wxString strPropertyName,
581 wxString *strPropertyInc,
582 bool *boolAdditionalInc, bool *boolExtraInc,
583 std::map<int,wxString>::iterator *iterDataInc,
588 //int intSeekSelectedData = 0;
590 //DeleteMapDataProcess(IndexNum, Moo);
591 strPropertyPtr = strPropertyInc;
592 boolAdditionalPtr = boolAdditionalInc;
593 boolExtraPtr = boolExtraInc;
594 iterDataPtr = iterDataInc;
596 ProcessSaveDataB(args...);
598 std::map<int,wxString>::iterator strIter;
600 if (*boolExtraPtr == TRUE && !strPropertyPtr->IsEmpty()){
602 vCardData->AddRaw(strPropertyName + wxT(";") + *strPropertyPtr, *MainData);
606 vCardData->AddRaw(strPropertyName, *MainData);
610 *boolExtraPtr = FALSE;
611 *boolAdditionalPtr = FALSE;
616 void ProcessCaptureStringsB () {} ;
618 void ProcessCaptureStringsProc(wxString *strCapture);
620 template<typename StringCapture, typename... Args>
621 void ProcessCaptureStringsB(StringCapture *string, Args*... args) {
623 ProcessCaptureStringsProc(string);
624 ProcessCaptureStringsB(args...);
628 template<typename... Args>
629 void ProcessCaptureStrings(Args*... args) {
631 //int intSeekSelectedData = 0;
633 ProcessCaptureStringsB(args...);
637 void ResetSaveProcessData();
638 void ContactFileChanged( wxCommandEvent &event );
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,
648 void LoadNickname(wxString wxSpropertySeg1, wxString wxSPropertySeg2,
649 int *NicknameCount, vCard *ContactData);
650 void LoadGender(wxString wxSPropertySeg1, wxString wxSPropertySeg2, bool *GenderProcessed,
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);
676 int intValueSeek = 1;
677 bool IsGroup = FALSE;
679 /* Items on General Tab */
682 wxString NameForename;
683 wxString NameSurname;
684 wxString NameOtherNames;
686 wxString NameNickname;
687 wxString NameDisplayAs;
688 wxString NameLanguage;
693 wxString BirthdayAltID;
694 wxString BirthdayCalScale;
695 wxString BirthdayTokens;
696 wxString Anniversary;
697 wxString AnniversaryAltID;
698 wxString AnniversaryCalScale;
699 wxString AnniversaryTokens;
702 wxString GenderDetails;
703 wxString GenderTokens;
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;*/
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
840 /* Items on Home Tab */
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
961 /* Items on the Business tab */
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
1082 /* Items on the Categories tab */
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;
1091 /* Items on the Groups tab */
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;
1100 /* Items on the Pictures tab */
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 */
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;
1124 /* Items on the Sounds tab */
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;
1136 /* Items on the Calendaring tab */
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;
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;
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;
1162 /* Items on the Security tab */
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;
1174 /* Items on the Other tab */
1176 std::map<int, wxString> VendorList;
1177 std::map<int, wxString> VendorListPEN;
1178 std::map<int, wxString> VendorListElement;
1180 std::map<int, wxString> XTokenList;
1181 std::map<int, wxString> XTokenListTokens;
1183 /* Items regarding account and filename */
1185 wxString wxSContactFilename;
1186 wxString wxSContactAccount;
1187 bool boolContactModified;
1188 int intSeekSelectedData;
1190 /* Section for saving/loading data */
1192 wxString *strPropertyPtr;
1193 bool *boolAdditionalPtr;
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;
1201 wxString ETagOriginal;
1207 bool boolValue = FALSE;
1208 bool boolValue2 = FALSE;
1209 size_t intValue = 0;
1212 bool BinaryDataProc = FALSE;
1213 bool EditMode = FALSE;
1214 bool StartupEditMode = FALSE;
1215 bool DialogOpen = FALSE;
1218 std::string base64dec;
1219 sf::Sound AudioPlayback;
1220 sf::SoundBuffer AudioBuffer;
1223 size_t base64declen;
1224 std::string base64dec;
1225 sf::Music AudioPlayback;
1226 AudioStream AudioStreamPlayback;
1227 sf::SoundBuffer AudioBuffer;
1229 wxBitmap PictureImage;
1232 void SplitValues(wxString *PropertyLine,
1233 std::map<int,int> *SplitPoints,
1234 std::map<int,int> *SplitLength,
1238 frmActivityMgr *ActMgrPtr;
1239 wxETagProcessTimer *ETagTmrPtr;
1240 wxContactFileMonitorTimer FMTimer;
1242 int ContactEditorUID;
1244 DECLARE_EVENT_TABLE()
1246 //// end generated class members
1250 #endif // __frmContactEditor__