Ejemplo n.º 1
0
 public TabStrip(Excel p_excel)
 {
     DefaultStyleKey = typeof(TabStrip);
     Excel           = p_excel;
     TabsPresenter   = new TabsPresenter(this);
     LoadTabs();
 }
Ejemplo n.º 2
0
 public void SetStartSheet(int startSheetIndex)
 {
     if ((TabsPresenter.Children.Count != 0) && (TabsPresenter.Children.Count > startSheetIndex))
     {
         TabsPresenter.SetStartSheet(startSheetIndex);
     }
 }
Ejemplo n.º 3
0
 public void ActivePreviousTab()
 {
     if (_activeTab != null)
     {
         int preVisibleIndex = TabsPresenter.GetPreVisibleIndex(TabsPresenter.Children.IndexOf(_activeTab));
         if (preVisibleIndex != -1)
         {
             ProcessNavigation(preVisibleIndex);
         }
     }
 }
Ejemplo n.º 4
0
 public void ActiveNextTab()
 {
     if (_activeTab != null)
     {
         int nextVisibleIndex = TabsPresenter.GetNextVisibleIndex(TabsPresenter.Children.IndexOf(_activeTab));
         if (nextVisibleIndex != -1)
         {
             ProcessNavigation(nextVisibleIndex);
         }
     }
 }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 7
0
        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);
            }
        }
Ejemplo n.º 8
0
        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);
            }
        }
Ejemplo n.º 9
0
 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;
     }
 }
Ejemplo n.º 10
0
 public int GetStartIndexToBringTabIntoView(int tabIndex)
 {
     return(TabsPresenter.GetStartIndexToBringTabIntoView(tabIndex));
 }