public LinkedDeckTraversalModel(EventQueue dispatcher, Guid id, PresenterModel model, DeckTraversalModel linked)
            : base(id, linked.Deck)
        {
            this.m_EventQueue = dispatcher;
            this.m_Model = model;
            this.m_Linked = linked;
            // TODO: Evaluate whether we need to support other types of DeckTraversalModels.
            this.m_Unlinked = new SlideDeckTraversalModel(Guid.NewGuid(), linked.Deck);

            this.m_CurrentChangedDispatcher = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.HandleCurrentChanged));
            this.m_NextChangedDispatcher = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.HandleNextChanged));
            this.m_PreviousChangedDispatcher = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.HandlePreviousChanged));
            this.m_AbsoluteCurrentSlideIndexChangedDispatcher = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.HandleAbsoluteCurrentSlideIndexChanged));

            // Set this.m_Active and register event listeners via UpdateMode.
            this.m_Mode = DeckTraversalSelector.Linked;
            this.UpdateMode(DeckTraversalSelector.Linked);

            // Since UpdateMode doesn't initialize the event listeners like the Mode setter does, we must do this.
            this.m_CurrentChangedDispatcher.Dispatcher(this, null);
            this.m_NextChangedDispatcher.Dispatcher(this, null);
            this.m_PreviousChangedDispatcher.Dispatcher(this, null);
            this.m_AbsoluteCurrentSlideIndexChangedDispatcher.Dispatcher(this, null);

            // Watch for changes to the current network association.
            // When we're associated with an Instructor, we must obey its ForcingStudentNavigationLock policy.
            this.m_NetworkAssociationChangedDispatcher = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.HandleNetworkAssociationChanged));
            this.m_NetworkAssociationRoleChangedDispatcher = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.HandleNetworkAssociationRoleChanged));
            this.m_ForcingStudentNavigationLockChangedDispatcher = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.HandleForcingStudentNavigationLockChanged));
            this.m_Model.Network.Changed["Association"].Add(this.m_NetworkAssociationChangedDispatcher.Dispatcher);
            this.m_NetworkAssociationChangedDispatcher.Dispatcher(this, null);
        }
        /// <summary>
        /// Constructs a listener for changes to the deck traversal
        /// </summary>
        /// <param name="sender">The event queue for handling updates</param>
        /// <param name="presentation">The presentation</param>
        /// <param name="traversal">The deck traversal we care about </param>
        public DeckTraversalWebService(SendingQueue sender, PresentationModel presentation, DeckTraversalModel traversal)
        {
            this.m_Sender = sender;
            this.m_Presentation = presentation;
            this.m_DeckTraversal = traversal;

            // Create the deck object
            string deckName = "Untitled Deck";
            using (Synchronizer.Lock(this.m_DeckTraversal.SyncRoot))
            {
                using (Synchronizer.Lock(this.m_DeckTraversal.Deck))
                {
                    deckName = this.m_DeckTraversal.Deck.HumanName;
                }
            }
            SimpleWebDeck deck = new SimpleWebDeck();
            deck.Name = deckName;
            lock (WebService.Instance.GlobalModel) {
                WebService.Instance.GlobalModel.Decks.Add(deck);
            }
            WebService.Instance.UpdateModel();

            this.m_DeckWebService = new DeckWebService(this.m_Sender, this.m_Presentation, this.m_DeckTraversal.Deck);

            this.m_CurrentChangedDispatcher = new EventQueue.PropertyEventDispatcher(this.m_Sender, new PropertyEventHandler(this.HandleCurrentChanged));
            this.m_DeckTraversal.Changed["Current"].Add(this.m_CurrentChangedDispatcher.Dispatcher);
        }
        public SSDeckTraversalNetworkService(SendingQueue sender, PresentationModel presentation, DeckTraversalModel traversal)
        {
            this.m_Sender = sender;
            this.m_Presentation = presentation;
            this.m_DeckTraversal = traversal;

            this.m_SSDeckNetworkService = new SSDeckNetworkService(this.m_Sender, this.m_Presentation, this.m_DeckTraversal.Deck);
        }
