private void SetMainWindowTitle()
{
//メインウインドウタイトルの書き換え
StringBuilder ttl = new StringBuilder(256);
int ur = 0;
int al = 0;
if (this._cfgCommon.DispLatestPost != MyCommon.DispTitleEnum.None &&
this._cfgCommon.DispLatestPost != MyCommon.DispTitleEnum.Post &&
this._cfgCommon.DispLatestPost != MyCommon.DispTitleEnum.Ver &&
this._cfgCommon.DispLatestPost != MyCommon.DispTitleEnum.OwnStatus)
{
foreach (var tab in _statuses.Tabs.Values)
{
ur += tab.UnreadCount;
al += tab.AllCount;
}
}
if (this._cfgCommon.DispUsername) ttl.Append(tw.Username).Append(" - ");
ttl.Append(Application.ProductName);
ttl.Append(" ");
switch (this._cfgCommon.DispLatestPost)
{
case MyCommon.DispTitleEnum.Ver:
ttl.Append("Ver:").Append(MyCommon.GetReadableVersion());
break;
case MyCommon.DispTitleEnum.Post:
if (_history != null && _history.Count > 1)
ttl.Append(_history[_history.Count - 2].status.Replace("\r\n", " "));
break;
case MyCommon.DispTitleEnum.UnreadRepCount:
ttl.AppendFormat(Properties.Resources.SetMainWindowTitleText1, _statuses.GetTabByType(MyCommon.TabUsageType.Mentions).UnreadCount + _statuses.GetTabByType(MyCommon.TabUsageType.DirectMessage).UnreadCount);
break;
case MyCommon.DispTitleEnum.UnreadAllCount:
ttl.AppendFormat(Properties.Resources.SetMainWindowTitleText2, ur);
break;
case MyCommon.DispTitleEnum.UnreadAllRepCount:
ttl.AppendFormat(Properties.Resources.SetMainWindowTitleText3, ur, _statuses.GetTabByType(MyCommon.TabUsageType.Mentions).UnreadCount + _statuses.GetTabByType(MyCommon.TabUsageType.DirectMessage).UnreadCount);
break;
case MyCommon.DispTitleEnum.UnreadCountAllCount:
ttl.AppendFormat(Properties.Resources.SetMainWindowTitleText4, ur, al);
break;
case MyCommon.DispTitleEnum.OwnStatus:
if (followers == 0 && tw.FollowersCount > 0) followers = tw.FollowersCount;
ttl.AppendFormat(Properties.Resources.OwnStatusTitle, tw.StatusesCount, tw.FriendsCount, tw.FollowersCount, tw.FollowersCount - followers);
break;
}
try
{
this.Text = ttl.ToString();
}
catch (AccessViolationException)
{
//原因不明。ポスト内容に依存か?たまーに発生するが再現せず。
}
}