Пример #1
0
        /// <summary>
        /// initialize
        /// </summary>
        private void Initialize()
        {
            this.Background = ColorDef.TabBackground;

            this._items[0].IsChecked = true;
            foreach (var item in this._items.Select((v, i) => new { v, i }))
            {
                item.v.IsEnabled = false;
                item.v.Checked  += (sender, e) => {
                    if (this._preventEvent)
                    {
                        this._preventEvent = false;
                    }
                    else
                    {
                        var button = sender as RadioButton;
                        if (true == button.IsChecked)
                        {
                            TabChanged?.Invoke(item.i);
                        }
                    }
                };
            }
            this._items[0].IsEnabled = true;
        }
Пример #2
0
 /// <summary>
 /// Handler of the scroll event.
 /// </summary>
 protected void OnTabChanged()
 {
     TabChanged?.Invoke(this, new SelectedValueEventArgs()
     {
         SelectedValue = _leftMostIndex
     });
 }
Пример #3
0
 public void RaiseTabChanged(int index)
 {
     if (index != _selectedInd)
     {
         TabChanged?.Invoke(index);
         _selectedInd = index;
     }
 }
Пример #4
0
 /// <summary>
 /// Invoked when the selected tab is changed.
 /// </summary>
 /// <param name="sender">Sender object.</param>
 /// <param name="args">Event arguments.</param>
 /// <remarks>
 /// Note that there is no [ConnectBefore] attribute,
 /// so at the time this is called, this.TabIndex
 /// will return the correct (updated) value.
 /// </remarks>
 private void OnSwitchPage(object sender, SwitchPageArgs args)
 {
     try
     {
         TabChanged?.Invoke(this, EventArgs.Empty);
     }
     catch (Exception err)
     {
         ShowError(err);
     }
 }
Пример #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
        protected virtual void InitializeChildrenPages()
        {
            this.currentTabPage      = (TabPage)Children.First();
            this.CurrentPageChanged += (s, e) =>
            {
                var prev = (ITabViewModel)currentTabPage.BindingContext;
                prev.IsSelected = false;

                //set current page from tabbed
                this.currentTabPage = (TabPage)CurrentPage;

                var current = (ITabViewModel)currentTabPage.BindingContext;
                current.IsSelected = true;

                //fire events
                TabChanged?.Invoke(prev, current);
            };
        }
Пример #7
0
        public override Fragment GetItem(int position)
        {
            if (position == 0)
            {
                return(new FragmentCalendar());
            }
            if (position == 1)
            {
                return(new FragmentEvents());
            }
            if (position == 2)
            {
                return(new FragmentProfile());
            }

            TabChanged?.Invoke(position, null);

            return(null);
        }
        public override Fragment GetItem(int position)
        {
            if (position == 0)
            {
                return(new DashboardFragment());
            }
            if (position == 1)
            {
                return(new CameraFragment());
            }
            if (position == 2)
            {
                return(new SettingsFragment());
            }
            if (position == 3)
            {
                return(new HelpFragment());
            }

            TabChanged?.Invoke(position, null);

            return(null);
        }
Пример #9
0
    public void ShowTab(MenuTab tab)
    {
        gameObject.SetActive(true);

        if (_current == _tabs[tab])
        {
            return;
        }

        if (_current != null)
        {
            _current.TabContents.SetActive(false);
            _current.Text.color = InactiveTabColor;
        }

        CurrentTab = tab;
        _current   = _tabs[tab];

        _current.TabContents.SetActive(true);
        _current.Text.color = ActiveTabColor;

        TabChanged?.Invoke(tab);
    }
Пример #10
0
        /// <summary>
        /// Close a given tab in the UI
        /// </summary>
        /// <param name="tab"></param>
        private void CloseTab(TabPage tab)
        {
            Debug.Assert(tab != null);

            // If this is the last tab, we need to add an empty tab before we remove it
            if (tabControl1.TabCount == 1)
            {
                AddEmptyTab();
            }

            if (tab == tabControl1.SelectedTab)
            {
                // need to select another tab first
                for (var i = 0; i < tabControl1.TabCount; ++i)
                {
                    if (tabControl1.TabPages[i] == tab)
                    {
                        continue;
                    }
                    SelectTab(tabControl1.TabPages[i]);
                    break;
                }
            }

            // free all internal data for this scene
            UiState.RemoveTab(tab);

            // and drop the UI tab
            tabControl1.TabPages.Remove(tab);

            TabChanged?.Invoke((Tab)tab.Tag, false);

            if (_emptyTab == tab)
            {
                _emptyTab = null;
            }
        }
