Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
getcontactinfo.cpp: Fix issue with using wxTransparentColour
[xestiaab/.git] / source / frmContact.cpp
index da88511..992ef25 100644 (file)
@@ -39,6 +39,8 @@ void frmContact::CloseWindowProcessing(){
 
 void frmContact::CloseWindow( wxCommandEvent& event ){
                
+       // Close this window.
+       
        this->Close();
 
 }
@@ -50,49 +52,56 @@ void frmContact::CloseWindow( wxCloseEvent& event ){
 
        wxFileSystem::AddHandler(new wxMemoryFSHandler);
 
-       if (MemoryFSListPtr->find(SessionID) == MemoryFSListPtr->end()){
+       // Check if frmContact is the main window, if not
+       // then do some clear up.
+       
+       if (StartupMode == false){
+       
+               if (MemoryFSListPtr->find(SessionID) == MemoryFSListPtr->end()){
+
+               } else {
 
-       } else {
+                       std::map<wxString, wxString>::iterator striter;
 
-               std::map<wxString, wxString>::iterator striter;
+                       for (striter = MemoryFSListPtr->begin(); striter != MemoryFSListPtr->end(); striter++){
 
-               for (striter = MemoryFSListPtr->begin(); striter != MemoryFSListPtr->end(); striter++){
+                               if (SessionID == striter->second){
 
-                       if (SessionID == striter->second){
+                                       // Delete the references from the wxMemoryFSHandler
+                                       // and the entry from the map.
 
-                               // Delete the references from the wxMemoryFSHandler
-                               // and the entry from the map.
+                                       wxMemoryFSHandler::RemoveFile(striter->first);
 
-                               wxMemoryFSHandler::RemoveFile(striter->first);
+                                       break;
 
-                               break;
+                               }
 
                        }
 
-               }
-
-               MemoryFSListPtr->erase(striter);
+                       MemoryFSListPtr->erase(striter);
 
-       }
+               }
        
-       WindowData *WData = new WindowData;
+               WindowData *WData = new WindowData;
 
-       WData->DataType = 0;
-       WData->WindowPointer = this;
-       WData->WindowID = ContactUID;
+               WData->DataType = 0;
+               WData->WindowPointer = this;
+               WData->WindowID = ContactUID;
 
-       wxCommandEvent delevent(WINDOW_CLOSE);
-       delevent.SetClientData(WData);
-       wxPostEvent(GetParent(), delevent);
+               wxCommandEvent delevent(WINDOW_CLOSE);
+               delevent.SetClientData(WData);
+               wxPostEvent(GetParent(), delevent);
        
+       }
+               
        Destroy();
 
 }
 
-
-
 bool frmContact::SetupContactData(vCard *vCardObj){
 
+       // Setup the contact information.
+       
        wxFileSystem::AddHandler(new wxMemoryFSHandler);
        
        for (std::map<wxString, wxString>::iterator striter = MemoryFSListPtr->begin();
@@ -112,38 +121,85 @@ bool frmContact::SetupContactData(vCard *vCardObj){
 
        OldSessionID = SessionID;
        SessionID = wxString::Format(wxT("%i"), rand() % 32768);
-       LoadContactData(vCardObj, htmContactData, SessionID, OldSessionID, MemoryFSListPtr);
-       SetTitle(vCardObj->Get(wxT("FN")));
+       wxColour formattedBackgroundColour;
+       if (backgroundColour.IsEmpty())
+       {
+       
+               formattedBackgroundColour = wxTransparentColour;
+       
+       }
+       else
+       {
+       
+               formattedBackgroundColour.Set(backgroundColour);
+       
+       }
+       
+       
+       LoadContactData(vCardObj, htmContactData, SessionID, OldSessionID, MemoryFSListPtr, formattedBackgroundColour);
+       ArrayvCardOutData FNList;
+       FNList = vCardObj->GetByPartial(wxT("FN"));
+       
+       if (FNList.PropCount > 0){
+               FNList.PropValues[0].Trim();
+               SetTitle(FNList.PropValues[0]);
+       }
+       
+       if (StartupMode == false){
+       
+               WindowData *WData = new WindowData;
 
-       WindowData *WData = new WindowData;
+               vCardFilename = vCardObj->GetFilename();
 
-       vCardFilename = vCardObj->GetFilename();
+               WData->DataType = 0;
+               WData->WindowPointer = this;
+               WData->WindowID = ContactUID;
+       
+               wxCommandEvent editevent(WINDOW_EDIT);
+               editevent.SetClientData(WData);
+               wxPostEvent(GetParent(), editevent);
+               
+       }
 
-       WData->DataType = 0;
-       WData->WindowPointer = this;
-       WData->WindowID = ContactUID;
+       return TRUE;
+}
 
-       wxCommandEvent editevent(WINDOW_EDIT);
-       editevent.SetClientData(WData);
-       wxPostEvent(GetParent(), editevent);
+void frmContact::SetMode(bool StartupModeIn){
 
-       return TRUE;
+       // Set the mode which frmContact will be operating.
+       
+       StartupMode = StartupModeIn;
+       
 }
 
 void frmContact::SetupPointers(std::map<wxString,wxString> *MemoryFSListIncPtr){
 
+       // Set the pointer for the Memory Filesystem map.
+       
        MemoryFSListPtr = MemoryFSListIncPtr;
 
 }
 
 void frmContact::SetUID(int UID){
 
+       // Set the UID of the contact window.
+       
        ContactUID = UID;
 
 }
 
 wxString frmContact::GetFilename(){
 
+       // Get the filename of the contact being displayed.
+       
        return vCardFilename;
 
+}
+
+void frmContact::SetBackgroundColour(wxString backgroundColour){
+       
+       // Set the background colour.
+       
+       this->backgroundColour = backgroundColour;
+       
 }
\ No newline at end of file
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