X-Git-Url: http://Server1/repobrowser/?a=blobdiff_plain;f=source%2Fcontacteditor%2FfrmContactEditor-Picture.cpp;h=e2eeae7089591f9095f11a8d5ebbf1a2fb732ea0;hb=f69e09d827e06435ea94bb73aa71ab5f9d5c035b;hp=68aa2cbf22be17f4ed1cc568a4523e93b515672a;hpb=d06d0b1d631e7a48c34738397e98651f541d4000;p=xestiaab%2F.git diff --git a/source/contacteditor/frmContactEditor-Picture.cpp b/source/contacteditor/frmContactEditor-Picture.cpp index 68aa2cb..e2eeae7 100644 --- a/source/contacteditor/frmContactEditor-Picture.cpp +++ b/source/contacteditor/frmContactEditor-Picture.cpp @@ -1,6 +1,6 @@ // frmContactEditor-Picture.cpp - frmContactEditor Picture tab subroutines. // -// (c) 2012-2015 Xestia Software Development. +// (c) 2012-2016 Xestia Software Development. // // This file is part of Xestia Address Book. // @@ -23,150 +23,164 @@ void frmContactEditor::AddPicture( wxCommandEvent& event ) { - int intResult = 0; - - frmContactEditorPicture *frameCEPicture = new frmContactEditorPicture ( this ); - frameCEPicture->SetEditorMode(FALSE); - intResult = GetLastInt(&PicturesList); - frameCEPicture->SetupPointers(&PicturesList, - &PicturesListAltID, - &PicturesListPID, - &PicturesListType, - &PicturesListPicEncType, - &PicturesListPictureType, - &PicturesListTokens, - &PicturesListMediatype, - &PicturesListPref, - lboPictures, - (intValueSeek)); - frameCEPicture->ShowModal(); - delete frameCEPicture; - frameCEPicture = NULL; + + // Bring up window for adding a picture. + + frmContactEditorPicture *frameCEPicture = new frmContactEditorPicture ( this ); + frameCEPicture->SetEditorMode(FALSE); + frameCEPicture->SetupPointers(&ContactEditorData.PicturesList, + &ContactEditorData.PicturesListAltID, + &ContactEditorData.PicturesListPID, + &ContactEditorData.PicturesListType, + &ContactEditorData.PicturesListPicEncType, + &ContactEditorData.PicturesListPictureType, + &ContactEditorData.PicturesListTokens, + &ContactEditorData.PicturesListMediatype, + &ContactEditorData.PicturesListPref, + lboPictures, + (intValueSeek), + TRUE); + frameCEPicture->ShowModal(); + delete frameCEPicture; + frameCEPicture = NULL; + intValueSeek++; + } void frmContactEditor::ModifyPicture( wxCommandEvent& event ) { - long longSelected = -1; - int intSelectedData = 0; + + // Bring up window for modifying a picture. + + long longSelected = -1; + int intSelectedData = 0; - if (!GetSelectedItem(lboPictures, - &longSelected, - &intSelectedData)){ - return; - } - - frmContactEditorPicture *frameCEPicture = new frmContactEditorPicture ( this ); - frameCEPicture->SetupPointers(&PicturesList, - &PicturesListAltID, - &PicturesListPID, - &PicturesListType, - &PicturesListPicEncType, - &PicturesListPictureType, - &PicturesListTokens, - &PicturesListMediatype, - &PicturesListPref, - lboPictures, - intSelectedData); - frameCEPicture->SetEditorMode(TRUE); - frameCEPicture->ShowModal(); - delete frameCEPicture; - frameCEPicture = NULL; + if (lboPictures->GetItemCount() == 0 || !GetSelectedItem(lboPictures, + &longSelected, + &intSelectedData)){ + return; + } + + frmContactEditorPicture *frameCEPicture = new frmContactEditorPicture ( this ); + frameCEPicture->SetupPointers(&ContactEditorData.PicturesList, + &ContactEditorData.PicturesListAltID, + &ContactEditorData.PicturesListPID, + &ContactEditorData.PicturesListType, + &ContactEditorData.PicturesListPicEncType, + &ContactEditorData.PicturesListPictureType, + &ContactEditorData.PicturesListTokens, + &ContactEditorData.PicturesListMediatype, + &ContactEditorData.PicturesListPref, + lboPictures, + intSelectedData, + TRUE); + frameCEPicture->SetEditorMode(TRUE); + frameCEPicture->ShowModal(); + delete frameCEPicture; + frameCEPicture = NULL; } void frmContactEditor::DeletePicture( wxCommandEvent& event ) { - long longSelected = -1; - int intSelectedData = 0; + + // Bring up window for deleting a picture. + + long longSelected = -1; + int intSelectedData = 0; - if (!GetSelectedItem(lboPictures, - &longSelected, - &intSelectedData)){ - return; - } + if (lboPictures->GetItemCount() == 0 || !GetSelectedItem(lboPictures, + &longSelected, + &intSelectedData)){ + return; + } - lboPictures->DeleteItem(longSelected); + lboPictures->DeleteItem(longSelected); - DeleteMapData(intSelectedData, - &PicturesList, &PicturesListAltID, &PicturesListPID, &PicturesListType, - &PicturesListPicEncType, &PicturesListPictureType, &PicturesListTokens, - &PicturesListMediatype, &PicturesListPref); + DeleteMapData(intSelectedData, + &ContactEditorData.PicturesList, &ContactEditorData.PicturesListAltID, &ContactEditorData.PicturesListPID, &ContactEditorData.PicturesListType, + &ContactEditorData.PicturesListPicEncType, &ContactEditorData.PicturesListPictureType, &ContactEditorData.PicturesListTokens, + &ContactEditorData.PicturesListMediatype, &ContactEditorData.PicturesListPref); - wxMemoryInputStream istream(misc_emptyimage_png, sizeof(misc_emptyimage_png)); - wxImage misc_emptyimage_png(istream, wxBITMAP_TYPE_PNG); - PictureImage = (wxBitmap)misc_emptyimage_png; + wxMemoryInputStream istream(misc_emptyimage_png, sizeof(misc_emptyimage_png)); + wxImage misc_emptyimage_png(istream, wxBITMAP_TYPE_PNG); + PictureImage = (wxBitmap)misc_emptyimage_png; - imgPicture->SetBitmap(PictureImage); + imgPicture->SetBitmap(PictureImage); + } void frmContactEditor::LoadPicture( wxListEvent& event ) { - long longSelected = -1; - int intSelectedData = 0; - - if (!GetSelectedItem(lboPictures, - &longSelected, - &intSelectedData)){ - return; - } + // Load the picture. + + long longSelected = -1; + int intSelectedData = 0; - std::string base64dec; + if (lboPictures->GetItemCount() == 0 || !GetSelectedItem(lboPictures, + &longSelected, + &intSelectedData)){ + return; + } - std::map::iterator initier; - std::map::iterator pictypeiter; + std::string base64dec; + + std::map::iterator initier; + std::map::iterator pictypeiter; - initier = PicturesList.find(intSelectedData); - pictypeiter = PicturesListPictureType.find(intSelectedData); + initier = ContactEditorData.PicturesList.find(intSelectedData); + pictypeiter = ContactEditorData.PicturesListPictureType.find(intSelectedData); - base64dec = base64_decode(initier->second); + base64dec = base64_decode(initier->second); - wxMemoryInputStream istream(base64dec.c_str(), (size_t)base64dec.size()); - wxImage photo; - //wxMemoryInputStream istream(base64dec, (size_t)base64dec.size()); + wxMemoryInputStream istream(base64dec.c_str(), (size_t)base64dec.size()); + wxImage photo; - if (pictypeiter->second == wxT("image/jpeg")){ + if (pictypeiter->second == wxT("image/jpeg")){ - if (!photo.LoadFile(istream, wxBITMAP_TYPE_JPEG)){ + if (!photo.LoadFile(istream, wxBITMAP_TYPE_JPEG)){ - return; + return; - } + } - } else if (pictypeiter->second == wxT("image/png")){ + } else if (pictypeiter->second == wxT("image/png")){ - if (!photo.LoadFile(istream, wxBITMAP_TYPE_PNG)){ + if (!photo.LoadFile(istream, wxBITMAP_TYPE_PNG)){ - return; + return; - } + } - } else if (pictypeiter->second == wxT("image/gif")){ + } else if (pictypeiter->second == wxT("image/gif")){ - if (!photo.LoadFile(istream, wxBITMAP_TYPE_GIF)){ + if (!photo.LoadFile(istream, wxBITMAP_TYPE_GIF)){ - return; + return; - } + } - } else { + } else { - return; + return; - } + } - PictureImage = (wxBitmap)photo; - imgPicture->SetBitmap(PictureImage); + PictureImage = (wxBitmap)photo; + imgPicture->SetBitmap(PictureImage); } void frmContactEditor::SavePicture( wxCommandEvent &event ) { + // Save the picture to a file. + long longSelected = -1; int intSelectedData = 0; - if (!GetSelectedItem(lboPictures, + if (lboPictures->GetItemCount() == 0 || !GetSelectedItem(lboPictures, &longSelected, &intSelectedData)){ @@ -181,8 +195,8 @@ void frmContactEditor::SavePicture( wxCommandEvent &event ) std::map::iterator initier; std::map::iterator pictypeiter; - initier = PicturesList.find(intSelectedData); - pictypeiter = PicturesListPictureType.find(intSelectedData); + initier = ContactEditorData.PicturesList.find(intSelectedData); + pictypeiter = ContactEditorData.PicturesListPictureType.find(intSelectedData); if (pictypeiter->second == wxT("image/jpeg")){ @@ -222,7 +236,7 @@ void frmContactEditor::SavePicture( wxCommandEvent &event ) std::string base64dec; - initier = PicturesList.find(intSelectedData); + initier = ContactEditorData.PicturesList.find(intSelectedData); base64dec = base64_decode(initier->second); PictureFile.Write(base64dec.c_str(), (size_t)base64dec.size());