Пример #11
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);
             }
         }
     }
 }
Пример #12
0
        private void items_SelectionChanged(object sender, SelectionChangedEventArgs <TabItem> e)
        {
            LoadTemplateItems();
            if (_internalAction)
            {
                return;
            }

            if (e.AddedItems.Count > 0)
            {
                // selection has changed
                TabItem newItem = e.AddedItems[0];

                if (ic != null)
                {
                    for (int i = 0; i < ic.Items.Count; i++)
                    {
                        // I really dislike this roundabout way that I have to get the child items of an ItemsControl, but I guess this is how it is
                        // from https://stackoverflow.com/a/1876534/2987285
                        ContentPresenter c = (ContentPresenter)ic.ItemContainerGenerator.ContainerFromItem(ic.Items[i]);
                        c.ApplyTemplate();
#if NETCOREAPP
                        TabDisplayItem?tb = c.ContentTemplate.FindName("PART_TabItem", c) as TabDisplayItem;
#else
                        TabDisplayItem tb = c.ContentTemplate.FindName("PART_TabItem", c) as TabDisplayItem;
#endif
                        if (tb != null)
                        {
                            if (tb.TabItem != null && tb.TabItem == newItem)
                            {
                                tb.IsSelected = true;
                            }
                            else
                            {
                                tb.IsSelected = false;
                            }
                        }
                    }
                }

                if (ch != null)
                {
                    ch.Child = newItem.Content;
                }
                TabChanged?.Invoke(this, new TabItemChangeEventArgs(newItem));
            }
            else
            {
                if (Items.SelectedItems.Count == 0)
                {
                    if (ch != null)
                    {
                        ch.Child = null;
                    }

                    if (Items.Count > 0)
                    {
                        switch (SelectedTabClosedAction)
                        {
                        case SelectedTabCloseAction.SelectNothing:
                            // nothing to do
                            break;

                        case SelectedTabCloseAction.SelectFirstTab:
                            Items.Select(Items[0]);
                            break;

                        case SelectedTabCloseAction.SelectLastTab:
                            Items.Select(Items[Items.Count - 1]);
                            break;

                        case SelectedTabCloseAction.SelectTabToLeft:
                            if (closedTabIndex == -1)
                            {
                                // most likely closed via Items.Remove command
                                Items.Select(Items[0]);
                            }
                            else if (closedTabIndex == 0)
                            {
                                // left most tab closed
                                Items.Select(Items[0]);
                            }
                            else
                            {
                                Items.Select(Items[closedTabIndex - 1]);
                            }
                            break;

                        case SelectedTabCloseAction.SelectTabToRight:
                            if (closedTabIndex == -1)
                            {
                                // most likely closed via Items.Remove command
                                Items.Select(Items[Items.Count - 1]);
                            }
                            else
                            {
                                Items.Select(Items[closedTabIndex]);
                            }
                            break;

                        default:
                            // treat as if SelectNothing
                            break;
                        }
                    }
                }
            }
        }
Пример #13
0
 /// <summary>
 /// call TabChanged
 /// </summary>
 private void OnTabControlSelectedIndexChanged(object sender, EventArgs e)
 {
     Refresh();
     TabChanged?.Invoke(tabControlData.SelectedIndex);
 }
Пример #14
0
 protected void OnTabChanged(TabPage tabPage)
 {
     TabChanged?.Invoke(tabPage);
 }
Пример #15
0
 private static void OnTabChanged()
 {
     TabChanged?.Invoke(null, EventArgs.Empty);
 }
Пример #16
0
 void ChangeTab(InventoryTabSO newTabType)
 {
     TabChanged.Invoke(newTabType);
 }
Пример #17
0
 private void AuditLogTabControl_SelectedIndexChanged(object sender, EventArgs e)
 {
     TabChanged?.Invoke(CurrentTab, e);
 }