Ejemplo n.º 4
0
        private bool m_ForcingStudentNavigationLock; // bool

        #endregion Fields

        #region Constructors

        public InstructorModel(Guid id)
            : base(id)
        {
            this.m_CurrentPresentation = null;
            this.m_CurrentDeckTraversal = null;
            this.m_CurrentQuickPoll = null;
            this.m_AcceptingStudentSubmissions = true;
            this.m_AcceptingQuickPollSubmissions = false;
            this.m_ForcingStudentNavigationLock = false;
        }
Ejemplo n.º 5
0
        public FilmStripContextMenu(DeckTraversalModel traversal, PresenterModel model)
        {
            this.m_Model = model;
            this.m_DeckTraversal = traversal;

            this.MenuItems.Add(new InsertSlideMenuItem(m_DeckTraversal, this.m_Model));
            this.MenuItems.Add(new DuplicateSlideMenuItem(m_DeckTraversal, this.m_Model));
            this.MenuItems.Add(new PublicSlideMenuItem(m_DeckTraversal, this.m_Model));
            this.MenuItems.Add(new InsertSlidesFromFileMenuItem(m_DeckTraversal, this.m_Model));
            this.MenuItems.Add(new RemoveSlideMenuItem(m_DeckTraversal, this.m_Model));
        }
 public DeckTraversalMessage(DeckTraversalModel traversal, bool addLocalRef)
     : base(traversal.Id)
 {
     if (addLocalRef)
         this.AddLocalRef( traversal );
     using( Synchronizer.Lock( traversal.SyncRoot ) ) {
         this.Group = traversal.Deck.Group;
         this.DeckId = traversal.Deck.Id;
         this.Dispositon = traversal.Deck.Disposition;
     }
 }
        public DeckTraversalNetworkService(SendingQueue sender, PresentationModel presentation, DeckTraversalModel traversal)
        {
            this.m_Sender = sender;
            this.m_Presentation = presentation;
            this.m_DeckTraversal = traversal;

            this.m_DeckNetworkService = new DeckNetworkService(this.m_Sender, this.m_Presentation, this.m_DeckTraversal.Deck);

            this.m_CurrentChangedDispatcher = new EventQueue.PropertyEventDispatcher(this.m_Sender, new PropertyEventHandler(this.HandleCurrentChanged));
            this.m_DeckTraversal.Changed["Current"].Add(this.m_CurrentChangedDispatcher.Dispatcher);
        }
Ejemplo n.º 8
0
        public DeckTraversalModelAdapter(EventQueue dispatcher, IAdaptee viewer, DeckTraversalModel traversal)
        {
            this.m_EventQueue = dispatcher;
            this.m_DeckTraversal = traversal;
            this.m_Viewer = viewer;

            this.m_CurrentEntryChangedDispatcher = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.HandleCurrentEntryChanged));
            this.m_DeckBGColorChangedDispatcher = new EventQueue.PropertyEventDispatcher( this.m_EventQueue, new PropertyEventHandler( this.HandleDeckBGColorChanged ) );
            this.m_DeckTraversal.Changed["Current"].Add( this.m_CurrentEntryChangedDispatcher.Dispatcher );
            using (Synchronizer.Lock(this.m_DeckTraversal.Deck.SyncRoot)) {
                this.m_DeckTraversal.Deck.Changed["DeckBackgroundColor"].Add( this.m_DeckBGColorChangedDispatcher.Dispatcher );
            }

            this.m_CurrentEntryChangedDispatcher.Dispatcher(this.m_DeckTraversal, null);
            this.m_CurrentEntryChangedDispatcher.Dispatcher(this.m_DeckTraversal, null);
        }
Ejemplo n.º 9
0
        //Another version of the function that will work for the SaveAll menu items
        //(and any other case where we need to save a deck that isn't the current deck.)
        public void SaveDeck(IWin32Window window, DeckTraversalModel deck)
        {
            SaveFileDialog save = new SaveFileDialog();

            save = new SaveFileDialog();

            using (Synchronizer.Lock(deck.Deck.SyncRoot)) {
                //Set the default name
                save.FileName = deck.Deck.HumanName;

                save.Filter = "CP3 files (*.cp3)|*.cp3|All Files (*.*)|*.*";
                if (save.ShowDialog() == DialogResult.OK) {
                    Decks.PPTDeckIO.SaveAsCP3(new FileInfo(save.FileName), deck.Deck);
                    }
                }
        }
