public void NewTab(int sheetIndex) { StopTabEditing(false); SheetTab tab = new SheetTab(this) { SheetIndex = sheetIndex }; int count = TabsPresenter.Children.Count; if (Excel.TabStripInsertTab && (TabsPresenter.Children.Count > 0)) { count = TabsPresenter.Children.Count - 1; } TabsPresenter.Children.Insert(count, tab); TabsPresenter.ReCalculateStartIndex(0, TabsPresenter.Children.Count - 1); }
public void ProcessTap(Point point) { SheetTab touchHitSheetTab = GetHitSheetTab(point); if (touchHitSheetTab == null) { return; } TabsPresenter tabsPresenter = TabsPresenter; if (touchHitSheetTab == _newTab) { if (!Workbook.Protect) { OnNewTabNeeded(EventArgs.Empty); if (tabsPresenter.Children.Count > 1) { ActiveSheet(((SheetTab)tabsPresenter.Children[tabsPresenter.Children.Count - 2]).SheetIndex, true); } } } else { int index = TabsPresenter.Children.IndexOf(touchHitSheetTab); if (index == (TabsPresenter.StartIndex - 1)) { TabsPresenter.NavigateToPrevious(); } else if (TabsPresenter.ReCalculateStartIndex(TabsPresenter.StartIndex, index)) { TabsPresenter.InvalidateMeasure(); TabsPresenter.InvalidateArrange(); } if (touchHitSheetTab != _activeTab) { ActiveSheet(touchHitSheetTab.SheetIndex, true); } } Excel.RaiseSheetTabClick(touchHitSheetTab.SheetIndex); }
void ProcessNavigation(int nextIndex) { SheetTab tab = TabsPresenter.Children[nextIndex] as SheetTab; if (((tab != null) && (tab.SheetIndex != -1)) && (tab != null)) { TabsPresenter tabsPresenter = TabsPresenter; if (tab == _newTab) { if (!Workbook.Protect) { OnNewTabNeeded(EventArgs.Empty); if (tabsPresenter.Children.Count > 1) { ActiveSheet(((SheetTab)tabsPresenter.Children[tabsPresenter.Children.Count - 2]).SheetIndex, true); } } } else { int index = tabsPresenter.Children.IndexOf(tab); if (index == (tabsPresenter.StartIndex - 1)) { tabsPresenter.NavigateToPrevious(); } else if (tabsPresenter.ReCalculateStartIndex(tabsPresenter.StartIndex, index)) { tabsPresenter.InvalidateMeasure(); tabsPresenter.InvalidateArrange(); } if (tab != _activeTab) { ActiveSheet(tab.SheetIndex, true); } } Excel.RaiseSheetTabClick(tab.SheetIndex); } }
public void ProcessMouseClickSheetTab(PointerRoutedEventArgs args) { SheetTab hitSheetTab = GetHitSheetTab(args.GetCurrentPoint(null).Position); if (hitSheetTab != null) { TabsPresenter tabsPresenter = TabsPresenter; if (hitSheetTab == _newTab) { if (!Workbook.Protect) { OnNewTabNeeded(EventArgs.Empty); if (tabsPresenter.Children.Count > 1) { ActiveSheet(((SheetTab)tabsPresenter.Children[tabsPresenter.Children.Count - 2]).SheetIndex, true); } } } else { int index = TabsPresenter.Children.IndexOf(hitSheetTab); if (index == (TabsPresenter.StartIndex - 1)) { TabsPresenter.NavigateToPrevious(); } else if (TabsPresenter.ReCalculateStartIndex(TabsPresenter.StartIndex, index)) { TabsPresenter.InvalidateMeasure(); TabsPresenter.InvalidateArrange(); } if (hitSheetTab != _activeTab) { ActiveSheet(hitSheetTab.SheetIndex, true); } } Excel.RaiseSheetTabClick(hitSheetTab.SheetIndex); } }
public void UpdateInsertNewTab() { if (Excel.TabStripInsertTab) { if (_newTab == null) { _newTab = new SheetTab(this); } if (!TabsPresenter.Children.Contains(_newTab)) { TabsPresenter.Children.Add(_newTab); } if (IsLoaded) { TabsPresenter.ReCalculateStartIndex(0, TabsPresenter.Children.Count - 1); } } else if (_newTab != null) { TabsPresenter.Children.Remove(_newTab); _newTab = null; } }