本文整理汇总了C#中UW.ClassroomPresenter.Model.PresenterModel类的典型用法代码示例。如果您正苦于以下问题:C# PresenterModel类的具体用法?C# PresenterModel怎么用?C# PresenterModel使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
PresenterModel类属于UW.ClassroomPresenter.Model命名空间,在下文中一共展示了PresenterModel类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。
示例1: FileMenu
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));
}
开发者ID:ClassroomPresenter,项目名称:CP3,代码行数:26,代码来源:FileMenu.cs
示例2: SaveAllDecksMenuItem
public SaveAllDecksMenuItem(PresenterModel model, DeckMarshalService marshal)
{
this.m_Model = model;
this.m_SaveDeckDialog = new SaveDeckDialog(model, marshal);
this.Text = Strings.SaveAllDecks;
}
开发者ID:ClassroomPresenter,项目名称:CP3,代码行数:7,代码来源:SaveDeckMenuItem.cs
示例3: ConnectTCPRadioButton
public ConnectTCPRadioButton(ControlEventQueue dispatcher, PresenterModel model, ManualConnectionPanel manual, Point location, int width)
{
this.m_EventQueue = dispatcher;
this.m_Model = model;
this.m_Manual = manual;
this.m_Connected = false;
this.FlatStyle = FlatStyle.System;
this.Font = Model.Viewer.ViewerStateModel.StringFont1;
this.Text = Strings.ConnectToTCPServer;
this.Location = location;
this.Size = new Size(width, this.Font.Height + 5);
this.m_ClassroomManager = null;
//Watch for Role changes and disable if role is Instructor.
this.m_RoleChangedDispatcher = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.HandleRoleChanged));
this.m_Model.Participant.Changed["Role"].Add(this.m_RoleChangedDispatcher.Dispatcher);
using (Synchronizer.Lock(this.m_Model.Participant.SyncRoot)) {
if (this.m_Model.Participant.Role is InstructorModel)
this.Enabled = false;
else
this.Enabled = true;
}
//should probably make this a listener
//Do persistence in a more intelligent way - this doesn't make the popup pop up.
/*using (Synchronizer.Lock(this.m_Model.ViewerState.SyncRoot)) {
if (this.Text == this.m_Model.ViewerState.ManualConnectionButtonName) {
this.Checked = true;
}
}*/
this.CheckedChanged += new EventHandler(OnClick);
this.m_ProtocolCollectionHelper = new ProtocolCollectionHelper(this, this.m_Model.Network);
}
开发者ID:kevinbrink,项目名称:CP3_Enhancement,代码行数:35,代码来源:ConnectTCPRadioButton.cs
示例4: DeckMatcherForm
/// <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();
}
开发者ID:ClassroomPresenter,项目名称:CP3,代码行数:30,代码来源:DeckMatcherForm.cs
示例5: MainToolBar
/// <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();
}
开发者ID:ClassroomPresenter,项目名称:CP3,代码行数:31,代码来源:MainToolBar.cs
示例6: EditMenu
public EditMenu(ControlEventQueue dispatcher, PresenterModel model)
{
this.Text = Strings.Edit;
this.MenuItems.Add(new UndoMenuItem(dispatcher, model));
this.MenuItems.Add(new RedoMenuItem(dispatcher, model));
}
开发者ID:kevinbrink,项目名称:CP3_Enhancement,代码行数:7,代码来源:EditMenu.cs
示例7: RedoMenuItem
public RedoMenuItem(ControlEventQueue dispatcher, PresenterModel model)
: base(dispatcher, model)
{
this.Text = Strings.Redo;
this.Shortcut = Shortcut.CtrlY;
this.ShowShortcut = true;
}
开发者ID:kevinbrink,项目名称:CP3_Enhancement,代码行数:7,代码来源:EditMenu.cs
示例8: StartEmptyPresentation
public static void StartEmptyPresentation( PresenterModel model )
{
// Make sure we have a suitable RoleModel for broadcasting a presentation.
InstructorModel instructor;
using(Synchronizer.Lock(model.Participant.SyncRoot)) {
instructor = model.Participant.Role as InstructorModel;
if(instructor == null) {
// Make the participant representing this user an Instructor,
// which tells the ConnectionManager to broadcast the presentation
// once it's added to the classroom.
instructor = new InstructorModel(Guid.NewGuid());
model.Participant.Role = instructor;
}
}
// Create the presentation.
// TODO: Find something useful to use as the Presentation's HumanName.
PresentationModel pres = new PresentationModel(Guid.NewGuid(), model.Participant, "Untitled Presentation",true);
using(Synchronizer.Lock(model.Network.SyncRoot)) {
// Associate the participant with itself. This removes any existing association
// (since an Instructor should not be processing broadcasts from other clients),
// and also causes the NetworkAssociationService to copy anything we do to the
// InstructorModel to the WorkspaceModel.
model.Network.Association = model.Participant;
}
// Here's the kicker, which triggers the viewer to hide the classroom browser
// and start displaying the presentation. The NetworkAssociationService copies
// the presentation to the WorkspaceModel, which causes it to be displayed by the UI.
using(Synchronizer.Lock(instructor.SyncRoot)) {
instructor.CurrentPresentation = pres;
}
}
开发者ID:ClassroomPresenter,项目名称:CP3,代码行数:34,代码来源:StartJoinButton.cs
示例9: StartJoinButton2
public StartJoinButton2(PresenterModel model, StartupForm stup, bool compact)
{
this.m_Model = model;
this.m_Startup = stup;
this.Text = text1;
this.AutoSize = false;
this.FlatStyle = FlatStyle.System;
this.Font = Model.Viewer.ViewerStateModel.StringFont1;
this.clicked = false;
//Calculate the largest size for this button
SizeF size1, size2;
using (Graphics g = this.CreateGraphics()) {
size1 = g.MeasureString(text1, this.Font);
size2 = g.MeasureString(text2, this.Font);
size1.Width += 15;
size2.Width += 10;
if (compact) {
size1.Height += 5;
size2.Height += 5;
}
else {
size1.Height += 10;
size2.Height += 15;
}
}
this.Size = new Size(Math.Max((int)size1.Width, (int)size2.Width), Math.Max((int)size1.Height, (int)size2.Height));
this.DialogResult = DialogResult.OK;
this.m_RoleChangedDispatcher = new EventQueue.PropertyEventDispatcher(this.m_Startup.m_EventQueue, new PropertyEventHandler(this.TextOnRoleChange));
this.m_Model.ViewerState.Changed["iRole"].Add(this.m_RoleChangedDispatcher.Dispatcher);
this.m_RoleChangedDispatcher.Dispatcher(null, null);
}
开发者ID:ClassroomPresenter,项目名称:CP3,代码行数:34,代码来源:StartJoinButton2.cs
示例10: TCPMessageReceiver
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();
}
开发者ID:ClassroomPresenter,项目名称:CP3,代码行数:27,代码来源:TCPMessageReceiver.cs
示例11: StudentSubmissionNetworkService
/// <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);
}
开发者ID:ClassroomPresenter,项目名称:CP3,代码行数:32,代码来源:StudentSubmissionNetworkService.cs
示例12: LinkedDeckTraversalModel
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);
}
开发者ID:kevinbrink,项目名称:CP3_Enhancement,代码行数:32,代码来源:LinkedDeckTraversalModel.cs
示例13: PresenterNetworkService
public PresenterNetworkService(SendingQueue sender, PresenterModel model)
{
this.m_Sender = sender;
this.m_Model = model;
this.m_ParticipantNetworkService = new ParticipantNetworkService(this.m_Sender, this.m_Model, this.m_Model.Participant);
this.m_VersionExchangeNetworkService = new VersionExchangeNetworkService(m_Sender);
}
开发者ID:ClassroomPresenter,项目名称:CP3,代码行数:8,代码来源:PresenterNetworkService.cs
示例14: DiagnosticsMenuItem
/// <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 ) );
}
开发者ID:ClassroomPresenter,项目名称:CP3,代码行数:12,代码来源:ToolsMenu.cs
示例15: FilmStripAlignmentMenu
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));
}
开发者ID:kevinbrink,项目名称:CP3_Enhancement,代码行数:8,代码来源:ViewMenu.cs
示例16: RTPMessageSender
public RTPMessageSender(IPEndPoint ep, PresenterModel model, ClassroomModel classroom)
{
this.m_Model = model;
this.m_Classroom = classroom;
this.m_RtpLocalParticipant = new RtpLocalParticipant(this.m_Model.Participant);
using(Synchronizer.Lock(this)) {
// Register the stream event listeners first, since otherwise there would be a chance
// that streams could be added between creating the RtpSession (which connects immediately).
this.m_ParticipantManager = new ParticipantManager(this);
this.m_RtpSession = new RtpSession(ep, this.m_RtpLocalParticipant, true, true);
// TODO: Choose a meaningful value for the RtpSender name.
ushort fec;
short interpacketdelay;
using (Synchronizer.Lock(model.SyncRoot)) {
using (Synchronizer.Lock(model.ViewerState.SyncRoot)) {
fec = (ushort)model.ViewerState.ForwardErrorCorrection;
interpacketdelay = (short)model.ViewerState.InterPacketDelay;
}
}
if( fec == 0 )
this.m_RtpSender = this.m_RtpSession.CreateRtpSender( "Classroom Presenter", PayloadType.dynamicPresentation, null );
else
this.m_RtpSender = this.m_RtpSession.CreateRtpSenderFec( "Classroom Presenter", PayloadType.dynamicPresentation, null, 0, fec );
this.m_RtpSender.DelayBetweenPackets = interpacketdelay;
// Initialize the message chunking utilities.
this.m_Encoder = new Chunk.ChunkEncoder();
// TODO: Make the buffer size dynamic, ie., grow if we send a single very large message.
// Make the buffer store up to 5MB worth of data.
this.m_FrameBuffer = new FrameBuffer(5 * 1024 * 1024 / this.m_Encoder.MaximumChunkSize);
// Create the NackManager which is responsible for sending NACKs on behalf of
// our set of RTPMessageReceivers.
this.m_NackManager = new RTPNackManager(this, this.m_Classroom);
}
// Create network services outside of the "lock(this)" so they can lock their own objects
// without worrying about locking order.
// Create the PresenterNetworkService which will watch for changes to the model and send messages.
this.m_PresenterNetworkService = new PresenterNetworkService(this, this.m_Model);
// Create the StudentSubmissionsNetworkService which will watch for requests to submit and send messages.
this.m_StudentSubmissionNetworkService = new StudentSubmissionNetworkService(this, this.m_Model);
// Create the SynchronizationNetworkService which will watch for all synchronization messages.
this.m_SynchronizationNetworkService = new SynchronizationNetworkService( this, this.m_Model );
// Create the ScriptingNetworkService which will watch for all scripting messages.
this.m_ScriptingNetworkService = new ScriptingNetworkService( this, this.m_Model );
// Create the BeaconService which will broadcast periodic information about the presentation.
this.m_BeaconService = new Beacons.DefaultBeaconService(this, this.m_Model);
}
开发者ID:ClassroomPresenter,项目名称:CP3,代码行数:58,代码来源:RTPMessageSender.cs
示例17: BackgroundPropertiesForm
/// <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();
}
开发者ID:ClassroomPresenter,项目名称:CP3,代码行数:61,代码来源:BackgroundPropertiesForm.cs
示例18: TCPClientClassroomManager
public TCPClientClassroomManager(PresenterModel model, TCPConnectionManager connection,
InstructorAdvertisement instructorAdvertisement)
{
this.m_InstructorAdvertisement = instructorAdvertisement;
this.m_Model = model;
this.m_ClientConnected = false;
this.m_Classroom = new ClassroomModel(connection.Protocol, m_InstructorAdvertisement.HumanName, ClassroomModelType.Dynamic);
this.m_Classroom.Changing["Connected"].Add(new PropertyEventHandler(this.HandleConnectedChanging));
}
开发者ID:ClassroomPresenter,项目名称:CP3,代码行数:9,代码来源:TCPClientClassroomManager.cs
示例19: OpenDeckMenuItem
public OpenDeckMenuItem(PresenterModel model, DeckMarshalService marshal)
{
this.m_Model = model;
this.m_OpenDeckDialog = new OpenDeckDialog(model, marshal);
this.Text = Strings.OpenDeck;
this.Shortcut = Shortcut.CtrlO;
this.ShowShortcut = true;
}
开发者ID:ClassroomPresenter,项目名称:CP3,代码行数:9,代码来源:OpenDeckMenuItem.cs
示例20: TCPClassroomManager
public TCPClassroomManager(PresenterModel model, TCPConnectionManager connection, string humanName)
{
this.m_Model = model;
this.m_ClientConnected = false;
this.m_ServerStarted = false;
this.m_ServerEP = null;
this.m_Classroom = new ClassroomModel(connection.Protocol, humanName, ClassroomModelType.TCPStatic);
this.m_Classroom.Changing["Connected"].Add(new PropertyEventHandler(this.HandleConnectedChanging));
}
开发者ID:ClassroomPresenter,项目名称:CP3,代码行数:10,代码来源:TCPClassroomManager.cs
注:本文中的UW.ClassroomPresenter.Model.PresenterModel类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论