示例#1
0
        public void Remove(IPoderosaDocument document)
        {
            TabBarUpdateState state = TabBarUpdateState.BeginUpdate("removetab");

            _tabBarTable.RemoveTab(DocumentToKey(document), false);
            state.Commit();
        }
示例#2
0
        public void Add(IPoderosaDocument document)
        {
            TabBarUpdateState state = TabBarUpdateState.BeginUpdate("addtab");

            _tabBarTable.AddTab(DocumentToKey(document));
            state.Commit();
        }
示例#3
0
        public void Update(IPoderosaDocument document)
        {
            if (_tabBarTable.InvokeRequired)
            {
                _tabBarTable.Invoke(new UpdateDelegate(Update), document);
                return;
            }

            TabBarUpdateState state = TabBarUpdateState.BeginUpdate("updatetab");

            _tabBarTable.UpdateDescription(DocumentToKey(document));
            state.Commit();

            //イベントだけ通知すればいいのでちょっと過剰な処理だが
            if (document == this.ActiveDocument)
            {
                SessionManagerPlugin.Instance.ActivateDocument(document, ActivateReason.InternalAction);
            }
        }
示例#4
0
        //SessionManagerからのみ呼ぶこと
        public void Activate(IPoderosaDocument document)
        {
#if DEBUG
            Debug.Assert(document == null || _tabBarTable.ContainsKey(DocumentToKey(document)));
#endif
            if (document == KeyToDocument(_tabBarTable.ActiveTabKey))
            {
                return;                                                    //do nothing
            }
            TabBarUpdateState state = TabBarUpdateState.BeginUpdate("activate");
            if (document == null)
            {
                _tabBarTable.Deactivate(false);
            }
            else
            {
                _tabBarTable.Activate(DocumentToKey(document), false);
            }

            state.Commit();
        }