Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
Merge branch 'master' of ssh://gelforn.xestia.co.uk/scmrepos/xestiaab
[xestiaab/.git] / source / frmMain.h
1 // frmMain.h - Main window header 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 #ifndef __frmMain__
20 #define __frmMain__
22 /**
23 @file
24 Subclass of frmMainADT, which is generated by wxFormBuilder.
25 */
27 #include "AppXestiaAddrBk.h"
28 #include "common/preferences.h"
29 #include <map>
30 #include <utility>
31 #include <wx/timer.h>
32 #include <wx/filesys.h>
33 #include <wx/combo.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 #if defined(__APPLE__)
41 #import <Foundation/Foundation.h>
42 #import <SecurityInterface/SFCertificateTrustPanel.h>
43 #elif defined(__WIN32__)
44 #include "common/win32ssl.h"
45 #endif
47 #include "common/timers.h"
48 #include "common/events.h"
49 #include "common/etag.h"
50 #include "bitmaps.h"
51 #include "common/sslcertstructs.h"
52 #include "widgets/XABContactMenu.h"
53 #include "widgets/XABAccountView.h"
55 //// end generated include
57 DECLARE_EVENT_TYPE(CE_UPDATECONTACTLIST, wxID_ANY)
58 DECLARE_EVENT_TYPE(CE_UPDATEACCOUNTLIST, wxID_ANY)
59 DECLARE_EVENT_TYPE(SE_UPDATECONTACTNOTIF, wxID_ANY)
60 DECLARE_EVENT_TYPE(CE_OPENCONTACT, wxID_ANY)
61 DECLARE_EVENT_TYPE(CE_OPENCONTACTLIST, wxID_ANY)
62 DECLARE_EVENT_TYPE(CE_NEWCONTACT, wxID_ANY)
63 DECLARE_EVENT_TYPE(CE_EDITCONTACT, wxID_ANY)
64 DECLARE_EVENT_TYPE(CE_DELETECONTACT, wxID_ANY)
65 DECLARE_EVENT_TYPE(CE_REVEALCONTACT, wxID_ANY)
66 DECLARE_EVENT_TYPE(CE_REMOVESEARCH, wxID_ANY)
67 DECLARE_EVENT_TYPE(CE_REMOVECONTACT, wxID_ANY)
68 DECLARE_EVENT_TYPE(SYNC_EMPTYSERVER, wxID_ANY)
69 DECLARE_EVENT_TYPE(ACTMGR_START, wxID_ANY);
70 DECLARE_EVENT_TYPE(ACTMGR_SHUFFLE, wxID_ANY);
71 DECLARE_EVENT_TYPE(ACTMGR_STOP, wxID_ANY);
72 DECLARE_EVENT_TYPE(WINDOW_ADD, wxID_ANY);
73 DECLARE_EVENT_TYPE(WINDOW_EDIT, wxID_ANY);
74 //DECLARE_EVENT_TYPE(WINDOW_DELETE, wxID_ANY);
75 DECLARE_EVENT_TYPE(WINDOW_CLOSE, wxID_ANY);
76 DECLARE_EVENT_TYPE(CONNSTAT_UPDATE, wxID_ANY);
77 DECLARE_EVENT_TYPE(INVALIDSSLCERT, wxID_ANY);
78 DECLARE_EVENT_TYPE(GETSELECTEDLIST, wxID_ANY);
79 DECLARE_EVENT_TYPE(SYNCACCOUNT, wxID_ANY);
80 DECLARE_EVENT_TYPE(IMPORT_RESULTSSHOW, wxID_ANY);
81 DECLARE_EVENT_TYPE(RELOADCONTACTLIST, wxID_ANY);
82 DECLARE_EVENT_TYPE(REFRESHADDRESSBOOK, wxID_ANY);
84 #if defined(__APPLE__)
85 DECLARE_EVENT_TYPE(INVALIDSSLTRUST, wxID_ANY);
86 #endif
88 struct UCNotif{
89         wxString ContactAccount;
90         wxString ContactFilename;
91         wxString ContactName;
92         wxString ContactNameField;
93         wxString ContactNickname;
94         vCardName ContactNameArray;
95 };
97 struct SWCloseNotif{
98         void *SCHWinPtr;
99 };
101 struct QRNotif{
102         int *QResponse;
103         bool *PausePtr;
104 };
106 struct XABViewMode{
108         int SortMode;
109         bool AscendingMode;
111 };
113 struct WindowData{
115         int DataType;
116         void *WindowPointer;
117         int WindowID;
119 };
121 /** Implementing frmMainADT */
122 class frmMain : public frmMainADT
124         private:
125                 XABPrefAccounts prefaccounts;
126                 wxArrayString ContactsFileIndex;
127                 std::map<wxString, bool> WindowList;
128                 std::map<int, wxTimer> AccountRefreshList;
129                 std::map<int, wxString> AccountAccDirList;
130 #if defined(__APPLE__)
131                 std::map<int, SecTrustRef> AccountTrustData;
132 #elif defined(__WIN32__)
133                 std::map<int, PCCERT_CONTEXT> AccountCertificateData;
134 #else
135                 std::map<int, SSLCertCollection> AccountSSLData;
136 #endif
137                 std::map<int, int> AccountSSLResult;
138                 std::multimap<int, int> AccountGroupList;
139                 std::multimap<int, wxString> AccountGroupFilename;
140                 std::multimap<wxTreeItemId, int> AccountGroupTreeId;
141                 std::map<wxString, wxAccountSyncTimer*> AccountSyncTimers;
142                 void *ActMgrPtr;
143                 wxString ActiveAccount;
144                 wxString ActiveAccountType;
145                 wxString ActiveFilename;
146                 wxETagProcessTimer ETagProcTimer;
147                 std::map<wxString,wxString> MemoryFileList;
148                 std::map<void*,wxString> ContactWindowList;
149                 std::map<void*,wxString> ContactEditorWindowList;
150                 std::map<void*,wxString> SearchWindowList;
151                 std::map<int,wxMenuItem*> WindowListPointersMenu;
152                 std::map<int,void*> WindowListPointers;
153                 std::map<int,int> WindowListType;
154                 //std::map<int,int> WindowListType;
155                 wxMenuItem *mnuContactWindows;
156                 wxMenuItem *mnuContactEditorWindows;
157                 wxMenuItem *mnuSearchWindows;
158                 wxToolTip *SSLToolTip;
159                 bool RevealWait = FALSE;
160                 wxString SessionID;
161                 wxString OldSessionID;
162                 wxIcon IconEmp;
163                 //wxIcon Emp;
164                 //wxComboCtrl* AccControl = new wxGenericComboCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize);
165                 //wxComboCtrl* AccControl = new wxComboCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxCB_READONLY|wxEXPAND|wxCC_STD_BUTTON);
166                 //wxStaticBitmap* AccIcon = new wxStaticBitmap(this, wxID_ANY, IconEmp, wxDefaultPosition, wxSize(16,16), wxALL|wxEXPAND, wxStaticBitmapNameStr);
167                 XABAccountView* treAccounts = new XABAccountView();
168                 wxImageList *AccImgList =  new wxImageList(16,16,true);
169                 wxImageList *ActMgrImgList = new wxImageList(16,16,true);
170                 //wxIcon wxIAccInet;
171                 int AccountID;
172                 int AccountNetID;
173                 int AccountGrpID;
174                 int AccountUnsupportedID;
175                 int AccountNoneID;
176                 bool ReloadAccounts = FALSE;
177                 bool AscendingMode = FALSE;
178                 int SortMode = 1;
179                 wxStaticBitmap *imgConnStatus = NULL;
180                 wxStaticBitmap *imgSSLStatus = NULL;
181                 wxStaticBitmap *imgActivityStatus = NULL;
182                 wxBitmap *imgActIcon1 = NULL;
183                 wxBitmap *imgActIcon2 = NULL;
184                 wxBitmap *imgActIcon3 = NULL;
185                 wxBitmap *imgActIcon4 = NULL;
186                 wxBitmap *imgActIconSleep = NULL;
187                 wxBitmap *imgSSL = NULL;
188                 wxBitmap *imgNoSSL = NULL;
189                 wxBitmap *imgSSLWarning = NULL;
190                 wxBitmap *imgOnline = NULL;
191                 wxBitmap *imgOffline = NULL;
192                 int ActivityIconStatus = 0;
193                 int SearchUID = 0;
194                 int ContactUID = 0;
195                 int ContactEditorUID = 0;
196                 int WindowMenuItemID = 0;
197                 XABContactMenu *ContactMenu = new XABContactMenu(XABCONTACTMENU_MAIN); 
198                 void ResetContactInfo();
199 #if defined(__APPLE__)
200                 void DisplayCertificate(SecTrustRef SecurityTrustObject);
201                 void DisplayTrustPanel( wxCommandEvent& event );
202 #endif
203         protected:
204                 // Handlers for frmMainADT events.
205                 void QuitApp( wxCloseEvent& event );
206                 void QuitApp( wxCommandEvent& event );
207                 void QuitApp();
208                 void ShowAboutWindow( wxCommandEvent& event );
209                 void OpenPreferences( wxCommandEvent& event );
210                 void OpenNewABDialog( wxCommandEvent& event );
211                 void LoadPreferences( wxActivateEvent& event );
212                 void LoadPreferences();
213                 void ShowContactInfo( wxListEvent& event );
214                 void OpenContactInfoList( wxListEvent& event );
215                 void OpenContactInfoList( wxCommandEvent& event );
216                 void OpenContactInfo( wxCommandEvent& event );
217                 void ShowContactEditorNew( wxCommandEvent& event );             
218                 void ShowContactEditorEdit( wxCommandEvent& event );
219                 void RefreshAddressBook( wxCommandEvent& event );
220                 void ShowActivityWindow( wxCommandEvent& event );
221                 void LoadContactList( wxTreeEvent& event );             
222                 wxTreeItemId FindItemNamed(wxTreeCtrl &tree, 
223                               const std::wstring &name);
224                 void ConflictResolution( wxCommandEvent& event );
225                 void UpdateContactList( wxCommandEvent& event );
226                 void UpdateAccountList( wxCommandEvent& event );
227                 void UpdateSearchContactLists( wxCommandEvent& event );
228                 void OpenFindContactsWindow(wxCommandEvent& event);
229                 void RevealContact( wxCommandEvent& event );
230                 void RemoveContactsWindowPointer(wxCommandEvent& event);
231                 void RemoveContactEditorWindowPointer(wxCommandEvent& event);
232                 void RemoveContactSearchWindows(wxCommandEvent& event);
233                 void DeleteContact(wxCommandEvent& event);
234                 void EmptyServerDialog(wxCommandEvent& event);
235                 void DeleteContactSync(wxString &Account, wxString &Filename);
236                 void SortFNLN( wxCommandEvent& event );
237                 void SortLNFN( wxCommandEvent& event );
238                 void SortNickname( wxCommandEvent& event );
239                 void SortDisplayAs( wxCommandEvent& event );
240                 void SortAscending( wxCommandEvent& event );
241                 void SortDescending( wxCommandEvent& event );
242                 void ToggleStatusBar( wxCommandEvent& event );
243                 void UpdateSBIconPlacement( wxSizeEvent& event );
244                 void WindowAdd( wxCommandEvent& event );
245                 void WindowEdit( wxCommandEvent& event );
246                 void WindowDelete( wxCommandEvent& event );
247                 void ShowContactWindow( wxCommandEvent& event );
248                 void ShowContactEditorWindow( wxCommandEvent& event );
249                 void ShowSearchWindow( wxCommandEvent& event );
250                 void ToggleConnectionStatus( wxCommandEvent& event );
251                 void ShowSSLCertificates( wxCommandEvent& event );
252                 void ShowSSLInfo( wxCommandEvent& event );
253                 void HideSSLInfo( wxCommandEvent& event );
254                 void UpdateConnectionStatus( wxCommandEvent& event );
255                 void SetupSSLStatus( int AccountID );
256                 void InvalidSSLCertificate( wxCommandEvent& event );
257                 void CheckUpdates( wxCommandEvent& event );
258                 void OpenImportDialog( wxCommandEvent& event );
259                 void OpenExportDialog( wxCommandEvent& event );
260                 void GetSelectedList( wxCommandEvent& event );
261                 void SyncAccount( wxCommandEvent& event );
262                 void ShowHelp( wxCommandEvent& event );
263                 void ShowContactMenu( wxMouseEvent& event );
264                 void ProcessMenuItemClick( wxCommandEvent &event );
265         public:
266                 /** Constructor */
267                 frmMain( wxWindow* parent );
268                 int ShowConflictDialog(vCard *LocalObj, vCard *ServerObj);
269                 void SetupPointers(void *ActMgr);
270                 void SetupForm();
271                 void ActivityIconStart( wxCommandEvent& event );
272                 void ActivityIconShuffle( wxCommandEvent& event );
273                 void ActivityIconStop( wxCommandEvent& event );
274                 void PauseAllTimers();
275                 void ResumeAllTimers();
276                 void GetListControl(wxListCtrl *lstContactsPtr, wxArrayString *ContactsFileIndexPtr);
277                 void ShowImportResults( wxCommandEvent& event );
278                 void ReloadContactList( wxCommandEvent& event );
279                 XABViewMode GetViewMode();
280 #if defined(__APPLE__)
281                 void UpdateSSLAccountStatus(int AccountID, int SSLStatus, SecTrustRef SecurityTrustObject);
282 #elif defined(__WIN32__)
283                 void UpdateSSLAccountStatus(int AccountID, int SSLStatus, PCCERT_CONTEXT CertificateContext);
284 #else
285                 void UpdateSSLAccountStatus(int AccountID, int SSLStatus, SSLCertCollection SSLCertInc);
286 #endif
287                 DECLARE_EVENT_TABLE()
289         //// end generated class members
290         
291 };
293 #endif // __frmMain__
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