+// frmMain.h - Main window header form.
+//
+// (c) 2012-2015 Xestia Software Development.
+//
+// This file is part of Xestia Address Book.
+//
+// Xestia Address Book is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by the
+// Free Software Foundation, version 3 of the license.
+//
+// Xestia Address Book is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with Xestia Address Book. If not, see <http://www.gnu.org/licenses/>
+
#ifndef __frmMain__
#define __frmMain__
#include <wx/mstream.h>
#include <wx/tooltip.h>
+#if defined(__APPLE__)
+#import <Foundation/Foundation.h>
+#import <SecurityInterface/SFCertificateTrustPanel.h>
+#elif defined(__WIN32__)
+#include "common/win32ssl.h"
+#endif
+
#include "common/timers.h"
#include "common/events.h"
#include "common/etag.h"
-#include "widgets/XABAccountView.h"
#include "bitmaps.h"
#include "common/sslcertstructs.h"
+#include "widgets/XABContactMenu.h"
+#include "widgets/XABAccountView.h"
//// end generated include
DECLARE_EVENT_TYPE(CE_UPDATEACCOUNTLIST, wxID_ANY)
DECLARE_EVENT_TYPE(SE_UPDATECONTACTNOTIF, wxID_ANY)
DECLARE_EVENT_TYPE(CE_OPENCONTACT, wxID_ANY)
+DECLARE_EVENT_TYPE(CE_OPENCONTACTLIST, wxID_ANY)
+DECLARE_EVENT_TYPE(CE_NEWCONTACT, wxID_ANY)
DECLARE_EVENT_TYPE(CE_EDITCONTACT, wxID_ANY)
+DECLARE_EVENT_TYPE(CE_DELETECONTACT, wxID_ANY)
DECLARE_EVENT_TYPE(CE_REVEALCONTACT, wxID_ANY)
DECLARE_EVENT_TYPE(CE_REMOVESEARCH, wxID_ANY)
DECLARE_EVENT_TYPE(CE_REMOVECONTACT, wxID_ANY)
DECLARE_EVENT_TYPE(WINDOW_CLOSE, wxID_ANY);
DECLARE_EVENT_TYPE(CONNSTAT_UPDATE, wxID_ANY);
DECLARE_EVENT_TYPE(INVALIDSSLCERT, wxID_ANY);
+DECLARE_EVENT_TYPE(INVALIDSSLCERTSTRING, wxID_ANY);
DECLARE_EVENT_TYPE(GETSELECTEDLIST, wxID_ANY);
DECLARE_EVENT_TYPE(SYNCACCOUNT, wxID_ANY);
DECLARE_EVENT_TYPE(IMPORT_RESULTSSHOW, wxID_ANY);
DECLARE_EVENT_TYPE(RELOADCONTACTLIST, wxID_ANY);
+DECLARE_EVENT_TYPE(REFRESHADDRESSBOOK, wxID_ANY);
+
+#if defined(__APPLE__)
+DECLARE_EVENT_TYPE(INVALIDSSLTRUST, wxID_ANY);
+#endif
struct UCNotif{
wxString ContactAccount;
std::map<wxString, bool> WindowList;
std::map<int, wxTimer> AccountRefreshList;
std::map<int, wxString> AccountAccDirList;
- std::map<int, SSLCertCollection> AccountSSLData;
+#if defined(__APPLE__)
+ std::map<int, SecTrustRef> AccountTrustData;
+#elif defined(__WIN32__)
+ std::map<int, PCCERT_CONTEXT> AccountCertificateData;
+#else
+ std::map<int, SSLCertCollectionString> AccountSSLData;
+#endif
std::map<int, int> AccountSSLResult;
std::multimap<int, int> AccountGroupList;
std::multimap<int, wxString> AccountGroupFilename;
int AccountID;
int AccountNetID;
int AccountGrpID;
+ int AccountUnsupportedID;
int AccountNoneID;
bool ReloadAccounts = FALSE;
bool AscendingMode = FALSE;
wxBitmap *imgSSLWarning = NULL;
wxBitmap *imgOnline = NULL;
wxBitmap *imgOffline = NULL;
+ wxBitmap *imgAddAddressBook = NULL;
+ wxBitmap *imgPreferences = NULL;
+ wxBitmap *imgSearchContacts = NULL;
+ wxBitmap *imgAddContact = NULL;
+ wxBitmap *imgEditContact = NULL;
+ wxBitmap *imgDeleteContact = NULL;
int ActivityIconStatus = 0;
int SearchUID = 0;
int ContactUID = 0;
int ContactEditorUID = 0;
int WindowMenuItemID = 0;
+ XABContactMenu *ContactMenu = new XABContactMenu(XABCONTACTMENU_MAIN);
+ void ResetContactInfo();
+#if defined(__APPLE__)
+ void DisplayCertificate(SecTrustRef SecurityTrustObject);
+ void DisplayTrustPanel( wxCommandEvent& event );
+#endif
protected:
// Handlers for frmMainADT events.
+ void QuitApp( wxCloseEvent& event );
void QuitApp( wxCommandEvent& event );
void QuitApp();
void ShowAboutWindow( wxCommandEvent& event );
void LoadPreferences( wxActivateEvent& event );
void LoadPreferences();
void ShowContactInfo( wxListEvent& event );
- void OpenContactInfo( wxListEvent& event );
+ void OpenContactInfoList( wxListEvent& event );
+ void OpenContactInfoList( wxCommandEvent& event );
void OpenContactInfo( wxCommandEvent& event );
void ShowContactEditorNew( wxCommandEvent& event );
void ShowContactEditorEdit( wxCommandEvent& event );
void RevealContact( wxCommandEvent& event );
void RemoveContactsWindowPointer(wxCommandEvent& event);
void RemoveContactEditorWindowPointer(wxCommandEvent& event);
- void UpdateWindowList(wxCommandEvent& event);
void RemoveContactSearchWindows(wxCommandEvent& event);
void DeleteContact(wxCommandEvent& event);
void EmptyServerDialog(wxCommandEvent& event);
void UpdateConnectionStatus( wxCommandEvent& event );
void SetupSSLStatus( int AccountID );
void InvalidSSLCertificate( wxCommandEvent& event );
+ void InvalidSSLCertificateString( wxCommandEvent& event );
void CheckUpdates( wxCommandEvent& event );
void OpenImportDialog( wxCommandEvent& event );
void OpenExportDialog( wxCommandEvent& event );
void GetSelectedList( wxCommandEvent& event );
void SyncAccount( wxCommandEvent& event );
void ShowHelp( wxCommandEvent& event );
+ void ShowContactMenu( wxMouseEvent& event );
+ void ProcessMenuItemClick( wxCommandEvent &event );
public:
/** Constructor */
frmMain( wxWindow* parent );
void ActivityIconStop( wxCommandEvent& event );
void PauseAllTimers();
void ResumeAllTimers();
- void UpdateSSLAccountStatus(int AccountID, int SSLStatus, SSLCertCollection SSLCertInc);
void GetListControl(wxListCtrl *lstContactsPtr, wxArrayString *ContactsFileIndexPtr);
void ShowImportResults( wxCommandEvent& event );
void ReloadContactList( wxCommandEvent& event );
XABViewMode GetViewMode();
+#if defined(__APPLE__)
+ void UpdateSSLAccountStatus(int AccountID, int SSLStatus, SecTrustRef SecurityTrustObject);
+#elif defined(__WIN32__)
+ void UpdateSSLAccountStatus(int AccountID, int SSLStatus, PCCERT_CONTEXT CertificateContext);
+#else
+ void UpdateSSLAccountStatus(int AccountID, int SSLStatus, SSLCertCollectionString SSLCertInc);
+#endif
DECLARE_EVENT_TABLE()
//// end generated class members