Example #1
0
        public FileMenu(ControlEventQueue dispatcher, PresenterModel model, DeckMarshalService marshal, CloseFormDelegate cfd)
        {
            this.Text = Strings.File;

            open_deck_ = new OpenDeckMenuItem(model, marshal);
            this.MenuItems.Add(open_deck_);
            this.MenuItems.Add(new CloseDeckMenuItem(dispatcher, model, marshal));
            this.MenuItems.Add(new MenuItem("-"));// Text of "-" signifies a separator bar.
            this.MenuItems.Add(new SaveDeckMenuItem(model, marshal));
            this.MenuItems.Add(new SaveDeckAsMenuItem(model, marshal));
            this.MenuItems.Add(new SaveAllDecksMenuItem(model, marshal));
            this.MenuItems.Add(new SaveAllDecksAsMenuItem(model, marshal));
            this.MenuItems.Add(new MenuItem("-")); // Text of "-" signifies a separator bar.
            this.MenuItems.Add(new ExportDeckAsImageItem(model));
            this.MenuItems.Add(new ExportDeckAsHTMLItem(model));
            this.MenuItems.Add(new ExportInkMenuItem(model));
            this.MenuItems.Add(new MenuItem("-"));
            this.MenuItems.Add(new PageSetupMenuItem(this, model));
            this.MenuItems.Add(new PrintPreviewMenuItem(this, model));
            this.MenuItems.Add(new PrintMenuItem(this, model));
            this.MenuItems.Add(new MenuItem("-"));
            this.MenuItems.Add(new ExitMenuItem(cfd));

            presenter_model_ = model;
            presenter_model_.Workspace.CurrentPresentation.ListenAndInitialize(dispatcher, new Property <PresentationModel> .EventHandler(this.HandlePresentationChanged));
            presenter_model_.Workspace.CurrentDeckTraversal.ListenAndInitialize(dispatcher, new Property <DeckTraversalModel> .EventHandler(this.HandleDeckChanged));
        }
Example #2
0
        public EditMenu(ControlEventQueue dispatcher, PresenterModel model)
        {
            this.Text = Strings.Edit;

            this.MenuItems.Add(new UndoMenuItem(dispatcher, model));
            this.MenuItems.Add(new RedoMenuItem(dispatcher, model));
        }
Example #3
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="model">The model that this component modifies</param>
        public MainToolBar(PresenterModel model, ControlEventQueue dispatcher)
        {
            // Initialize private variables
            this.m_EventQueue = dispatcher;
            this.m_Model      = model;

            // Setup the object UI description
            this.SuspendLayout();

            this.Name      = "MainToolBar";
            this.GripStyle = ToolStripGripStyle.Hidden;

            // Create the primary image list for this object
            this.ImageList            = new ImageList();
            this.ImageList.ImageSize  = new Size(40, 40);
            this.ImageList.ColorDepth = ColorDepth.Depth32Bit;

            // Set the default button size
            this.ImageScalingSize = new Size(40, 40);
            this.AutoSize         = true;

            // Assign a custom renderer to this object so that rendering appears
            // in the old style
            this.Renderer = new CustomRenderer();

            this.ResumeLayout();
        }
Example #4
0
        public StudentNavigationTypeMenuItem(ControlEventQueue dispatcher, PresenterModel model)
            : base(dispatcher, model)
        {
            this.Text = Strings.StudentNavigationType;

            this.m_FullNavigation        = new MenuItem(Strings.FullNavigation);
            this.m_FullNavigation.Click += new EventHandler(m_FullNavigation_Click);
            this.MenuItems.Add(this.m_FullNavigation);

            this.m_VisitedSlidesNavigation        = new MenuItem(Strings.VisitedSlidesNavigation);
            this.m_VisitedSlidesNavigation.Click += new EventHandler(m_VisitedSlidesNavigation_Click);
            this.MenuItems.Add(this.m_VisitedSlidesNavigation);

            this.m_NoNavigation        = new MenuItem(Strings.NoNavigation);
            this.m_NoNavigation.Click += new EventHandler(m_NoNavigation_Click);
            this.MenuItems.Add(this.m_NoNavigation);
            this.m_HandleStudentNavChangedDispatcher = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.HandleStudentNavChanged));
            using (Synchronizer.Lock(this.m_Model.Participant.SyncRoot)) {
                //Listen to changes in Student Nav Types for the current role, if it is an InstructorModel
                if (this.m_Role is InstructorModel)
                {
                    using (Synchronizer.Lock(this.m_Model.Participant.Role.SyncRoot)) {
                        ((InstructorModel)this.m_Role).Changed["StudentNavigationType"].Add(this.m_HandleStudentNavChangedDispatcher.Dispatcher);
                    }
                }
            }
            this.HandleStudentNavChanged(this, null);
            using (Synchronizer.Lock(this.m_Role)) {
                if (((InstructorModel)this.m_Role).StudentNavigationType == LinkedDeckTraversalModel.NavigationSelector.Full)
                {
                    this.m_FullNavigation.Checked = true;
                }
            }
        }