Ejemplo n.º 10
0
        public FilmStripSlideViewer(MultiColumnFilmStrip parent, PresenterModel model, DeckTraversalModel traversal, DeckTraversalModel previewTraversal, TableOfContentsModel.Entry entry)
        {
            this.m_Model = model;
            this.m_Parent = parent;
            this.m_DeckTraversal = traversal;
            this.m_Entry = entry;

            this.m_PreviewDeckTraversal = previewTraversal;

            this.BorderStyle = BorderStyle.FixedSingle;

            this.m_CurrentEntryChangedDispatcher = new EventQueue.PropertyEventDispatcher(this.SlideDisplay.EventQueue, new PropertyEventHandler(this.HandleCurrentEntryChanged));
            this.m_EntriesChangedDispatcher = new EventQueue.PropertyEventDispatcher(this.SlideDisplay.EventQueue, new PropertyEventHandler(this.HandleEntriesChanged));
            this.m_DeckBackgroundColorChangedDispatcher = new EventQueue.PropertyEventDispatcher(this.SlideDisplay.EventQueue, new PropertyEventHandler(this.HandleDeckBackgroundColorChanged));
            this.m_DeckBackgroundTemplateChangedDispatcher = new EventQueue.PropertyEventDispatcher(this.SlideDisplay.EventQueue, new PropertyEventHandler(this.HandleDeckBackgroundTemplateChanged));

            this.m_DeckTraversal.Changed["Current"].Add(this.m_CurrentEntryChangedDispatcher.Dispatcher);
            this.m_Entry.TableOfContents.Changed["Entries"].Add(this.m_EntriesChangedDispatcher.Dispatcher);
            using (Synchronizer.Lock(this.m_DeckTraversal.Deck.SyncRoot)) {
                this.m_DeckTraversal.Deck.Changed["DeckBackgroundColor"].Add(this.m_DeckBackgroundColorChangedDispatcher.Dispatcher);
                this.m_DeckTraversal.Deck.Changed["DeckBackgroundTemplate"].Add(this.m_DeckBackgroundTemplateChangedDispatcher.Dispatcher);
                this.DefaultDeckBGColor = this.m_DeckTraversal.Deck.DeckBackgroundColor;
                this.DefaultDeckBGTemplate = this.m_DeckTraversal.Deck.DeckBackgroundTemplate;
            }

            this.m_EntriesChangedDispatcher.Dispatcher(this.m_Entry, null);
            this.m_CurrentEntryChangedDispatcher.Dispatcher(this.m_DeckTraversal, null);

            this.m_CurrentDeckTraversalChangedDispatcher =
                this.m_Model.Workspace.CurrentDeckTraversal.ListenAndInitialize(this.SlideDisplay.EventQueue,
                delegate(Property<DeckTraversalModel>.EventArgs args) {
                    bool old = this.m_IsCurrentDeckTraversal;

                    using (this.m_Model.Workspace.Lock()) {
                        this.m_IsCurrentDeckTraversal = (~this.m_Model.Workspace.CurrentDeckTraversal == this.m_DeckTraversal);
                    }

                    if (old != this.m_IsCurrentDeckTraversal) {
                        // Invalidate the display to draw the new selection border.
                        this.UpdateSelection();
                    }
                });
        }
