#ifndef __frmContactEditor__ #define __frmContactEditor__ #include #include #include #include /** @file Subclass of frmContactEditorADT, which is generated by wxFormBuilder. */ #include "../AppXestiaAddrBk.h" #include "../vcard/vcard.h" #include "../common/textprocessing.h" #include "../common/etag.h" #include "../common/timers.h" #include "../frmActivityMgr.h" #include "../frmMain.h" //// end generated include struct frmMain; struct frmActivityMgr; // Special Audio Stream for detecting when a sound has stopped playing. class AudioStream: public sf::Music { private: bool onGetData(SoundStream::Chunk& data) { FilePlaying = TRUE; bool running = sf::Music::onGetData(data); if(!running) OnMusicEnd(); return running; } public: void OnMusicEnd() { } bool GetPlayingStatus(){ return FilePlaying; } /* void load(const sf::SoundBuffer& buffer) { // extract the audio samples from the sound buffer to our own container m_samples.assign(buffer.getSamples(), buffer.getSamples() + buffer.getSampleCount()); // reset the current playing position m_currentSample = 0; // initialize the base class initialize(buffer.getChannelCount(), buffer.getSampleRate()); } bool GetPlayingStatus(){ return FilePlaying; } private: virtual bool onGetData(Chunk& data) { // number of samples to stream every time the function is called; // in a more robust implementation, it would rather be a fixed // amount of time rather than an arbitrary number of samples const int samplesToStream = 50000; // set the pointer to the next audio samples to be played data.samples = &m_samples[m_currentSample]; // have we reached the end of the sound? if (m_currentSample + samplesToStream <= m_samples.size()) { // end not reached: stream the samples and continue data.sampleCount = samplesToStream; m_currentSample += samplesToStream; FilePlaying = TRUE; return true; } else { // end of stream reached: stream the remaining samples and stop playback data.sampleCount = m_samples.size() - m_currentSample; m_currentSample = m_samples.size(); FilePlaying = FALSE; return false; } } virtual void onSeek(sf::Time TimeOffset) { // compute the corresponding sample index according to the sample rate and channel count m_currentSample = static_cast(TimeOffset.asSeconds() * getSampleRate() * getChannelCount()); } std::vector m_samples; std::size_t m_currentSample; */ bool FilePlaying = TRUE; }; /** Implementing frmContactEditorADT */ class frmContactEditor : public frmContactEditorADT { protected: // Handlers for frmContactEditorADT events. void AddGeneralNickname( wxCommandEvent& event ); void ModifyGeneralNickname( wxCommandEvent& event ); void DeleteGeneralNickname( wxCommandEvent& event ); void AddHomeNickname( wxCommandEvent& event ); void ModifyHomeNickname( wxCommandEvent& event ); void DeleteHomeNickname( wxCommandEvent& event ); void AddBusinessNickname( wxCommandEvent& event ); void ModifyBusinessNickname( wxCommandEvent& event ); void DeleteBusinessNickname( wxCommandEvent& event ); void AddGeneralAddress( wxCommandEvent& event ); void ModifyGeneralAddress( wxCommandEvent& event ); void DeleteGeneralAddress( wxCommandEvent& event ); void AddGeneralEmail( wxCommandEvent& event ); void ModifyGeneralEmail( wxCommandEvent& event ); void DeleteGeneralEmail( wxCommandEvent& event ); void AddGeneralIM( wxCommandEvent& event ); void ModifyGeneralIM( wxCommandEvent& event ); void DeleteGeneralIM( wxCommandEvent& event ); void MoveGeneralIMUp( wxCommandEvent& event ); void MoveGeneralIMDown( wxCommandEvent& event ); void AddGeneralTelephone( wxCommandEvent& event ); void ModifyGeneralTelephone( wxCommandEvent& event ); void DeleteGeneralTelephone( wxCommandEvent& event ); void AddGeneralLanguages( wxCommandEvent& event ); void ModifyGeneralLanguages( wxCommandEvent& event ); void DeleteGeneralLanguage( wxCommandEvent& event ); void AddGeneralTimezone( wxCommandEvent& event ); void ModifyGeneralTimezone( wxCommandEvent& event ); void DeleteGeneralTimezone( wxCommandEvent& event ); void AddGeneralGeoposition( wxCommandEvent& event ); void ModifyGeneralGeoposition( wxCommandEvent& event ); void DeleteGeneralGeoposition( wxCommandEvent& event ); void AddGeneralRelated( wxCommandEvent& event ); void ModifyGeneralRelated( wxCommandEvent& event ); void DeleteGeneralRelated( wxCommandEvent& event ); void AddGeneralWebsite( wxCommandEvent& event ); void ModifyGeneralWebsite( wxCommandEvent& event ); void DeleteGeneralWebsite( wxCommandEvent& event ); void MoveGeneralWebsiteUp( wxCommandEvent& event ); void MoveGeneralWebsiteDown( wxCommandEvent& event ); void AddGeneralTitle( wxCommandEvent& event ); void ModifyGeneralTitle( wxCommandEvent& event ); void DeleteGeneralTitle( wxCommandEvent& event ); void MoveGeneralTitleUp( wxCommandEvent& event ); void MoveGeneralTitleDown( wxCommandEvent& event ); void AddGeneralRole( wxCommandEvent& event ); void ModifyGeneralRole( wxCommandEvent& event ); void DeleteGeneralRole( wxCommandEvent& event ); void MoveGeneralRoleUp( wxCommandEvent& event ); void MoveGeneralRoleDown( wxCommandEvent& event ); void AddGeneralOrganisation( wxCommandEvent& event ); void ModifyGeneralOrganisation( wxCommandEvent& event ); void DeleteGeneralOrganisation( wxCommandEvent& event ); void MoveGeneralOrganisationUp( wxCommandEvent& event ); void MoveGeneralOrganisationDown( wxCommandEvent& event ); void AddGeneralNote( wxCommandEvent& event ); void ModifyGeneralNote( wxCommandEvent& event ); void DeleteGeneralNote( wxCommandEvent& event ); void MoveGeneralNoteUp( wxCommandEvent& event ); void MoveGeneralNoteDown( wxCommandEvent& event ); void AddHomeAddress( wxCommandEvent& event ); void ModifyHomeAddress( wxCommandEvent& event ); void DeleteHomeAddress( wxCommandEvent& event ); void AddHomeEmail( wxCommandEvent& event ); void ModifyHomeEmail( wxCommandEvent& event ); void DeleteHomeEmail( wxCommandEvent& event ); void AddHomeIM( wxCommandEvent& event ); void ModifyHomeIM( wxCommandEvent& event ); void DeleteHomeIM( wxCommandEvent& event ); void AddHomeTelephone( wxCommandEvent& event ); void ModifyHomeTelephone( wxCommandEvent& event ); void DeleteHomeTelephone( wxCommandEvent& event ); void AddHomeLanguage( wxCommandEvent& event ); void ModifyHomeLanguage( wxCommandEvent& event ); void DeleteHomeLanguage( wxCommandEvent& event ); void AddHomeTimezone( wxCommandEvent& event ); void ModifyHomeTimezone( wxCommandEvent& event ); void DeleteHomeTimezone( wxCommandEvent& event ); void AddHomeGeoposition( wxCommandEvent& event ); void ModifyHomeGeoposition( wxCommandEvent& event ); void DeleteHomeGeoposition( wxCommandEvent& event ); void AddHomeRelated( wxCommandEvent& event ); void ModifyHomeRelated( wxCommandEvent& event ); void DeleteHomeRelated( wxCommandEvent& event ); void AddHomeWebsite( wxCommandEvent& event ); void ModifyHomeWebsite( wxCommandEvent& event ); void DeleteHomeWebsite( wxCommandEvent& event ); void AddHomeTitle( wxCommandEvent& event ); void ModifyHomeTitle( wxCommandEvent& event ); void DeleteHomeTitle( wxCommandEvent& event ); void AddHomeRole( wxCommandEvent& event ); void ModifyHomeRole( wxCommandEvent& event ); void DeleteHomeRole( wxCommandEvent& event ); void MoveHomeRoleUp( wxCommandEvent& event ); void MoveHomeRoleDown( wxCommandEvent& event ); void AddHomeOrganisation( wxCommandEvent& event ); void ModifyHomeOrganisation( wxCommandEvent& event ); void DeleteHomeOrganisation( wxCommandEvent& event ); void MoveHomeOrganisationUp( wxCommandEvent& event ); void MoveHomeOrganisationDown( wxCommandEvent& event ); void AddHomeNote( wxCommandEvent& event ); void ModifyHomeNote( wxCommandEvent& event ); void DeleteHomeNote( wxCommandEvent& event ); void MoveHomeNoteUp( wxCommandEvent& event ); void MoveHomeNoteDown( wxCommandEvent& event ); void AddBusinessAddress( wxCommandEvent& event ); void ModifyBusinessAddress( wxCommandEvent& event ); void DeleteBusinessAddress( wxCommandEvent& event ); void AddBusinessEmail( wxCommandEvent& event ); void ModifyBusinessEmail( wxCommandEvent& event ); void DeleteBusinessEmail( wxCommandEvent& event ); void AddBusinessIM( wxCommandEvent& event ); void ModifyBusinessIM( wxCommandEvent& event ); void DeleteBusinessIM( wxCommandEvent& event ); void AddBusinessTelephone( wxCommandEvent& event ); void ModifyBusinessTelephone( wxCommandEvent& event ); void DeleteBusinessTelephone( wxCommandEvent& event ); void AddBusinessLanguage( wxCommandEvent& event ); void ModifyBusinessLanguage( wxCommandEvent& event ); void DeleteBusinessLanguage( wxCommandEvent& event ); void AddBusinessTimezone( wxCommandEvent& event ); void ModifyBusinessTimezone( wxCommandEvent& event ); void DeleteBusinessTimezone( wxCommandEvent& event ); void AddBusinessGeoposition( wxCommandEvent& event ); void ModifyBusinessGeoposition( wxCommandEvent& event ); void DeleteBusinessGeoposition( wxCommandEvent& event ); void AddBusinessRelated( wxCommandEvent& event ); void ModifyBusinessRelated( wxCommandEvent& event ); void DeleteBusinessRelated( wxCommandEvent& event ); void AddBusinessWebsite( wxCommandEvent& event ); void ModifyBusinessWebsite( wxCommandEvent& event ); void DeleteBusinessWebsite( wxCommandEvent& event ); void AddBusinessTitle( wxCommandEvent& event ); void ModifyBusinessTitle( wxCommandEvent& event ); void DeleteBusinessTitle( wxCommandEvent& event ); void MoveBusinessTitleUp( wxCommandEvent& event ); void MoveBusinessTitleDown( wxCommandEvent& event ); void AddBusinessRole( wxCommandEvent& event ); void ModifyBusinessRole( wxCommandEvent& event ); void DeleteBusinessRole( wxCommandEvent& event ); void MoveBusinessRoleUp( wxCommandEvent& event ); void MoveBusinessRoleDown( wxCommandEvent& event ); void AddBusinessOrganisation( wxCommandEvent& event ); void ModifyBusinessOrganisation( wxCommandEvent& event ); void DeleteBusinessOrganisation( wxCommandEvent& event ); void MoveBusinessOrganisationUp( wxCommandEvent& event ); void MoveBusinessOrganisationDown( wxCommandEvent& event ); void AddBusinessNote( wxCommandEvent& event ); void ModifyBusinessNote( wxCommandEvent& event ); void DeleteBusinessNote( wxCommandEvent& event ); void MoveBusinessNoteUp( wxCommandEvent& event ); void MoveBusinessNoteDown( wxCommandEvent& event ); void AddCategory( wxCommandEvent& event ); void ModifyCategory( wxCommandEvent& event ); void DeleteCategory( wxCommandEvent& event ); void AddGroup( wxCommandEvent& event ); void ModifyGroup( wxCommandEvent& event ); void DeleteGroup( wxCommandEvent& event ); void AddPicture( wxCommandEvent& event ); void ModifyPicture( wxCommandEvent& event ); void DeletePicture( wxCommandEvent& event ); void LoadPicture( wxListEvent& event ); void AddLogo( wxCommandEvent& event ); void ModifyLogo( wxCommandEvent& event ); void DeleteLogo( wxCommandEvent& event ); void LoadLogo( wxListEvent& event ); void AddSound( wxCommandEvent& event ); void ModifySound( wxCommandEvent& event ); void DeleteSound( wxCommandEvent& event ); void PlaySoundDetach(); void PlaySound( wxCommandEvent& event ); void StopSound( wxCommandEvent& event ); void AddCalendarAddress( wxCommandEvent& event ); void ModifyCalendarAddress( wxCommandEvent& event ); void DeleteCalendarAddress( wxCommandEvent& event ); void AddCalendarRequest( wxCommandEvent& event ); void ModifyCalendarRequest( wxCommandEvent& event ); void DeleteCalendarRequest( wxCommandEvent& event ); void AddFreeBusy( wxCommandEvent& event ); void ModifyFreeBusy( wxCommandEvent& event ); void DeleteFreeBusy( wxCommandEvent& event ); void AddKey( wxCommandEvent& event ); void ModifyKey( wxCommandEvent& event ); void DeleteKey( wxCommandEvent& event ); void AddVendorNamespace( wxCommandEvent& event ); void ModifyVendorNamespace( wxCommandEvent& event ); void DeleteVendorNamespace( wxCommandEvent& event ); void MoveVendorNamespaceUp( wxCommandEvent& event ); void MoveVendorNamespaceDown( wxCommandEvent& event ); void AddXToken( wxCommandEvent& event ); void ModifyXToken( wxCommandEvent& event ); void DeleteXToken( wxCommandEvent& event ); void MoveXTokenUp( wxCommandEvent& event ); void MoveXTokenDown( wxCommandEvent& event ); void SaveContact( wxCommandEvent& event ); void SaveCloseContact( wxCommandEvent& event ); void CloseContact( wxCommandEvent& event ); void CloseWindow( wxCloseEvent& event ); void CutText( wxCommandEvent& event ); void CopyText( wxCommandEvent& event ); void PasteText( wxCommandEvent& event ); void SetupColumn(wxString ColumnType, wxListCtrl *ListCtrl); void UpdateMembersTab( wxCommandEvent &event ); void UpdateDisplayAs( wxCommandEvent &event ); void UpdateName( wxCommandEvent &event ); bool GetSelectedItem(wxListCtrl *ListCtrlPtr, long *longSelected, int *intSelectedData); int GetLastInt(std::map *MapData); int GetLastInt(std::map *MapData); bool ProcessEvent(wxEvent& event); public: /** Constructor */ frmContactEditor( wxWindow* parent ); void SetupHeaders(); void SetupContact(wxString AccountName); void SetupPointers(frmActivityMgr *ActMgr, wxETagProcessTimer *ETagProc, frmMain *MainPtrInc); bool LoadContact(wxString Filename); void SetUID(int UID); private: void DeleteMapDataProcess(int IndexNum, std::map* MapData); void DeleteMapDataProcess(int IndexNum, std::map* MapData); void DeleteMapDataProcess(int IndexNum, std::map* MapData); void DeleteMapDataProcess(int IndexNum, std::map* MapData); void DeleteMapDataB () {} ; template void DeleteMapDataB(MapData* mapdata, Args*... args) { DeleteMapDataProcess(intSeekSelectedData, mapdata); DeleteMapDataB(args...); } template void DeleteMapData(int IndexNum, Args*... args) { //int intSeekSelectedData = 0; //DeleteMapDataProcess(IndexNum, Moo); intSeekSelectedData = IndexNum; DeleteMapDataB(args...); } void ProcessSaveDataProc(wxString PropName, std::map* MapData); void ProcessSaveDataProc(wxString PropName, std::map* MapData); void ProcessSaveDataStrProc(wxString PropName, std::map* MapData); void ProcessSaveDataStrProc(wxString PropName, std::map* MapData); void ProcessSaveDataStrProc(wxString PropName, std::map* MapData); void ProcessSaveDataB () { } ; void ProcessSaveDataC () { } ; template void ProcessSaveDataB(PropName propname, MapData* mapdata, Args*... args) { ProcessSaveDataProc(propname, mapdata); ProcessSaveDataB(args...); } template void ProcessSaveDataC(PropName propname, MapData* mapdata, Args*... args) { ProcessSaveDataStrProc(propname, mapdata); ProcessSaveDataC(args...); } template void ProcessSaveData(wxString strPropertyName, wxString *strPropertyInc, bool *boolAdditionalInc, bool *boolExtraInc, std::map::iterator *iterDataInc, std::map *MainMapData, std::map::iterator *iterFileTypeInc, std::map::iterator *iterFileEncInc, vCard *vCardData, Args*... args) { //int intSeekSelectedData = 0; //DeleteMapDataProcess(IndexNum, Moo); strPropertyPtr = strPropertyInc; boolAdditionalPtr = boolAdditionalInc; boolExtraPtr = boolExtraInc; iterDataPtr = iterDataInc; iterFileTypePtr = iterFileTypeInc; iterFileEncPtr = iterFileEncInc; ProcessSaveDataB(args...); std::map::iterator strIter; wxString strMainValue; int intSeekData = (*iterDataStringPtr)->first; strIter = MainMapData->find(intSeekData); wxString strFileType = (*iterFileTypePtr)->second; wxString strFileEnc = (*iterFileEncPtr)->second; EscapeString(&strFileType, FALSE); EscapeString(&strFileEnc, FALSE); if (strIter->first == intSeekData){ strMainValue = strIter->second; strMainValue.insert(0, wxT("data:") + strFileType + wxT(";") + strFileEnc + wxT(",")); } if (*boolExtraPtr == TRUE){ vCardData->AddRaw(strPropertyName + wxT(";") + *strPropertyPtr, strMainValue); } else { vCardData->AddRaw(strPropertyName, strMainValue); } boolExtraPtr = FALSE; iterDataPtr = 0; } template void ProcessSaveData(wxString strPropertyName, wxString *strPropertyInc, bool *boolAdditionalInc, bool *boolExtraInc, std::map::iterator *iterDataInc, std::map *MainMapData, std::map::iterator *iterFileTypeInc, std::map::iterator *iterFileEncInc, vCard *vCardData, Args*... args) { //int intSeekSelectedData = 0; //DeleteMapDataProcess(IndexNum, Moo); strPropertyPtr = strPropertyInc; boolAdditionalPtr = boolAdditionalInc; boolExtraPtr = boolExtraInc; iterDataStringPtr = iterDataInc; iterFileTypePtr = iterFileTypeInc; iterFileEncPtr = iterFileEncInc; ProcessSaveDataC(args...); std::map::iterator strIter; wxString strMainValue; int intSeekData = (*iterDataStringPtr)->first; strIter = MainMapData->find(intSeekData); wxString strFileType = (*iterFileTypePtr)->second; wxString strFileEnc = (*iterFileEncPtr)->second; EscapeString(&strFileType, FALSE); EscapeString(&strFileEnc, FALSE); if (strIter->first == intSeekData){ strMainValue = wxString::FromAscii(strIter->second.c_str()); strMainValue.insert(0, wxT("data:") + strFileType + wxT(";") + strFileEnc + wxT(",")); } if (*boolExtraPtr == TRUE && !strPropertyPtr->IsEmpty()){ vCardData->AddRaw(strPropertyName + wxT(";") + *strPropertyPtr, strMainValue); } else { vCardData->AddRaw(strPropertyName, strMainValue); } *boolExtraPtr = FALSE; *boolAdditionalPtr = FALSE; iterDataStringPtr = 0; } template void ProcessSaveData(wxString strPropertyName, wxString *strPropertyInc, bool *boolAdditionalInc, bool *boolExtraInc, std::map::iterator *iterDataInc, std::map *MainMapData, vCard *vCardData, Args*... args) { //int intSeekSelectedData = 0; //DeleteMapDataProcess(IndexNum, Moo); strPropertyPtr = strPropertyInc; boolAdditionalPtr = boolAdditionalInc; boolExtraPtr = boolExtraInc; iterDataPtr = iterDataInc; ProcessSaveDataB(args...); std::map::iterator strIter; wxString strMainValue; int intSeekData = (*iterDataPtr)->first; strIter = MainMapData->find(intSeekData); if (strIter->first == intSeekData){ strMainValue = strIter->second; } EscapeString(&strMainValue, FALSE); if (*boolExtraPtr == TRUE && !strPropertyPtr->IsEmpty()){ vCardData->AddRaw(strPropertyName + wxT(";") + *strPropertyPtr, strMainValue); } else { vCardData->AddRaw(strPropertyName, strMainValue); } *boolExtraPtr = FALSE; *boolAdditionalPtr = FALSE; iterDataPtr = 0; } template void ProcessSaveData(wxString strPropertyName, wxString *strPropertyInc, bool *boolAdditionalInc, bool *boolExtraInc, std::map::iterator *iterDataInc, wxString *MainData, vCard *vCardData, Args*... args) { //int intSeekSelectedData = 0; //DeleteMapDataProcess(IndexNum, Moo); strPropertyPtr = strPropertyInc; boolAdditionalPtr = boolAdditionalInc; boolExtraPtr = boolExtraInc; iterDataPtr = iterDataInc; ProcessSaveDataB(args...); std::map::iterator strIter; if (*boolExtraPtr == TRUE && !strPropertyPtr->IsEmpty()){ vCardData->AddRaw(strPropertyName + wxT(";") + *strPropertyPtr, *MainData); } else { vCardData->AddRaw(strPropertyName, *MainData); } *boolExtraPtr = FALSE; *boolAdditionalPtr = FALSE; iterDataPtr = 0; } void ProcessCaptureStringsB () {} ; void ProcessCaptureStringsProc(wxString *strCapture); template void ProcessCaptureStringsB(StringCapture *string, Args*... args) { ProcessCaptureStringsProc(string); ProcessCaptureStringsB(args...); } template void ProcessCaptureStrings(Args*... args) { //int intSeekSelectedData = 0; ProcessCaptureStringsB(args...); } void ResetSaveProcessData(); void ContactFileChanged( wxCommandEvent &event ); void ClearContact(); int intValueSeek = 1; bool IsGroup = FALSE; /* Items on General Tab */ wxString NameTitle; wxString NameForename; wxString NameSurname; wxString NameOtherNames; wxString NameSuffix; wxString NameNickname; wxString NameDisplayAs; wxString NameLanguage; wxString NameAltID; wxString NameTokens; wxString Birthday; wxString BirthdayAltID; wxString BirthdayCalScale; wxString BirthdayTokens; wxString Anniversary; wxString AnniversaryAltID; wxString AnniversaryCalScale; wxString AnniversaryTokens; wxString Gender; wxString GenderDetails; wxString GenderTokens; wxString UIDToken; /* We don't use these at the moment but we want to keep them for compatability reasons */ /*std::map ExtraFullNames;*/ /*std::map ExtraNicknames;*/ std::map FullNamesList; std::map FullNamesListType; std::map FullNamesListLanguage; std::map FullNamesListAltID; std::map FullNamesListPID; std::map FullNamesListTokens; std::map FullNamesListPref; std::map GeneralNicknamesList; std::map GeneralNicknamesListType; std::map GeneralNicknamesListLanguage; std::map GeneralNicknamesListAltID; std::map GeneralNicknamesListPID; std::map GeneralNicknamesListTokens; std::map GeneralNicknamesListPref; std::map GeneralAddressList; std::map GeneralAddressListTown; std::map GeneralAddressListCounty; std::map GeneralAddressListPostCode; std::map GeneralAddressListCountry; std::map GeneralAddressListLabel; std::map GeneralAddressListLang; std::map GeneralAddressListAltID; std::map GeneralAddressListPID; std::map GeneralAddressListTokens; std::map GeneralAddressListGeo; std::map GeneralAddressListTimezone; std::map GeneralAddressListType; std::map GeneralAddressListMediatype; std::map GeneralAddressListPref; std::map GeneralEmailList; std::map GeneralEmailListAltID; std::map GeneralEmailListPID; std::map GeneralEmailListType; std::map GeneralEmailListTokens; std::map GeneralEmailListPref; std::map GeneralIMList; std::map GeneralIMListAltID; std::map GeneralIMListPID; std::map GeneralIMListType; std::map GeneralIMListTokens; std::map GeneralIMListMediatype; std::map GeneralIMListPref; std::map GeneralTelephoneList; std::map GeneralTelephoneListAltID; std::map GeneralTelephoneListPID; std::map GeneralTelephoneListType; std::map GeneralTelephoneListTokens; std::map GeneralTelephoneListPref; std::map GeneralLanguageList; std::map GeneralLanguageListAltID; std::map GeneralLanguageListPID; std::map GeneralLanguageListType; std::map GeneralLanguageListTokens; std::map GeneralLanguageListPref; std::map GeneralTZList; std::map GeneralTZListAltID; std::map GeneralTZListPID; std::map GeneralTZListType; std::map GeneralTZListTokens; std::map GeneralTZListMediatype; std::map GeneralTZListPref; std::map GeneralGeographyList; std::map GeneralGeographyListAltID; std::map GeneralGeographyListPID; std::map GeneralGeographyListType; std::map GeneralGeographyListTokens; std::map GeneralGeographyListMediatype; std::map GeneralGeographyListPref; std::map GeneralRelatedList; std::map GeneralRelatedListRelType; std::map GeneralRelatedListLanguage; std::map GeneralRelatedListAltID; std::map GeneralRelatedListPID; std::map GeneralRelatedListType; std::map GeneralRelatedListTokens; std::map GeneralRelatedListPref; std::map GeneralWebsiteList; std::map GeneralWebsiteListAltID; std::map GeneralWebsiteListPID; std::map GeneralWebsiteListType; std::map GeneralWebsiteListTokens; std::map GeneralWebsiteListMediatype; std::map GeneralWebsiteListPref; std::map GeneralTitleList; std::map GeneralTitleListLanguage; std::map GeneralTitleListAltID; std::map GeneralTitleListPID; std::map GeneralTitleListType; std::map GeneralTitleListTokens; std::map GeneralTitleListPref; std::map GeneralRoleList; std::map GeneralRoleListLanguage; std::map GeneralRoleListAltID; std::map GeneralRoleListPID; std::map GeneralRoleListType; std::map GeneralRoleListTokens; std::map GeneralRoleListPref; std::map GeneralOrganisationsList; std::map GeneralOrganisationsListLanguage; std::map GeneralOrganisationsListAltID; std::map GeneralOrganisationsListPID; std::map GeneralOrganisationsListType; std::map GeneralOrganisationsListTokens; std::map GeneralOrganisationsListSortAs; std::map GeneralOrganisationsListPref; std::map GeneralNoteList; std::map GeneralNoteListLanguage; std::map GeneralNoteListAltID; std::map GeneralNoteListPID; std::map GeneralNoteListType; std::map GeneralNoteListTokens; std::map GeneralNoteListPref; /* Items on Home Tab */ std::map HomeNicknamesList; std::map HomeNicknamesListType; std::map HomeNicknamesListLanguage; std::map HomeNicknamesListAltID; std::map HomeNicknamesListPID; std::map HomeNicknamesListTokens; std::map HomeNicknamesListPref; std::map HomeAddressList; std::map HomeAddressListTown; std::map HomeAddressListCounty; std::map HomeAddressListPostCode; std::map HomeAddressListCountry; std::map HomeAddressListLabel; std::map HomeAddressListLang; std::map HomeAddressListAltID; std::map HomeAddressListPID; std::map HomeAddressListTokens; std::map HomeAddressListGeo; std::map HomeAddressListTimezone; std::map HomeAddressListType; std::map HomeAddressListMediatype; std::map HomeAddressListPref; std::map HomeEmailList; std::map HomeEmailListAltID; std::map HomeEmailListPID; std::map HomeEmailListType; std::map HomeEmailListTokens; std::map HomeEmailListPref; std::map HomeIMList; std::map HomeIMListAltID; std::map HomeIMListPID; std::map HomeIMListType; std::map HomeIMListTokens; std::map HomeIMListMediatype; std::map HomeIMListPref; std::map HomeTelephoneList; std::map HomeTelephoneListAltID; std::map HomeTelephoneListPID; std::map HomeTelephoneListType; std::map HomeTelephoneListTokens; std::map HomeTelephoneListPref; std::map HomeLanguageList; std::map HomeLanguageListAltID; std::map HomeLanguageListPID; std::map HomeLanguageListType; std::map HomeLanguageListTokens; std::map HomeLanguageListPref; std::map HomeTZList; std::map HomeTZListAltID; std::map HomeTZListPID; std::map HomeTZListType; std::map HomeTZListTokens; std::map HomeTZListMediatype; std::map HomeTZListPref; std::map HomeGeographyList; std::map HomeGeographyListAltID; std::map HomeGeographyListPID; std::map HomeGeographyListType; std::map HomeGeographyListTokens; std::map HomeGeographyListMediatype; std::map HomeGeographyListPref; std::map HomeRelatedList; std::map HomeRelatedListRelType; std::map HomeRelatedListLanguage; std::map HomeRelatedListAltID; std::map HomeRelatedListPID; std::map HomeRelatedListType; std::map HomeRelatedListTokens; std::map HomeRelatedListPref; std::map HomeWebsiteList; std::map HomeWebsiteListAltID; std::map HomeWebsiteListPID; std::map HomeWebsiteListType; std::map HomeWebsiteListTokens; std::map HomeWebsiteListMediatype; std::map HomeWebsiteListPref; std::map HomeTitleList; std::map HomeTitleListLanguage; std::map HomeTitleListAltID; std::map HomeTitleListPID; std::map HomeTitleListType; std::map HomeTitleListTokens; std::map HomeTitleListPref; std::map HomeRoleList; std::map HomeRoleListLanguage; std::map HomeRoleListAltID; std::map HomeRoleListPID; std::map HomeRoleListType; std::map HomeRoleListTokens; std::map HomeRoleListPref; std::map HomeOrganisationsList; std::map HomeOrganisationsListLanguage; std::map HomeOrganisationsListAltID; std::map HomeOrganisationsListPID; std::map HomeOrganisationsListType; std::map HomeOrganisationsListTokens; std::map HomeOrganisationsListSortAs; std::map HomeOrganisationsListPref; std::map HomeNoteList; std::map HomeNoteListLanguage; std::map HomeNoteListAltID; std::map HomeNoteListPID; std::map HomeNoteListType; std::map HomeNoteListTokens; std::map HomeNoteListPref; /* Items on the Business tab */ std::map BusinessNicknamesList; std::map BusinessNicknamesListType; std::map BusinessNicknamesListLanguage; std::map BusinessNicknamesListAltID; std::map BusinessNicknamesListPID; std::map BusinessNicknamesListTokens; std::map BusinessNicknamesListPref; std::map BusinessAddressList; std::map BusinessAddressListTown; std::map BusinessAddressListCounty; std::map BusinessAddressListPostCode; std::map BusinessAddressListCountry; std::map BusinessAddressListLabel; std::map BusinessAddressListLang; std::map BusinessAddressListAltID; std::map BusinessAddressListPID; std::map BusinessAddressListTokens; std::map BusinessAddressListGeo; std::map BusinessAddressListTimezone; std::map BusinessAddressListType; std::map BusinessAddressListMediatype; std::map BusinessAddressListPref; std::map BusinessEmailList; std::map BusinessEmailListAltID; std::map BusinessEmailListPID; std::map BusinessEmailListType; std::map BusinessEmailListTokens; std::map BusinessEmailListPref; std::map BusinessIMList; std::map BusinessIMListAltID; std::map BusinessIMListPID; std::map BusinessIMListType; std::map BusinessIMListTokens; std::map BusinessIMListMediatype; std::map BusinessIMListPref; std::map BusinessTelephoneList; std::map BusinessTelephoneListAltID; std::map BusinessTelephoneListPID; std::map BusinessTelephoneListType; std::map BusinessTelephoneListTokens; std::map BusinessTelephoneListPref; std::map BusinessLanguageList; std::map BusinessLanguageListAltID; std::map BusinessLanguageListPID; std::map BusinessLanguageListType; std::map BusinessLanguageListTokens; std::map BusinessLanguageListPref; std::map BusinessTZList; std::map BusinessTZListAltID; std::map BusinessTZListPID; std::map BusinessTZListType; std::map BusinessTZListTokens; std::map BusinessTZListMediatype; std::map BusinessTZListPref; std::map BusinessGeographyList; std::map BusinessGeographyListAltID; std::map BusinessGeographyListPID; std::map BusinessGeographyListType; std::map BusinessGeographyListTokens; std::map BusinessGeographyListMediatype; std::map BusinessGeographyListPref; std::map BusinessRelatedList; std::map BusinessRelatedListRelType; std::map BusinessRelatedListLanguage; std::map BusinessRelatedListAltID; std::map BusinessRelatedListPID; std::map BusinessRelatedListType; std::map BusinessRelatedListTokens; std::map BusinessRelatedListPref; std::map BusinessWebsiteList; std::map BusinessWebsiteListAltID; std::map BusinessWebsiteListPID; std::map BusinessWebsiteListType; std::map BusinessWebsiteListTokens; std::map BusinessWebsiteListMediatype; std::map BusinessWebsiteListPref; std::map BusinessTitleList; std::map BusinessTitleListLanguage; std::map BusinessTitleListAltID; std::map BusinessTitleListPID; std::map BusinessTitleListType; std::map BusinessTitleListTokens; std::map BusinessTitleListPref; std::map BusinessRoleList; std::map BusinessRoleListLanguage; std::map BusinessRoleListAltID; std::map BusinessRoleListPID; std::map BusinessRoleListType; std::map BusinessRoleListTokens; std::map BusinessRoleListPref; std::map BusinessOrganisationsList; std::map BusinessOrganisationsListLanguage; std::map BusinessOrganisationsListAltID; std::map BusinessOrganisationsListPID; std::map BusinessOrganisationsListType; std::map BusinessOrganisationsListTokens; std::map BusinessOrganisationsListSortAs; std::map BusinessOrganisationsListPref; std::map BusinessNoteList; std::map BusinessNoteListLanguage; std::map BusinessNoteListAltID; std::map BusinessNoteListPID; std::map BusinessNoteListType; std::map BusinessNoteListTokens; std::map BusinessNoteListPref; /* Items on the Categories tab */ std::map CategoriesList; std::map CategoriesListAltID; std::map CategoriesListPID; std::map CategoriesListType; std::map CategoriesListTokens; std::map CategoriesListPref; /* Items on the Groups tab */ std::map GroupsList; std::map GroupsListAltID; std::map GroupsListPID; std::map GroupsListType; std::map GroupsListTokens; std::map GroupsListPref; /* Items on the Pictures tab */ std::map PicturesList; std::map PicturesListAltID; std::map PicturesListPID; std::map PicturesListType; std::map PicturesListPicEncType; std::map PicturesListPictureType; std::map PicturesListTokens; std::map PicturesListMediatype; std::map PicturesListPref; /* Items on the Logos tab */ std::map LogosList; std::map LogosListAltID; std::map LogosListPID; std::map LogosListType; std::map LogosListPicEncType; std::map LogosListPictureType; std::map LogosListTokens; std::map LogosListMediatype; std::map LogosListPref; /* Items on the Sounds tab */ std::map SoundsList; std::map SoundsListAltID; std::map SoundsListPID; std::map SoundsListType; std::map SoundsListAudioEncType; std::map SoundsListAudioType; std::map SoundsListTokens; std::map SoundsListMediatype; std::map SoundsListPref; /* Items on the Calendaring tab */ std::map CalendarList; std::map CalendarListAltID; std::map CalendarListPID; std::map CalendarListType; std::map CalendarListTokens; std::map CalendarListMediatype; std::map CalendarListPref; std::map CalendarRequestList; std::map CalendarRequestListAltID; std::map CalendarRequestListPID; std::map CalendarRequestListType; std::map CalendarRequestListTokens; std::map CalendarRequestListMediatype; std::map CalendarRequestListPref; std::map FreeBusyList; std::map FreeBusyListAltID; std::map FreeBusyListPID; std::map FreeBusyListType; std::map FreeBusyListTokens; std::map FreeBusyListMediatype; std::map FreeBusyListPref; /* Items on the Security tab */ std::map KeyList; std::map KeyListAltID; std::map KeyListPID; std::map KeyListKeyType; std::map KeyListDataType; std::map KeyListDataEncType; std::map KeyListType; std::map KeyListTokens; std::map KeyListPref; /* Items on the Other tab */ std::map VendorList; std::map VendorListPEN; std::map VendorListElement; std::map XTokenList; std::map XTokenListTokens; /* Items regarding account and filename */ wxString wxSContactFilename; wxString wxSContactAccount; bool boolContactModified; int intSeekSelectedData; /* Section for saving/loading data */ wxString *strPropertyPtr; bool *boolAdditionalPtr; bool *boolExtraPtr; std::map::iterator *iterDataPtr = 0; std::map::iterator *iterDataStringPtr = 0; std::map::iterator *iterFileTypePtr = 0; std::map::iterator *iterFileEncPtr = 0; wxString ETag; wxString ETagOriginal; wxString strValue; wxString strValue2; wxString strValue3; bool boolValue = FALSE; bool boolValue2 = FALSE; size_t intValue = 0; int intValue2 = 0; int intValue3 = 0; bool BinaryDataProc = FALSE; bool EditMode = FALSE; bool DialogOpen = FALSE; /* std::string base64dec; sf::Sound AudioPlayback; sf::SoundBuffer AudioBuffer; */ size_t base64declen; std::string base64dec; sf::Music AudioPlayback; AudioStream AudioStreamPlayback; sf::SoundBuffer AudioBuffer; wxBitmap PictureImage; wxBitmap LogoImage; void SplitValues(wxString *PropertyLine, std::map *SplitPoints, std::map *SplitLength, int intSize); frmMain *MainPtr; frmActivityMgr *ActMgrPtr; wxETagProcessTimer *ETagTmrPtr; wxContactFileMonitorTimer FMTimer; int ContactEditorUID; DECLARE_EVENT_TABLE() //// end generated class members }; #endif // __frmContactEditor__