Example #5
0
 public ConnectionHelper(StartupForm stup, PresenterModel model, ControlEventQueue dispatcher)
 {
     this.m_StartupForm = stup;
     this.m_TabControl  = this.m_StartupForm.m_TabControl;
     this.m_Model       = model;
     this.m_EventQueue  = dispatcher;
 }
Example #6
0
        public PresentationRadioButton(ControlEventQueue dispatcher, PresentationModel presentation, StartupForm stup, PresentationsPanel parent, int i, ClassroomModel classroom)
        {
            this.m_EventQueue         = dispatcher;
            this.m_Presentation       = presentation;
            this.Tag                  = presentation.Owner;
            this.m_Startup            = stup;
            this.Parent               = parent;
            this.m_PresentationsPanel = parent;
            this.m_Classroom          = classroom;
            this.Parent.Controls.Add(this);


            this.FlatStyle = FlatStyle.System;
            this.Font      = Model.Viewer.ViewerStateModel.StringFont1;
            this.index     = i;

            this.Location = new Point(10, (2 * this.Font.Height) * (this.index + 1));
            this.Size     = new Size(this.Parent.Width - 14, 2 * this.Font.Height);

            //If the role changes we should remove ourself from our parent.
            this.m_ViewerStateRoleListener = new EventQueue.PropertyEventDispatcher(this.m_Startup.m_EventQueue,
                                                                                    new PropertyEventHandler(this.HandleViewerStateRoleChanged));
            this.m_Startup.m_Model.ViewerState.Changed["iRole"].Add(this.m_ViewerStateRoleListener.Dispatcher);



            this.m_HumanNameChangedDispatcher = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.HandleHumanNameChanged));
            this.Presentation.Changed["HumanName"].Add(this.m_HumanNameChangedDispatcher.Dispatcher);
            this.m_HumanNameChangedDispatcher.Dispatcher(this.Presentation, null);
            this.CheckedChanged += new EventHandler(HandlePresentationSelectionChanged);

            this.m_ConnectedChangedDispatcher = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.HandleConnectedChanged));
            this.m_Classroom.Changed["Connected"].Add(this.m_ConnectedChangedDispatcher.Dispatcher);
            this.HandleConnectedChanged(this.m_Classroom, null);
        }
Example #7
0
            public InstructorConnection(StartupForm parent, PresenterModel model, ControlEventQueue dispatcher)
                : base(parent, model, dispatcher)
            {
                this.m_PresentationsPanel             = null;
                this.m_ManualConnectionPanel          = new ManualConnectionPanel(this.m_Model, this.m_StartupForm);
                this.m_ManualConnectionPanel.Location = parent.m_UDPPanel.Location;
                this.m_ManualConnectionPanel.Size     = parent.m_UDPPanel.Size;

                /*if (!(this.m_StartupForm.Controls.Contains(this.m_TabControl))) {
                 *  this.m_StartupForm.Controls.Add(this.m_TabControl);
                 *
                 *  }*/
                if (!(this.m_StartupForm.Controls.Contains(this.m_StartupForm.m_TabGroupBox)))
                {
                    this.m_StartupForm.Controls.Add(this.m_StartupForm.m_TabGroupBox);
                    if (!(this.m_StartupForm.m_TabGroupBox.Controls.Contains(this.m_TabControl)))
                    {
                        this.m_StartupForm.m_TabGroupBox.Controls.Add(this.m_TabControl);
                    }
                }
                this.m_TabControl.m_AdvancedTab.Controls.Add(this.m_ManualConnectionPanel);
                if (this.m_TabControl.Controls.Contains(this.m_TabControl.m_UDPTab))
                {
                    this.m_TabControl.Controls.Remove(this.m_TabControl.m_UDPTab);
                }
            }