Ejemplo n.º 11
0
        public DecksMenu(ControlEventQueue dispatcher, PresenterModel model)
        {
            this.m_Model = model;

            this.Text = Strings.Decks;

            queue_ = dispatcher;

            using (Synchronizer.Lock(this.m_Model.Workspace.CurrentDeckTraversal.SyncRoot)) {
                this.current_deck_traversal_listener_ = this.m_Model.Workspace.CurrentDeckTraversal.ListenAndInitialize(queue_, delegate(Property<DeckTraversalModel>.EventArgs args) {
                    ///remove all the current slide menu items
                    for (int i = this.MenuItems.Count; --i >= 0; ) {
                        if ((this.MenuItems[i] is UW.ClassroomPresenter.Viewer.FilmStrips.FilmStripContextMenu.InsertSlideMenuItem) ||
                            (this.MenuItems[i] is UW.ClassroomPresenter.Viewer.FilmStrips.FilmStripContextMenu.InsertSlidesFromFileMenuItem) ||
                            (this.MenuItems[i] is UW.ClassroomPresenter.Viewer.FilmStrips.FilmStripContextMenu.RemoveSlideMenuItem))

                            this.MenuItems.RemoveAt(i);
                    }

                    current_deck_ = args.New;

                    if (current_deck_ != null) {
                        ///add the new, fresh items with the correct deck on.
                        ///
                        this.MenuItems.Add(new UW.ClassroomPresenter.Viewer.FilmStrips.FilmStripContextMenu.InsertSlideMenuItem(current_deck_, this.m_Model));
                        this.MenuItems.Add(new UW.ClassroomPresenter.Viewer.FilmStrips.FilmStripContextMenu.InsertSlidesFromFileMenuItem(current_deck_, this.m_Model));
                        this.MenuItems.Add(new UW.ClassroomPresenter.Viewer.FilmStrips.FilmStripContextMenu.RemoveSlideMenuItem(current_deck_, this.m_Model));
                    }
                });
            }

            this.MenuItems.Add(new CreateBlankWhiteboardDeckMenuItem(this.m_Model));
            this.MenuItems.Add(new MenuItem("-")); // Text of "-" signifies a separator bar.

            // Note: These used to be in the "Slides" menu (see Bug 988).
            this.MenuItems.Add(new SetDeckBkgColorMenuItem(model));
            this.MenuItems.Add(new SetSlideBkgColorMenuItem(model));
            this.MenuItems.Add(new MenuItem("-")); // Text of "-" signifies a separator bar.

            //            this.MenuItems.Add(new DeckMatcherMenuItem(model));
            //            this.MenuItems.Add(new MenuItem("-")); // Text of "-" signifies a separator bar.
        }
Ejemplo n.º 12
0
        /// <summary>
        /// Constructs a new <see cref="TouchGestureHandler"/> instance, which will
        /// keep track of the touch input and convert it into a gesture.
        /// </summary>
        public TouchGestureHandler(PresenterModel m, EventQueue q )
        {
            this.model = m;
            this.currentDeckTraversal = null;

            // Listen for model changes
            this.eventQueue = q;
            this.currentDeckTraversalDispatcher =
                this.model.Workspace.CurrentDeckTraversal.ListenAndInitialize(this.eventQueue,
                    delegate(Property<DeckTraversalModel>.EventArgs args) {
                        this.currentDeckTraversal = args.New;
                    });

            // Keep track of the various touch strokes
            this.collectedPacketsTable = new Dictionary<int, List<int>>();
            this.tabletPropertiesTable = new Dictionary<int, TabletPropertyDescriptionCollection>();

            // Create a helper ink object
            this.ink = new Ink();
        }
        public static DeckTraversalMessage ForDeckTraversal(DeckTraversalModel traversal)
        {
            DeckTraversalMessage message;
            if(traversal is SlideDeckTraversalModel)
                message = new SlideDeckTraversalMessage((SlideDeckTraversalModel) traversal);
            else if(traversal == null)
                throw new ArgumentNullException("traversal");
            else
                throw new ArgumentException("Unknown deck traversal type: " + traversal.ToString());

            // Set the message's predecessor to the current TableOfContents.Entry.
            using(Synchronizer.Lock(traversal.SyncRoot)) {
                if( traversal.Current != null ) {
                    Message predecessor = message.Predecessor;
                    message.Predecessor = new SlideInformationMessage( traversal.Current.Slide );
                    message.Predecessor.InsertChild( new TableOfContentsEntryMessage( traversal.Current ) );
                    message.Predecessor.AddOldestPredecessor( predecessor );
                }
                return message;
            }
        }
