/// <summary> /// This constructor is for the case where the app is started normally (not as a CXP capability). /// </summary> /// <param name="loader"></param> /// <param name="model"></param> public ViewerForm(DeckMarshalService loader, PresenterModel model) { Trace.WriteLine("Start ViewerForm Ctor"); this.SuspendLayout(); this.m_EventQueue = new ControlEventQueue(this); this.m_Model = model; this.m_Marshal = loader; UpdateTitle(); FontSetting(); this.Font = ViewerStateModel.FormFont; this.Name = "ViewerForm"; //Retrieve the icon System.Reflection.Assembly thisExe = System.Reflection.Assembly.GetExecutingAssembly(); Trace.WriteLine("Get Icon"); this.Icon = new Icon( thisExe.GetManifestResourceStream( "UW.ClassroomPresenter.Presenter.ico" ) ); this.StartPosition = FormStartPosition.Manual; this.loadRegSettings(); this.MinimumSize = new Size(440, 330); Menus.FileMenu.CloseFormDelegate cfd = new UW.ClassroomPresenter.Viewer.Menus.FileMenu.CloseFormDelegate(this.Close); this.Menu = new Menus.ViewerMainMenu(this.m_EventQueue, this.m_Model, loader, cfd); Trace.WriteLine("Create tool bars"); this.m_MainToolBars = new MainToolBars(this.m_Model, this.m_EventQueue); //this.m_ClassroomBrowser = new AutoDisplayClassroomsBrowser(this.m_Model); Trace.WriteLine("Make StartupForm"); this.m_StartupForm = new StartupForm(this.m_Model, this.m_EventQueue); Trace.WriteLine("Make ViewerPresentationLayout"); this.m_PresentationLayout = new ViewerPresentationLayout(this.m_Model); //this.m_ClassroomBrowser.Dock = DockStyle.Fill; this.m_PresentationLayout.Dock = DockStyle.Fill; this.Controls.Add(this.m_PresentationLayout); // Hack: toggle the second monitor to make it scale correctly when using Surface Pro 3. // Bounds need to be set after the ViewerPresentationLayout control is added, // Otherwise DPI scaling appears to be done incorrectly. This issue so far // appears to be unique to the Surface Pro 3. using (Synchronizer.Lock(model.ViewerState.SyncRoot)) { if (model.ViewerState.SecondMonitorEnabled) { model.ViewerState.SecondMonitorEnabled = false; model.ViewerState.SecondMonitorEnabled = true; } } //this.Controls.Add(this.m_ClassroomBrowser); this.m_StartupForm.Visible = false; this.Controls.Add(this.m_MainToolBars.m_MainToolBar); this.Controls.Add(this.m_MainToolBars.m_MainClassmateToolBar); this.Controls.Add(this.m_MainToolBars.m_ExtraClassmateToolBar); this.ResumeLayout(false); Trace.WriteLine("Make KeyEventHandler"); this.KeyDown += new KeyEventHandler(this.OnKeyDown); this.KeyPreview = true; ///add listeners for HumanName, Role, Stylus properties role_listener_ = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.ParticipantRoleChanged)); stylus_listener_ = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.StylusChanged)); instructor_listener_ = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.InstructorChanged)); this.m_Model.Participant.Changed["Role"].Add(role_listener_.Dispatcher); this.m_Model.Changed["Stylus"].Add(stylus_listener_.Dispatcher); this.m_Model.Network.Changed["Association"].Add(instructor_listener_.Dispatcher); //Add listener for the version exchange warning pop-up this.m_VersionExchangePopUpListener = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.PopUpWarningHandler)); this.m_Model.VersionExchange.Changed["PopUpWarningMessage"].Add(m_VersionExchangePopUpListener.Dispatcher); Trace.WriteLine("Make EventDispatcher"); //Add listener for NetworkStatus m_NetworkStatusListener = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.NetworkStatusChanged)); this.m_Model.Network.Changed["NetworkStatus"].Add(m_NetworkStatusListener.Dispatcher); Trace.WriteLine("Make FullScreenAdapter"); this.m_FullScreenAdapter = new FullScreenAdapter(this.m_Model, this.m_PresentationLayout); instructor_listener_.Dispatcher(this, null); role_listener_.Dispatcher(this, null); stylus_listener_.Dispatcher(this, null); this.Activated += this.ShowStartup; this.FormClosing += this.SaveClose; //Store local DPI settings which are used to make sure ink is scaled correctly. using (Graphics g = this.CreateGraphics()) { ViewerStateModel.SetLocalDpi(g.DpiX, g.DpiY); } Trace.WriteLine("ViewerForm Ctor done."); }
/// <summary> /// This constructor is for the case where the app is started normally (not as a CXP capability). /// </summary> /// <param name="loader"></param> /// <param name="model"></param> public ViewerForm(DeckMarshalService loader, PresenterModel model) { Trace.WriteLine("Start ViewerForm Ctor"); this.SuspendLayout(); this.m_EventQueue = new ControlEventQueue(this); this.m_Model = model; this.m_Marshal = loader; UpdateTitle(); FontSetting(); this.Font = ViewerStateModel.FormFont; this.Name = "ViewerForm"; //Retrieve the icon System.Reflection.Assembly thisExe = System.Reflection.Assembly.GetExecutingAssembly(); Trace.WriteLine("Get Icon"); this.Icon = new Icon(thisExe.GetManifestResourceStream("UW.ClassroomPresenter.Presenter.ico")); this.StartPosition = FormStartPosition.Manual; this.loadRegSettings(); this.MinimumSize = new Size(440, 330); Menus.FileMenu.CloseFormDelegate cfd = new UW.ClassroomPresenter.Viewer.Menus.FileMenu.CloseFormDelegate(this.Close); this.Menu = new Menus.ViewerMainMenu(this.m_EventQueue, this.m_Model, loader, cfd); Trace.WriteLine("Create tool bars"); this.m_MainToolBars = new MainToolBars(this.m_Model, this.m_EventQueue); //this.m_ClassroomBrowser = new AutoDisplayClassroomsBrowser(this.m_Model); Trace.WriteLine("Make StartupForm"); this.m_StartupForm = new StartupForm(this.m_Model, this.m_EventQueue); Trace.WriteLine("Make ViewerPresentationLayout"); this.m_PresentationLayout = new ViewerPresentationLayout(this.m_Model); //this.m_ClassroomBrowser.Dock = DockStyle.Fill; this.m_PresentationLayout.Dock = DockStyle.Fill; this.Controls.Add(this.m_PresentationLayout); // Hack: toggle the second monitor to make it scale correctly when using Surface Pro 3. // Bounds need to be set after the ViewerPresentationLayout control is added, // Otherwise DPI scaling appears to be done incorrectly. This issue so far // appears to be unique to the Surface Pro 3. using (Synchronizer.Lock(model.ViewerState.SyncRoot)) { if (model.ViewerState.SecondMonitorEnabled) { model.ViewerState.SecondMonitorEnabled = false; model.ViewerState.SecondMonitorEnabled = true; } } //this.Controls.Add(this.m_ClassroomBrowser); this.m_StartupForm.Visible = false; this.Controls.Add(this.m_MainToolBars.m_MainToolBar); this.Controls.Add(this.m_MainToolBars.m_MainClassmateToolBar); this.Controls.Add(this.m_MainToolBars.m_ExtraClassmateToolBar); this.ResumeLayout(false); Trace.WriteLine("Make KeyEventHandler"); this.KeyDown += new KeyEventHandler(this.OnKeyDown); this.KeyPreview = true; ///add listeners for HumanName, Role, Stylus properties role_listener_ = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.ParticipantRoleChanged)); stylus_listener_ = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.StylusChanged)); instructor_listener_ = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.InstructorChanged)); this.m_Model.Participant.Changed["Role"].Add(role_listener_.Dispatcher); this.m_Model.Changed["Stylus"].Add(stylus_listener_.Dispatcher); this.m_Model.Network.Changed["Association"].Add(instructor_listener_.Dispatcher); //Add listener for the version exchange warning pop-up this.m_VersionExchangePopUpListener = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.PopUpWarningHandler)); this.m_Model.VersionExchange.Changed["PopUpWarningMessage"].Add(m_VersionExchangePopUpListener.Dispatcher); Trace.WriteLine("Make EventDispatcher"); //Add listener for NetworkStatus m_NetworkStatusListener = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.NetworkStatusChanged)); this.m_Model.Network.Changed["NetworkStatus"].Add(m_NetworkStatusListener.Dispatcher); Trace.WriteLine("Make FullScreenAdapter"); this.m_FullScreenAdapter = new FullScreenAdapter(this.m_Model, this.m_PresentationLayout); instructor_listener_.Dispatcher(this, null); role_listener_.Dispatcher(this, null); stylus_listener_.Dispatcher(this, null); this.Activated += this.ShowStartup; this.FormClosing += this.SaveClose; //Store local DPI settings which are used to make sure ink is scaled correctly. using (Graphics g = this.CreateGraphics()) { ViewerStateModel.SetLocalDpi(g.DpiX, g.DpiY); } Trace.WriteLine("ViewerForm Ctor done."); }
/// <summary> /// This constructor is used for launching as a CXP capability. /// </summary> public ViewerForm() { Application.EnableVisualStyles(); //Application.DoEvents(); //Note: this seems to cause problems in the CXP Capability context. #if DEBUG && LOGGING LoggingService logger = new LoggingService(); #endif PresenterModel model = new PresenterModel(); m_Loader = new DefaultDeckMarshalService(); this.SuspendLayout(); this.m_EventQueue = new ControlEventQueue(this); this.m_Model = model; this.m_Marshal = m_Loader; UpdateTitle(); this.Name = "ViewerForm"; //Retrieve the icon System.Reflection.Assembly thisExe = System.Reflection.Assembly.GetExecutingAssembly(); this.Icon = new Icon( thisExe.GetManifestResourceStream( "UW.ClassroomPresenter.Presenter.ico" ) ); this.StartPosition = FormStartPosition.Manual; this.loadRegSettings(); this.MinimumSize = new Size(440, 330); Menus.FileMenu.CloseFormDelegate cfd = new UW.ClassroomPresenter.Viewer.Menus.FileMenu.CloseFormDelegate(this.Close); this.Menu = new Menus.ViewerMainMenu(this.m_EventQueue, this.m_Model, m_Loader, cfd); this.m_MainToolBars = new MainToolBars(this.m_Model, this.m_EventQueue); this.m_PresentationLayout = new ViewerPresentationLayout(this.m_Model); //this.m_MainToolBar.Dock = DockStyle.Top; this.m_PresentationLayout.Dock = DockStyle.Fill; this.Controls.Add(this.m_PresentationLayout); // Hack: toggle the second monitor to make it scale correctly when using Surface Pro 3. // Bounds need to be set after the ViewerPresentationLayout control is added, // Otherwise DPI scaling appears to be done incorrectly. This issue so far // appears to be unique to the Surface Pro 3. using (Synchronizer.Lock(model.ViewerState.SyncRoot)) { if (model.ViewerState.SecondMonitorEnabled) { model.ViewerState.SecondMonitorEnabled = false; model.ViewerState.SecondMonitorEnabled = true; } } this.Controls.Add(this.m_MainToolBars.m_MainToolBar); this.Controls.Add(this.m_MainToolBars.m_MainClassmateToolBar); this.Controls.Add(this.m_MainToolBars.m_ExtraClassmateToolBar); this.ResumeLayout(false); this.KeyDown += new KeyEventHandler(this.OnKeyDown); this.KeyPreview = true; ///add listeners for HumanName, Role, Stylus properties role_listener_ = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.ParticipantRoleChanged)); stylus_listener_ = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.StylusChanged)); instructor_listener_ = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.InstructorChanged)); this.m_Model.Participant.Changed["Role"].Add(role_listener_.Dispatcher); this.m_Model.Changed["Stylus"].Add(stylus_listener_.Dispatcher); this.m_Model.Network.Changed["Association"].Add(instructor_listener_.Dispatcher); //Add listener for the version exchange warning pop-up this.m_VersionExchangePopUpListener = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.PopUpWarningHandler)); this.m_Model.VersionExchange.Changed["PopUpWarningMessage"].Add(m_VersionExchangePopUpListener.Dispatcher); //Add listener for NetworkStatus m_NetworkStatusListener = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.NetworkStatusChanged)); this.m_Model.Network.Changed["NetworkStatus"].Add(m_NetworkStatusListener.Dispatcher); this.m_FullScreenAdapter = new FullScreenAdapter(this.m_Model, this.m_PresentationLayout); instructor_listener_.Dispatcher(this, null); role_listener_.Dispatcher(this, null); stylus_listener_.Dispatcher(this, null); this.FormClosing += this.SaveClose; //Store local DPI settings which are used to make sure ink is scaled correctly. using (Graphics g = this.CreateGraphics()) { ViewerStateModel.SetLocalDpi(g.DpiX, g.DpiY); } m_ViewerState = new ViewerStateService(model.ViewerState); m_Registry = new RegistryService(model.ViewerState); #if DEBUG && LOGGING logger.AttachToModel(model.ViewerState); #endif PrintingService printing = new PrintingService(model.ViewerState); m_Undo = new WorkspaceUndoService(this.m_EventQueue, model); m_Association = new NetworkAssociationService(this.m_EventQueue, model); m_DeckMatcher = new DeckMatcherService(this.m_EventQueue, model); }
/// <summary> /// This constructor is used for launching as a CXP capability. /// </summary> public ViewerForm() { Application.EnableVisualStyles(); //Application.DoEvents(); //Note: this seems to cause problems in the CXP Capability context. #if DEBUG && LOGGING LoggingService logger = new LoggingService(); #endif PresenterModel model = new PresenterModel(); m_Loader = new DefaultDeckMarshalService(); this.SuspendLayout(); this.m_EventQueue = new ControlEventQueue(this); this.m_Model = model; this.m_Marshal = m_Loader; UpdateTitle(); this.Name = "ViewerForm"; //Retrieve the icon System.Reflection.Assembly thisExe = System.Reflection.Assembly.GetExecutingAssembly(); this.Icon = new Icon(thisExe.GetManifestResourceStream("UW.ClassroomPresenter.Presenter.ico")); this.StartPosition = FormStartPosition.Manual; this.loadRegSettings(); this.MinimumSize = new Size(440, 330); Menus.FileMenu.CloseFormDelegate cfd = new UW.ClassroomPresenter.Viewer.Menus.FileMenu.CloseFormDelegate(this.Close); this.Menu = new Menus.ViewerMainMenu(this.m_EventQueue, this.m_Model, m_Loader, cfd); this.m_MainToolBars = new MainToolBars(this.m_Model, this.m_EventQueue); this.m_PresentationLayout = new ViewerPresentationLayout(this.m_Model); //this.m_MainToolBar.Dock = DockStyle.Top; this.m_PresentationLayout.Dock = DockStyle.Fill; this.Controls.Add(this.m_PresentationLayout); // Hack: toggle the second monitor to make it scale correctly when using Surface Pro 3. // Bounds need to be set after the ViewerPresentationLayout control is added, // Otherwise DPI scaling appears to be done incorrectly. This issue so far // appears to be unique to the Surface Pro 3. using (Synchronizer.Lock(model.ViewerState.SyncRoot)) { if (model.ViewerState.SecondMonitorEnabled) { model.ViewerState.SecondMonitorEnabled = false; model.ViewerState.SecondMonitorEnabled = true; } } this.Controls.Add(this.m_MainToolBars.m_MainToolBar); this.Controls.Add(this.m_MainToolBars.m_MainClassmateToolBar); this.Controls.Add(this.m_MainToolBars.m_ExtraClassmateToolBar); this.ResumeLayout(false); this.KeyDown += new KeyEventHandler(this.OnKeyDown); this.KeyPreview = true; ///add listeners for HumanName, Role, Stylus properties role_listener_ = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.ParticipantRoleChanged)); stylus_listener_ = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.StylusChanged)); instructor_listener_ = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.InstructorChanged)); this.m_Model.Participant.Changed["Role"].Add(role_listener_.Dispatcher); this.m_Model.Changed["Stylus"].Add(stylus_listener_.Dispatcher); this.m_Model.Network.Changed["Association"].Add(instructor_listener_.Dispatcher); //Add listener for the version exchange warning pop-up this.m_VersionExchangePopUpListener = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.PopUpWarningHandler)); this.m_Model.VersionExchange.Changed["PopUpWarningMessage"].Add(m_VersionExchangePopUpListener.Dispatcher); //Add listener for NetworkStatus m_NetworkStatusListener = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.NetworkStatusChanged)); this.m_Model.Network.Changed["NetworkStatus"].Add(m_NetworkStatusListener.Dispatcher); this.m_FullScreenAdapter = new FullScreenAdapter(this.m_Model, this.m_PresentationLayout); instructor_listener_.Dispatcher(this, null); role_listener_.Dispatcher(this, null); stylus_listener_.Dispatcher(this, null); this.FormClosing += this.SaveClose; //Store local DPI settings which are used to make sure ink is scaled correctly. using (Graphics g = this.CreateGraphics()) { ViewerStateModel.SetLocalDpi(g.DpiX, g.DpiY); } m_ViewerState = new ViewerStateService(model.ViewerState); m_Registry = new RegistryService(model.ViewerState); #if DEBUG && LOGGING logger.AttachToModel(model.ViewerState); #endif PrintingService printing = new PrintingService(model.ViewerState); m_Undo = new WorkspaceUndoService(this.m_EventQueue, model); m_Association = new NetworkAssociationService(this.m_EventQueue, model); m_DeckMatcher = new DeckMatcherService(this.m_EventQueue, model); }
/// <summary> /// This constructor is used for launching as a CXP capability. /// </summary> public ViewerForm() { Application.EnableVisualStyles(); //Application.DoEvents(); //Note: this seems to cause problems in the CXP Capability context. #if DEBUG && LOGGING LoggingService logger = new LoggingService(); #endif PresenterModel model = new PresenterModel(); m_Loader = new DefaultDeckMarshalService(); this.SuspendLayout(); this.m_EventQueue = new ControlEventQueue(this); this.m_Model = model; this.m_Marshal = m_Loader; UpdateTitle(); this.Name = "ViewerForm"; //Retrieve the icon System.Reflection.Assembly thisExe = System.Reflection.Assembly.GetExecutingAssembly(); this.Icon = new Icon( thisExe.GetManifestResourceStream( "UW.ClassroomPresenter.Presenter.ico" ) ); // The form should fill 5/6 of the screen by default. // FIXME: Load/Store previous window size from/in the registry. this.Size = new Size(SystemInformation.WorkingArea.Size.Width * 5 / 6, SystemInformation.WorkingArea.Size.Height * 5 / 6); // the form should be no smaller than 1/2 it's original size this.MinimumSize = new Size(this.Size.Width / 2, this.Size.Height / 2); Menus.FileMenu.CloseFormDelegate cfd = new UW.ClassroomPresenter.Viewer.Menus.FileMenu.CloseFormDelegate(this.Close); this.Menu = new Menus.ViewerMainMenu(this.m_EventQueue, this.m_Model, m_Loader, cfd); this.m_MainToolBars = new MainToolBars(this.m_Model, this.m_EventQueue); this.m_PresentationLayout = new ViewerPresentationLayout(this.m_Model); //this.m_MainToolBar.Dock = DockStyle.Top; this.m_PresentationLayout.Dock = DockStyle.Fill; this.Controls.Add(this.m_PresentationLayout); this.Controls.Add(this.m_MainToolBars.m_MainToolBar); this.Controls.Add(this.m_MainToolBars.m_MainClassmateToolBar); this.Controls.Add(this.m_MainToolBars.m_ExtraClassmateToolBar); this.ResumeLayout(false); this.KeyDown += new KeyEventHandler(this.OnKeyDown); this.KeyPreview = true; ///add listeners for HumanName, Role, Stylus properties role_listener_ = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.ParticipantRoleChanged)); stylus_listener_ = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.StylusChanged)); instructor_listener_ = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.InstructorChanged)); this.m_Model.Participant.Changed["Role"].Add(role_listener_.Dispatcher); this.m_Model.Changed["Stylus"].Add(stylus_listener_.Dispatcher); this.m_Model.Network.Changed["Association"].Add(instructor_listener_.Dispatcher); //Add listener for the version exchange warning pop-up this.m_VersionExchangePopUpListener = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.PopUpWarningHandler)); this.m_Model.VersionExchange.Changed["PopUpWarningMessage"].Add(m_VersionExchangePopUpListener.Dispatcher); //Add listener for NetworkStatus m_NetworkStatusListener = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.NetworkStatusChanged)); this.m_Model.Network.Changed["NetworkStatus"].Add(m_NetworkStatusListener.Dispatcher); this.m_FullScreenAdapter = new FullScreenAdapter(this.m_Model, this.m_PresentationLayout); instructor_listener_.Dispatcher(this, null); role_listener_.Dispatcher(this, null); stylus_listener_.Dispatcher(this, null); this.FormClosing += this.SaveClose; //Store local DPI settings which are used to make sure ink is scaled correctly. using (Graphics g = this.CreateGraphics()) { ViewerStateModel.SetLocalDpi(g.DpiX, g.DpiY); } m_ViewerState = new ViewerStateService(model.ViewerState); m_Registry = new RegistryService(model.ViewerState); #if DEBUG && LOGGING logger.AttachToModel(model.ViewerState); #endif PrintingService printing = new PrintingService(model.ViewerState); m_Undo = new WorkspaceUndoService(this.m_EventQueue, model); m_Association = new NetworkAssociationService(this.m_EventQueue, model); m_DeckMatcher = new DeckMatcherService(this.m_EventQueue, model); }
/// <summary> /// This constructor is for the case where the app is started normally (not as a CXP capability). /// </summary> /// <param name="loader"></param> /// <param name="model"></param> public ViewerForm(DeckMarshalService loader, PresenterModel model) { this.SuspendLayout(); this.m_EventQueue = new ControlEventQueue(this); this.m_Model = model; this.m_Marshal = loader; UpdateTitle(); FontSetting(); this.Font = ViewerStateModel.FormFont; this.Name = "ViewerForm"; //Retrieve the icon System.Reflection.Assembly thisExe = System.Reflection.Assembly.GetExecutingAssembly(); this.Icon = new Icon( thisExe.GetManifestResourceStream( "UW.ClassroomPresenter.Presenter.ico" ) ); // The form should fill 5/6 of the screen by default. // FIXME: Load/Store previous window size from/in the registry. this.Size = new Size(SystemInformation.WorkingArea.Size.Width * 5 / 6, SystemInformation.WorkingArea.Size.Height * 5 / 6); // the form should be no smaller than 1/2 it's original size this.MinimumSize = new Size(this.Size.Width / 2, this.Size.Height / 2); Menus.FileMenu.CloseFormDelegate cfd = new UW.ClassroomPresenter.Viewer.Menus.FileMenu.CloseFormDelegate(this.Close); this.Menu = new Menus.ViewerMainMenu(this.m_EventQueue, this.m_Model, loader, cfd); this.m_MainToolBars = new MainToolBars(this.m_Model, this.m_EventQueue); //this.m_ClassroomBrowser = new AutoDisplayClassroomsBrowser(this.m_Model); this.m_StartupForm = new StartupForm(this.m_Model, this.m_EventQueue); this.m_PresentationLayout = new ViewerPresentationLayout(this.m_Model); //this.m_ClassroomBrowser.Dock = DockStyle.Fill; this.m_PresentationLayout.Dock = DockStyle.Fill; this.Controls.Add(this.m_PresentationLayout); //this.Controls.Add(this.m_ClassroomBrowser); this.m_StartupForm.Visible = false; this.Controls.Add(this.m_MainToolBars.m_MainToolBar); this.Controls.Add(this.m_MainToolBars.m_MainClassmateToolBar); this.Controls.Add(this.m_MainToolBars.m_ExtraClassmateToolBar); this.ResumeLayout(false); this.KeyDown += new KeyEventHandler(this.OnKeyDown); this.KeyPreview = true; ///add listeners for HumanName, Role, Stylus properties role_listener_ = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.ParticipantRoleChanged)); stylus_listener_ = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.StylusChanged)); instructor_listener_ = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.InstructorChanged)); this.m_Model.Participant.Changed["Role"].Add(role_listener_.Dispatcher); this.m_Model.Changed["Stylus"].Add(stylus_listener_.Dispatcher); this.m_Model.Network.Changed["Association"].Add(instructor_listener_.Dispatcher); //Add listener for the version exchange warning pop-up this.m_VersionExchangePopUpListener = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.PopUpWarningHandler)); this.m_Model.VersionExchange.Changed["PopUpWarningMessage"].Add(m_VersionExchangePopUpListener.Dispatcher); //Add listener for NetworkStatus m_NetworkStatusListener = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.NetworkStatusChanged)); this.m_Model.Network.Changed["NetworkStatus"].Add(m_NetworkStatusListener.Dispatcher); this.m_FullScreenAdapter = new FullScreenAdapter(this.m_Model, this.m_PresentationLayout); instructor_listener_.Dispatcher(this, null); role_listener_.Dispatcher(this, null); stylus_listener_.Dispatcher(this, null); this.Activated += this.ShowStartup; this.FormClosing += this.SaveClose; //Store local DPI settings which are used to make sure ink is scaled correctly. using (Graphics g = this.CreateGraphics()) { ViewerStateModel.SetLocalDpi(g.DpiX, g.DpiY); } }
/// <summary> /// This constructor is used for launching as a CXP capability. /// </summary> public ViewerForm() { Application.EnableVisualStyles(); //Application.DoEvents(); //Note: this seems to cause problems in the CXP Capability context. #if DEBUG && LOGGING LoggingService logger = new LoggingService(); #endif PresenterModel model = new PresenterModel(); m_Loader = new DefaultDeckMarshalService(); this.SuspendLayout(); this.m_EventQueue = new ControlEventQueue(this); this.m_Model = model; this.m_Marshal = m_Loader; UpdateTitle(); this.Name = "ViewerForm"; //Retrieve the icon System.Reflection.Assembly thisExe = System.Reflection.Assembly.GetExecutingAssembly(); this.Icon = new Icon(thisExe.GetManifestResourceStream("UW.ClassroomPresenter.Presenter.ico")); // The form should fill 5/6 of the screen by default. // FIXME: Load/Store previous window size from/in the registry. this.Size = new Size(SystemInformation.WorkingArea.Size.Width * 5 / 6, SystemInformation.WorkingArea.Size.Height * 5 / 6); // the form should be no smaller than 1/2 it's original size this.MinimumSize = new Size(this.Size.Width / 2, this.Size.Height / 2); Menus.FileMenu.CloseFormDelegate cfd = new UW.ClassroomPresenter.Viewer.Menus.FileMenu.CloseFormDelegate(this.Close); this.Menu = new Menus.ViewerMainMenu(this.m_EventQueue, this.m_Model, m_Loader, cfd); this.m_MainToolBars = new MainToolBars(this.m_Model, this.m_EventQueue); this.m_PresentationLayout = new ViewerPresentationLayout(this.m_Model); //this.m_MainToolBar.Dock = DockStyle.Top; this.m_PresentationLayout.Dock = DockStyle.Fill; this.Controls.Add(this.m_PresentationLayout); this.Controls.Add(this.m_MainToolBars.m_MainToolBar); this.Controls.Add(this.m_MainToolBars.m_MainClassmateToolBar); this.Controls.Add(this.m_MainToolBars.m_ExtraClassmateToolBar); this.ResumeLayout(false); this.KeyDown += new KeyEventHandler(this.OnKeyDown); this.KeyPreview = true; ///add listeners for HumanName, Role, Stylus properties role_listener_ = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.ParticipantRoleChanged)); stylus_listener_ = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.StylusChanged)); instructor_listener_ = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.InstructorChanged)); this.m_Model.Participant.Changed["Role"].Add(role_listener_.Dispatcher); this.m_Model.Changed["Stylus"].Add(stylus_listener_.Dispatcher); this.m_Model.Network.Changed["Association"].Add(instructor_listener_.Dispatcher); //Add listener for the version exchange warning pop-up this.m_VersionExchangePopUpListener = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.PopUpWarningHandler)); this.m_Model.VersionExchange.Changed["PopUpWarningMessage"].Add(m_VersionExchangePopUpListener.Dispatcher); //Add listener for NetworkStatus m_NetworkStatusListener = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.NetworkStatusChanged)); this.m_Model.Network.Changed["NetworkStatus"].Add(m_NetworkStatusListener.Dispatcher); this.m_FullScreenAdapter = new FullScreenAdapter(this.m_Model, this.m_PresentationLayout); instructor_listener_.Dispatcher(this, null); role_listener_.Dispatcher(this, null); stylus_listener_.Dispatcher(this, null); this.FormClosing += this.SaveClose; //Store local DPI settings which are used to make sure ink is scaled correctly. using (Graphics g = this.CreateGraphics()) { ViewerStateModel.SetLocalDpi(g.DpiX, g.DpiY); } m_ViewerState = new ViewerStateService(model.ViewerState); m_Registry = new RegistryService(model.ViewerState); #if DEBUG && LOGGING logger.AttachToModel(model.ViewerState); #endif PrintingService printing = new PrintingService(model.ViewerState); m_Undo = new WorkspaceUndoService(this.m_EventQueue, model); m_Association = new NetworkAssociationService(this.m_EventQueue, model); m_DeckMatcher = new DeckMatcherService(this.m_EventQueue, model); }
/// <summary> /// This constructor is for the case where the app is started normally (not as a CXP capability). /// </summary> /// <param name="loader"></param> /// <param name="model"></param> public ViewerForm(DeckMarshalService loader, PresenterModel model) { Trace.WriteLine("Start ViewerForm Ctor"); this.SuspendLayout(); this.m_EventQueue = new ControlEventQueue(this); this.m_Model = model; this.m_Marshal = loader; UpdateTitle(); FontSetting(); this.Font = ViewerStateModel.FormFont; this.Name = "ViewerForm"; //Retrieve the icon System.Reflection.Assembly thisExe = System.Reflection.Assembly.GetExecutingAssembly(); Trace.WriteLine("Get Icon"); this.Icon = new Icon(thisExe.GetManifestResourceStream("UW.ClassroomPresenter.Presenter.ico")); // The form should fill 5/6 of the screen by default. // FIXME: Load/Store previous window size from/in the registry. this.Size = new Size(SystemInformation.WorkingArea.Size.Width * 5 / 6, SystemInformation.WorkingArea.Size.Height * 5 / 6); // the form should be no smaller than 1/2 it's original size this.MinimumSize = new Size(this.Size.Width / 2, this.Size.Height / 2); Menus.FileMenu.CloseFormDelegate cfd = new UW.ClassroomPresenter.Viewer.Menus.FileMenu.CloseFormDelegate(this.Close); this.Menu = new Menus.ViewerMainMenu(this.m_EventQueue, this.m_Model, loader, cfd); Trace.WriteLine("Create tool bars"); this.m_MainToolBars = new MainToolBars(this.m_Model, this.m_EventQueue); //this.m_ClassroomBrowser = new AutoDisplayClassroomsBrowser(this.m_Model); Trace.WriteLine("Make StartupForm"); this.m_StartupForm = new StartupForm(this.m_Model, this.m_EventQueue); Trace.WriteLine("Make ViewerPresentationLayout"); this.m_PresentationLayout = new ViewerPresentationLayout(this.m_Model); //this.m_ClassroomBrowser.Dock = DockStyle.Fill; this.m_PresentationLayout.Dock = DockStyle.Fill; this.Controls.Add(this.m_PresentationLayout); //this.Controls.Add(this.m_ClassroomBrowser); this.m_StartupForm.Visible = false; this.Controls.Add(this.m_MainToolBars.m_MainToolBar); this.Controls.Add(this.m_MainToolBars.m_MainClassmateToolBar); this.Controls.Add(this.m_MainToolBars.m_ExtraClassmateToolBar); this.ResumeLayout(false); Trace.WriteLine("Make KeyEventHandler"); this.KeyDown += new KeyEventHandler(this.OnKeyDown); this.KeyPreview = true; ///add listeners for HumanName, Role, Stylus properties role_listener_ = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.ParticipantRoleChanged)); stylus_listener_ = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.StylusChanged)); instructor_listener_ = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.InstructorChanged)); this.m_Model.Participant.Changed["Role"].Add(role_listener_.Dispatcher); this.m_Model.Changed["Stylus"].Add(stylus_listener_.Dispatcher); this.m_Model.Network.Changed["Association"].Add(instructor_listener_.Dispatcher); //Add listener for the version exchange warning pop-up this.m_VersionExchangePopUpListener = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.PopUpWarningHandler)); this.m_Model.VersionExchange.Changed["PopUpWarningMessage"].Add(m_VersionExchangePopUpListener.Dispatcher); Trace.WriteLine("Make EventDispatcher"); //Add listener for NetworkStatus m_NetworkStatusListener = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.NetworkStatusChanged)); this.m_Model.Network.Changed["NetworkStatus"].Add(m_NetworkStatusListener.Dispatcher); Trace.WriteLine("Make FullScreenAdapter"); this.m_FullScreenAdapter = new FullScreenAdapter(this.m_Model, this.m_PresentationLayout); instructor_listener_.Dispatcher(this, null); role_listener_.Dispatcher(this, null); stylus_listener_.Dispatcher(this, null); this.Activated += this.ShowStartup; this.FormClosing += this.SaveClose; //Store local DPI settings which are used to make sure ink is scaled correctly. using (Graphics g = this.CreateGraphics()) { ViewerStateModel.SetLocalDpi(g.DpiX, g.DpiY); } Trace.WriteLine("ViewerForm Ctor done."); }