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