Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
Splitting frmContactEditor.cpp into 15 files to make it more manageable.
[xestiaab/.git] / source / contacteditor / frmContactEditor-Picture.cpp
1 #include "frmContactEditor.h"
2 #include "frmContactEditorPicture.h"
3 #include "../common/base64.h"
5 void frmContactEditor::AddPicture( wxCommandEvent& event )
6 {
7     int intResult = 0;
8     
9     frmContactEditorPicture *frameCEPicture = new frmContactEditorPicture ( this );
10     frameCEPicture->SetEditorMode(FALSE);
11     intResult = GetLastInt(&PicturesList);
12     frameCEPicture->SetupPointers(&PicturesList,
13                                   &PicturesListAltID,
14                                   &PicturesListPID,
15                                   &PicturesListType,
16                                   &PicturesListPicEncType,
17                                   &PicturesListPictureType,
18                                   &PicturesListTokens,
19                                   &PicturesListMediatype,
20                                   &PicturesListPref,
21                                   lboPictures,
22                                   (intValueSeek));
23     frameCEPicture->ShowModal();
24     delete frameCEPicture;
25     frameCEPicture = NULL;
26 }
28 void frmContactEditor::ModifyPicture( wxCommandEvent& event )
29 {
30     long longSelected = -1;
31     int intSelectedData = 0;
32     
33     if (!GetSelectedItem(lboPictures,
34                          &longSelected,
35                          &intSelectedData)){
36         return;
37     }
38     
39     frmContactEditorPicture *frameCEPicture = new frmContactEditorPicture ( this );
40     frameCEPicture->SetupPointers(&PicturesList,
41                                   &PicturesListAltID,
42                                   &PicturesListPID,
43                                   &PicturesListType,
44                                   &PicturesListPicEncType,
45                                   &PicturesListPictureType,
46                                   &PicturesListTokens,
47                                   &PicturesListMediatype,
48                                   &PicturesListPref,
49                                   lboPictures,
50                                   intSelectedData);
51     frameCEPicture->SetEditorMode(TRUE);
52     frameCEPicture->ShowModal();
53     delete frameCEPicture;
54     frameCEPicture = NULL;
55     
56 }
58 void frmContactEditor::DeletePicture( wxCommandEvent& event )
59 {
60     long longSelected = -1;
61     int intSelectedData = 0;
62     
63     if (!GetSelectedItem(lboPictures,
64                          &longSelected,
65                          &intSelectedData)){
66         return;
67     }
68     
69     lboPictures->DeleteItem(longSelected);
70     
71     DeleteMapData(intSelectedData,
72                   &PicturesList, &PicturesListAltID, &PicturesListPID, &PicturesListType,
73                   &PicturesListPicEncType, &PicturesListPictureType, &PicturesListTokens,
74                   &PicturesListMediatype, &PicturesListPref);
75     
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;
79     
80     imgPicture->SetBitmap(PictureImage);
81 }
83 void frmContactEditor::LoadPicture( wxListEvent& event )
84 {
85     
86     long longSelected = -1;
87     int intSelectedData = 0;
88     
89     if (!GetSelectedItem(lboPictures,
90                          &longSelected,
91                          &intSelectedData)){
92         return;
93     }
94     
95     std::string base64dec;
96     
97     std::map<int,std::string>::iterator initier;
98     std::map<int,wxString>::iterator pictypeiter;
99     
100     initier = PicturesList.find(intSelectedData);
101     pictypeiter = PicturesListPictureType.find(intSelectedData);
102     
103     base64dec = base64_decode(initier->second);
104     
105     wxMemoryInputStream istream(base64dec.c_str(), (size_t)base64dec.size());
106     wxImage photo;
107     //wxMemoryInputStream istream(base64dec, (size_t)base64dec.size());
108     
109     if (pictypeiter->second == wxT("image/jpeg")){
110         
111         if (!photo.LoadFile(istream, wxBITMAP_TYPE_JPEG)){
112         
113             return;
114         
115         }
116         
117     } else if (pictypeiter->second == wxT("image/png")){
118         
119         if (!photo.LoadFile(istream, wxBITMAP_TYPE_PNG)){
120             
121             return;
122             
123         }
124         
125     } else if (pictypeiter->second == wxT("image/gif")){
126         
127         if (!photo.LoadFile(istream, wxBITMAP_TYPE_GIF)){
128             
129             return;
130             
131         }
132         
133     } else {
134     
135         return;
136     
137     }
138     
139     PictureImage = (wxBitmap)photo;
140     imgPicture->SetBitmap(PictureImage);
141     
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