Beispiel #1
0
 /// <summary>
 /// Initializes a new instance of the <see cref="NuGenSlide"/> class.
 /// </summary>
 public NuGenSlide()
 {
     this.SetStyle(ControlStyles.Opaque, true);
     _viewer         = new SlideViewer(this);
     _viewer.MinZoom = 0.1f;
     _viewer.MaxZoom = 3.0f;
 }
Beispiel #2
0
        public PreviewTraversalModelAdapter(ControlEventQueue dispatcher, SlideViewer viewer, PresenterModel model)
        {
            this.m_EventQueue = dispatcher;
            this.m_Model      = model;
            this.m_Viewer     = viewer;

            this.m_CurrentSlidePreviewDeckTraversalChangedDispatcher =
                this.m_Model.Workspace.CurrentSlidePreviewDeckTraversal.ListenAndInitialize(dispatcher,
                                                                                            delegate(Property <DeckTraversalModel> .EventArgs args) {
                this.CurrentSlidePreviewDeckTraversal = args.New;
            });
        }
Beispiel #3
0
        /// <summary>
        /// Constructs this control
        /// </summary>
        public SlidePreview(PresenterModel model, Control linked)
        {
            this.m_Model = model;

            this.m_EventQueue = new ControlEventQueue(this);

            this.m_Linked                  = linked;
            this.m_Linked.SizeChanged     += new EventHandler(this.OnLinkedControlSizeChanged);
            this.m_Linked.LocationChanged += new EventHandler(this.OnLinkedControlSizeChanged);
            this.m_Linked.DockChanged     += new EventHandler(this.OnLinkedControlSizeChanged);
            //this.OnLinkedControlSizeChanged(this, EventArgs.Empty);

            // Create the control's properties
            this.SuspendLayout();

            this.Name            = "SlidePreview";
            this.Visible         = false;
            this.BackColor       = System.Drawing.Color.Black;
            this.DockPadding.All = 4;

            this.m_PreviewSlideViewer      = new MainSlideViewer(this.m_Model, false);
            this.m_PreviewSlideViewer.Dock = DockStyle.Fill;
            //Set the disposition to always be public
            using (Synchronizer.Lock(this.m_PreviewSlideViewer.SlideDisplay.SyncRoot)) {
                this.m_PreviewSlideViewer.SlideDisplay.SheetDisposition = Model.Presentation.SheetDisposition.SecondMonitor;
            }

            //Listen to changes in the role
            this.m_Model.Participant.Changed["Role"].Add(new PropertyEventHandler(this.onRoleChange));
            //Set the initial role
            this.onRoleChange(this, null);

            this.m_SlidePreviewChangedDispatcher = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.HandleSlidePreviewChanged));
            this.m_Model.ViewerState.Changed["SlidePreviewEnabled"].Add(this.m_SlidePreviewChangedDispatcher.Dispatcher);
            this.m_Model.ViewerState.Changed["SlidePreviewVisible"].Add(this.m_SlidePreviewChangedDispatcher.Dispatcher);
            this.m_SlidePreviewSizeChangedDispatcher = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.HandleSlidePreviewSizeChanged));
            this.m_Model.ViewerState.Changed["SlidePreviewWidth"].Add(this.m_SlidePreviewSizeChangedDispatcher.Dispatcher);
            this.m_Model.ViewerState.Changed["SlidePreviewHeight"].Add(this.m_SlidePreviewSizeChangedDispatcher.Dispatcher);



            this.Controls.Add(this.m_PreviewSlideViewer);

            // Initialize the SlidePreview's visibility.
            this.m_SlidePreviewChangedDispatcher.Dispatcher(this, null);
            this.m_SlidePreviewSizeChangedDispatcher.Dispatcher(this, null);

            this.ResumeLayout();

            // Create the control immediately, or else event queue will never execute anything (chicken and the egg).
            this.CreateHandle();
        }
Beispiel #4
0
        protected override void Dispose(bool disposing)
        {
            if (disposing)
            {
                if (_viewer != null)
                {
                    _viewer.Dispose();
                    _viewer = null;
                }
            }

            base.Dispose(disposing);
        }
Beispiel #5
0
        /// <summary>
        /// Creates a new instance of a second monitor form
        /// </summary>
        /// <param name="model">
        /// Presenter model to display the second monitor form on
        /// </param>
        public SecondMonitorForm(PresenterModel model)
        {
            // Assign the model
            this.m_Model = model;

            // Layout the control
            this.SuspendLayout();

            // Set the parameters of the form
            this.AccessibleDescription = "secondMonitorForm";
            this.AccessibleName        = "secondMonitorForm";
            this.BackColor             = System.Drawing.Color.White;
            this.Enabled         = false;
            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
            this.ShowInTaskbar   = false;
            this.Visible         = false;
            this.DesktopBounds   = Screen.PrimaryScreen.Bounds;
            this.Name            = "SecondMonitorForm";
            this.Text            = "Classroom Presenter 3 Dual-Monitor Display";

            // Create the second monitor view
            this.m_SecondMonitorSlideViewer      = new SecondMonitorSlideViewer(this.m_Model);
            this.m_SecondMonitorSlideViewer.Dock = DockStyle.Fill;
            //Set the disposition to always be public
            using (Synchronizer.Lock(this.m_SecondMonitorSlideViewer.SlideDisplay.SyncRoot)) {
                this.m_SecondMonitorSlideViewer.SlideDisplay.SheetDisposition = Model.Presentation.SheetDisposition.SecondMonitor | Model.Presentation.SheetDisposition.All | Model.Presentation.SheetDisposition.Background | Model.Presentation.SheetDisposition.Public;
            }

            // Attach the traversal and rendering of the second monitor to the model
            this.m_WorkspaceModelAdapter = new WorkspaceModelAdapter(this.m_SecondMonitorSlideViewer.SlideDisplay.EventQueue, this.m_SecondMonitorSlideViewer, this.m_Model);

            // Add the control
            this.Controls.Add(this.m_SecondMonitorSlideViewer);

            this.ResumeLayout();

            // Keep track of changes to the number of monitors and whether the second monitor is enabled
            this.m_Model.ViewerState.Changed["NumberOfScreens"].Add(new PropertyEventHandler(this.HandleViewerStateChanged));
            this.m_Model.ViewerState.Changed["SecondMonitorEnabled"].Add(new PropertyEventHandler(this.HandleViewerStateChanged));
            this.HandleViewerStateChanged(this.m_Model.ViewerState, null);
        }