Пример #1
0
        public void RemoveTab(int index)
        {
            TabRemoving?.Invoke(this, index);

            lock (_syncRoot)
            {
                Texts.RemoveAt(index);
                TabIds.RemoveAt(index);
                Widths.RemoveAt(index);
                Icons.RemoveAt(index);
                Tags.RemoveAt(index);

                var selectedIndex = SelectedIndex >= index
                                        ? SelectedIndex - 1
                                        : SelectedIndex;

                selectedIndex = getValidIndex(selectedIndex);
                setSelectedIndex(selectedIndex);
            }

            OnLayout(new LayoutEventArgs(this, null));
            Invalidate();

            TabRemoved?.Invoke(this);
        }
Пример #2
0
 protected void OnTabRemoved(TabRemovedEventArgs e)
 {
     if (!SupressTabEvents && !ClosingTab)
     {
         TabRemoved?.Invoke(this, e);
     }
 }
Пример #3
0
        /// <summary>
        /// Handler for tab removing.
        /// </summary>
        /// <param name="button"></param>
        internal virtual void OnLoseTab(TabButton button)
        {
            if (TabRemoved != null)
            {
                TabRemoved.Invoke(this, EventArgs.Empty);
            }

            Invalidate();
        }
Пример #4
0
 public void Remove(int index)
 {
     tabs.RemoveAt(index);
     TabRemoved?.Invoke(index);
     if (this.selectedIndex == index)
     {
         this.SelectedIndex = index - 1;
     }
     else
     {
         this.Invalidate();
     }
 }
Пример #5
0
        protected override void OnMouseUp(MouseEventArgs e)
        {
            base.OnMouseUp(e);

            //process left mouse button only
            if (e.Button != MouseButtons.Left)
            {
                return;
            }

            if (workArea.Contains(e.Location) == false)
            {
                if (mCaptured == true && capTab != -1 && _tabsEnabled == true)
                {
                    try
                    {
                        float pos = tabs[capTab].X * dotsPermm;
                        tabs.RemoveAt(capTab);
                        if (TabRemoved != null)
                        {
                            TabRemoved.Invoke(CreateTabArgs(pos));
                        }
                    }
                    catch (Exception)
                    {
                    }
                }
            }
            else if (workArea.Contains(e.Location) == true)
            {
                if (mCaptured != true && _tabsEnabled == true)
                {
                    AddTab((float)e.Location.X);
                }
                else if (mCaptured == true && capTab != -1)
                {
                    if (TabChanged != null && _tabsEnabled == true)
                    {
                        TabChanged.Invoke(CreateTabArgs(e.Location.X));
                    }
                }
            }

            capTab    = -1;
            mCaptured = false;
            capObject = -1;
            this.Refresh();
        }
Пример #6
0
        /// <summary>
        /// Handler for tab removing.
        /// </summary>
        /// <param name="button"></param>
        internal virtual void OnLoseTab(TabButton button)
        {
            if (m_CurrentButton == button)
            {
                m_CurrentButton = null;
            }

            //TODO: Select a tab if any exist.

            if (TabRemoved != null)
            {
                TabRemoved.Invoke(this);
            }

            Invalidate();
        }
Пример #7
0
        /// <summary>
        /// Handler for tab removing.
        /// </summary>
        /// <param name="button"></param>
        internal virtual void OnLoseTab(TabButton button)
        {
            if (m_CurrentButton == button)
            {
                m_CurrentButton = null;
            }

            if (TabCount > 0)
            {
                button = m_TabStrip.Children[0] as TabButton;
                if (button != null)
                {
                    button.Page.Show();
                    m_CurrentButton = button;
                }
            }

            if (TabRemoved != null)
            {
                TabRemoved.Invoke(this, EventArgs.Empty);
            }

            Invalidate();
        }
Пример #8
0
 internal void RemoveEvents(IPluginClient pluginClient)
 {
     if (TabChanged != null)
     {
         foreach (PluginEventHandler handler in TabChanged.GetInvocationList())
         {
             if (handler.Target == pluginClient)
             {
                 TabChanged = (PluginEventHandler)Delegate.Remove(TabChanged, handler);
             }
         }
     }
     if (TabAdded != null)
     {
         foreach (PluginEventHandler handler2 in TabAdded.GetInvocationList())
         {
             if (handler2.Target == pluginClient)
             {
                 TabAdded = (PluginEventHandler)Delegate.Remove(TabAdded, handler2);
             }
         }
     }
     if (TabRemoved != null)
     {
         foreach (PluginEventHandler handler3 in TabRemoved.GetInvocationList())
         {
             if (handler3.Target == pluginClient)
             {
                 TabRemoved = (PluginEventHandler)Delegate.Remove(TabRemoved, handler3);
             }
         }
     }
     if (NavigationComplete != null)
     {
         foreach (PluginEventHandler handler4 in NavigationComplete.GetInvocationList())
         {
             if (handler4.Target == pluginClient)
             {
                 NavigationComplete = (PluginEventHandler)Delegate.Remove(NavigationComplete, handler4);
             }
         }
     }
     if (SelectionChanged != null)
     {
         foreach (PluginEventHandler handler5 in SelectionChanged.GetInvocationList())
         {
             if (handler5.Target == pluginClient)
             {
                 SelectionChanged = (PluginEventHandler)Delegate.Remove(SelectionChanged, handler5);
             }
         }
     }
     if (ExplorerStateChanged != null)
     {
         foreach (PluginEventHandler handler6 in ExplorerStateChanged.GetInvocationList())
         {
             if (handler6.Target == pluginClient)
             {
                 ExplorerStateChanged = (PluginEventHandler)Delegate.Remove(ExplorerStateChanged, handler6);
             }
         }
     }
     if (SettingsChanged != null)
     {
         foreach (PluginEventHandler handler7 in SettingsChanged.GetInvocationList())
         {
             if (handler7.Target == pluginClient)
             {
                 SettingsChanged = (PluginEventHandler)Delegate.Remove(SettingsChanged, handler7);
             }
         }
     }
     if (MouseEnter != null)
     {
         foreach (EventHandler handler8 in MouseEnter.GetInvocationList())
         {
             if (handler8.Target == pluginClient)
             {
                 MouseEnter = (EventHandler)Delegate.Remove(MouseEnter, handler8);
             }
         }
     }
     if (PointedTabChanged != null)
     {
         foreach (PluginEventHandler handler9 in PointedTabChanged.GetInvocationList())
         {
             if (handler9.Target == pluginClient)
             {
                 PointedTabChanged = (PluginEventHandler)Delegate.Remove(PointedTabChanged, handler9);
             }
         }
     }
     if (MouseLeave != null)
     {
         foreach (EventHandler handler10 in MouseLeave.GetInvocationList())
         {
             if (handler10.Target == pluginClient)
             {
                 MouseLeave = (EventHandler)Delegate.Remove(MouseLeave, handler10);
             }
         }
     }
     if (MenuRendererChanged != null)
     {
         foreach (EventHandler handler11 in MenuRendererChanged.GetInvocationList())
         {
             if (handler11.Target == pluginClient)
             {
                 MenuRendererChanged = (EventHandler)Delegate.Remove(MenuRendererChanged, handler11);
             }
         }
     }
 }