private static IEnumerable <DockItem> GetDockItems(DockControl dockControl, Func <DockItem, DockPane, bool> predicate) { foreach (DockPane pane in dockControl.Panes) { foreach (DockItem item in GetDockItems(pane)) { if (predicate(item, pane)) { yield return(item); } } } }
public static void Execute(DockItem dockItem) { DockControl dockControl = dockItem.DockControl; if (dockControl.CanEnterUndo) { dockControl.ExecuteCommand(new HideCommand(dockItem)); } else { dockItem.DoHide(); } }
public static void Execute(DockItem dockItem) { DockControl dockControl = dockItem.DockControl; if (dockControl.CanEnterUndo && dockItem.IsHidden) { dockControl.ExecuteCommand(new DeselectCommand(dockItem)); } else { dockItem.DoDeselect(); } }
public static void Execute(DockItem dockItem, DockItemShowMethod showMethod) { DockControl dockControl = dockItem.DockControl; if (dockControl.CanEnterUndo) { dockControl.ExecuteCommand(new ToggleAutoHideCommand(dockItem, showMethod)); } else { dockItem.DoToggleAutoHide(showMethod); } }
public static void Execute(DockItem dockItem, bool activate) { DockControl dockControl = dockItem.DockControl; if (dockControl.CanEnterUndo && dockItem.IsHidden) { dockControl.ExecuteCommand(new SelectCommand(dockItem, activate)); } else { dockItem.DoSelect(activate); } }
public static void Execute(DockItem dockItem) { DockControl dockControl = dockItem.DockControl; if (TestUndo(dockItem)) { dockControl.ExecuteCommand(new CloseCommand(dockItem)); } else { dockItem.DoClose(); } }
public static void Execute(DockItem dockItem, DockPaneNode paneNode, bool isAutoHide, Dock side, SplitterDistance size, bool isSizeForTarget, DockItemShowMethod showMethod) { DockControl dockControl = paneNode.DockControl; Debug.Assert(dockControl != null); if (TestUndo(dockItem, dockControl)) { dockControl.ExecuteCommand(new ShowAsSidePaneCommand(dockItem, paneNode, isAutoHide, side, size, isSizeForTarget, showMethod)); } else // if (dockItem.DockControl == dockControl) Fix for 1.1.3730: this condition will prevent unattached DockItem from showing { dockItem.DoShowAsSidePane(paneNode, isAutoHide, side, size, isSizeForTarget, showMethod); } }
protected override void ExecuteOverride(DockControl dockControl) { DockItem dockItem = GetDockItem(dockControl); dockItem.DoShowAsFloating(dockControl, _floatingWindowBounds, ShowMethod); if (double.IsNaN(_floatingWindowBounds.X)) { _floatingWindowBounds.X = dockItem.FirstPane.FloatingWindow.Left; } if (double.IsNaN(_floatingWindowBounds.Y)) { _floatingWindowBounds.Y = dockItem.FirstPane.FloatingWindow.Top; } }
public static void Execute(DockItem dockItem, DockPane pane, int index, DockItemShowMethod showMethod) { DockControl dockControl = pane.DockControl; Debug.Assert(dockControl != null); if (TestUndo(dockItem, dockControl)) { dockControl.ExecuteCommand(new ShowAsTabbedCommand(dockItem, pane, index, showMethod)); } else { dockItem.DoShowAsTabbed(pane, index, showMethod); } }
private static ShowAction GetShowAsTabbedAction(DockItem item, DockPane pane) { DockControl dockControl = item.DockControl; int source = dockControl.DockItems.IndexOf(item); DockItemShowMethod showMethod = GetShowMethod(item, pane); int index = pane.Items.IndexOf(item); DockItem targetItem = pane.Items[index == 0 ? 1 : 0]; int targetIndex = dockControl.DockItems.IndexOf(targetItem); if (index == pane.Items.Count - 1) { index = -1; } return(new ShowAsTabbedAction(source, targetIndex, pane.IsFloating, index, showMethod)); }
private void FillDockActions(DockControl dockControl, DockLayout layout) { lock (this) { foreach (DockItem item in GetDockItems(dockControl, delegate(DockItem item, DockPane pane) { return(item.SecondPane == pane); })) { layout.ShowActions.Add(GetShowAction(item, item.SecondPane)); } foreach (DockItem item in GetDockItems(dockControl, delegate(DockItem item, DockPane pane) { return(item.FirstPane == pane); })) { layout.ShowActions.Add(GetShowAction(item, item.FirstPane)); } _itemsCollections.Clear(); _panes.Clear(); _splits.Clear(); } }
public sealed override void UnExecute(DockControl dockControl) { DockItem item = GetDockItem(dockControl); item.DoClose(); if (DockItemIndex != -1) { item.EnsureAttached(dockControl, DockItemIndex); } if (SecondPaneShowAction != null) { SecondPaneShowAction.Run(dockControl); } if (FirstPaneShowAction != null) { FirstPaneShowAction.Run(dockControl); } }
protected static bool TestUndo(DockItem dockItem, DockControl dockControl) { if (!dockControl.CanEnterUndo) { return(false); } if (dockItem.FirstPane != null) { return(true); } if (dockItem.UndoRedoReference == null) { dockControl.ClearUndo(); return(false); } return(true); }
private static ShowAction GetShowAsDockTreeRootAction(DockItem item, DockPane pane) { DockControl dockControl = item.DockControl; int source = dockControl.DockItems.IndexOf(item); DockItemShowMethod showMethod = GetShowMethod(item, pane); DockTree dockTree = pane.DockTree; if (dockTree.IsFloating) { FloatingWindow floatingWindow = dockTree.FloatingWindow; Rect bounds = new Rect(floatingWindow.Left, floatingWindow.Top, floatingWindow.Width, floatingWindow.Height); return(new ShowAsFloatingAction(source, bounds, showMethod)); } else { DockPosition dockPosition = DockPositionHelper.GetDockPosition(pane.DockTreePosition, pane.IsAutoHide); return(new ShowAsDockPositionAction(source, dockPosition, showMethod)); } }
private static void OnBoundsChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { FloatingWindow floatingWindow = (FloatingWindow)d; DockControl dockControl = floatingWindow.DockControl; if (dockControl == null) { return; } Rect oldBounds = floatingWindow.GetBounds(e.Property, (double)e.OldValue); Rect newBounds = floatingWindow.GetBounds(e.Property, (double)e.NewValue); UpdateBoundsData oldValue = new UpdateBoundsData(floatingWindow, oldBounds); UpdateBoundsData newValue = new UpdateBoundsData(floatingWindow, newBounds); dockControl.OnValueChanged(oldValue, newValue, delegate(UpdateBoundsData oldData, UpdateBoundsData newData) { return(new UpdateBoundsCommand(oldData.FloatingWindow, oldData.Value, newData.Value)); }); }
private static bool TestUndo(DockItem dockItem) { DockControl dockControl = dockItem.DockControl; if (!dockControl.CanEnterUndo) { return(false); } if (dockItem.FirstPane == null) { return(false); } if (dockItem.UndoRedoReference == null) { dockControl.ClearUndo(); return(false); } return(true); }
public static DockPaneNodeStruct FromDockPaneNode(DockPaneNode paneNode) { DockControl dockControl = paneNode.DockControl; Debug.Assert(dockControl != null); int ancestorSplitLevel = 0; DockPaneNode node; for (node = paneNode; node is DockPaneSplit; node = (node as DockPaneSplit).Child1) { ancestorSplitLevel++; } DockPane pane = node as DockPane; Debug.Assert(pane != null); DockItem item = pane.Items[0]; int itemIndex = dockControl.DockItems.IndexOf(item); bool isFloating = paneNode.IsFloating; return(new DockPaneNodeStruct(itemIndex, isFloating, ancestorSplitLevel)); }
internal static void Load(DockControl dockControl, DockLayout layout, Func <object, DockItem> loadDockItemCallback) { Debug.Assert(dockControl.DockItems.Count == 0); dockControl.DockTreeZOrder = layout.DockTreeZOrder; dockControl.LeftDockTreeWidth = layout.LeftDockTreeWidth; dockControl.RightDockTreeWidth = layout.RightDockTreeWidth; dockControl.TopDockTreeHeight = layout.TopDockTreeHeight; dockControl.BottomDockTreeHeight = layout.BottomDockTreeHeight; DockItemCollection items = dockControl.DockItems; foreach (DockItemReference itemRef in layout.DockItems) { DockItem item = loadDockItemCallback == null ? (DockItem)itemRef.Target : loadDockItemCallback(itemRef.Target); item.AutoHideSize = itemRef.AutoHideSize; items.AddInternal(item); } foreach (ShowAction action in layout.ShowActions) { action.Run(dockControl); } }
internal static DockLayout Save(DockControl dockControl) { DockLayout layout = new DockLayout(); layout.DockTreeZOrder = dockControl.DockTreeZOrder; layout.LeftDockTreeWidth = dockControl.LeftDockTreeWidth; layout.RightDockTreeWidth = dockControl.RightDockTreeWidth; layout.TopDockTreeHeight = dockControl.TopDockTreeHeight; layout.BottomDockTreeHeight = dockControl.BottomDockTreeHeight; layout.DockItems.Clear(); layout.ShowActions.Clear(); foreach (DockItem item in dockControl.DockItems) { DockItemReference itemRef = new DockItemReference(); itemRef.AutoHideSize = item.AutoHideSize; itemRef.Target = item.Save(); layout.DockItems.Add(itemRef); } Default.FillDockActions(dockControl, layout); return(layout); }
protected override void ExecuteOverride(DockControl dockControl) { GetDockItem(dockControl).DoShowAsSidePane(GetTargetPaneNode(dockControl), _isAutoHide, _side, _size, _isSizeForTarget, ShowMethod); }
private DockPaneNode GetTargetPaneNode(DockControl dockControl) { return(_paneNodeStruct.ToDockPaneNode(dockControl)); }
public override void UnExecute(DockControl dockControl) { GetDockItem(dockControl).Show(_showMethod); }
public override void Execute(DockControl dockControl) { GetDockItem(dockControl).Hide(); }
void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) { switch (connectionId) { case 1: this.mainPage = ((Baer.BiteGui.MainPage)(target)); return; case 2: #line 11 "..\..\..\MainPage.xaml" ((System.Windows.Input.CommandBinding)(target)).Executed += new System.Windows.Input.ExecutedRoutedEventHandler(this.NewDocument); #line default #line hidden return; case 3: #line 12 "..\..\..\MainPage.xaml" ((System.Windows.Input.CommandBinding)(target)).CanExecute += new System.Windows.Input.CanExecuteRoutedEventHandler(this.CanExecuteCloseActiveDocument); #line default #line hidden #line 12 "..\..\..\MainPage.xaml" ((System.Windows.Input.CommandBinding)(target)).Executed += new System.Windows.Input.ExecutedRoutedEventHandler(this.CloseActiveDocument); #line default #line hidden return; case 4: this.dockControl = ((DevZest.Windows.Docking.DockControl)(target)); #line 31 "..\..\..\MainPage.xaml" this.dockControl.FocusedItemChanged += new System.EventHandler <System.EventArgs>(this.OnFocusedItemChanged); #line default #line hidden #line 32 "..\..\..\MainPage.xaml" this.dockControl.ActiveItemChanged += new System.EventHandler <System.EventArgs>(this.OnActiveItemChanged); #line default #line hidden #line 33 "..\..\..\MainPage.xaml" this.dockControl.ActiveDocumentChanged += new System.EventHandler <System.EventArgs>(this.OnActiveDocumentChanged); #line default #line hidden #line 34 "..\..\..\MainPage.xaml" this.dockControl.DockItemStateChanging += new System.EventHandler <DevZest.Windows.Docking.DockItemStateEventArgs>(this.OnDockItemStateChanging); #line default #line hidden #line 35 "..\..\..\MainPage.xaml" this.dockControl.DockItemStateChanged += new System.EventHandler <DevZest.Windows.Docking.DockItemStateEventArgs>(this.OnDockItemStateChanged); #line default #line hidden return; case 5: this.output = ((Baer.BiteGui.Output)(target)); return; case 6: this.savedLayout = ((Baer.BiteGui.SavedLayout)(target)); return; case 7: this.propertiesWindow = ((Baer.BiteGui.PropertiesWindow)(target)); return; } this._contentLoaded = true; }
public void UnExecute(DockControl dockControl) { SetAutoHideSize(GetDockItem(dockControl), _oldValue); }
public bool ShouldRemove(DockControl dockControl, UpdateAutoHideSizeData value) { return(value.DockItem == GetDockItem(dockControl) && _oldValue == value.Value); }
public bool Reset(DockControl dockControl, UpdateAutoHideSizeData oldValue, UpdateAutoHideSizeData newValue) { Initialize(oldValue.DockItem, oldValue.Value, newValue.Value); return(true); }
private DockItem GetDockItem(DockControl dockControl) { return(dockControl.DockItems[_dockItemIndex]); }
internal override bool GetIsAutoHide(DockControl dockControl) { return(GetTargetPane(dockControl).IsAutoHide); }
public void UnExecute(DockControl dockControl) { dockControl.DockTreeZOrder = _oldValue; }