Наследование: INotifyPropertyChanged
Пример #1
0
		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();
        }
Пример #3
0
		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();
 }
Пример #7
0
		static public SlideshowDriver Create(SlideshowModel model, ISlideshowViewer viewer, IPlatformService platformService)
		{
			var driver = new SlideshowDriver(model, viewer, platformService);
			driver.BeginEnumerate();
			return driver;
		}
Пример #8
0
		public void RunSlideshow(SlideshowModel model)
		{
			throw new NotImplementedException();
		}