Example #8
0
        public PresentationsPanel(PresenterModel model, StartupForm stup)
        {
            if (model == null)
            {
                throw new ArgumentNullException("model");
            }

            this.m_EventQueue = new ControlEventQueue(this);
            this.m_Model      = model;
            this.m_Startup    = stup;

            this.Font        = Model.Viewer.ViewerStateModel.StringFont;
            this.Location    = new Point(276, 10);
            this.Size        = new Size(250, 250);
            this.BorderStyle = BorderStyle.Fixed3D;
            this.AutoScroll  = true;

            Label label = new Label();

            label.FlatStyle = FlatStyle.System;
            label.Font      = Model.Viewer.ViewerStateModel.StringFont2;
            label.Size      = new Size(this.Width + 30, label.Font.Height);
            label.Location  = new Point(10, 5);
            label.Text      = Strings.PresentationsInChosenVenue;
            this.Controls.Add(label);



            // Create a handle immediately so the ListViewItems can marshal event handlers to the creator thread.
            this.CreateHandle();

            this.m_ProtocolCollectionHelper = new ProtocolCollectionHelper(this, this.m_Model.Network);
        }
Example #9
0
 public FilmStripWidthMenu(ControlEventQueue dispatcher, PresenterModel model)
     : base(Strings.FilmStripWidth)
 {
     this.MenuItems.Add(new WidthMenuItem(dispatcher, model, 1, Strings.OneSlide));
     this.MenuItems.Add(new WidthMenuItem(dispatcher, model, 2, Strings.TwoSlides));
     this.MenuItems.Add(new WidthMenuItem(dispatcher, model, 3, Strings.ThreeSlides));
 }
Example #10
0
            /// <summary>
            /// Constructor
            /// </summary>
            /// <param name="dispatcher">The event queue</param>
            /// <param name="model">The model</param>
            public ForwardNavigationToolBarButton(ControlEventQueue dispatcher, PresenterModel model) : base(dispatcher, model)
            {
                this.m_Model     = model;
                this.ToolTipText = Strings.ForwardTooltipNextSlide;

                this.Initialize();
            }
Example #11
0
            /// <summary>
            /// Constructor
            /// </summary>
            /// <param name="dispatcher">The event queue</param>
            /// <param name="model">The model</param>
            public BackwardNavigationToolBarButton(ControlEventQueue dispatcher, PresenterModel model)
                : base(dispatcher, model)
            {
                this.m_Model = model;

                this.Initialize();
            }
Example #12
0
            /// <summary>
            /// Constructor
            /// </summary>
            /// <param name="dispatcher">The event queue</param>
            /// <param name="model">The model</param>
            protected SlideToolBarButton(ControlEventQueue dispatcher, PresenterModel model)
            {
                this.m_EventQueue = dispatcher;
                this.m_Model      = model;

                this.m_Adapter = new WorkspaceModelAdapter(this.m_EventQueue, this, this.m_Model);
            }
Example #13
0
        /// <summary>
        /// Creates a new <see cref="ClassroomMenu"/>.
        /// </summary>
        /// <param name="model">
        /// The lists of classrooms and presentations are gathered from the
        /// protocols in the <see cref="PresenterModel.Network"/>.
        /// </param>
        public ManualConnectionMenu(ControlEventQueue dispatcher, PresenterModel model, PresentationsMenu pm)
        {
            this.m_EventQueue = dispatcher;
            this.m_Model      = model;
            this.Text         = "&Manual Connection";

            this.m_ProtocolCollectionHelper = new ProtocolCollectionHelper(this, pm, this.m_Model.Network);
        }
Example #14
0
            /// <summary>
            /// Constructor
            /// </summary>
            /// <param name="dispatcher">The event queue</param>
            /// <param name="model">The model</param>
            public ForwardNavigationToolBarButton(ControlEventQueue dispatcher, PresenterModel model)
                : base(dispatcher, model)
            {
                this.m_Model = model;
                //this.ToolTipText = "Go to the next slide.";

                this.Initialize();
            }
