public void SaveSceneToFolder(ProjectItem folder, string name, Action <Error> callback) { if (BeforeSceneSave != null) { CancelArgs args = new CancelArgs(); BeforeSceneSave(args); if (args.Cancel) { if (callback != null) { callback(new Error(Error.OK)); } return; } } Undo.Purge(); IsBusy = true; m_project.Save(new[] { folder }, new[] { new byte[0] }, new[] { (object)SceneManager.GetActiveScene() }, new[] { name }, (error, assetItem) => { IsBusy = false; if (!error.HasError) { if (assetItem.Length > 0) { m_project.LoadedScene = assetItem[0]; } } if (callback != null) { callback(error); } }); }
private void OnBeforeSceneSave(CancelArgs args) { IWindowManager wm = IOC.Resolve <IWindowManager>(); args.Cancel = true; wm.MessageBox("Unable to save scene", "Unable to save scene"); }
public void OverwriteScene(AssetItem scene, Action <Error> callback) { if (BeforeSceneSave != null) { CancelArgs args = new CancelArgs(); BeforeSceneSave(args); if (args.Cancel) { if (callback != null) { callback(new Error(Error.OK)); } return; } } Undo.Purge(); IsBusy = true; m_project.Save(new[] { scene }, new[] { (object)SceneManager.GetActiveScene() }, (error, assetItem) => { if (!error.HasError) { m_project.LoadedScene = assetItem[0]; } IsBusy = false; if (callback != null) { callback(error); } }); }
private void manager_callback(IManagerPage page, CancelArgs e) { if (page is ILogoutSucceededPage) { Console.Clear(); e.Cancel = !ConsoleBinaryQuestion($"是否重新登录 {this.userName} ?"); } }
/// <summary> /// Kick the client if the server reached the maximum allowed number of clients. /// </summary> /// <param name="server">Server raising the event.</param> /// <param name="client">Client connecting to the server.</param> /// <param name="args">Specify if the client should be accepted into the server.</param> void BaseMessageServer_OnClientBeforeConnect(Server server, ClientS client, CancelArgs args) { if ((Clients.Count >= UserLimit) && (UserLimit != 0)) { TCPMessage msg = new TCPMessage(); msg.MessageType = MessageType.MaxUsers; ((BaseMessageClientS)client).Send(msg); args.Cancel = true; } }
private void OnRegionBeforeBeginDrag(Region region, CancelArgs args) { if (region.Root != this) { return; } if (RegionBeforeBeginDrag != null) { RegionBeforeBeginDrag(region, args); } }
private void OnRegionBeforeDepthChanged(Region region, CancelArgs arg) { if (region.Root != this) { return; } if (RegionBeforeDepthChanged != null) { RegionBeforeDepthChanged(region, arg); } }
private void CancelIfRegionIsNotActive(Region region, CancelArgs arg) { if (m_editor.ActiveWindow == null) { return; } Region activeRegion = m_editor.ActiveWindow.GetComponentInParent <Region>(); if (activeRegion == null) { return; } if (activeRegion.GetDragRegion() != region.GetDragRegion()) { arg.Cancel = true; } }
/// <summary> /// 使管理器切换到下一页。 /// </summary> /// <param name="changePage">页面切换的方法。</param> /// <param name="callback">页面切换成功的回调方法。</param> /// <returns>一个值,指示操作是否成功。</returns> public virtual bool NextPage(ChangePageHandler changePage, CallbackHandler callback = null) { if (changePage == null) { throw new ArgumentNullException(nameof(changePage)); } CancelArgs e = new CancelArgs(); this.page = changePage(this.page, e); if (!e.Cancel) { this.page.Initialize(); callback?.Invoke(this.page, e); return(!e.Cancel); } else { return(false); } }
private void manager_Callback(IManagerPage page, CancelArgs _e) { if (page is ILogoutSucceededPage) { this.Switch(ManagerPageType.LogoutSucceeded); } else if (page is ILoginInfoPage) { this.Switch(ManagerPageType.LoginInfo); } else if (page is ILoginSucceededPage) { this.Switch(ManagerPageType.LoginSucceeded); } else if (page is ILogoutInfoPage) { this.Switch(ManagerPageType.LogoutInfo); } else { _e.Cancel = true; } }
private void OnRegionBeforeDepthChanged(Region region, CancelArgs arg) { CancelIfRegionIsNotActive(region, arg); }
private void OnRegionBeforeBeginDrag(Region region, CancelArgs arg) { CancelIfRegionIsNotActive(region, arg); }
private IManagerPage manager_ChangePage(IManagerPage page, CancelArgs e) { if (page is ILoginInfoPage) { return(((ILoginInfoPage)page).Login(this.userName, this.userPwd, this.isAutoLogin)); } else if (page is ILoginForcedPage) { if (ConsoleBinaryQuestion("您好,您当前登录的用户已在线,是否继续操作?")) { return(((ILoginForcedPage)page).ForceLogin()); } else { return(((ILoginForcedPage)page).Cancel()); } } else if (page is ILoginingPage) { Console.WriteLine("登录成功!"); return(((ILoginingPage)page).Success()); } else if (page is ILoginFailedPage) { ConsoleForeColoredWriteLine(ConsoleColor.Red, $"登录认证失败,用户( {userName} )当前处于非正常状态!"); return(((ILoginFailedPage)page).Ignore()); } else if (page is ILoginSucceededPage) { using (var timer = new System.Timers.Timer() { Enabled = false, Interval = 1000 }) { string maskedUserName = this.MaskedUserName; timer.Elapsed += (sender, _e) => { Console.Clear(); ConsoleForeColoredWrite(ConsoleColor.White, "尊敬的用户:"); ConsoleForeColoredWrite(ConsoleColor.Blue, maskedUserName); ConsoleForeColoredWriteLine(ConsoleColor.White, ",您已登录成功"); Console.WriteLine(); ConsoleForeColoredWriteLine(ConsoleColor.Gray, "上网过程中不要关闭该窗口。如需下线,请按 Esc 键。"); Console.WriteLine(); ConsoleForeColoredWrite(ConsoleColor.White, "本次登录时长:\t"); TimeSpan timeSpan = DateTime.Now - ((ILoginSucceededPage)page).SucceededTime; ConsoleForeColoredWriteLine(ConsoleColor.Yellow, "{0:D2} : {1:D2} : {2:D2}", (int)Math.Floor(timeSpan.TotalHours), timeSpan.Minutes, timeSpan.Seconds ); foreach (var pair in ((ILoginSucceededPage)page).WlanInfos) { ConsoleForeColoredWrite(ConsoleColor.White, "{0}:\t", pair.Key); ConsoleForeColoredWriteLine(ConsoleColor.Yellow, "{0}", pair.Value); } Console.WriteLine(); ConsoleForeColoredWrite(ConsoleColor.White, "按 Esc 键下线……"); ; }; timer.Start(); while (true) { if (Console.ReadKey(true).Key == ConsoleKey.Escape) { timer.Stop(); Thread.Sleep(1000); // 等待计时器停止。 Console.WriteLine(); if (ConsoleBinaryQuestion("请确认下线!")) { return(((ILoginSucceededPage)page).Logout(this.userName, this.cancelAutoLogin)); } else { timer.Start(); } } } } } else if (page is ILogoutingPage) { return(((ILogoutingPage)page).Success()); } else if (page is ILogoutSucceededPage) { if (ConsoleBinaryQuestion("下线成功!是否关闭窗口?")) { e.Cancel = true; ((ILogoutSucceededPage)page).Exit(); return(null); } else { return(((ILogoutSucceededPage)page).Login(this.userName, this.userPwd, this.isAutoLogin)); } } else { IManagerPage mp = page; ; e.Cancel = true; return(null); } }