internal void UpdateQuickPoll(ArchiveRTNav.RTQuickPoll rtqp) { if (quickPoll == null) { quickPoll = new QuickPoll(); } quickPoll.Update((int)(rtqp.Style), rtqp.Results); dirtyBit = true; }
private void acceptArchiveRTNavFrame(object o) { if (o is ArchiveRTNav.RTUpdate) { //Navigation and slide size changes ArchiveRTNav.RTUpdate rtu = (ArchiveRTNav.RTUpdate)o; String key = SlideReference.MakeKey(rtu.DeckGuid, rtu.SlideIndex); if (!slideImages.ContainsKey(key)) { slideImages.Add(key, new SlideImage()); } if (!rtu.DeckAssociation.Equals(Guid.Empty)) { //Student submission or quickpoll //The slide image may come from a presentation slide. Here we want to store the current slide image. String refKey = SlideReference.MakeKey(rtu.DeckAssociation, rtu.SlideAssociation); if (slideImages.ContainsKey(refKey)) { SlideImage sourceImage = (SlideImage)slideImages[refKey]; bool isWhiteboard = true; Image img = sourceImage.GetSlideImage(this.currentSlide.BGColor, out isWhiteboard); ((SlideImage)slideImages[key]).SetImage(img, isWhiteboard); } } currentSlide.SetCPReference(rtu.DeckGuid, rtu.SlideIndex); currentSlide.SetSize(rtu.SlideSize); currentSlide.SetBGColor(rtu.BackgroundColor); } else if (o is ArchiveRTNav.RTDrawStroke) { ArchiveRTNav.RTDrawStroke rtds = (ArchiveRTNav.RTDrawStroke)o; String key = SlideReference.MakeKey(rtds.DeckGuid, rtds.SlideIndex); if (!slideImages.ContainsKey(key)) { slideImages.Add(key, new SlideImage()); } ((SlideImage)slideImages[key]).AddInk(rtds.Ink, rtds.Guid); } else if (o is ArchiveRTNav.RTDeleteStroke) { ArchiveRTNav.RTDeleteStroke rtds = (ArchiveRTNav.RTDeleteStroke)o; String key = SlideReference.MakeKey(rtds.DeckGuid, rtds.SlideIndex); if (!slideImages.ContainsKey(key)) { slideImages.Add(key, new SlideImage()); } ((SlideImage)slideImages[key]).RemoveInk(rtds.Guid); } else if (o is ArchiveRTNav.RTTextAnnotation) { ArchiveRTNav.RTTextAnnotation rtta = (ArchiveRTNav.RTTextAnnotation)o; String key = SlideReference.MakeKey(rtta.DeckGuid, rtta.SlideIndex); if (!slideImages.ContainsKey(key)) { slideImages.Add(key, new SlideImage()); } ((SlideImage)slideImages[key]).AddTextAnnotation(rtta.Text, rtta.Origin, rtta.Guid, rtta.Font, rtta.Color, rtta.Height, rtta.Width); } else if (o is ArchiveRTNav.RTImageAnnotation) { ArchiveRTNav.RTImageAnnotation rtia = (ArchiveRTNav.RTImageAnnotation)o; String key = SlideReference.MakeKey(rtia.DeckGuid, rtia.SlideIndex); if (!slideImages.ContainsKey(key)) { slideImages.Add(key, new SlideImage()); } ((SlideImage)slideImages[key]).AddImageAnnotation(rtia.Guid, rtia.Height, rtia.Width, rtia.Origin, rtia.Img); } else if (o is ArchiveRTNav.RTDeleteTextAnnotation) { ArchiveRTNav.RTDeleteTextAnnotation rtdta = (ArchiveRTNav.RTDeleteTextAnnotation)o; String key = SlideReference.MakeKey(rtdta.DeckGuid, rtdta.SlideIndex); if (!slideImages.ContainsKey(key)) { slideImages.Add(key, new SlideImage()); } ((SlideImage)slideImages[key]).RemoveTextAnnotation(rtdta.Guid); } else if (o is ArchiveRTNav.RTDeleteAnnotation) { ArchiveRTNav.RTDeleteAnnotation rtda = (ArchiveRTNav.RTDeleteAnnotation)o; String key = SlideReference.MakeKey(rtda.DeckGuid, rtda.SlideIndex); if (!slideImages.ContainsKey(key)) { slideImages.Add(key, new SlideImage()); } ((SlideImage)slideImages[key]).RemoveAnnotation(rtda.Guid); } else if (o is ArchiveRTNav.RTEraseLayer) { ArchiveRTNav.RTEraseLayer rtel = (ArchiveRTNav.RTEraseLayer)o; String key = SlideReference.MakeKey(rtel.DeckGuid, rtel.SlideIndex); if (!slideImages.ContainsKey(key)) { slideImages.Add(key, new SlideImage()); } ((SlideImage)slideImages[key]).RemoveAllInk(); } else if (o is ArchiveRTNav.RTEraseAllLayers) { ArchiveRTNav.RTEraseAllLayers rteal = (ArchiveRTNav.RTEraseAllLayers)o; if (rteal.DeckGuid != Guid.Empty) { foreach (String key in slideImages.Keys) { if (key.StartsWith(rteal.DeckGuid.ToString())) { ((SlideImage)slideImages[key]).RemoveAllInk(); } } } } else if (o is ArchiveRTNav.RTQuickPoll) { ArchiveRTNav.RTQuickPoll rtqp = (ArchiveRTNav.RTQuickPoll)o; String key = SlideReference.MakeKey(rtqp.DeckGuid, rtqp.SlideIndex); if (!slideImages.ContainsKey(key)) { slideImages.Add(key, new SlideImage()); } ((SlideImage)slideImages[key]).UpdateQuickPoll(rtqp); } else { Debug.WriteLine("Slide Image Manager does not handle type: " + o.GetType().ToString()); } //Notice that CP3 doesn't support scrolling mylar, so we don't bother with it here. }