// preferences.h - Preferences subroutines header. // // (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 #include #include #ifndef PREFERENCES_H #define PREFERENCES_H void SavePreferences(); void LoadPreferences(); class XABPrefThemes { private: public: wxArrayString ThemeName; wxArrayString ThemeData; }; class XABPrefAccounts { private: wxArrayString AccountName; wxArrayString AccountType; wxArrayString AccountAddress; wxArrayInt AccountPort; wxArrayInt AccountSSL; wxArrayString AccountUsername; wxArrayString AccountPassword; wxArrayString DirectoryPrefix; wxArrayString AccountDirectory; wxArrayLong AccountRefresh; int AccountsCount; public: XABPrefAccounts(); 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 ); }; //XABPreferences should emulate what is in the Preferences window. //Including others which aren't in the window such as main window //position and size. class XABPreferences { private: // General Tab bool SaveWindowPos = false; wxRect MainWindowData; bool HideLocalABs = false; // Themes tab bool EnableThemes = false; // Accounts tab // Contacts tab bool UseBackgroundContactColour = false; wxColour BackgroundContactColour; // General things. wxString Filename; public: XABPreferences(wxString PreferencesFilename); ~XABPreferences(); XABPrefAccounts accounts; XABPrefThemes themes; int WritePreferences(); int ReadPreferences(); bool GetBoolData(wxString SettingName); bool SetBoolData(wxString SettingName, bool SettingValue); wxRect GetMainWindowData(); void SetMainWindowData(wxRect WindowData); wxColour GetBackgroundContactColourData(); void SetBackgroundContactColourData(wxColour ColourData); //int AddAccount(wxString Name); int GetThemeCount(); wxString GetThemeData(wxString ThemeName); int ErrorFlag; }; #endif