1 // frmMain.h - Main window header form.
3 // (c) 2012-2015 Xestia Software Development.
5 // This file is part of Xestia Address Book.
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.
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.
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/>
24 Subclass of frmMainADT, which is generated by wxFormBuilder.
27 #include "AppXestiaAddrBk.h"
28 #include "common/preferences.h"
32 #include <wx/filesys.h>
34 #include <wx/treectrl.h>
35 #include <wx/treebase.h>
36 #include <wx/imaglist.h>
37 #include <wx/mstream.h>
38 #include <wx/tooltip.h>
40 #include "common/timers.h"
41 #include "common/events.h"
42 #include "common/etag.h"
44 #include "common/sslcertstructs.h"
45 #include "widgets/XABContactMenu.h"
46 #include "widgets/XABAccountView.h"
48 //// end generated include
50 DECLARE_EVENT_TYPE(CE_UPDATECONTACTLIST, wxID_ANY)
51 DECLARE_EVENT_TYPE(CE_UPDATEACCOUNTLIST, wxID_ANY)
52 DECLARE_EVENT_TYPE(SE_UPDATECONTACTNOTIF, wxID_ANY)
53 DECLARE_EVENT_TYPE(CE_OPENCONTACT, wxID_ANY)
54 DECLARE_EVENT_TYPE(CE_OPENCONTACTLIST, wxID_ANY)
55 DECLARE_EVENT_TYPE(CE_NEWCONTACT, wxID_ANY)
56 DECLARE_EVENT_TYPE(CE_EDITCONTACT, wxID_ANY)
57 DECLARE_EVENT_TYPE(CE_DELETECONTACT, wxID_ANY)
58 DECLARE_EVENT_TYPE(CE_REVEALCONTACT, wxID_ANY)
59 DECLARE_EVENT_TYPE(CE_REMOVESEARCH, wxID_ANY)
60 DECLARE_EVENT_TYPE(CE_REMOVECONTACT, wxID_ANY)
61 DECLARE_EVENT_TYPE(SYNC_EMPTYSERVER, wxID_ANY)
62 DECLARE_EVENT_TYPE(ACTMGR_START, wxID_ANY);
63 DECLARE_EVENT_TYPE(ACTMGR_SHUFFLE, wxID_ANY);
64 DECLARE_EVENT_TYPE(ACTMGR_STOP, wxID_ANY);
65 DECLARE_EVENT_TYPE(WINDOW_ADD, wxID_ANY);
66 DECLARE_EVENT_TYPE(WINDOW_EDIT, wxID_ANY);
67 //DECLARE_EVENT_TYPE(WINDOW_DELETE, wxID_ANY);
68 DECLARE_EVENT_TYPE(WINDOW_CLOSE, wxID_ANY);
69 DECLARE_EVENT_TYPE(CONNSTAT_UPDATE, wxID_ANY);
70 DECLARE_EVENT_TYPE(INVALIDSSLCERT, wxID_ANY);
71 DECLARE_EVENT_TYPE(GETSELECTEDLIST, wxID_ANY);
72 DECLARE_EVENT_TYPE(SYNCACCOUNT, wxID_ANY);
73 DECLARE_EVENT_TYPE(IMPORT_RESULTSSHOW, wxID_ANY);
74 DECLARE_EVENT_TYPE(RELOADCONTACTLIST, wxID_ANY);
75 DECLARE_EVENT_TYPE(REFRESHADDRESSBOOK, wxID_ANY);
78 wxString ContactAccount;
79 wxString ContactFilename;
81 wxString ContactNameField;
82 wxString ContactNickname;
83 vCardName ContactNameArray;
110 /** Implementing frmMainADT */
111 class frmMain : public frmMainADT
114 XABPrefAccounts prefaccounts;
115 wxArrayString ContactsFileIndex;
116 std::map<wxString, bool> WindowList;
117 std::map<int, wxTimer> AccountRefreshList;
118 std::map<int, wxString> AccountAccDirList;
119 std::map<int, SSLCertCollection> AccountSSLData;
120 std::map<int, int> AccountSSLResult;
121 std::multimap<int, int> AccountGroupList;
122 std::multimap<int, wxString> AccountGroupFilename;
123 std::multimap<wxTreeItemId, int> AccountGroupTreeId;
124 std::map<wxString, wxAccountSyncTimer*> AccountSyncTimers;
126 wxString ActiveAccount;
127 wxString ActiveAccountType;
128 wxString ActiveFilename;
129 wxETagProcessTimer ETagProcTimer;
130 std::map<wxString,wxString> MemoryFileList;
131 std::map<void*,wxString> ContactWindowList;
132 std::map<void*,wxString> ContactEditorWindowList;
133 std::map<void*,wxString> SearchWindowList;
134 std::map<int,wxMenuItem*> WindowListPointersMenu;
135 std::map<int,void*> WindowListPointers;
136 std::map<int,int> WindowListType;
137 //std::map<int,int> WindowListType;
138 wxMenuItem *mnuContactWindows;
139 wxMenuItem *mnuContactEditorWindows;
140 wxMenuItem *mnuSearchWindows;
141 wxToolTip *SSLToolTip;
142 bool RevealWait = FALSE;
144 wxString OldSessionID;
147 //wxComboCtrl* AccControl = new wxGenericComboCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize);
148 //wxComboCtrl* AccControl = new wxComboCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxCB_READONLY|wxEXPAND|wxCC_STD_BUTTON);
149 //wxStaticBitmap* AccIcon = new wxStaticBitmap(this, wxID_ANY, IconEmp, wxDefaultPosition, wxSize(16,16), wxALL|wxEXPAND, wxStaticBitmapNameStr);
150 XABAccountView* treAccounts = new XABAccountView();
151 wxImageList *AccImgList = new wxImageList(16,16,true);
152 wxImageList *ActMgrImgList = new wxImageList(16,16,true);
158 bool ReloadAccounts = FALSE;
159 bool AscendingMode = FALSE;
161 wxStaticBitmap *imgConnStatus = NULL;
162 wxStaticBitmap *imgSSLStatus = NULL;
163 wxStaticBitmap *imgActivityStatus = NULL;
164 wxBitmap *imgActIcon1 = NULL;
165 wxBitmap *imgActIcon2 = NULL;
166 wxBitmap *imgActIcon3 = NULL;
167 wxBitmap *imgActIcon4 = NULL;
168 wxBitmap *imgActIconSleep = NULL;
169 wxBitmap *imgSSL = NULL;
170 wxBitmap *imgNoSSL = NULL;
171 wxBitmap *imgSSLWarning = NULL;
172 wxBitmap *imgOnline = NULL;
173 wxBitmap *imgOffline = NULL;
174 int ActivityIconStatus = 0;
177 int ContactEditorUID = 0;
178 int WindowMenuItemID = 0;
179 XABContactMenu *ContactMenu = new XABContactMenu(XABCONTACTMENU_MAIN);
180 void ResetContactInfo();
182 // Handlers for frmMainADT events.
183 void QuitApp( wxCloseEvent& event );
184 void QuitApp( wxCommandEvent& event );
186 void ShowAboutWindow( wxCommandEvent& event );
187 void OpenPreferences( wxCommandEvent& event );
188 void OpenNewABDialog( wxCommandEvent& event );
189 void LoadPreferences( wxActivateEvent& event );
190 void LoadPreferences();
191 void ShowContactInfo( wxListEvent& event );
192 void OpenContactInfoList( wxListEvent& event );
193 void OpenContactInfoList( wxCommandEvent& event );
194 void OpenContactInfo( wxCommandEvent& event );
195 void ShowContactEditorNew( wxCommandEvent& event );
196 void ShowContactEditorEdit( wxCommandEvent& event );
197 void RefreshAddressBook( wxCommandEvent& event );
198 void ShowActivityWindow( wxCommandEvent& event );
199 void LoadContactList( wxTreeEvent& event );
200 wxTreeItemId FindItemNamed(wxTreeCtrl &tree,
201 const std::wstring &name);
202 void ConflictResolution( wxCommandEvent& event );
203 void UpdateContactList( wxCommandEvent& event );
204 void UpdateAccountList( wxCommandEvent& event );
205 void UpdateSearchContactLists( wxCommandEvent& event );
206 void OpenFindContactsWindow(wxCommandEvent& event);
207 void RevealContact( wxCommandEvent& event );
208 void RemoveContactsWindowPointer(wxCommandEvent& event);
209 void RemoveContactEditorWindowPointer(wxCommandEvent& event);
210 void RemoveContactSearchWindows(wxCommandEvent& event);
211 void DeleteContact(wxCommandEvent& event);
212 void EmptyServerDialog(wxCommandEvent& event);
213 void DeleteContactSync(wxString &Account, wxString &Filename);
214 void SortFNLN( wxCommandEvent& event );
215 void SortLNFN( wxCommandEvent& event );
216 void SortNickname( wxCommandEvent& event );
217 void SortDisplayAs( wxCommandEvent& event );
218 void SortAscending( wxCommandEvent& event );
219 void SortDescending( wxCommandEvent& event );
220 void ToggleStatusBar( wxCommandEvent& event );
221 void UpdateSBIconPlacement( wxSizeEvent& event );
222 void WindowAdd( wxCommandEvent& event );
223 void WindowEdit( wxCommandEvent& event );
224 void WindowDelete( wxCommandEvent& event );
225 void ShowContactWindow( wxCommandEvent& event );
226 void ShowContactEditorWindow( wxCommandEvent& event );
227 void ShowSearchWindow( wxCommandEvent& event );
228 void ToggleConnectionStatus( wxCommandEvent& event );
229 void ShowSSLCertificates( wxCommandEvent& event );
230 void ShowSSLInfo( wxCommandEvent& event );
231 void HideSSLInfo( wxCommandEvent& event );
232 void UpdateConnectionStatus( wxCommandEvent& event );
233 void SetupSSLStatus( int AccountID );
234 void InvalidSSLCertificate( wxCommandEvent& event );
235 void CheckUpdates( wxCommandEvent& event );
236 void OpenImportDialog( wxCommandEvent& event );
237 void OpenExportDialog( wxCommandEvent& event );
238 void GetSelectedList( wxCommandEvent& event );
239 void SyncAccount( wxCommandEvent& event );
240 void ShowHelp( wxCommandEvent& event );
241 void ShowContactMenu( wxMouseEvent& event );
242 void ProcessMenuItemClick( wxCommandEvent &event );
245 frmMain( wxWindow* parent );
246 int ShowConflictDialog(vCard *LocalObj, vCard *ServerObj);
247 void SetupPointers(void *ActMgr);
249 void ActivityIconStart( wxCommandEvent& event );
250 void ActivityIconShuffle( wxCommandEvent& event );
251 void ActivityIconStop( wxCommandEvent& event );
252 void PauseAllTimers();
253 void ResumeAllTimers();
254 void UpdateSSLAccountStatus(int AccountID, int SSLStatus, SSLCertCollection SSLCertInc);
255 void GetListControl(wxListCtrl *lstContactsPtr, wxArrayString *ContactsFileIndexPtr);
256 void ShowImportResults( wxCommandEvent& event );
257 void ReloadContactList( wxCommandEvent& event );
258 XABViewMode GetViewMode();
259 DECLARE_EVENT_TABLE()
261 //// end generated class members
265 #endif // __frmMain__