//--------------------------------------
        // Static Methods
        //--------------------------------------

        public static void SelectBlock(SelectedBlockInfo info)
        {
            var wnd = GetWindow <UM_SettingsWindow>();

            wnd.m_history.Add(info);
        }
        protected override void OnLayoutGUI()
        {
            var newSelection = m_currentServiceTab.SelectedService;

            if (newSelection == null && m_3rdPartyServiceTab != null)
            {
                newSelection = m_3rdPartyServiceTab.SelectedService;
            }

            if (newSelection != null)
            {
                var info = new SelectedBlockInfo();
                info.Platform = m_selectedPlatform;
                info.SettingsBlockTypeName = newSelection.GetType().Name;
                newSelection.UnSelect();


                SelectBlock(info);
            }


            if (m_history.Count > 0)
            {
                var activeBlockInfo = m_history[m_history.Count - 1];
                SetSelectedPlatform(activeBlockInfo.Platform);

                var block = m_currentServiceTab.GetBlockByTypeName(activeBlockInfo.SettingsBlockTypeName);

                //Probably that was another services block
                if (block == null && m_3rdPartyServiceTab != null)
                {
                    block = m_3rdPartyServiceTab.GetBlockByTypeName(activeBlockInfo.SettingsBlockTypeName);
                }

                DrawBrowserTopbar();
                block.DrawHeaderUI();
                DrawScrollView(() => {
                    block.DrawServiceUI();
                });
            }
            else
            {
                DrawTopbar();
                DrawHeader();

                var tabIndex = DrawMenu();

                if (!string.IsNullOrEmpty(m_SearchString))
                {
                    DrawScrollView(() => {
                        m_currentServiceTab.OnSearchGUI(m_SearchString);
                        if (m_3rdPartyServiceTab != null)
                        {
                            m_3rdPartyServiceTab.OnSearchGUI(m_SearchString);
                        }
                    });
                }
                else
                {
                    DrawScrollView(() => {
                        OnTabsGUI(tabIndex);
                    });
                }
            }
        }