// frmContactEditor.h - frmContactEditor form header. // // (c) 2012-2016 Xestia Software Development. // // This file is part of Xestia Address Book. // // Xestia Address Book is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by the // Free Software Foundation, version 3 of the license. // // Xestia Address Book is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License along // with Xestia Address Book. If not, see #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 "../actmgr/frmActivityMgr.h" #include "../frmMain.h" #include "frmContactEditorSound.h" #include "cdo/ContactDataObject.h" #define CE_NICKNAME wxT("Nickname") #define CE_ADDRESS wxT("Address") #define CE_EMAIL wxT("Email") #define CE_IM wxT("IM") #define CE_TELEPHONE wxT("Telephone") #define CE_LANG wxT("Languages") #define CE_TZ wxT("Timezone") #define CE_RELATED wxT("Related") #define CE_WEBSITE wxT("Websites") #define CE_TITLE wxT("Titles") #define CE_GEOPOSITION wxT("Geoposition") #define CE_ROLE wxT("Roles") #define CE_ORG wxT("Organisations") #define CE_NOTE wxT("Notes") #define CE_CATEGORIES wxT("Categories") #define CE_GROUPS wxT("Groups") #define CE_PICTURES wxT("Pictures") #define CE_SOUNDS wxT("Sounds") #define CE_CALENDAR wxT("Calendar") #define CE_KEY wxT("Key") #define CE_TOKEN wxT("Token") //// 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; } 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 SavePicture( wxCommandEvent& event); void AddLogo( wxCommandEvent& event ); void ModifyLogo( wxCommandEvent& event ); void DeleteLogo( wxCommandEvent& event ); void LoadLogo( wxListEvent& event ); void SaveLogo( wxCommandEvent& event); void AddSound( wxCommandEvent& event ); void ModifySound( wxCommandEvent& event ); void DeleteSound( wxCommandEvent& event ); void SaveSound( 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 ); ~frmContactEditor(); void SetupHeaders(); void SetupContact(wxString AccountName); void SetupAccountData(bool UnsupportedAccount); void SetupPointers(frmActivityMgr *ActMgr, wxETagProcessTimer *ETagProc, frmMain *MainPtrInc); bool LoadContact(wxString Filename); void SetMode(bool StartupEditMode); 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; std::map::iterator strDataTypeIter; 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(); void LoadKind(ContactKindType *KindType); void LoadBirthday(wxString *BirthdayData, bool *BirthdayText); void LoadAnniversary(wxString *AnniversaryData, bool *AnniversaryText); void LoadGender(wxString *GenderComponent, wxString *GenderIdentity); void LoadName(wxString *NameTitle, wxString *NameForename, wxString *NameSurname, wxString *NameOtherNames, wxString *NameSuffix); void LoadMember(std::map *GroupList); void LoadAddress(std::map *GeneralAddressList, std::map *GeneralAddressListTown, std::map *GeneralAddressListCounty, std::map *GeneralAddressListPostCode, std::map *GeneralAddressListPref, std::map *HomeAddressList, std::map *HomeAddressListTown, std::map *HomeAddressListCounty, std::map *HomeAddressListPostCode, std::map *HomeAddressListPref, std::map *BusinessAddressList, std::map *BusinessAddressListTown, std::map *BusinessAddressListCounty, std::map *BusinessAddressListPostCode, std::map *BusinessAddressListPref, int *AddressCount); void LoadData(std::map *GeneralList, std::map *GeneralListPref, wxListCtrl *GeneralListCtrl, std::map *HomeList, std::map *HomeListPref, wxListCtrl *HomeListCtrl, std::map *BusinessList, std::map *BusinessTZPref, wxListCtrl *BusinessListCtrl, int *DataCount); void LoadData(std::map *GeneralList, std::map *GeneralListPref, std::map *GeneralListType, wxListCtrl *GeneralListCtrl, std::map *HomeList, std::map *HomeListPref, std::map *HomeListType, wxListCtrl *HomeListCtrl, std::map *BusinessList, std::map *BusinessListPref, std::map *BusinessListType, wxListCtrl *BusinessListCtrl, int *DataCount); void LoadData(std::map *ItemList, std::map *ItemListPref, wxListCtrl *ItemCtrl, int *DataCount); void LoadData(std::map *ItemList, std::map *ItemListPref, std::map *ItemListType, wxListCtrl *ItemCtrl, int *DataCount); void LoadData(wxString ItemName, std::map *ItemList, std::map *ItemListPref, std::map *ItemListType, std::map *ItemListDataType, wxListCtrl *ItemCtrl, int *DataCount); void LoadPictureData(wxString ItemName, std::map *ItemList, std::map *ItemListPref, std::map *ItemListType, wxListCtrl *ItemCtrl, int *DataCount); void LoadVendorData(std::map *ItemListPEN, std::map *ItemListElement, wxListCtrl *ItemCtrl, int *DataCount); void LoadXTokenData(std::map *ItemListTokens, wxListCtrl *ItemCtrl, int *DataCount); void LoadData(std::map *ItemList, wxComboBox *ItemCtrl); void LoadRelatedData(std::map *ItemList, std::map *ItemListPref, std::map *ItemListType, wxListCtrl *ItemCtrl, int *DataCount); int intValueSeek = 1; bool IsGroup = FALSE; /* Items on General Tab */ ContactDataObject ContactEditorData; /* Items regarding account and filename */ wxString wxSContactFilename; wxString wxSContactAccount; bool boolContactModified; bool boolUnsupportedAccount = false; 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 StartupEditMode = FALSE; bool DialogOpen = FALSE; bool saveSuccess = false; /* std::string base64dec; sf::Sound AudioPlayback; sf::SoundBuffer AudioBuffer; */ size_t base64declen; std::string base64dec; AudioStream *AudioStreamPlaybackPointer = nullptr; 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__