internal void UpdateQuickPoll(ArchiveRTNav.RTQuickPoll rtqp)
 {
     if (quickPoll == null)
     {
         quickPoll = new QuickPoll();
     }
     quickPoll.Update((int)(rtqp.Style), rtqp.Results);
     dirtyBit = true;
 }
Beispiel #2
0
        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.
        }