71 lines
2.0 KiB
C#
71 lines
2.0 KiB
C#
using _6502EmulatorFrontend.video;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Collections.ObjectModel;
|
|
using System.ComponentModel;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Media.Imaging;
|
|
|
|
namespace _6502EmulatorFrontend
|
|
{
|
|
public class MainWindowViewModel : INotifyPropertyChanged
|
|
{
|
|
private M6502 _processor;
|
|
private AppleDisplay _displayGrid;
|
|
private ObservableCollection<cpu.Disassembly.DisassembledOpcode> _disassembledOpcodes;
|
|
|
|
#region INotifyPropertyChanged Implementation
|
|
public event PropertyChangedEventHandler PropertyChanged;
|
|
protected virtual void OnPropertyChanged(string name)
|
|
{
|
|
var handler = System.Threading.Interlocked.CompareExchange(ref PropertyChanged, null, null);
|
|
if (handler != null)
|
|
{
|
|
handler(this, new PropertyChangedEventArgs(name));
|
|
}
|
|
}
|
|
|
|
public AppleDisplay DisplayGrid
|
|
{
|
|
get { return _displayGrid; }
|
|
set
|
|
{
|
|
if (value != _displayGrid)
|
|
{
|
|
_displayGrid = value;
|
|
OnPropertyChanged("DisplayGrid");
|
|
}
|
|
}
|
|
}
|
|
|
|
public ObservableCollection<cpu.Disassembly.DisassembledOpcode> DisassembledOpcodes
|
|
{
|
|
get { return _disassembledOpcodes; }
|
|
set
|
|
{
|
|
if(value != _disassembledOpcodes)
|
|
{
|
|
_disassembledOpcodes = value;
|
|
OnPropertyChanged("DisassembledOpcodes");
|
|
}
|
|
}
|
|
}
|
|
|
|
public M6502 Processor
|
|
{
|
|
get { return _processor; }
|
|
set
|
|
{
|
|
if (value != _processor)
|
|
{
|
|
_processor = value;
|
|
OnPropertyChanged("Processor");
|
|
}
|
|
}
|
|
}
|
|
#endregion
|
|
}
|
|
}
|