/// <summary> /// Construction for Form /// </summary> public BackgroundPropertiesForm(PresenterModel model) { this.m_Model = model; this.SuspendLayout(); this.ClientSize = new Size(320, 320); this.Font = ViewerStateModel.FormFont; this.FormBorderStyle = FormBorderStyle.FixedDialog; this.MaximizeBox = false; this.Name = "BackgroundPropertiesForm"; this.Text = Strings.BackgroundPropertiesFormTitle; //Get the BackgroundTemplate Model using (this.m_Model.Workspace.Lock()) { DeckTraversalModel traversal = this.m_Model.Workspace.CurrentDeckTraversal; if (traversal != null) { using (Synchronizer.Lock(traversal.SyncRoot)) { if (this.m_ApplyToCurrentSlideOnly) { SlideModel current = traversal.Current.Slide; if (current != null) { using (Synchronizer.Lock(traversal.Current.Slide.SyncRoot)) { if (traversal.Current.Slide.BackgroundTemplate != null) { this.m_Template = traversal.Current.Slide.BackgroundTemplate.Clone(); } } } } else { DeckModel deck = traversal.Deck; using (Synchronizer.Lock(deck.SyncRoot)) { if (deck.DeckBackgroundTemplate != null) { this.m_Template = deck.DeckBackgroundTemplate.Clone(); } } } } } } this.m_BkgTemplateSelectionGroup = new BkgTemplateSelectionGroup(this, this.m_Template, new Point(20, 10), new Size(280, 50), 0); this.Controls.Add(this.m_BkgTemplateSelectionGroup); this.m_BkgTemplatePreviewGroup = new BkgTemplatePreviewGroup(this, new Point(20, 70), new Size(280, 210), 1); this.Controls.Add(this.m_BkgTemplatePreviewGroup); this.Controls.Add(new PropertiesOKButton(this, this.m_Model, new Point(80, 285), 2)); this.Controls.Add(new PropertiesCancelButton(this, this.m_Model, this.m_Template, new Point(180, 285), 3)); this.ResumeLayout(); }
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); }
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> /// 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(); }
/// <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(); }
/// <summary> /// Construct the dialog box /// </summary> /// <param name="model"></param> public DeckMatcherForm(PresenterModel model) { this.m_Model = model; // Setup the form UI this.SuspendLayout(); this.ClientSize = new Size(400, 500); this.FormBorderStyle = FormBorderStyle.FixedDialog; this.MaximizeBox = false; this.MinimizeBox = false; this.Name = "DeckMatcherForm"; this.Text = "Deck Matcher"; // Add the controls this.Controls.Add(new DeckMatcherDoneButton(new Point(313, 470), 0)); this.m_UnmatchedControls = new UnmatchedGroupBox(this, new Point(10, 10), new Size(380, 260), 1); this.Controls.Add(this.m_UnmatchedControls); this.m_MatchedControls = new MatchedGroupBox(this, new Point(10, 280), new Size(380, 180), 2); this.Controls.Add(this.m_MatchedControls); this.ResumeLayout(); // Populate the form... this.RefreshLists(); }
/// <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(); }
public SaveAllDecksMenuItem(PresenterModel model, DeckMarshalService marshal) { this.m_Model = model; this.m_SaveDeckDialog = new SaveDeckDialog(model, marshal); this.Text = Strings.SaveAllDecks; }
public BridgeBeaconService(SendingQueue sender, PresenterModel model) : base(sender) { this.m_Sender = sender; this.m_Model = model; this.m_NonInstructorId = Guid.NewGuid(); //Get the interval from app.config this.m_BeaconIntervalSeconds = 3; String tmp = System.Configuration.ConfigurationManager.AppSettings[this.GetType().ToString() + ".BeaconIntervalSeconds"]; if ((tmp != null) && (tmp.Trim() != "")) { int tmpint; if (int.TryParse(tmp, out tmpint)) { if ((tmpint > 0) && (tmpint <= 20)) { Trace.WriteLine("Setting BeaconIntervalSeconds from app.config: " + tmpint.ToString(), this.GetType().ToString()); this.m_BeaconIntervalSeconds = tmpint; } } } this.BeaconInterval = new TimeSpan(0, 0, 0, m_BeaconIntervalSeconds, 0); }
public StartupTabControl(Size size, Point location, int tabIndex, StartupForm stup, PresenterModel model, ControlEventQueue eventqueue) { this.SuspendLayout(); this.m_Startup = stup; this.m_Model = model; this.ItemSize = new System.Drawing.Size(52, 18); this.Location = location; this.Name = "tabControl"; this.SelectedIndex = 0; this.Font = Model.Viewer.ViewerStateModel.StringFont; this.Size = size; this.TabIndex = tabIndex; this.m_AdvancedTab = new AdvancedTab(this.m_Model); this.m_UDPTab = new UDPTab(this.m_Model); this.m_UDPTab.Controls.Add(this.m_Startup.m_UDPPanel); this.Controls.Add(this.m_UDPTab); this.Controls.Add(this.m_AdvancedTab); this.m_AdvancedListener = new EventQueue.PropertyEventDispatcher( this.m_Startup.m_EventQueue, new PropertyEventHandler(this.HandleAdvancedChanged)); this.m_Model.ViewerState.Changed["Advanced"].Add(this.m_AdvancedListener.Dispatcher); this.m_AdvancedListener.Dispatcher(this, null); this.ControlAdded += new ControlEventHandler(UDPTabAdded); this.ResumeLayout(); }
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; }
/// <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); }
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; } } }
public TCPMessageReceiver(ITCPReceiver receiver, PresenterModel model, ClassroomModel classroom) { this.m_Model = model; this.m_Classroom = classroom; this.m_Receiver = receiver; this.m_Assembler = new ChunkAssembler(); #if RTP_BUILD //If we are in the public role and the receiver enabled the client-side bridge, start the bridge. bool isPublicRole = false; using (Synchronizer.Lock(m_Model.SyncRoot)) { using (Synchronizer.Lock(m_Model.Participant.SyncRoot)) { if (m_Model.Participant.Role is PublicModel) { isPublicRole = true; } } } if ((isPublicRole) && (receiver is TCPClient) && ((TCPClient)receiver).BridgeEnabled) { m_U2MBridge = new ClientUnicastToMulticastBridge(m_Model); } #endif this.m_Queue = new MessageProcessingQueue(this); Thread thread = new Thread(new ThreadStart(this.ReceiveThread)); thread.Name = "TCPMessageReceiver"; thread.Start(); }
/// <summary> /// Constructor /// </summary> /// <param name="sender">The network queue to send messages on</param> /// <param name="model">The presenter model</param> public StudentSubmissionNetworkService(SendingQueue sender, PresenterModel model) { this.m_Sender = sender; this.m_Model = model; this.m_SendingLock = false; this.m_SendingLockTimer = new System.Timers.Timer(); if (model.ViewerState != null) { using (Synchronizer.Lock(this.m_Model.ViewerState.SyncRoot)) { this.m_SendingLockTimer.Interval = this.m_Model.ViewerState.StudentSubmissionInterval * 1000; } } this.m_SendingLockTimer.Elapsed += new System.Timers.ElapsedEventHandler(SendingLockTimer_Elapsed); this.m_SendingLockTimer.Enabled = false; // Setup the event listener for this this.m_SendChangeDispatcher = new EventQueue.PropertyEventDispatcher(this.m_Sender, new PropertyEventHandler(this.HandleSendSubmission)); //FV: Not locking here resolves a lock order warning. //using( Synchronizer.Lock( this.m_Model.ViewerState.SyncRoot ) ) { this.m_Model.ViewerState.Changed["StudentSubmissionSignal"].Add(this.m_SendChangeDispatcher.Dispatcher); //} this.m_SubmissionIntervalDispatcher = new EventQueue.PropertyEventDispatcher(this.m_Sender, new PropertyEventHandler(this.HandleSubmissionIntervalChanged)); this.m_Model.ViewerState.Changed["StudentSubmissionInterval"].Add(this.m_SubmissionIntervalDispatcher.Dispatcher); }
public EditMenu(ControlEventQueue dispatcher, PresenterModel model) { this.Text = Strings.Edit; this.MenuItems.Add(new UndoMenuItem(dispatcher, model)); this.MenuItems.Add(new RedoMenuItem(dispatcher, model)); }
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)); }
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)); }
public PrintMenuItem(FileMenu parent, PresenterModel m) { this.model = m; this.m_Parent = parent; this.Text = Strings.Print; this.Shortcut = Shortcut.CtrlP; }
/// <summary> /// Default Constructor /// </summary> /// <param name="model">The PresenterModel to operate on</param> public WebPerformanceMenuItem(PresenterModel model) { localModel = model; this.Text = "Web Performance"; this.MenuItems.Add(new RequestSubmissionMenuItem(model)); this.MenuItems.Add(new RequestLogsMenuItem(model)); }
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); } }
public CreateBlankWhiteboardDeckMenuItem(PresenterModel model) { this.m_Model = model; this.Text = Strings.CreateBlankWhiteboardDeck; this.Shortcut = Shortcut.CtrlW; this.ShowShortcut = true; }
/// <summary> /// Default Constructor /// </summary> /// <param name="model">The PresenterModel to operate on</param> public DiagnosticsMenuItem(PresenterModel model) { localModel = model; this.Text = "Diagnostics"; this.MenuItems.Add(new SaveLogMenuItem(model)); this.MenuItems.Add(new MenuItem("-")); this.MenuItems.Add(new StartPingMenuItem(model)); }
/// <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); }
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)); }
public InsertSlidesFromFileMenuItem(DeckTraversalModel traversal, PresenterModel model) : base(Strings.InsertSlidesFromDeck) { this.deck_ = traversal.Deck; this.deck_traversal_ = traversal; this.m_WhereTheEntriesGo = traversal.Deck.TableOfContents.Entries; this.m_Model = model; }
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; }
/// <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); }
public CustomFontButton(StylusToolBarButton textbutton, PresenterModel model) : base() { this.ToolTipText = "Choose a default font"; textbutton_ = textbutton; model_ = model; this.Enabled = false; model_.Changed["Stylus"].Add(new PropertyEventHandler(this.ChangeStylus)); }
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; }