private SlideshowDriver(SlideshowModel model, ISlideshowViewer viewer, IPlatformService platformService) { PlatformService = platformService; Model = model; Viewer = viewer; State = DriverState.Created; }
public SlideshowWindow(SlideshowModel model) { InitializeComponent(); _hideControlsTimer.Interval = new TimeSpan(0, 0, 2); _hideControlsTimer.Tick += (s, e) => { var diff = Environment.TickCount - _lastMouseMoveTime; if (diff > _hideControlsTimer.Interval.TotalMilliseconds) { HideControls(); } }; var screenSize = this.ScreenDimensions(); Width = screenSize.Width * 0.75; Height = screenSize.Height * 0.75; Left = screenSize.Left + ((screenSize.Width - Width) / 2); Top = screenSize.Top + ((screenSize.Height - Height) / 2); // TODO: Display a 'Loading images...' message Driver = SlideshowDriver.Create(model, this, this); this.FirePropertyChanged(PropertyChanged, () => Driver); ShowControls(); }
static public SlideshowModel ParseFile(string filename) { var ssModel = new SlideshowModel(); var doc = XDocument.Parse(File.ReadAllText(filename)); if (!doc.Root.Name.LocalName.Equals(XmlRootName)) { throw new Exception(string.Format("Wrong namespace '{0}', expected {1}", doc.Root.Name.LocalName,XmlRootName)); } ssModel.Filename = filename; ssModel.Name = doc.Root.GetAttribute(XmlAttrName, ""); ssModel.SlideSeconds = doc.Root.GetAttribute(XmlAttrSlideDuration, ssModel.SlideSeconds); ssModel.TransitionSeconds = doc.Root.GetAttribute(XmlAttrTransitionDuration, ssModel.TransitionSeconds); ssModel.FindAPhotoHost = doc.Root.GetAttribute(XmlAttrFindAPhotoHost, ssModel.FindAPhotoHost); foreach (var a in doc.Root.Attributes()) { if (!expectedAttributes.Contains(a.Name.LocalName)) { throw new Exception(string.Format("Unexpected attribute: {0}", a.Name.LocalName)); } } foreach (var f in doc.Descendants("folder")) { ssModel.FolderList.Add(FolderModel.FromElement(f)); } foreach (var s in doc.Descendants("search")) { ssModel.Search = s.GetAttribute("query", null); } if (ssModel.FolderList.Count < 1 && ssModel.Search == null) { throw new Exception("Missing either 'folder' or 'search' tag"); } foreach (var e in doc.Root.Elements()) { if (!expectedElements.Contains(e.Name.LocalName)) { throw new Exception(string.Format("Unexpected element: {0}", e.Name.LocalName)); } } return ssModel; }
public SlideshowChooserController(ISlideshowPickerViewer viewer, IPlatformService platformService) { Viewer = viewer; PlatformService = platformService; EditedSlideshow = new SlideshowModel(); SavedSlideshows = new List<SlideshowModel>(); NotifyPropertyChangedHelper.SetupPropertyChanged(EditedSlideshow, (c, h) => _editedHasChanged = true); var filename = SlideshowModel.EnsureExtension(Preferences<WatchThisPreferences>.Instance.LastEditedFilename); if (File.Exists(filename)) { try { EditedSlideshow = SlideshowModel.ParseFile(filename); EditedSlideshow.Filename = null; } catch (Exception ex) { logger.Error("Error loading lastEdited '{0}': {1}", filename, ex); } } }
public void RunSlideshow(SlideshowModel model) { var controller = new SlideshowWindowController(); controller.Model = model; controller.Window.MakeKeyAndOrderFront(this); }
public void RunSlideshow(SlideshowModel model) { var show = new SlideshowWindow(model); show.Show(); }
static public SlideshowDriver Create(SlideshowModel model, ISlideshowViewer viewer, IPlatformService platformService) { var driver = new SlideshowDriver(model, viewer, platformService); driver.BeginEnumerate(); return driver; }
public void RunSlideshow(SlideshowModel model) { throw new NotImplementedException(); }