// preferences.h - Preferences subroutines header. // // (c) 2012-2017 Xestia Software Development. // // This file is part of Xestia Calendar. Originally from Xestia Address Book. // // Xestia Calendar 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 Calendar 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 Calendar. If not, see #ifndef PREFERENCES_H #define PREFERENCES_H #include #include void SavePreferences(); void LoadPreferences(); class XCALPrefThemes { private: public: wxArrayString themeName; wxArrayString themeData; }; class XCALPrefAccounts { private: wxArrayString accountName; wxArrayString accountType; wxArrayString accountAddress; wxArrayInt accountPort; wxArrayInt accountSSL; wxArrayString accountUsername; wxArrayString accountPassword; wxArrayString directoryPrefix; wxArrayString accountDirectory; wxArrayLong accountRefresh; int accountsCount; public: XCALPrefAccounts(); int GetCount(); wxString GetAccountName(int accountNum); wxString GetAccountType(int accountNum); wxString GetAccountAddress(int accountNum); int GetAccountPort(int acconutNum); bool GetAccountSSL(int accountNum); wxString GetAccountUsername(int accountNum); wxString GetAccountPassword(int accountNum); wxString GetAccountDirectory(int accountNum); wxString GetAccountDirPrefix(int accountNum); long GetAccountRefresh(int accountNum); int AddAccount(wxString newAccName, wxString newAccType, wxString newAccAddress, int newAccPort, int newAccSSL, wxString newAccUser, wxString newAccPass, wxString newAccDirPrefix, wxString newAccDir, long newAccRefresh ); }; //XCALPreferences should emulate what is in the Preferences window. //Including others which aren't in the window such as main window //position and size. class XCALPreferences { private: // General Tab bool saveWindowPos = FALSE; wxRect mainWindowData; bool hideLocalABs = FALSE; // Themes tab bool enableThemes = FALSE; // Accounts tab // General things. wxString filename; public: XCALPreferences(wxString preferencesFilename); ~XCALPreferences(); XCALPrefAccounts accounts; XCALPrefThemes themes; int WritePreferences(); int ReadPreferences(); bool GetBoolData(wxString settingName); bool SetBoolData(wxString settingName, bool settingValue); wxRect GetMainWindowData(); void SetMainWindowData(wxRect windowData); //int AddAccount(wxString Name); int GetThemeCount(); wxString GetThemeData(wxString themeName); int errorFlag; }; #endif