/// <summary> /// Performs a redock operation upon specified windows. /// </summary> /// <param name="windows"></param> /// <param name="reason"></param> /// <param name="defaultAction">True to perform default action if no state is recorded for a window, false otherwise.</param> public void Redock(IEnumerable <DockWindow> windows, RedockTransactionReason reason, bool defaultAction) { if (!this.CanOperate()) { return; } this.DockManager.BeginTransactionBlock(true); foreach (DockWindow window in windows) { this.Redock(window, reason, defaultAction); } this.DockManager.EndTransactionBlock(); }
/// <summary> /// Performs a redock operation upon specified window. /// </summary> /// <param name="window"></param> /// <param name="reason"></param> /// <param name="defaultAction">True to perform default action if no state is recorded for a window, false otherwise.</param> public void Redock(DockWindow window, RedockTransactionReason reason, bool defaultAction) { if (!this.CanOperate()) { return; } DockState state; if (window.DockState == DockState.Hidden) { state = window.PreviousDockState; } else { state = GetNewDockState(window.DockState); } RedockTransaction transaction = new RedockTransaction(state, new DockWindow[] { window }, defaultAction); transaction.Reason = reason; this.DockManager.RegisterTransaction(transaction, true); }
/// <summary> /// Constructs a new <see cref="RedockTransaction">RedockTransaction</see> instance. /// </summary> /// <param name="state">The target <see cref="DockState">dock state</see> for the transaction.</param> /// <param name="windows"></param> /// <param name="defaultAction"></param> public RedockTransaction(DockState state, IEnumerable <DockWindow> windows, bool defaultAction) : base(state, windows) { this.performDefaultAction = defaultAction; this.reason = RedockTransactionReason.Explicit; }