Example #15
0
 public ToggleSlideZoomMenuItem(ControlEventQueue dispatcher, PresenterModel model)
 {
     this.m_EventQueue            = dispatcher;
     this.m_Model                 = model;
     this.m_ZoomChangedDispatcher = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.HandleZoomChanged));
     this.m_Adapter               = new WorkspaceModelAdapter(dispatcher, this, model);
     this.Text = Strings.ZoomSlide;
 }
Example #16
0
            /// <summary>
            /// Constructor
            /// </summary>
            /// <param name="dispatcher">The event queue</param>
            /// <param name="model">The model</param>
            protected ParticipantToolBarButton(ControlEventQueue dispatcher, PresenterModel model)
            {
                this.m_EventQueue = dispatcher;
                this.m_Model      = model;

                this.m_RoleChangedDispatcher = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.HandleRoleChanged));
                this.m_Model.Participant.Changed["Role"].Add(this.m_RoleChangedDispatcher.Dispatcher);
            }
Example #17
0
 public FilmStripAlignmentMenu(ControlEventQueue dispatcher, PresenterModel model)
     : base(Strings.FilmStripAlignment)
 {
     this.MenuItems.Add(new DockMenuItem(dispatcher, model, DockStyle.Left, Strings.Left));
     this.MenuItems.Add(new DockMenuItem(dispatcher, model, DockStyle.Right, Strings.Right));
     this.MenuItems.Add(new DockMenuItem(dispatcher, model, DockStyle.Top, Strings.Top));
     this.MenuItems.Add(new DockMenuItem(dispatcher, model, DockStyle.Bottom, Strings.Bottom));
 }
Example #18
0
        public ToolBarMenu(ControlEventQueue dispatcher, PresenterModel model)
            : base(Strings.Toolbar)
        {
            this.m_EventQueue = dispatcher;
            this.m_Model      = model;

            this.MenuItems.Add(new ToolBarMenuItem(dispatcher, model, false, Strings.Default));
            this.MenuItems.Add(new ToolBarMenuItem(dispatcher, model, true, Strings.Classmate));
        }
Example #19
0
            /// <summary>
            /// Constructor
            /// </summary>
            /// <param name="dispatcher">The event queue</param>
            /// <param name="model">The model</param>
            public QuickPollToolBarButton(ControlEventQueue dispatcher, PresenterModel model)
                : base(dispatcher, model)
            {
                this.m_QuickPollChangedDispatcher = new EventQueue.PropertyEventDispatcher(this.m_EventQueue,
                                                                                           new PropertyEventHandler(this.HandleQuickPollChanged));
                base.InitializeRole();

                this.Enabled   = false;
                this.m_Adapter = new WorkspaceModelAdapter(this.m_EventQueue, this, this.m_Model);
            }
Example #20
0
 public InstructorMenuItem(ControlEventQueue dispatcher, PresenterModel model)
 {
     this.m_Model      = model;
     this.m_EventQueue = dispatcher;
     this.m_HandleRoleChangedDispatcher = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.HandleRoleChanged));
     //Save a copy of the role
     this.m_Role = this.m_Model.Participant.Role;
     //Listen to changes in Role
     this.m_Model.Participant.Changed["Role"].Add(this.m_HandleRoleChangedDispatcher.Dispatcher);
 }
Example #21
0
            public ToolBarMenuItem(ControlEventQueue dispatcher, PresenterModel model, bool mode, string text)
                : base(text)
            {
                this.m_Model         = model;
                this.m_ClassmateMode = mode;

                this.m_ToolBarModeListener = new EventQueue.PropertyEventDispatcher(dispatcher,
                                                                                    new PropertyEventHandler(this.HandleToolBarModeChanged));
                this.m_Model.ViewerState.Changed["ClassmateMode"].Add(this.m_ToolBarModeListener.Dispatcher);
                this.m_ToolBarModeListener.Dispatcher(this, null);
            }
Example #22
0
            public SSWidthMenuItem(ControlEventQueue dispatcher, PresenterModel model, int width, string text)
                : base(text)
            {
                this.m_Model = model;
                this.m_Width = width;

                this.m_SSFilmStripWidthListener = new EventQueue.PropertyEventDispatcher(dispatcher,
                                                                                         new PropertyEventHandler(this.HandleSSFilmStripWidthChanged));
                this.m_Model.ViewerState.Changed["SSFilmStripWidth"].Add(this.m_SSFilmStripWidthListener.Dispatcher);
                this.m_SSFilmStripWidthListener.Dispatcher(this, null);
            }
