Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
Initial import of code already done for Xestia Address Book
[xestiaab/.git] / source / contacteditor / frmContactEditorNickname.cpp
1 #include "frmContactEditorNickname.h"
2 #include "../common/textprocessing.h"
4 frmContactEditorNickname::frmContactEditorNickname( wxWindow* parent )
5 :
6 frmContactEditorNicknameADT( parent )
7 {
9 }
11 void frmContactEditorNickname::InitAddressEditor( wxInitDialogEvent& event )
12 {
13         // Do nothing with this subroutine for the time being.
14 }
16 void frmContactEditorNickname::EnablePriority( wxCommandEvent& event )
17 {
18         if (chkUsePref->IsChecked()){
19                 sliPriority->Enable();
20         } else {
21                 sliPriority->Disable();
22         }
23 }
25 void frmContactEditorNickname::ProcessData( wxCommandEvent& event )
26 {
27         long ListCtrlIndex;
29         if (EditorMode == FALSE){
30         
31                 // Add the language to the list.
33                 wxString strValue;
34                 
35                 // Add nickname.
36                 
37                 NicknamesListPtr->insert(std::make_pair(NicknamesListIndex, txtNickname->GetValue()));
38                 
39                 // Add nickname type.
40                 
41                 if (EditSectionType == CE_GENERAL){
42                 
43                         NicknamesListTypePtr->insert(std::make_pair(NicknamesListIndex, wxT("")));
44                 
45                 } else if (EditSectionType == CE_HOME) {
46                 
47                         NicknamesListTypePtr->insert(std::make_pair(NicknamesListIndex, wxT("home")));
48                 
49                 } else if (EditSectionType == CE_WORK) {
50                 
51                         NicknamesListTypePtr->insert(std::make_pair(NicknamesListIndex, wxT("work")));
52                 
53                 }
54                 
55                 // Add nickname language.
56                 
57                 NicknamesListLanguagePtr->insert(std::make_pair(NicknamesListIndex, cmbLanguage->GetValue()));
58                 
59                 // Add nickname priority.
60                 
61                 if (chkUsePref->IsChecked()){
62                 
63                         NicknamesListPrefPtr->insert(std::make_pair(NicknamesListIndex, sliPriority->GetValue()));
64                 
65                 } else {
66                 
67                         NicknamesListPrefPtr->insert(std::make_pair(NicknamesListIndex, 0));            
68                 
69                 }               
70                 
71                 // Add the data to the form.
72                 
73                 wxListItem coldata;
74                 
75                 coldata.SetId(NicknamesListIndex);
76                 coldata.SetData(NicknamesListIndex);            
77                 coldata.SetText(txtNickname->GetValue());
78                 ListCtrlIndex = NicknamesListCtrlPtr->InsertItem(coldata);
79                 
80                 if (chkUsePref->IsChecked()){
81                 
82                         NicknamesListCtrlPtr->SetItem(ListCtrlIndex, 1, wxString::Format(wxT("%i"), sliPriority->GetValue()));
83                 
84                 }
85                 
86                 this->Close();          
87         
88         } else if (EditorMode == TRUE){
89         
90                 // Edit the language.
91                 
92                 wxString strAddress;
93                 wxString strValue;
94                 long longSelected = -1;
96                 NicknamesListPtr->erase(NicknamesListIndex);
97                 NicknamesListPtr->insert(std::make_pair(NicknamesListIndex, txtNickname->GetValue()));
98                 
99                 NicknamesListPrefPtr->erase(NicknamesListIndex);
100                 
101                 if (chkUsePref->IsChecked()){
102                 
103                         NicknamesListPrefPtr->insert(std::make_pair(NicknamesListIndex, sliPriority->GetValue()));
104                 
105                 } else {
106                 
107                         NicknamesListPrefPtr->insert(std::make_pair(NicknamesListIndex, 0));            
108                 
109                 }
110                 
111                 NicknamesListLanguagePtr->erase(NicknamesListIndex);
112                 NicknamesListLanguagePtr->insert(std::make_pair(NicknamesListIndex, cmbLanguage->GetValue()));
113                 
114                 longSelected = NicknamesListCtrlPtr->GetNextItem(longSelected, 
115                         wxLIST_NEXT_ALL,
116                         wxLIST_STATE_SELECTED);
117                         
118                 if (longSelected == -1){
119                         return;
120                 }
121                 
122                 NicknamesListCtrlPtr->SetItem(longSelected, 0, txtNickname->GetValue());
123                 
124                 if (chkUsePref->IsChecked()){
125                 
126                         NicknamesListCtrlPtr->SetItem(longSelected, 1, wxString::Format(wxT("%i"), sliPriority->GetValue()));
127                 
128                 } else {
129                 
130                         NicknamesListCtrlPtr->SetItem(longSelected, 1, wxT(""));
131                 
132                 }       
133                         
134                 this->Close();
135         
136         }
140 void frmContactEditorNickname::CloseWindow( wxCommandEvent& event )
142         this->Close();
145 void frmContactEditorNickname::SetEditorMode(bool EditMode, SectionType SectType)
147         // Set if the editor is adding or editing an address.
148         // FALSE = Add
149         // TRUE = Edit
150         
151         if (EditMode == FALSE){
152         
153                 EditorMode = FALSE;
154                 btnAction->SetLabel(_("Add"));
155                 this->SetTitle(_("Add Nickname"));
156         
157         } else if (EditMode == TRUE){
158         
159                 EditorMode = TRUE;
160                 btnAction->SetLabel(_("Modify"));
161                 this->SetTitle(_("Modify Nickname"));
162                 
163                 std::map<int,int>::iterator intiter;
164                 std::map<int,wxString>::iterator striter;               
165                 wxString strValue;
166                 
167                 // Load the data into the form. Get the website.
168                 
169                 striter = NicknamesListPtr->find(NicknamesListIndex);
170                  
171                 if (striter->first == NicknamesListIndex){
172                 
173                         strValue = striter->second;
174                 
175                 }
176                 
177                 txtNickname->SetValue(strValue);
178                 
179                 strValue.Clear();
180                 
181                 striter = NicknamesListLanguagePtr->find(NicknamesListIndex);
182                  
183                 if (striter->first == NicknamesListIndex){
184                 
185                         strValue = striter->second;
186                 
187                 }
188                 
189                 cmbLanguage->SetValue(strValue);
190                 strValue.Clear();
191                 
192                 // Get the website priority.
193                 
194                 intiter = NicknamesListPrefPtr->find(NicknamesListIndex);
195                 
196                 if (intiter->first == NicknamesListIndex && intiter->second > 0){
197                 
198                         sliPriority->SetValue(intiter->second);
199                         sliPriority->Enable();
200                         chkUsePref->SetValue(TRUE);
201                 
202                 }       
203                 
204         }
205         
206         EditSectionType = SectType;     
207                 
210 void frmContactEditorNickname::SetupPointers(std::map<int, wxString> *NicknamesList,            
211         std::map<int, wxString> *NicknamesListAltID,
212         std::map<int, wxString> *NicknamesListPID,
213         std::map<int, wxString> *NicknamesListType,
214         std::map<int, wxString> *NicknamesListLanguage,
215         std::map<int, wxString> *NicknamesListTokens,
216         std::map<int, int> *NicknamesListPref,
217         wxListCtrl *NicknamesListCtrl,
218         int NicknamesIndex )
221         NicknamesListPtr = NicknamesList;
222         NicknamesListAltIDPtr = NicknamesListAltID;
223         NicknamesListPIDPtr = NicknamesListPID;
224         NicknamesListTypePtr = NicknamesListType;
225         NicknamesListLanguagePtr = NicknamesListLanguage;
226         NicknamesListTokensPtr = NicknamesListTokens;
227         NicknamesListPrefPtr = NicknamesListPref;
228         NicknamesListCtrlPtr = NicknamesListCtrl;
229         NicknamesListIndex = NicknamesIndex;
230         
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