Ejemplo n.º 14
0
        //Another version of the function that will work for the SaveAll menu items
        //(and any other case where we need to save a deck that isn't the current deck.)
        public void SaveDeck(IWin32Window window, DeckTraversalModel deck)
        {
            SaveFileDialog save = new SaveFileDialog();

            save = new SaveFileDialog();

            using (Synchronizer.Lock(deck.Deck.SyncRoot)) {
                //Set the default name
                save.FileName = deck.Deck.HumanName;
            }
            save.Filter = "CP3 files (*.cp3)|*.cp3|All Files (*.*)|*.*";
            if (save.ShowDialog() == DialogResult.OK) {
                //If filter ("*.cp3") is chosen, then make sure the File Name End with ".cp3"
                if (save.FilterIndex == 1 && !save.FileName.EndsWith(".cp3"))
                    save.FileName = save.FileName + ".cp3";

                using (Synchronizer.Lock(deck.Deck.SyncRoot)) {
                    Decks.PPTDeckIO.SaveAsCP3(new FileInfo(save.FileName), deck.Deck);
                    deck.Deck.Dirty = false;
                }
            }
        }
Ejemplo n.º 15
0
        /// <summary>
        /// Constructs a new matching between the two given DeckTraversalModels
        /// </summary>
        /// <param name="srcTraversal">The DeckTraversal to marshal changes from</param>
        /// <param name="destTraversal">The DeckTraversal to marshal changes to</param>
        public DeckTraversalMatch( EventQueue sender, DeckTraversalModel srcTraversal, DeckTraversalModel destTraversal )
        {
            // Set the members
            this.m_Sender = sender;
            this.m_SourceDeckTraversal = srcTraversal;
            this.m_DestDeckTraversal = destTraversal;

            this.m_CurrentChangedDispatcher = new EventQueue.PropertyEventDispatcher(this.m_Sender, new PropertyEventHandler(this.HandleCurrentChanged));

            if( !this.IsSameTarget() ) {
                // Recursively Create all the child matchings
                this.m_DeckMatch = new DeckMatch( this.m_Sender, this.m_SourceDeckTraversal.Deck, this.m_DestDeckTraversal.Deck );

                // Setup the listeners
                this.m_SourceDeckTraversal.Changed["Current"].Add(this.m_CurrentChangedDispatcher.Dispatcher);

                // Update the initial values
                this.m_Sender.Post(delegate() {
                    this.m_CurrentChangedDispatcher.Dispatcher(this, null);
                });
            }
        }
Ejemplo n.º 16
0
 public DeckListBoxItem( DeckTraversalModel model )
 {
     this.m_ModelId = model.Id;
     this.m_Title = "[null]";
     using( Synchronizer.Lock( model.Deck.SyncRoot ) ) {
         this.m_Title = model.Deck.HumanName;
     }
 }
Ejemplo n.º 17
0
 /// <summary>
 /// Add a new DeckTraversalModel to the collection
 /// </summary>
 /// <param name="value">The DeckTraversalModel to add</param>
 /// <returns>Returns the index at which the object was added</returns>
 public int Add(DeckTraversalModel value)
 {
     return(List.Add(value));
 }
        private void UpdateMode(DeckTraversalSelector value)
        {
            if (this.m_Active != null) {
                this.UnregisterActiveEventListeners();
            }

            switch (value) {
                case DeckTraversalSelector.Linked:
                    this.m_Active = this.m_Linked;
                    break;
                case DeckTraversalSelector.Unlinked:
                    this.m_Active = this.m_Unlinked;
                    break;
                default:
                    throw new ArgumentException("Unknown enumeration value for DeckTraversalSelector: " + value.ToString());
            }

            this.RegisterActiveEventListeners();
        }
Ejemplo n.º 19
0
            public DecksListBoxItem( DeckTraversalModel localModel, DeckTraversalModel remoteModel )
            {
                this.m_LocalId = localModel.Id;
                this.m_RemoteId = remoteModel.Id;
                this.m_LocalTitle = "<null>";
                this.m_RemoteTitle = "<null>";

                if( remoteModel.Id == localModel.Id ) {
                    this.m_LocalId = Guid.Empty;
                    this.m_LocalTitle = "[self]";
                }
                else {
                    using( Synchronizer.Lock( localModel.Deck.SyncRoot ) ) {
                        this.m_LocalTitle = localModel.Deck.HumanName;
                    }
                }

                using( Synchronizer.Lock( remoteModel.Deck.SyncRoot ) ) {
                    this.m_RemoteTitle = remoteModel.Deck.HumanName;
                }
            }
