1 #include "frmContactEditorNickname.h"
2 #include "../common/textprocessing.h"
4 frmContactEditorNickname::frmContactEditorNickname( wxWindow* parent )
6 frmContactEditorNicknameADT( parent )
11 void frmContactEditorNickname::InitAddressEditor( wxInitDialogEvent& event )
13 // Do nothing with this subroutine for the time being.
16 void frmContactEditorNickname::EnablePriority( wxCommandEvent& event )
18 if (chkUsePref->IsChecked()){
19 sliPriority->Enable();
21 sliPriority->Disable();
25 void frmContactEditorNickname::ProcessData( wxCommandEvent& event )
29 if (EditorMode == FALSE){
31 // Add the language to the list.
37 NicknamesListPtr->insert(std::make_pair(NicknamesListIndex, txtNickname->GetValue()));
41 if (EditSectionType == CE_GENERAL){
43 NicknamesListTypePtr->insert(std::make_pair(NicknamesListIndex, wxT("")));
45 } else if (EditSectionType == CE_HOME) {
47 NicknamesListTypePtr->insert(std::make_pair(NicknamesListIndex, wxT("home")));
49 } else if (EditSectionType == CE_WORK) {
51 NicknamesListTypePtr->insert(std::make_pair(NicknamesListIndex, wxT("work")));
55 // Add nickname language.
57 NicknamesListLanguagePtr->insert(std::make_pair(NicknamesListIndex, cmbLanguage->GetValue()));
59 // Add nickname priority.
61 if (chkUsePref->IsChecked()){
63 NicknamesListPrefPtr->insert(std::make_pair(NicknamesListIndex, sliPriority->GetValue()));
67 NicknamesListPrefPtr->insert(std::make_pair(NicknamesListIndex, 0));
71 // Add the data to the form.
75 coldata.SetId(NicknamesListIndex);
76 coldata.SetData(NicknamesListIndex);
77 coldata.SetText(txtNickname->GetValue());
78 ListCtrlIndex = NicknamesListCtrlPtr->InsertItem(coldata);
80 if (chkUsePref->IsChecked()){
82 NicknamesListCtrlPtr->SetItem(ListCtrlIndex, 1, wxString::Format(wxT("%i"), sliPriority->GetValue()));
88 } else if (EditorMode == TRUE){
94 long longSelected = -1;
96 NicknamesListPtr->erase(NicknamesListIndex);
97 NicknamesListPtr->insert(std::make_pair(NicknamesListIndex, txtNickname->GetValue()));
99 NicknamesListPrefPtr->erase(NicknamesListIndex);
101 if (chkUsePref->IsChecked()){
103 NicknamesListPrefPtr->insert(std::make_pair(NicknamesListIndex, sliPriority->GetValue()));
107 NicknamesListPrefPtr->insert(std::make_pair(NicknamesListIndex, 0));
111 NicknamesListLanguagePtr->erase(NicknamesListIndex);
112 NicknamesListLanguagePtr->insert(std::make_pair(NicknamesListIndex, cmbLanguage->GetValue()));
114 longSelected = NicknamesListCtrlPtr->GetNextItem(longSelected,
116 wxLIST_STATE_SELECTED);
118 if (longSelected == -1){
122 NicknamesListCtrlPtr->SetItem(longSelected, 0, txtNickname->GetValue());
124 if (chkUsePref->IsChecked()){
126 NicknamesListCtrlPtr->SetItem(longSelected, 1, wxString::Format(wxT("%i"), sliPriority->GetValue()));
130 NicknamesListCtrlPtr->SetItem(longSelected, 1, wxT(""));
140 void frmContactEditorNickname::CloseWindow( wxCommandEvent& event )
145 void frmContactEditorNickname::SetEditorMode(bool EditMode, SectionType SectType)
147 // Set if the editor is adding or editing an address.
151 if (EditMode == FALSE){
154 btnAction->SetLabel(_("Add"));
155 this->SetTitle(_("Add Nickname"));
157 } else if (EditMode == TRUE){
160 btnAction->SetLabel(_("Modify"));
161 this->SetTitle(_("Modify Nickname"));
163 std::map<int,int>::iterator intiter;
164 std::map<int,wxString>::iterator striter;
167 // Load the data into the form. Get the website.
169 striter = NicknamesListPtr->find(NicknamesListIndex);
171 if (striter->first == NicknamesListIndex){
173 strValue = striter->second;
177 txtNickname->SetValue(strValue);
181 striter = NicknamesListLanguagePtr->find(NicknamesListIndex);
183 if (striter->first == NicknamesListIndex){
185 strValue = striter->second;
189 cmbLanguage->SetValue(strValue);
192 // Get the website priority.
194 intiter = NicknamesListPrefPtr->find(NicknamesListIndex);
196 if (intiter->first == NicknamesListIndex && intiter->second > 0){
198 sliPriority->SetValue(intiter->second);
199 sliPriority->Enable();
200 chkUsePref->SetValue(TRUE);
206 EditSectionType = SectType;
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,
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;