internal static ControlLayoutSystem smethod_4(SandDockManager sandDockManager_0, DockSituation dockSituation_0, DockingState dockingState0) { switch (dockSituation_0) { case DockSituation.None: throw new InvalidOperationException(); case DockSituation.Docked: { DockContainer[] dockContainers = sandDockManager_0.GetDockContainers(); for (int i = 0; i < dockContainers.Length; i++) { DockContainer dockContainer_ = dockContainers[i]; if (LayoutUtilities.GetDockSituation(dockContainer_) == dockSituation_0) { ControlLayoutSystem[] array = LayoutUtilities.smethod_3(dockContainer_); for (int j = 0; j < array.Length; j++) { ControlLayoutSystem controlLayoutSystem = array[j]; if (controlLayoutSystem.Guid == dockingState0.Guid) { ControlLayoutSystem result = controlLayoutSystem; return result; } } } } goto IL_133; } case DockSituation.Document: if (sandDockManager_0.DocumentContainer != null) { ControlLayoutSystem[] array2 = LayoutUtilities.smethod_3(sandDockManager_0.DocumentContainer); for (int k = 0; k < array2.Length; k++) { ControlLayoutSystem controlLayoutSystem2 = array2[k]; if (controlLayoutSystem2.Guid == dockingState0.Guid) { ControlLayoutSystem result = controlLayoutSystem2; return result; } } goto IL_133; } goto IL_133; case DockSituation.Floating: { DockContainer[] dockContainers2 = sandDockManager_0.GetDockContainers(); foreach (DockContainer dockContainer_2 in dockContainers2) { if (GetDockSituation(dockContainer_2) == dockSituation_0) { foreach (var controlLayoutSystem3 in smethod_3(dockContainer_2)) { if (controlLayoutSystem3.Guid == dockingState0.Guid) { ControlLayoutSystem result = controlLayoutSystem3; return result; } } } } goto IL_133; } } throw new InvalidOperationException(); IL_133: return null; }
public DockControl[] GetDockControls(DockSituation dockSituation) => _windows.Values.Cast<DockControl>().Where(control => control.DockSituation == dockSituation).ToArray();
internal static ControlLayoutSystem xba5fd484c0e6478b( SandDockManager x91f347c6e97f1846, DockSituation xd39eba9a9a1b028e, x129cb2a2bdfd0ab2 xfffbdea061bfa120) { int index1; DockContainer[] dockContainers1; int index2; ControlLayoutSystem[] controlLayoutSystemArray1; int index3; DockContainer[] dockContainers2; switch (xd39eba9a9a1b028e) { case DockSituation.Docked: dockContainers2 = x91f347c6e97f1846.GetDockContainers(); index3 = 0; goto label_26; case DockSituation.Document: if (x91f347c6e97f1846.DocumentContainer != null) { controlLayoutSystemArray1 = LayoutUtilities.x1494f515233a1246((DockContainer)x91f347c6e97f1846.DocumentContainer); if (true) { index2 = 0; goto label_21; } else { goto label_29; } } else { break; } case DockSituation.Floating: dockContainers1 = x91f347c6e97f1846.GetDockContainers(); int num1; if ((uint)num1 + (uint)num1 >= 0U) { index1 = 0; goto label_4; } else { goto label_21; } default: throw new InvalidOperationException(); } label_2: return((ControlLayoutSystem)null); label_3: ++index1; label_4: DockContainer xd3311d815ca25f02_1; if (index1 < dockContainers1.Length) { xd3311d815ca25f02_1 = dockContainers1[index1]; } else { goto label_2; } label_6: int index4; ControlLayoutSystem[] controlLayoutSystemArray2; if (LayoutUtilities.x8d287cc6f0a2f529(xd3311d815ca25f02_1) != xd39eba9a9a1b028e) { if (true) { goto label_3; } else { goto label_44; } } else { controlLayoutSystemArray2 = LayoutUtilities.x1494f515233a1246(xd3311d815ca25f02_1); if ((uint)index4 + (uint)index2 >= 0U) { index4 = 0; } else { goto label_44; } } label_8: if (index4 >= controlLayoutSystemArray2.Length) { if (true) { if ((uint)index1 - (uint)index2 <= uint.MaxValue) { goto label_3; } else { goto label_6; } } else { goto label_40; } } label_14: ControlLayoutSystem controlLayoutSystem1 = controlLayoutSystemArray2[index4]; ControlLayoutSystem controlLayoutSystem2; if (!(controlLayoutSystem1.x0217cda8370c1f17 == xfffbdea061bfa120.x703937d70a13725c)) { ++index4; goto label_8; } else { controlLayoutSystem2 = controlLayoutSystem1; goto label_44; } label_19: for (; index2 < controlLayoutSystemArray1.Length; ++index2) { ControlLayoutSystem controlLayoutSystem3 = controlLayoutSystemArray1[index2]; if (controlLayoutSystem3.x0217cda8370c1f17 == xfffbdea061bfa120.x703937d70a13725c) { controlLayoutSystem2 = controlLayoutSystem3; goto label_44; } } goto label_2; label_21: int num2; int num3; if ((uint)num2 - (uint)num3 < 0U) { goto label_29; } else { goto label_19; } label_26: DockContainer xd3311d815ca25f02_2; if (index3 < dockContainers2.Length) { xd3311d815ca25f02_2 = dockContainers2[index3]; goto label_30; } else { goto label_2; } label_28: if (false) { goto label_30; } label_29: ++index3; if (false) { if (false) { goto label_19; } else { goto label_28; } } else { goto label_26; } label_30: if (LayoutUtilities.x8d287cc6f0a2f529(xd3311d815ca25f02_2) != xd39eba9a9a1b028e && (uint)index1 + (uint)index3 <= uint.MaxValue) { goto label_29; } label_40: int index5; do { ControlLayoutSystem[] controlLayoutSystemArray3 = LayoutUtilities.x1494f515233a1246(xd3311d815ca25f02_2); do { for (index5 = 0; index5 < controlLayoutSystemArray3.Length; ++index5) { ControlLayoutSystem controlLayoutSystem3 = controlLayoutSystemArray3[index5]; if (controlLayoutSystem3.x0217cda8370c1f17 == xfffbdea061bfa120.x703937d70a13725c) { controlLayoutSystem2 = controlLayoutSystem3; goto label_44; } } if ((uint)index3 - (uint)index2 <= uint.MaxValue) { goto label_28; } }while ((uint)index3 < 0U); }while ((uint)index5 + (uint)index1 < 0U); if ((index4 & 0) == 0) { if ((index3 | 1) != 0) { goto label_30; } else { goto label_29; } } else { goto label_14; } label_44: return(controlLayoutSystem2); }
public DockControl FindMostRecentlyUsedWindow(DockSituation dockSituation) => FindMostRecentlyUsedWindow(dockSituation, null);
internal DockControl FindMostRecentlyUsedWindow(DockSituation dockSituation, DockControl notThisOne) { var t = DateTime.MinValue; DockControl result = null; foreach (var control in GetDockControls().Where(dockControl => dockControl != notThisOne && dockControl.MetaData.LastFocused >= t && (dockSituation == (DockSituation)(-1) || dockControl.DockSituation == dockSituation))) { t = control.MetaData.LastFocused; result = control; } return result; }
internal void SaveOpenDockSituation(DockSituation situation) { LastOpenDockSituation = situation; }
internal void SaveFixedDockSituation(DockSituation situation) { LastFixedDockSituation = situation; }
internal void x0ba17c4cff658fcf(DockSituation xbcea506a33cf9111) { this.x86d57ad3fc8ec08d = xbcea506a33cf9111; }
internal void xb0e0bc77d88737a8(DockSituation xbcea506a33cf9111) { this.x2097366c1b6e436a = xbcea506a33cf9111; }
internal void method_14(DockSituation dockSituation) { if (Controls.Count == 0) throw new InvalidOperationException(); if (SelectedControl.DockSituation == dockSituation) return; var selectedControl = SelectedControl; var array = new DockControl[Controls.Count]; Controls.CopyTo(array, 0); LayoutUtilities.smethod_10(this); Controls.Clear(); if (dockSituation != DockSituation.Docked) { if (dockSituation != DockSituation.Document) { if (dockSituation != DockSituation.Floating) { throw new InvalidOperationException(); } array[0].OpenFloating(WindowOpenMethod.OnScreenActivate); } else { array[0].OpenDocument(WindowOpenMethod.OnScreenActivate); } } else { array[0].OpenDocked(WindowOpenMethod.OnScreenActivate); } var array2 = new DockControl[array.Length - 1]; Array.Copy(array, 1, array2, 0, array.Length - 1); array[0].LayoutSystem.Controls.AddRange(array2); array[0].LayoutSystem.SelectedControl = selectedControl; }
public void SetPositionMetaData(DockSituation dockSituation, ContainerDockLocation dockLocation) { if (DockSituation != DockSituation.None) throw new InvalidOperationException("This operation is only valid when the window is not currently open."); if (dockSituation == DockSituation.None) throw new ArgumentException("dockSituation"); if (dockLocation == ContainerDockLocation.Center) throw new ArgumentException("dockLocation"); MetaData.SaveOpenDockSituation(dockSituation); if (dockSituation == DockSituation.Document || dockSituation == DockSituation.Docked) MetaData.SaveFixedDockSituation(dockSituation); MetaData.SaveFixedDockSide(dockLocation); }
private void method_17(DockSituation situation) { if (_dockSituationChanging) throw new InvalidOperationException("The requested operation is not valid on a window that is currently engaged in an activity further up the call stack. Consider using BeginInvoke to postpone the operation until the stack has unwound."); if (situation == DockSituation) return; DockSituation = situation; _dockSituationChanging = true; try { OnDockSituationChanged(EventArgs.Empty); } finally { _dockSituationChanging = false; } }