// preferences.h - Preferences subroutines header.
//
// (c) 2012-2016 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