Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
Updated copyright year (forgot to alter it originally).
[xestiaab/.git] / source / contacteditor / frmContactEditor.h
index f0e73a7..ef4b8f2 100644 (file)
@@ -1,3 +1,21 @@
+// 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 <http://www.gnu.org/licenses/>
+
 #ifndef __frmContactEditor__
 #define __frmContactEditor__
 
@@ -19,9 +37,11 @@ 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")
@@ -66,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<std::size_t>(TimeOffset.asSeconds() * getSampleRate() * getChannelCount());
-    }
-
-    std::vector<sf::Int16> m_samples;
-    std::size_t m_currentSample;
-    
-    */
     bool FilePlaying = TRUE;
 };
 
@@ -293,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 );
@@ -350,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:
        
@@ -636,47 +603,108 @@ 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 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<int,wxString> *GroupList);
+               void LoadAddress(std::map<int, wxString> *GeneralAddressList,
+                       std::map<int, wxString> *GeneralAddressListTown,
+                       std::map<int, wxString> *GeneralAddressListCounty,
+                       std::map<int, wxString> *GeneralAddressListPostCode,
+                       std::map<int, int> *GeneralAddressListPref,
+                       std::map<int, wxString> *HomeAddressList,
+                       std::map<int, wxString> *HomeAddressListTown,
+                       std::map<int, wxString> *HomeAddressListCounty,
+                       std::map<int, wxString> *HomeAddressListPostCode,
+                       std::map<int, int> *HomeAddressListPref,
+                       std::map<int, wxString> *BusinessAddressList,
+                       std::map<int, wxString> *BusinessAddressListTown,
+                       std::map<int, wxString> *BusinessAddressListCounty,
+                       std::map<int, wxString> *BusinessAddressListPostCode,
+                       std::map<int, int> *BusinessAddressListPref, 
+                       int *AddressCount);
+               
+               void LoadData(std::map<int, wxString> *GeneralList,
+                       std::map<int, int> *GeneralListPref,
+                       wxListCtrl *GeneralListCtrl,
+                       std::map<int, wxString> *HomeList,
+                       std::map<int, int> *HomeListPref,
+                       wxListCtrl *HomeListCtrl,
+                       std::map<int, wxString> *BusinessList,
+                       std::map<int, int> *BusinessTZPref,
+                       wxListCtrl *BusinessListCtrl,
+                       int *DataCount);
+               
+               void LoadData(std::map<int, wxString> *GeneralList,
+                       std::map<int, int> *GeneralListPref,
+                       std::map<int, wxString> *GeneralListType,
+                       wxListCtrl *GeneralListCtrl,
+                       std::map<int, wxString> *HomeList,
+                       std::map<int, int> *HomeListPref,
+                       std::map<int, wxString> *HomeListType,
+                       wxListCtrl *HomeListCtrl,
+                       std::map<int, wxString> *BusinessList,
+                       std::map<int, int> *BusinessListPref,
+                       std::map<int, wxString> *BusinessListType,
+                       wxListCtrl *BusinessListCtrl,
+                       int *DataCount);
+               
+               void LoadData(std::map<int,wxString> *ItemList,
+                       std::map<int,int> *ItemListPref,
+                       wxListCtrl *ItemCtrl,
+                       int *DataCount);
+
+               void LoadData(std::map<int,wxString> *ItemList,
+                       std::map<int,int> *ItemListPref,
+                       std::map<int,wxString> *ItemListType,
+                       wxListCtrl *ItemCtrl,
+                       int *DataCount);
+       
+               void LoadData(wxString ItemName,
+                       std::map<int,wxString> *ItemList,
+                       std::map<int,int> *ItemListPref,
+                       std::map<int,wxString> *ItemListType,
+                       std::map<int,wxString> *ItemListDataType,
+                       wxListCtrl *ItemCtrl,
+                       int *DataCount);
+                       
+               void LoadPictureData(wxString ItemName, 
+                       std::map<int,std::string> *ItemList,
+                       std::map<int,int> *ItemListPref,
+                       std::map<int,wxString> *ItemListType,
+                       wxListCtrl *ItemCtrl,
+                       int *DataCount);
+                       
+               void LoadVendorData(std::map<int,wxString> *ItemListPEN,
+                       std::map<int,wxString> *ItemListElement,
+                       wxListCtrl *ItemCtrl,
+                       int *DataCount);
+
+               void LoadXTokenData(std::map<int,wxString> *ItemListTokens,
+                       wxListCtrl *ItemCtrl,
+                       int *DataCount);
+                       
+               void LoadData(std::map<int,wxString> *ItemList,
+                       wxComboBox *ItemCtrl);
+                       
+               void LoadRelatedData(std::map<int,wxString> *ItemList,
+                       std::map<int,int> *ItemListPref,
+                       std::map<int,wxString> *ItemListType,
+                       wxListCtrl *ItemCtrl,
+                       int *DataCount);
        
                int intValueSeek = 1;
                bool IsGroup = FALSE;
        
                /* Items on General Tab */
        
+               ContactDataObject ContactEditorData;
+       
                wxString NameTitle;
                wxString NameForename;
                wxString NameSurname;
@@ -1210,6 +1238,7 @@ class frmContactEditor : public frmContactEditorADT
                int intValue3 = 0;
                bool BinaryDataProc = FALSE;
                bool EditMode = FALSE;
+               bool StartupEditMode = FALSE;
                bool DialogOpen = FALSE;
                
                /*
Xestia Software Development
Yn Maystri
© 2006 - 2019 Xestia Software Development
Software

Xestia Address Book
Xestia Calendar
Development

Xestia Gelforn
Everything else

About
News
Privacy Policy