protected virtual void OnSendFail() { if (IsDisposed) { return; } UnregisterInstance(); if (Parent is SuperGump) { ((SuperGump)Parent).RemoveChild(this); } if (InstancePoller != null) { InstancePoller.Dispose(); InstancePoller = null; } Linked.ForEachReverse(g => g.OnLinkSendFail(this)); if (OnActionSend != null) { OnActionSend(this, false); } }
public override void OnServerClose(NetState owner) { if (IsDisposed) { return; } IsOpen = false; UnregisterInstance(); if (!Hidden) { VitaNexCore.TryCatch( () => { if (InstancePoller != null) { InstancePoller.Dispose(); InstancePoller = null; } }); } base.OnServerClose(owner); }
public void InitPollTimer() { if (InstancePoller != null) { InstancePoller.Dispose(); InstancePoller = null; } if (EnablePolling) { InstancePoller = PollTimer.CreateInstance(PollInterval, OnInstancePollCheck, CanPollInstance); } }
protected virtual void OnClosed(bool all) { if (IsDisposed) { return; } UnregisterInstance(); if (InstancePoller != null) { InstancePoller.Dispose(); InstancePoller = null; } Linked.AsEnumerable().ForEach(g => g.OnLinkClosed(this)); }
public override sealed void OnServerClose(NetState owner) { if (IsDisposed) { return; } IsOpen = false; UnregisterInstance(); if (!Hidden && InstancePoller != null) { InstancePoller.Dispose(); InstancePoller = null; } base.OnServerClose(owner); }
protected virtual void OnSendFail() { if (IsDisposed) { return; } UnregisterInstance(); if (Parent is SuperGump) { ((SuperGump)Parent).RemoveChild(this); } if (InstancePoller != null) { InstancePoller.Dispose(); InstancePoller = null; } Linked.AsEnumerable().ForEach(g => g.OnLinkSendFail(this)); }
protected virtual void OnClosed(bool all) { if (IsDisposed) { return; } UnregisterInstance(); if (InstancePoller != null) { InstancePoller.Dispose(); InstancePoller = null; } Linked.ForEachReverse(g => g.OnLinkClosed(this)); PlayCloseSound(); if (OnActionClose != null) { OnActionClose(this, all); } }
public void Dispose() { if (IsDisposed) { return; } //Console.WriteLine("SuperGump Disposing: {0} (0x{1:X})", GetType(), Serial); //GC.SuppressFinalize(this); IsDisposed = true; IsOpen = Hidden = false; VitaNexCore.TryCatch(OnDispose); VitaNexCore.TryCatch(UnregisterInstance); VitaNexCore.TryCatch( () => { if (Linked != null) { Linked.ForEachReverse(Unlink); Linked.Free(true); } }); VitaNexCore.TryCatch( () => { if (Children != null) { Children.ForEachReverse(RemoveChild); Children.Free(true); } }); VitaNexCore.TryCatch( () => { if (InstancePoller != null) { InstancePoller.Dispose(); } }); VitaNexCore.TryCatch( () => { if (Entries != null) { Entries.ForEachReverse( e => { if (e is IDisposable) { VitaNexCore.TryCatch(((IDisposable)e).Dispose); } }); } }); VitaNexCore.TryCatch(OnDisposed); VitaNexCore.TryCatch( () => { if (Buttons != null) { Buttons.Clear(); } if (TileButtons != null) { TileButtons.Clear(); } if (Switches != null) { Switches.Clear(); } if (Radios != null) { Radios.Clear(); } if (TextInputs != null) { TextInputs.Clear(); } if (LimitedTextInputs != null) { LimitedTextInputs.Clear(); } if (Entries != null) { Entries.Free(true); } if (Layout != null) { Layout.Clear(); } }); NextButtonID = 1; NextSwitchID = 0; NextTextInputID = 0; OnActionSend = null; OnActionClose = null; OnActionHide = null; OnActionRefresh = null; OnActionDispose = null; OnActionClick = null; OnActionDoubleClick = null; LastButtonClicked = null; Buttons = null; ButtonHandler = null; TileButtons = null; TileButtonHandler = null; Switches = null; SwitchHandler = null; Radios = null; RadioHandler = null; TextInputs = null; TextInputHandler = null; LimitedTextInputs = null; LimitedTextInputHandler = null; Layout = null; Linked = null; Children = null; Parent = null; User = null; InstancePoller = null; }