Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
Initial import of code already done for Xestia Address Book
[xestiaab/.git] / source / contacteditor / frmContactEditorLanguages.cpp
1 #include "frmContactEditorLanguages.h"
2 #include "../common/textprocessing.h"
3 #include <map>
5 frmContactEditorLanguages::frmContactEditorLanguages( wxWindow* parent )
6 :
7 frmContactEditorLanguagesADT( parent )
8 {
9         EditorMode = FALSE;
10         sliPriority->Disable();
11 }
13 void frmContactEditorLanguages::EnablePriority( wxCommandEvent& event )
14 {
15         if (chkUsePref->IsChecked()){
16                 sliPriority->Enable();
17         } else {
18                 sliPriority->Disable();
19         }
20 }
22 void frmContactEditorLanguages::SetEditorMode(bool EditMode, SectionType SectType)
23 {
25         // Set the editor mode for adding or editing an email address.
27         if (EditMode == FALSE){
28         
29                 EditorMode = FALSE;
30                 btnAction->SetLabel(_("Add"));
31                 this->SetTitle(_("Add Language"));
32         
33         } else if (EditMode == TRUE){
34         
35                 EditorMode = TRUE;
36                 btnAction->SetLabel(_("Modify"));
37                 this->SetTitle(_("Modify Language"));
38         
39                 std::map<int,int>::iterator intiter;
40                 std::map<int,wxString>::iterator striter;
41                 wxString strValue;
42                 
43                 // Load the data into the form.
44                 
45                 striter = LanguageListPtr->find(LanguageListIndex);
46                  
47                 if (striter->first == LanguageListIndex){
48                 
49                         strValue = striter->second;
50                 
51                 }
52                 
53                 txtLanguage->SetValue(strValue);
54                 
55                 // Setup the Slider.
56                 
57                 intiter = LanguageListPrefPtr->find(LanguageListIndex);
58                 
59                 if (intiter->first == LanguageListIndex && intiter->second > 0){
60                 
61                         sliPriority->SetValue(intiter->second);
62                         sliPriority->Enable();
63                         chkUsePref->SetValue(TRUE);
64                 
65                 }       
66                 
67         }
68         
69         EditSectionType = SectType;
70 }
72 void frmContactEditorLanguages::ProcessAction( wxCommandEvent& event )
73 {
75         long ListCtrlIndex;
77         if (EditorMode == FALSE){
78         
79                 // Add the language to the list.
81                 wxString strValue;
82                 
83                 // Add language.
84                 
85                 LanguageListPtr->insert(std::make_pair(LanguageListIndex, txtLanguage->GetValue()));
86                 
87                 // Add Email type.
88                 
89                 if (EditSectionType == CE_GENERAL){
90                 
91                         LanguageListTypePtr->insert(std::make_pair(LanguageListIndex, wxT("")));
92                 
93                 } else if (EditSectionType == CE_HOME) {
94                 
95                         LanguageListTypePtr->insert(std::make_pair(LanguageListIndex, wxT("home")));
96                 
97                 } else if (EditSectionType == CE_WORK) {
98                 
99                         LanguageListTypePtr->insert(std::make_pair(LanguageListIndex, wxT("work")));
100                 
101                 }
102                 
103                 // Add Language priority.
104                 
105                 if (chkUsePref->IsChecked()){
106                 
107                         LanguageListPrefPtr->insert(std::make_pair(LanguageListIndex, sliPriority->GetValue()));
108                 
109                 } else {
110                 
111                         LanguageListPrefPtr->insert(std::make_pair(LanguageListIndex, 0));              
112                 
113                 }               
114                 
115                 // Add the data to the form.
116                 
117                 wxListItem coldata;
118                 
119                 coldata.SetId(LanguageListIndex);
120                 coldata.SetData(LanguageListIndex);             
121                 coldata.SetText(txtLanguage->GetValue());
122                 ListCtrlIndex = LanguageListCtrlPtr->InsertItem(coldata);
123                 
124                 if (chkUsePref->IsChecked()){
125                 
126                         LanguageListCtrlPtr->SetItem(ListCtrlIndex, 1, wxString::Format(wxT("%i"), sliPriority->GetValue()));
127                 
128                 }
129                 
130                 this->Close();          
131         
132         } else if (EditorMode == TRUE){
133         
134                 // Edit the language.
135                 
136                 wxString strAddress;
137                 wxString strValue;
138                 long longSelected = -1;
140                 LanguageListPtr->erase(LanguageListIndex);
141                 LanguageListPtr->insert(std::make_pair(LanguageListIndex, txtLanguage->GetValue()));
142                 
143                 LanguageListPrefPtr->erase(LanguageListIndex);
144                 
145                 if (chkUsePref->IsChecked()){
146                 
147                         LanguageListPrefPtr->insert(std::make_pair(LanguageListIndex, sliPriority->GetValue()));
148                 
149                 } else {
150                 
151                         LanguageListPrefPtr->insert(std::make_pair(LanguageListIndex, 0));              
152                 
153                 }
154                 
155                 longSelected = LanguageListCtrlPtr->GetNextItem(longSelected, 
156                         wxLIST_NEXT_ALL,
157                         wxLIST_STATE_SELECTED);
158                         
159                 if (longSelected == -1){
160                         return;
161                 }
162                 
163                 LanguageListCtrlPtr->SetItem(longSelected, 0, txtLanguage->GetValue());         
164                 
165                 if (chkUsePref->IsChecked()){
166                 
167                         LanguageListCtrlPtr->SetItem(longSelected, 1, wxString::Format(wxT("%i"), sliPriority->GetValue()));
168                 
169                 } else {
170                 
171                         LanguageListCtrlPtr->SetItem(longSelected, 1, wxT(""));
172                 
173                 }       
174                         
175                 this->Close();
176         
177         }
181 void frmContactEditorLanguages::CloseWindow( wxCommandEvent& event )
184         // Close the window.
185         
186         this->Close();
190 void frmContactEditorLanguages::SetupPointers(std::map<int, wxString> *LanguageList,
191         std::map<int, wxString> *LanguageListAltID,
192         std::map<int, wxString> *LanguageListPID,
193         std::map<int, wxString> *LanguageListType,
194         std::map<int, wxString> *LanguageListTokens,
195         std::map<int, int> *LanguageListPref,
196         wxListCtrl *LanguageListCtrl,
197         int LanguageIndex )
200         // Setup the pointers so that the data can be processed without
201         // duplication.
203         LanguageListPtr = LanguageList;
204         LanguageListAltIDPtr = LanguageListAltID;
205         LanguageListPIDPtr = LanguageListPID;
206         LanguageListTypePtr = LanguageListType;
207         LanguageListTokensPtr = LanguageListTokens;
208         LanguageListPrefPtr = LanguageListPref;
209         LanguageListCtrlPtr = LanguageListCtrl;
210         LanguageListIndex = LanguageIndex;
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