/*
* Copyright (C) 2006-2007 Eskil Bylund
*
* This program 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; either version 2 of the License, or
* (at your option) any later version.
*
* This program 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 this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
using System.Collections.Generic;
using System.Xml.Serialization;
using DCSharp.Xml;
namespace DCSharp.Settings{
public class InterfaceSettings
{
public InterfaceSettings() : base()
{
hubSettings = new List<HubSettings>();
toolbarVisible = true;
}
[XmlArrayItem("Hub")]
public List<HubSettings> HubSettings
{
get { return hubSettings; }
}
private List<HubSettings> hubSettings;
/// <summary>
/// Gets or sets whether or not the toolbar is visible.
/// </summary>
public bool ToolbarVisible
{
get { return toolbarVisible; }
set { toolbarVisible = value; }
}
private bool toolbarVisible;
/// <summary>
/// Gets or sets whether or not the directory tree is visible.
/// </summary>
public bool DownloadPageDirectoryTreeVisible
{
get { return downloadPageDirectoryTreeVisible; }
set { downloadPageDirectoryTreeVisible = value; }
}
private bool downloadPageDirectoryTreeVisible;
/// <summary>
/// Gets or sets whether or not the download sources are visible.
/// </summary>
public bool DownloadPageSourcesVisible
{
get { return downloadPageSourcesVisible; }
set { downloadPageSourcesVisible = value; }
}
private bool downloadPageSourcesVisible;
/// <summary>
/// Gets or sets the download page pane position.
/// </summary>
public int DownloadPagePanePosition
{
get { return downloadPagePanePosition; }
set { downloadPagePanePosition = value; }
}
private int downloadPagePanePosition;
/// <summary>
/// Gets or sets the search page visible columns.
/// </summary>
public int SearchColumns
{
get { return searchColumns; }
set { searchColumns = value; }
}
private int searchColumns;
/// <summary>
/// Gets or sets the download page visible columns.
/// </summary>
public int DownloadColumns
{
get { return downloadColumns; }
set { downloadColumns = value; }
}
private int downloadColumns;
/// <summary>
/// Gets or sets the upload page visible columns.
/// </summary>
public int UploadColumns
{
get { return uploadColumns; }
set { uploadColumns = value; }
}
private int uploadColumns;
#region Window settings
/// <summary>
/// Gets or sets the main window x position.
/// </summary>
public int WindowX
{
get { return windowX; }
set { windowX = value; }
}
private int windowX;
/// <summary>
/// Gets or sets the main window y position.
/// </summary>
public int WindowY
{
get { return windowY; }
set { windowY = value; }
}
private int windowY;
/// <summary>
/// Gets or sets the main window width.
/// </summary>
public int WindowWidth
{
get { return windowWidth; }
set { windowWidth = value; }
}
private int windowWidth;
/// <summary>
/// Gets or sets the main window height.
/// </summary>
public int WindowHeight
{
get { return windowHeight; }
set { windowHeight = value; }
}
private int windowHeight;
/// <summary>
/// Gets or sets whether or not the main window is maximized.
/// </summary>
public bool WindowMaximized
{
get { return windowMaximized; }
set { windowMaximized = value; }
}
private bool windowMaximized;
#endregion
public HubSettings GetHubSettings(string hostname)
{
HubSettings settings = hubSettings.Find(delegate(HubSettings s)
{
return s.Hostname == hostname;
});
if (settings == null)
{
settings = new HubSettings(hostname);
hubSettings.Add(settings);
}
return settings;
}
public void Save(string filename)
{
XmlHelper.Serialize(this, filename);
}
public static InterfaceSettings Load(string filename)
{
return (InterfaceSettings)XmlHelper.Deserialize(typeof(InterfaceSettings),
filename);
}
}
}
|