// 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