X-Git-Url: http://Server1/repobrowser/?a=blobdiff_plain;f=source%2Fcontacteditor%2FfrmContactEditor.h;h=a9f0ab5acbf095be9aca8ac5b142d6da6a506ca4;hb=01a3141be71e31f6eabd97d65cb630ddeaa1a5c9;hp=f4dccc083b91be78497b557eaae1b8afe90a2e0c;hpb=45729fca56479bd9158486e0cda0c4a94b4dd1dc;p=xestiaab%2F.git diff --git a/source/contacteditor/frmContactEditor.h b/source/contacteditor/frmContactEditor.h index f4dccc0..a9f0ab5 100644 --- a/source/contacteditor/frmContactEditor.h +++ b/source/contacteditor/frmContactEditor.h @@ -1,3 +1,21 @@ +// frmContactEditor.h - frmContactEditor form header. +// +// (c) 2012-2015 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__ @@ -19,9 +37,33 @@ Subclass of frmContactEditorADT, which is generated by wxFormBuilder. #include "../common/etag.h" #include "../common/timers.h" -#include "../frmActivityMgr.h" +#include "../actmgr/frmActivityMgr.h" #include "../frmMain.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; @@ -44,63 +86,6 @@ 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; }; @@ -271,13 +256,16 @@ class frmContactEditor : public frmContactEditorADT 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 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 ); @@ -328,6 +316,7 @@ class frmContactEditor : public frmContactEditorADT void SetupPointers(frmActivityMgr *ActMgr, wxETagProcessTimer *ETagProc, frmMain *MainPtrInc); bool LoadContact(wxString Filename); + void SetMode(bool StartupEditMode); void SetUID(int UID); private: @@ -614,12 +603,88 @@ class frmContactEditor : public frmContactEditorADT void ResetSaveProcessData(); void ContactFileChanged( wxCommandEvent &event ); void ClearContact(); + + /* Functions for loading contacts */ + void LoadKind(wxString KindType); + void LoadMember(wxString MemberData, int *GroupCount); + void LoadFN(wxString wxSPropertySeg1, wxString wxSPropertySeg2, int *FNCount, + bool *FNProcessed, vCard *ContactData); + void LoadN(wxString wxSPropertySeg1, wxString wxSPropertySeg2, bool *NameProcessed, + vCard *ContactData); + void LoadNickname(wxString wxSpropertySeg1, wxString wxSPropertySeg2, + int *NicknameCount, vCard *ContactData); + void LoadGender(wxString wxSPropertySeg1, wxString wxSPropertySeg2, bool *GenderProcessed, + vCard *ContactData); + void LoadBDay(wxString wxSPropertySeg1, wxString wxSPropertySeg2, bool *BirthdayProcessed); + void LoadAnniversary(wxString wxSPropertySeg1, wxString wxSPropertySeg2, bool *AnniversaryProcessed); + void LoadTimeZone(wxString wxSPropertySeg1, wxString wxSPropertySeg2, int *TZCount); + void LoadADR(wxString wxSPropertySeg1, wxString wxSPropertySeg2, int *ADRCount); + void LoadEmail(wxString wxSPropertySeg1, wxString wxSPropertySeg2, int *ADRCount); + void LoadIM(wxString wxSPropertySeg1, wxString wxSPropertySeg2, int *IMPPCount); + void LoadTelephone(wxString wxSPropertySeg1, wxString wxSPropertySeg2, int *TelCount); + void LoadLanguage(wxString wxSPropertySeg1, wxString wxSPropertySeg2, int *LangCount); + void LoadGeo(wxString wxSProptertySeg1, wxString wxSPropertySeg2, int *GeoCount); + void LoadRelated(wxString wxSPropertySeg1, wxString wxSPropertySeg2, int *RelatedCount); + void LoadURL(wxString wxSPropertySeg1, wxString wxSPropertySeg2, int *URLCount); + void LoadTitle(wxString wxSPropertySeg1, wxString wxSPropertySeg2, int *TitleCount); + void LoadRole(wxString wxSPropertySeg1, wxString wxSPropertySeg2, int *RoleCount); + void LoadOrg(wxString wxSPropertySeg1, wxString wxSPropertySeg2, int *OrgCount); + void LoadNote(wxString wxSPropertySeg1, wxString wxSPropertySeg2, int *NoteCount); + void LoadCategory(wxString wxSPropertySeg1, wxString wxSPropertySeg2, int *CategoryCount); + void LoadPhoto(wxString wxSPropertySeg1, wxString wxSPropertySeg2, int *PhotoCount); + void LoadLogo(wxString wxSPropertySeg1, wxString wxSPropertySeg2, int *PhotoCount); + void LoadSound(wxString wxSPropertySeg1, wxString wxSPropertySeg2, int *SoundCount); + void LoadCalURI(wxString wxSPropertySeg1, wxString wxSPropertySeg2, int *CalAdrCount); + void LoadCalAdrURI(wxString wxSPropertySeg1, wxString wxSPropertySeg2, int *CalReqAdrCount); + void LoadCalFreeBusy(wxString wxSPropertySeg1, wxString wxSPropertySeg2, int *FreeBusyCount); + void LoadKey(wxString wxSPropertySeg1, wxString wxSPropertySeg2, int *KeyCount); + + void LoadGender(wxString *GenderComponent, wxString *GenderIdentity); + void LoadBirthday(wxString *BirthdayData, bool *BirthdayText); + void LoadAnniversary(wxString *AnniversaryData, bool *AnniversaryText); + void LoadKind(ContactKindType *KindType); + void LoadName(wxString *NameTitle, wxString *NameForename, + wxString *NameSurname, wxString *NameOtherNames, + wxString *NameSuffix); + void LoadMember(std::map *GroupsList); + 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 LoadTimeZone(std::map *GeneralTZListPtr, + std::map *GeneralTZListPrefPtr, + std::map *HomeTZListPtr, + std::map *HomeTZListPrefPtr, + std::map *BusinessTZListPtr, + std::map *BusinessTZListPrefPtr, + int *TZCount); + void LoadEmail(std::map *GeneralEmailListPtr, + std::map *GeneralEmailListPrefPtr, + std::map *HomeEmailListPtr, + std::map *HomeEmailListPrefPtr, + std::map *BusinessEmailListPtr, + std::map *BusinessEmailListPrefPtr, + int *EmailCount); int intValueSeek = 1; bool IsGroup = FALSE; /* Items on General Tab */ + ContactDataObject ContactEditorData; + wxString NameTitle; wxString NameForename; wxString NameSurname; @@ -1153,6 +1218,7 @@ class frmContactEditor : public frmContactEditorADT int intValue3 = 0; bool BinaryDataProc = FALSE; bool EditMode = FALSE; + bool StartupEditMode = FALSE; bool DialogOpen = FALSE; /*