Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
Added comments to describe functions for frmContactEditorNickname
[xestiaab/.git] / source / contacteditor / frmContactEditorNickname.cpp
1 // frmContactEditorNickname.cpp - frmContactEditorNickname form.
2 //
3 // (c) 2012-2015 Xestia Software Development.
4 //
5 // This file is part of Xestia Address Book.
6 //
7 // Xestia Address Book is free software: you can redistribute it and/or modify
8 // it under the terms of the GNU General Public License as published by the
9 // Free Software Foundation, version 3 of the license.
10 //
11 // Xestia Address Book is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 // GNU General Public License for more details.
15 //
16 // You should have received a copy of the GNU General Public License along
17 // with Xestia Address Book. If not, see <http://www.gnu.org/licenses/>
19 #include "frmContactEditorNickname.h"
20 #include "../common/textprocessing.h"
22 frmContactEditorNickname::frmContactEditorNickname( wxWindow* parent )
23 :
24 frmContactEditorNicknameADT( parent )
25 {
27 }
29 void frmContactEditorNickname::InitAddressEditor( wxInitDialogEvent& event )
30 {
31         // Do nothing with this subroutine for the time being.
32 }
34 void frmContactEditorNickname::EnablePriority( wxCommandEvent& event )
35 {
36         
37         // Enable/disable the priority.
38         
39         if (chkUsePref->IsChecked()){
40                 sliPriority->Enable();
41         } else {
42                 sliPriority->Disable();
43         }
44         
45 }
47 void frmContactEditorNickname::ProcessData( wxCommandEvent& event )
48 {
49         
50         // Process the data.
51         
52         long ListCtrlIndex;
54         if (EditorMode == FALSE){
55         
56                 // Add the language to the list.
58                 wxString strValue;
59                 
60                 // Add nickname.
61                 
62                 NicknamesListPtr->insert(std::make_pair(NicknamesListIndex, txtNickname->GetValue()));
63                 
64                 // Add nickname type.
65                 
66                 if (EditSectionType == CE_GENERAL){
67                 
68                         NicknamesListTypePtr->insert(std::make_pair(NicknamesListIndex, wxT("")));
69                 
70                 } else if (EditSectionType == CE_HOME) {
71                 
72                         NicknamesListTypePtr->insert(std::make_pair(NicknamesListIndex, wxT("home")));
73                 
74                 } else if (EditSectionType == CE_WORK) {
75                 
76                         NicknamesListTypePtr->insert(std::make_pair(NicknamesListIndex, wxT("work")));
77                 
78                 }
79                 
80                 // Add nickname language.
81                 
82                 NicknamesListLanguagePtr->insert(std::make_pair(NicknamesListIndex, cmbLanguage->GetValue()));
83                 
84                 // Add nickname priority.
85                 
86                 if (chkUsePref->IsChecked()){
87                 
88                         NicknamesListPrefPtr->insert(std::make_pair(NicknamesListIndex, sliPriority->GetValue()));
89                 
90                 } else {
91                 
92                         NicknamesListPrefPtr->insert(std::make_pair(NicknamesListIndex, 0));            
93                 
94                 }               
95                 
96                 // Add the data to the form.
97                 
98                 wxListItem coldata;
99                 
100                 coldata.SetId(NicknamesListIndex);
101                 coldata.SetData(NicknamesListIndex);            
102                 coldata.SetText(txtNickname->GetValue());
103                 ListCtrlIndex = NicknamesListCtrlPtr->InsertItem(coldata);
104                 
105                 if (chkUsePref->IsChecked()){
106                 
107                         NicknamesListCtrlPtr->SetItem(ListCtrlIndex, 1, wxString::Format(wxT("%i"), sliPriority->GetValue()));
108                 
109                 }
110                 
111                 this->Close();          
112         
113         } else if (EditorMode == TRUE){
114         
115                 // Edit the language.
116                 
117                 wxString strAddress;
118                 wxString strValue;
119                 long longSelected = -1;
121                 NicknamesListPtr->erase(NicknamesListIndex);
122                 NicknamesListPtr->insert(std::make_pair(NicknamesListIndex, txtNickname->GetValue()));
123                 
124                 NicknamesListPrefPtr->erase(NicknamesListIndex);
125                 
126                 if (chkUsePref->IsChecked()){
127                 
128                         NicknamesListPrefPtr->insert(std::make_pair(NicknamesListIndex, sliPriority->GetValue()));
129                 
130                 } else {
131                 
132                         NicknamesListPrefPtr->insert(std::make_pair(NicknamesListIndex, 0));            
133                 
134                 }
135                 
136                 NicknamesListLanguagePtr->erase(NicknamesListIndex);
137                 NicknamesListLanguagePtr->insert(std::make_pair(NicknamesListIndex, cmbLanguage->GetValue()));
138                 
139                 longSelected = NicknamesListCtrlPtr->GetNextItem(longSelected, 
140                         wxLIST_NEXT_ALL,
141                         wxLIST_STATE_SELECTED);
142                         
143                 if (longSelected == -1){
144                         return;
145                 }
146                 
147                 NicknamesListCtrlPtr->SetItem(longSelected, 0, txtNickname->GetValue());
148                 
149                 if (chkUsePref->IsChecked()){
150                 
151                         NicknamesListCtrlPtr->SetItem(longSelected, 1, wxString::Format(wxT("%i"), sliPriority->GetValue()));
152                 
153                 } else {
154                 
155                         NicknamesListCtrlPtr->SetItem(longSelected, 1, wxT(""));
156                 
157                 }       
158                         
159                 this->Close();
160         
161         }
165 void frmContactEditorNickname::CloseWindow( wxCommandEvent& event )
167         
168         // Close this window.
169         
170         this->Close();
171         
174 void frmContactEditorNickname::SetEditorMode(bool EditMode, SectionType SectType)
176         
177         // Set if the editor is adding or editing an address.
178         // FALSE = Add
179         // TRUE = Edit
180         
181         if (EditMode == FALSE){
182         
183                 EditorMode = FALSE;
184                 btnAction->SetLabel(_("Add"));
185                 this->SetTitle(_("Add Nickname"));
186         
187         } else if (EditMode == TRUE){
188         
189                 EditorMode = TRUE;
190                 btnAction->SetLabel(_("Modify"));
191                 this->SetTitle(_("Modify Nickname"));
192                 
193                 std::map<int,int>::iterator intiter;
194                 std::map<int,wxString>::iterator striter;               
195                 wxString strValue;
196                 
197                 // Load the data into the form. Get the website.
198                 
199                 striter = NicknamesListPtr->find(NicknamesListIndex);
200                  
201                 if (striter->first == NicknamesListIndex){
202                 
203                         strValue = striter->second;
204                 
205                 }
206                 
207                 txtNickname->SetValue(strValue);
208                 
209                 strValue.Clear();
210                 
211                 striter = NicknamesListLanguagePtr->find(NicknamesListIndex);
212                  
213                 if (striter->first == NicknamesListIndex &&
214                         striter != NicknamesListLanguagePtr->end()){
215                 
216                         strValue = striter->second;
217                 
218                 }
219                 
220                 cmbLanguage->SetValue(strValue);
221                 strValue.Clear();
222                 
223                 // Get the website priority.
224                 
225                 intiter = NicknamesListPrefPtr->find(NicknamesListIndex);
226                 
227                 if (intiter->first == NicknamesListIndex && intiter->second > 0 &&
228                         intiter != NicknamesListPrefPtr->end()){
229                 
230                         sliPriority->SetValue(intiter->second);
231                         sliPriority->Enable();
232                         chkUsePref->SetValue(TRUE);
233                 
234                 }       
235                 
236         }
237         
238         EditSectionType = SectType;     
239                 
242 void frmContactEditorNickname::SetupPointers(std::map<int, wxString> *NicknamesList,            
243         std::map<int, wxString> *NicknamesListAltID,
244         std::map<int, wxString> *NicknamesListPID,
245         std::map<int, wxString> *NicknamesListType,
246         std::map<int, wxString> *NicknamesListLanguage,
247         std::map<int, wxString> *NicknamesListTokens,
248         std::map<int, int> *NicknamesListPref,
249         wxListCtrl *NicknamesListCtrl,
250         int NicknamesIndex )
253         // Setup the pointers.
254         
255         NicknamesListPtr = NicknamesList;
256         NicknamesListAltIDPtr = NicknamesListAltID;
257         NicknamesListPIDPtr = NicknamesListPID;
258         NicknamesListTypePtr = NicknamesListType;
259         NicknamesListLanguagePtr = NicknamesListLanguage;
260         NicknamesListTokensPtr = NicknamesListTokens;
261         NicknamesListPrefPtr = NicknamesListPref;
262         NicknamesListCtrlPtr = NicknamesListCtrl;
263         NicknamesListIndex = NicknamesIndex;
264         
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