1 #include "frmContactEditor.h"
2 #include "frmContactEditorPicture.h"
3 #include "../common/base64.h"
5 void frmContactEditor::AddPicture( wxCommandEvent& event )
9 frmContactEditorPicture *frameCEPicture = new frmContactEditorPicture ( this );
10 frameCEPicture->SetEditorMode(FALSE);
11 intResult = GetLastInt(&PicturesList);
12 frameCEPicture->SetupPointers(&PicturesList,
16 &PicturesListPicEncType,
17 &PicturesListPictureType,
19 &PicturesListMediatype,
23 frameCEPicture->ShowModal();
24 delete frameCEPicture;
25 frameCEPicture = NULL;
28 void frmContactEditor::ModifyPicture( wxCommandEvent& event )
30 long longSelected = -1;
31 int intSelectedData = 0;
33 if (!GetSelectedItem(lboPictures,
39 frmContactEditorPicture *frameCEPicture = new frmContactEditorPicture ( this );
40 frameCEPicture->SetupPointers(&PicturesList,
44 &PicturesListPicEncType,
45 &PicturesListPictureType,
47 &PicturesListMediatype,
51 frameCEPicture->SetEditorMode(TRUE);
52 frameCEPicture->ShowModal();
53 delete frameCEPicture;
54 frameCEPicture = NULL;
58 void frmContactEditor::DeletePicture( wxCommandEvent& event )
60 long longSelected = -1;
61 int intSelectedData = 0;
63 if (!GetSelectedItem(lboPictures,
69 lboPictures->DeleteItem(longSelected);
71 DeleteMapData(intSelectedData,
72 &PicturesList, &PicturesListAltID, &PicturesListPID, &PicturesListType,
73 &PicturesListPicEncType, &PicturesListPictureType, &PicturesListTokens,
74 &PicturesListMediatype, &PicturesListPref);
76 wxMemoryInputStream istream(misc_emptyimage_png, sizeof(misc_emptyimage_png));
77 wxImage misc_emptyimage_png(istream, wxBITMAP_TYPE_PNG);
78 PictureImage = (wxBitmap)misc_emptyimage_png;
80 imgPicture->SetBitmap(PictureImage);
83 void frmContactEditor::LoadPicture( wxListEvent& event )
86 long longSelected = -1;
87 int intSelectedData = 0;
89 if (!GetSelectedItem(lboPictures,
95 std::string base64dec;
97 std::map<int,std::string>::iterator initier;
98 std::map<int,wxString>::iterator pictypeiter;
100 initier = PicturesList.find(intSelectedData);
101 pictypeiter = PicturesListPictureType.find(intSelectedData);
103 base64dec = base64_decode(initier->second);
105 wxMemoryInputStream istream(base64dec.c_str(), (size_t)base64dec.size());
107 //wxMemoryInputStream istream(base64dec, (size_t)base64dec.size());
109 if (pictypeiter->second == wxT("image/jpeg")){
111 if (!photo.LoadFile(istream, wxBITMAP_TYPE_JPEG)){
117 } else if (pictypeiter->second == wxT("image/png")){
119 if (!photo.LoadFile(istream, wxBITMAP_TYPE_PNG)){
125 } else if (pictypeiter->second == wxT("image/gif")){
127 if (!photo.LoadFile(istream, wxBITMAP_TYPE_GIF)){
139 PictureImage = (wxBitmap)photo;
140 imgPicture->SetBitmap(PictureImage);