using System; using System.Collections.Generic; using System.ComponentModel; using System.ComponentModel.Composition; using System.Linq; using System.Text; using Caliburn.Micro; namespace Pithos.Client.WPF.Shell { [Export(typeof(MiniStatusViewModel)),PartCreationPolicy(CreationPolicy.Shared)] public class MiniStatusViewModel:Screen { public override string DisplayName { get { return "Pithos+ Status"; } set { base.DisplayName = value; } } public string Status { get { return Shell.StatusMessage; } } private ShellViewModel _shell; public ShellViewModel Shell { get { return _shell; } set { _shell = value; _shell.PropertyChanged += OnParentChanged; } } private void OnParentChanged(object sender, PropertyChangedEventArgs e) { if (e.PropertyName=="StatusMessage") NotifyOfPropertyChange(()=>Status); } private string _pauseImage="../Images/Pause.png"; public string PauseImage { get { return _pauseImage; } set { _pauseImage = value; NotifyOfPropertyChange(()=>PauseImage); } } private string _pauseToolTip="Pause Syncing"; public string PauseToolTip { get { return _pauseToolTip; } set { _pauseToolTip = value; NotifyOfPropertyChange(()=>PauseToolTip); } } public void ToggleSyncing() { Shell.ToggleSynching(); PauseImage = Shell.IsPaused ? "../Images/Play.png" : "../Images/Pause.png"; PauseToolTip = Shell.IsPaused ? "Resume Syncing" : "Pause Syncing"; } } }