This repository has been archived on 2025-05-24. You can view files and clone it, but cannot push or open issues or pull requests.
Files
RomVault/ROMVault2/rvTreeRow.cs
2014-09-23 12:06:15 -07:00

100 lines
2.5 KiB
C#

/******************************************************
* ROMVault2 is written by Gordon J. *
* Contact gordon@romvault.com *
* Copyright 2014 *
******************************************************/
using System.Drawing;
using System.IO;
namespace ROMVault2
{
public class RvTreeRow
{
public enum TreeSelect { UnSelected, Selected, Disabled }
public string TreeBranches;
private long _filePointer = -1;
private bool _pTreeExpanded;
private TreeSelect _pChecked;
public Rectangle RTree;
public Rectangle RExpand;
public Rectangle RChecked;
public Rectangle RIcon;
public Rectangle RText;
public RvTreeRow()
{
_pTreeExpanded = true;
_pChecked = TreeSelect.Selected;
}
public void Write(BinaryWriter bw)
{
_filePointer = bw.BaseStream.Position;
bw.Write(_pTreeExpanded);
bw.Write((byte)_pChecked);
}
public void Read(BinaryReader br)
{
_filePointer = br.BaseStream.Position;
_pTreeExpanded = br.ReadBoolean();
_pChecked = (TreeSelect)br.ReadByte();
}
public bool TreeExpanded
{
get
{
return _pTreeExpanded;
}
set
{
if (_pTreeExpanded != value)
{
_pTreeExpanded = value;
CacheUpdate();
}
}
}
public TreeSelect Checked
{
get
{
return _pChecked;
}
set
{
if (_pChecked != value)
{
_pChecked = value;
CacheUpdate();
}
}
}
private void CacheUpdate()
{
if (_filePointer >= 0)
{
FileStream fs = new FileStream(Settings.CacheFile, FileMode.Open, FileAccess.Write);
BinaryWriter bw = new BinaryWriter(fs);
fs.Position = _filePointer;
bw.Write(_pTreeExpanded);
bw.Write((byte)_pChecked);
bw.Flush();
bw.Close();
fs.Close();
fs.Dispose();
}
}
}
}