public void Remove(IPoderosaDocument document) { TabBarUpdateState state = TabBarUpdateState.BeginUpdate("removetab"); _tabBarTable.RemoveTab(DocumentToKey(document), false); state.Commit(); }
public void Add(IPoderosaDocument document) { TabBarUpdateState state = TabBarUpdateState.BeginUpdate("addtab"); _tabBarTable.AddTab(DocumentToKey(document)); state.Commit(); }
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); } }
//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(); }