Ejemplo n.º 20
0
 /// <summary>
 /// Inserts a DeckTraversalModel into the given index in the collection
 /// </summary>
 /// <param name="index">The index to insert into</param>
 /// <param name="value">The DeckTraversalModel to insert</param>
 public void Insert(int index, DeckTraversalModel value)
 {
     List.Insert(index, value);
 }
Ejemplo n.º 21
0
 public InstructorCurrentDeckTraversalChangedMessage(DeckTraversalModel traversal)
     : this(traversal,true)
 {
 }
            private void SendTraversalInformation(DeckTraversalModel traversal, Group receivers)
            {
                Message message, deck;
                message = new PresentationInformationMessage(this.m_Service.m_Presentation);
                message.Group = receivers;
                message.InsertChild(deck = new DeckInformationMessage(traversal.Deck));
                deck.InsertChild(DeckTraversalMessage.ForDeckTraversal(traversal));

                this.m_Service.m_Sender.Send(message);
            }
Ejemplo n.º 23
0
 public RemoveSlideMenuItem(DeckTraversalModel traversal, PresenterModel model)
     : base(Strings.DeleteSlide)
 {
     this.m_Deck = traversal.Deck;
     this.m_WhereTheEntriesGo = traversal.Deck.TableOfContents.Entries;
     traversal_ = traversal;
     this.m_Model = model;
 }
Ejemplo n.º 24
0
 /// <summary>
 /// Remove the given DeckTraversalModel
 /// </summary>
 /// <param name="value">The DeckTraversalModel to remove</param>
 public void Remove(DeckTraversalModel value)
 {
     List.Remove(value);
 }
Ejemplo n.º 25
0
 /// <summary>
 /// Add a deck traversal to the local deck list
 /// </summary>
 /// <param name="toAdd">The deck traversal model to add</param>
 public void AddLocal( DeckTraversalModel toAdd )
 {
     this.m_Local.Items.Add( new DeckListBoxItem( toAdd ) );
 }
Ejemplo n.º 26
0
 /// <summary>
 /// Add a deck traversal to the remote deck list
 /// </summary>
 /// <param name="toAdd">The deck traversal model to add</param>
 public void AddRemote( DeckTraversalModel toAdd )
 {
     this.m_Remote.Items.Add( new DeckListBoxItem( toAdd ) );
 }
 public DeckTraversalRemovedFromPresentationMessage(DeckTraversalModel traversal)
     : base(traversal)
 {
 }
Ejemplo n.º 28
0
 /// <summary>
 /// Add a deck traversal to the match list
 /// </summary>
 /// <param name="localDeck">The deck traversal model to add</param>
 /// <param name="remoteDeck">The deck traversal model to add</param>
 public void AddMatch( DeckTraversalModel localDeck, DeckTraversalModel remoteDeck )
 {
     this.m_MatchedListBox.Items.Add( new DecksListBoxItem( localDeck, remoteDeck ) );
 }
 public DeckTraversalMessage(DeckTraversalModel traversal)
     : this(traversal,true)
 {
 }
Ejemplo n.º 30
0
 /// <summary>
 /// Returns the index of the given object
 /// </summary>
 /// <param name="value">The DeckTraversalModel to find the index of</param>
 /// <returns>The index of the object, or -1 otherwise</returns>
 public int IndexOf(DeckTraversalModel value)
 {
     return(List.IndexOf(value));
 }
Ejemplo n.º 31
0
 /// <summary>
 /// Check to see if the given DeckTraversalModel is contained in the collection
 /// </summary>
 /// <param name="value">The DeckTraversalModel to check for</param>
 /// <returns>Returns true if the collection contains the
 /// DeckTraversalModel, false otherwise</returns>
 public bool Contains(DeckTraversalModel value)
 {
     return(List.Contains(value));
 }