Example #23
0
            /// <summary>
            /// Constructor
            /// </summary>
            /// <param name="dispatcher">The event queue</param>
            /// <param name="model">The model</param>
            public LinkedNavigationToolBarButton(ControlEventQueue dispatcher, PresenterModel model) : base(dispatcher, model)
            {
                this.m_Model = model;

                // Listen for changes to the Role property
                this.m_RoleChangedDispatcher = new EventQueue.PropertyEventDispatcher(dispatcher, new PropertyEventHandler(this.HandleRoleChanged));
                this.m_Model.Participant.Changed["Role"].Add(this.m_RoleChangedDispatcher.Dispatcher);
                this.m_RoleChangedDispatcher.Dispatcher(this, null);

                this.Initialize();
            }
Example #24
0
            public DockMenuItem(ControlEventQueue dispatcher, PresenterModel model, DockStyle dock, string text)
                : base(text)
            {
                this.m_Model     = model;
                this.m_DockStyle = dock;

                this.m_FilmStripAlignmentListener = new EventQueue.PropertyEventDispatcher(dispatcher,
                                                                                           new PropertyEventHandler(this.HandleFilmStripAlignmentChanged));
                this.m_Model.ViewerState.Changed["FilmStripAlignment"].Add(this.m_FilmStripAlignmentListener.Dispatcher);
                this.m_FilmStripAlignmentListener.Dispatcher(this, null);
            }
Example #25
0
        public ViewMenu(ControlEventQueue dispatcher, PresenterModel model)
        {
            this.Text = Strings.View;

            this.MenuItems.Add(new ToggleSlideZoomMenuItem(dispatcher, model));
            this.MenuItems.Add(new FullScreenMenuItem(model));
            this.MenuItems.Add(new MenuItem("-"));  //Separator
            this.MenuItems.Add(new FilmStripAlignmentMenu(dispatcher, model));
            this.MenuItems.Add(new FilmStripWidthMenu(dispatcher, model));
            this.MenuItems.Add(new SSFilmStripWidthMenu(dispatcher, model));
//            this.MenuItems.Add(new ToolBarMenu(dispatcher, model));
        }
Example #26
0
 public ViewerMainMenu(ControlEventQueue dispatcher, PresenterModel model, DeckMarshalService marshal, FileMenu.CloseFormDelegate cfd)
 {
     this.MenuItems.Add(new FileMenu(dispatcher, model, marshal, cfd));
     this.MenuItems.Add(new EditMenu(dispatcher, model));
     this.MenuItems.Add(new ViewMenu(dispatcher, model));
     //this.MenuItems.Add(new ConnectMenu(dispatcher, model));
     this.MenuItems.Add(new InsertMenu(model));
     this.MenuItems.Add(new ToolsMenu(model));
     this.MenuItems.Add(new DecksMenu(dispatcher, model));
     this.MenuItems.Add(new StudentMenu(dispatcher, model));
     this.MenuItems.Add(new HelpMenu());
 }
Example #27
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;
            });
        }
Example #28
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="dispatcher">The event queue</param>
        /// <param name="stylus">The stylus model</param>
        /// <param name="model">The presenter model</param>
        public StylusToolBarButton(ControlEventQueue dispatcher, StylusModel stylus, PresenterModel model)
        {
            this.m_EventQueue = dispatcher;
            this.m_Stylus     = stylus;
            this.m_Model      = model;

            this.m_StylusChangedDispatcher = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.HandleStylusChanged));
            this.m_Model.Changed["Stylus"].Add(this.m_StylusChangedDispatcher.Dispatcher);

            // Initialize the Pushed state.
            this.m_StylusChangedDispatcher.Dispatcher(null, null);
        }
Example #29
0
            public UndoMenuItem(ControlEventQueue dispatcher, PresenterModel model)
            {
                this.m_Model      = model;
                this.m_EventQueue = dispatcher;

                this.Text         = Strings.Undo;
                this.Shortcut     = Shortcut.CtrlZ;
                this.ShowShortcut = true;

                this.m_Model.Undo.Update    += new EventHandler(this.HandleUndoableChanged);
                this.m_WorkspaceModelAdapter = new WorkspaceModelAdapter(dispatcher, this, this.m_Model);
            }
Example #30
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();
        }