Ejemplo n.º 32
0
 public InstructorCurrentDeckTraversalChangedMessage(DeckTraversalModel traversal, bool addLocalRef)
     : base(traversal, addLocalRef)
 {
 }
Ejemplo n.º 33
0
        private bool m_UseLightColorSet; // Use light color set as the pen color set

        #endregion Fields

        #region Constructors

        /// <summary>
        /// Instantiates a new <see cref="ViewerStateModel"/>.
        /// </summary>
        public ViewerStateModel()
        {
            this.m_PollStyle = QuickPollModel.QuickPollStyle.ABCD;
            this.m_Document = new PrintDocument();
            this.m_PrintableDeck = null;
            this.m_SlidesPerPage = 6;
            this.m_LoggingEnabled = true;
            this.m_LoggingPath = ".\\Logs";
            this.m_SecondMonitorEnabled = true;
            this.m_SecondMonitorWindowsAPIsEnabled = true;
            this.m_SecondMonitorCustomCommandsEnabled = false;
            this.m_SecondMonitorCustomCommandType = "";
            this.m_SecondMonitorCloneCommand = "";
            this.m_SecondMonitorExtendCommand = "";
            this.m_NumberOfScreens = System.Windows.Forms.Screen.AllScreens.Length;
            this.m_SlidePreviewEnabled = true;
            this.m_SlidePreviewVisible = false;
            this.m_SlidePreviewWidth = 400;
            this.m_SlidePreviewHeight = 300;
            this.m_AutoScrollEnabled = true;
            this.m_FilmStripEnabled = true;
            this.m_PrimaryMonitorFullScreen = false;
            this.m_FEC = 0;
            this.m_InterPacketDelay = 0;
            this.m_BeaconInterval = 5;
            this.m_FilmStripAlignment = DockStyle.Right;
            this.m_SaveOnClose = true;
            this.m_BroadcastDisabled = false;
            this.m_UseLightColorSet = false;
            this.m_ClassmateMode = false;
            this.m_DefaultPenWidth = 53;
            this.m_DefaultHLWidth = 318;
            this.m_Language = "en";

            this.m_FilmStripWidth = 1;
            this.m_SSFilmStripWidth = 3;
            this.m_iRole = 0;//0-disconnected, 1-Viewer, 2-Presenter, 3-Public
            this.m_Advanced = false;
            this.m_ManualConnectionButtonName = "";
            this.m_TCPaddress = "";
            this.m_ShowIP = true;

            this.m_Diagnostic = new DiagnosticModel();
        }
 protected virtual void Dispose(bool disposing)
 {
     if(this.m_Disposed) return;
     if(disposing) {
         this.m_CurrentSlidePreviewDeckTraversalChangedDispatcher.Dispose();
         // Unregister event listeners via the CurrentSlidePreviewDeckTraversal setter.
         this.CurrentSlidePreviewDeckTraversal = null;
     }
     this.m_Disposed = true;
 }
Ejemplo n.º 35
0
        public void OnCurrentDeckTraversalChanged(object sender, PropertyEventArgs pea)
        {
            PropertyChangeEventArgs args = (PropertyChangeEventArgs)pea;
            if (m_DeckTraversal != null) {
                m_DeckTraversal.Changed["Current"].Remove(new PropertyEventHandler(OnTableOfContentsEntryChanged));
            }
            m_DeckTraversal = (DeckTraversalModel)args.NewValue;
            if (m_DeckTraversal != null) {
                using (Synchronizer.Lock(m_DeckTraversal.SyncRoot)) {
                    TableOfContentsModel.Entry e = m_DeckTraversal.Current;
                    using (Synchronizer.Lock(e.SyncRoot)) {
                        SlideModel s = e.Slide;
                        using (Synchronizer.Lock(s.SyncRoot)) {
                            m_CurrentSlideID = s.Id;
                        }
                    }
                }

                m_DeckTraversal.Changed["Current"].Add(new PropertyEventHandler(OnTableOfContentsEntryChanged));
            }
        }