svnno****@sourc*****
svnno****@sourc*****
2010年 12月 1日 (水) 18:14:29 JST
Revision: 1145 http://sourceforge.jp/projects/tween/svn/view?view=rev&revision=1145 Author: kiri_feather Date: 2010-12-01 18:14:29 +0900 (Wed, 01 Dec 2010) Log Message: ----------- UserStreamブランチをマージ Modified Paths: -------------- trunk/Tween/Connection/HttpConnectionBasic.vb trunk/Tween/Connection/HttpConnectionOAuth.vb trunk/Tween/Connection/HttpTwitter.vb trunk/Tween/Connection/IHttpConnection.vb trunk/Tween/MyCommon.vb trunk/Tween/Tween.Designer.vb trunk/Tween/Tween.resx trunk/Tween/Tween.vb trunk/Tween/Tween.vbproj trunk/Tween/Twitter.vb Added Paths: ----------- trunk/Tween/DataModel.vb Property Changed: ---------------- trunk/ -------------- next part -------------- Property changes on: trunk ___________________________________________________________________ Modified: svn:mergeinfo - /branches/APIchangeevent:723-746 /branches/FixedImage:787-910 /branches/editlist:667-697 /branches/panelswitch:447-572 /branches/tm:782-794 + /branches/APIchangeevent:723-746 /branches/FixedImage:787-910 /branches/UserStream:1077-1144 /branches/editlist:667-697 /branches/panelswitch:447-572 /branches/tm:782-794 Modified: trunk/Tween/Connection/HttpConnectionBasic.vb =================================================================== --- trunk/Tween/Connection/HttpConnectionBasic.vb 2010-11-30 17:06:51 UTC (rev 1144) +++ trunk/Tween/Connection/HttpConnectionBasic.vb 2010-12-01 09:14:29 UTC (rev 1145) @@ -26,7 +26,13 @@ '''</summary> Private credential As String = "" + '''<summary> + '''認証完了時の応答からuserIdentKey情報に基づいて取得するユーザー情報 + '''</summary> + Private streamReq As HttpWebRequest = Nothing + + '''<summary> '''BASIC認証で指定のURLとHTTP通信を行い、結果を返す '''</summary> '''<param name="method">HTTP通信メソッド(GET/HEAD/POST/PUT/DELETE)</param> @@ -98,7 +104,50 @@ Return code End Function + '''<summary> + '''OAuth認証で指定のURLとHTTP通信を行い、ストリームを返す + '''</summary> + '''<param name="method">HTTP通信メソッド(GET/HEAD/POST/PUT/DELETE)</param> + '''<param name="requestUri">通信先URI</param> + '''<param name="param">GET時のクエリ、またはPOST時のエンティティボディ</param> + '''<param name="content">[OUT]HTTP応答のボディストリーム</param> + '''<param name="headerInfo">[IN/OUT]HTTP応答のヘッダ情報。必要なヘッダ名を事前に設定しておくこと</param> + '''<returns>HTTP応答のステータスコード</returns> + Public Function GetContent(ByVal method As String, _ + ByVal requestUri As Uri, _ + ByVal param As Dictionary(Of String, String), _ + ByRef content As Stream) As HttpStatusCode Implements IHttpConnection.GetContent + '認証済かチェック + If String.IsNullOrEmpty(Me.credential) Then Return HttpStatusCode.Unauthorized + streamReq = CreateRequest(method, requestUri, param, False) + + 'BASIC認証用ヘッダを付加 + AppendApiInfo(streamReq) + + Try + Dim webRes As HttpWebResponse = CType(streamReq.GetResponse(), HttpWebResponse) + content = webRes.GetResponseStream() + Return webRes.StatusCode + Catch ex As WebException + If ex.Status = WebExceptionStatus.ProtocolError Then + Dim res As HttpWebResponse = DirectCast(ex.Response, HttpWebResponse) + Return res.StatusCode + End If + Throw ex + End Try + + End Function + + Public Sub RequestAbort() Implements IHttpConnection.RequestAbort + Try + If streamReq IsNot Nothing Then + streamReq.Abort() + End If + Catch ex As Exception + End Try + End Sub + '''<summary> '''BASIC認証とREST APIで必要なヘッダを付加 '''</summary> Modified: trunk/Tween/Connection/HttpConnectionOAuth.vb =================================================================== --- trunk/Tween/Connection/HttpConnectionOAuth.vb 2010-11-30 17:06:51 UTC (rev 1144) +++ trunk/Tween/Connection/HttpConnectionOAuth.vb 2010-12-01 09:14:29 UTC (rev 1145) @@ -57,6 +57,11 @@ Private authorizedUsername As String = "" '''<summary> + '''認証完了時の応答からuserIdentKey情報に基づいて取得するユーザー情報 + '''</summary> + Private streamReq As HttpWebRequest = Nothing + + '''<summary> '''OAuth認証で指定のURLとHTTP通信を行い、結果を返す '''</summary> '''<param name="method">HTTP通信メソッド(GET/HEAD/POST/PUT/DELETE)</param> @@ -129,6 +134,49 @@ Return code End Function + '''<summary> + '''OAuth認証で指定のURLとHTTP通信を行い、ストリームを返す + '''</summary> + '''<param name="method">HTTP通信メソッド(GET/HEAD/POST/PUT/DELETE)</param> + '''<param name="requestUri">通信先URI</param> + '''<param name="param">GET時のクエリ、またはPOST時のエンティティボディ</param> + '''<param name="content">[OUT]HTTP応答のボディストリーム</param> + '''<returns>HTTP応答のステータスコード</returns> + Public Function GetContent(ByVal method As String, _ + ByVal requestUri As Uri, _ + ByVal param As Dictionary(Of String, String), _ + ByRef content As Stream) As HttpStatusCode Implements IHttpConnection.GetContent + '認証済かチェック + If String.IsNullOrEmpty(token) Then Return HttpStatusCode.Unauthorized + + streamReq = CreateRequest(method, requestUri, param, False) + 'OAuth認証ヘッダを付加 + AppendOAuthInfo(streamReq, param, token, tokenSecret) + + Try + Dim webRes As HttpWebResponse = CType(streamReq.GetResponse(), HttpWebResponse) + content = webRes.GetResponseStream() + Return webRes.StatusCode + Catch ex As WebException + If ex.Status = WebExceptionStatus.ProtocolError Then + Dim res As HttpWebResponse = DirectCast(ex.Response, HttpWebResponse) + Return res.StatusCode + End If + Throw ex + End Try + + End Function + + Public Sub RequestAbort() Implements IHttpConnection.RequestAbort + Try + If streamReq IsNot Nothing Then + streamReq.Abort() + End If + Catch ex As Exception + End Try + End Sub + + #Region "認証処理" '''<summary> '''OAuth認証の開始要求(リクエストトークン取得)。PIN入力用の前段 Modified: trunk/Tween/Connection/HttpTwitter.vb =================================================================== --- trunk/Tween/Connection/HttpTwitter.vb 2010-11-30 17:06:51 UTC (rev 1144) +++ trunk/Tween/Connection/HttpTwitter.vb 2010-12-01 09:14:29 UTC (rev 1145) @@ -1,7 +1,10 @@ Imports System.Net Imports System.IO +Imports System.Web +Imports System.Threading Public Class HttpTwitter + Implements ICloneable 'OAuth関連 '''<summary> @@ -33,10 +36,6 @@ End Enum Private connectionType As AuthMethod = AuthMethod.Basic - Public Sub New() - TwitterApiInfo.Initialize() - End Sub - Public Sub Initialize(ByVal accessToken As String, _ ByVal accessTokenSecret As String, _ ByVal username As String) @@ -51,7 +50,6 @@ tk = accessToken tks = accessTokenSecret un = username - TwitterApiInfo.Initialize() End If con.Initialize(ConsumerKey, ConsumerSecret, accessToken, accessTokenSecret, username, "screen_name") httpCon = con @@ -68,7 +66,6 @@ ' 以前の認証状態よりひとつでも変化があったらhttpヘッダより読み取ったカウントは初期化 un = username pw = password - TwitterApiInfo.Initialize() End If con.Initialize(username, password) httpCon = con @@ -321,14 +318,38 @@ param.Add("since_id", since_id.ToString()) End If + param.Add("include_entities", "true") + Return httpCon.GetContent(GetMethod, _ - CreateTwitterUri("/1/statuses/home_timeline.xml"), _ + CreateTwitterUri("/1/statuses/home_timeline.json"), _ param, _ content, _ TwitterApiInfo.HttpHeaders, _ AddressOf GetApiCallback) End Function + Public Function PublicTimeline(ByVal count As Integer, ByVal max_id As Long, ByVal since_id As Long, ByRef content As String) As HttpStatusCode + Dim param As New Dictionary(Of String, String) + If count > 0 Then + param.Add("count", count.ToString()) + End If + If max_id > 0 Then + param.Add("max_id", max_id.ToString()) + End If + If since_id > 0 Then + param.Add("since_id", since_id.ToString()) + End If + + param.Add("include_entities", "true") + + Return httpCon.GetContent(GetMethod, _ + CreateTwitterUri("/1/statuses/public_timeline.json"), _ + param, _ + content, _ + TwitterApiInfo.HttpHeaders, _ + AddressOf GetApiCallback) + End Function + Public Function Mentions(ByVal count As Integer, ByVal max_id As Long, ByVal since_id As Long, ByRef content As String) As HttpStatusCode Dim param As New Dictionary(Of String, String) If count > 0 Then @@ -341,8 +362,10 @@ param.Add("since_id", since_id.ToString()) End If + param.Add("include_entities", "true") + Return httpCon.GetContent(GetMethod, _ - CreateTwitterUri("/1/statuses/mentions.xml"), _ + CreateTwitterUri("/1/statuses/mentions.json"), _ param, _ content, _ TwitterApiInfo.HttpHeaders, _ @@ -362,7 +385,7 @@ End If Return httpCon.GetContent(GetMethod, _ - CreateTwitterUri("/1/direct_messages.xml"), _ + CreateTwitterUri("/1/direct_messages.json"), _ Nothing, _ content, _ TwitterApiInfo.HttpHeaders, _ @@ -382,7 +405,7 @@ End If Return httpCon.GetContent(GetMethod, _ - CreateTwitterUri("/1/direct_messages/sent.xml"), _ + CreateTwitterUri("/1/direct_messages/sent.json"), _ Nothing, _ content, _ TwitterApiInfo.HttpHeaders, _ @@ -394,7 +417,7 @@ If count <> 20 Then param.Add("count", count.ToString()) Return httpCon.GetContent(GetMethod, _ - CreateTwitterUri("/1/favorites.xml"), _ + CreateTwitterUri("/1/favorites.json"), _ param, _ content, _ TwitterApiInfo.HttpHeaders, _ @@ -632,9 +655,8 @@ #Region "Proxy API" Private Shared _twitterUrl As String = "api.twitter.com" - 'Private TwitterUrl As String = "sorayukigtap.appspot.com/api" Private Shared _TwitterSearchUrl As String = "search.twitter.com" - 'Private TwitterSearchUrl As String = "sorayukigtap.appspot.com/search" + Private Shared _twitterStreamUrl As String = "userstream.twitter.com" Private Function CreateTwitterUri(ByVal path As String) As Uri Return New Uri(String.Format("{0}{1}{2}", _protocol, _twitterUrl, path)) @@ -644,6 +666,10 @@ Return New Uri(String.Format("{0}{1}{2}", _protocol, _TwitterSearchUrl, path)) End Function + Private Function CreateTwitterStreamUri(ByVal path As String) As Uri + Return New Uri(String.Format("{0}{1}{2}", "https://", _twitterStreamUrl, path)) + End Function + Public Shared WriteOnly Property TwitterUrl() As String Set(ByVal value As String) _twitterUrl = value @@ -663,4 +689,35 @@ TwitterApiInfo.ParseHttpHeaders(TwitterApiInfo.HttpHeaders) End If End Sub + + Public Function UserStream(ByRef content As Stream, ByVal allAtReplies As Boolean, ByVal trackwords As String) As HttpStatusCode + Dim param As New Dictionary(Of String, String) + + If allAtReplies Then + param.Add("replies", "all") + End If + + If Not String.IsNullOrEmpty(trackwords) Then + param.Add("track", trackwords) + End If + + Return httpCon.GetContent(GetMethod, _ + CreateTwitterStreamUri("/2/user.json"), _ + param, _ + content) + End Function + + Public Sub RequestAbort() + httpCon.RequestAbort() + End Sub + + Public Function Clone() As Object Implements System.ICloneable.Clone + Dim myCopy As New HttpTwitter + If Me.connectionType = AuthMethod.Basic Then + myCopy.Initialize(Me.AuthenticatedUsername, Me.Password) + Else + myCopy.Initialize(Me.AccessToken, Me.AccessTokenSecret, Me.AuthenticatedUsername) + End If + Return myCopy + End Function End Class Modified: trunk/Tween/Connection/IHttpConnection.vb =================================================================== --- trunk/Tween/Connection/IHttpConnection.vb 2010-11-30 17:06:51 UTC (rev 1144) +++ trunk/Tween/Connection/IHttpConnection.vb 2010-12-01 09:14:29 UTC (rev 1145) @@ -6,6 +6,11 @@ Function GetContent(ByVal method As String, _ ByVal requestUri As Uri, _ ByVal param As Dictionary(Of String, String), _ + ByRef content As Stream) As HttpStatusCode + + Function GetContent(ByVal method As String, _ + ByVal requestUri As Uri, _ + ByVal param As Dictionary(Of String, String), _ ByRef content As String, _ ByVal headerInfo As Dictionary(Of String, String), _ ByVal callback As CallbackDelegate) As HttpStatusCode @@ -18,9 +23,11 @@ ByVal headerInfo As Dictionary(Of String, String), _ ByVal callback As CallbackDelegate) As HttpStatusCode + Sub RequestAbort() + Function Authenticate(ByVal url As Uri, ByVal username As String, ByVal password As String) As HttpStatusCode - ReadOnly Property AuthUsername() As String +ReadOnly Property AuthUsername() As String ''' <summary> ''' APIメソッドの処理が終了し呼び出し元へ戻る直前に呼ばれるデリゲート ''' </summary> Copied: trunk/Tween/DataModel.vb (from rev 1144, branches/UserStream/Tween/DataModel.vb) =================================================================== --- trunk/Tween/DataModel.vb (rev 0) +++ trunk/Tween/DataModel.vb 2010-12-01 09:14:29 UTC (rev 1145) @@ -0,0 +1,218 @@ +Imports System.Runtime.InteropServices +Imports System.Runtime.Serialization + +Public Class TwitterDataModel + + <DataContract()> _ + Public Class Urls + <DataMember(Name:="urls")> Public Urls As String + <DataMember(Name:="indices")> Public Indices(2) As Integer + End Class + + <DataContract()> _ + Public Class Hashtags + <DataMember(Name:="indices")> Public Indices(2) As Integer + <DataMember(Name:="text")> Public Text As String + End Class + + <DataContract()> _ + Public Class UserMentions + <DataMember(Name:="indices")> Public Indices(2) As Integer + <DataMember(Name:="screen_name")> Public ScreenName As String + <DataMember(Name:="name")> Public Name As String + <DataMember(Name:="id")> Public Id As Int64 + End Class + + <DataContract()> _ + Public Class Entities + <DataMember(Name:="urls")> Public Urls() As Urls + <DataMember(Name:="hashtags")> Public Hashtags() As Hashtags + <DataMember(Name:="user_mentions")> Public UserMentions() As UserMentions + End Class + + <DataContract()> _ + Public Class User + <DataMember(Name:="statuses_count")> Public StatusesCount As Int64 + <DataMember(Name:="profile_sidebar_fill_color")> Public ProfileSidebarFillColor As String + <DataMember(Name:="show_all_inline_media")> Public ShowAllInlineMedia As Boolean + <DataMember(Name:="profile_use_background_image")> Public ProfileUseBackgroundImage As Boolean + <DataMember(Name:="contributors_enabled")> Public ContributorsEnabled As Boolean + <DataMember(Name:="profile_sidebar_border_color")> Public ProfileSidebarBorderColor As String + <DataMember(Name:="location")> Public Location As String + <DataMember(Name:="geo_enabled")> Public GeoEnabled As Boolean + <DataMember(Name:="description")> Public Description As String + <DataMember(Name:="friends_count")> Public FriendsCount As Integer + <DataMember(Name:="verified")> Public Verified As Boolean + <DataMember(Name:="favourites_count")> Public FavouritesCount As Integer + <DataMember(Name:="created_at")> Public CreatedAt As String + <DataMember(Name:="profile_background_color")> Public ProfileBackgroundColor As String + <DataMember(Name:="follow_request_sent")> Public FollowRequestSent As String + <DataMember(Name:="time_zone")> Public TimeZone As String + <DataMember(Name:="followers_count")> Public FollowersCount As Integer + <DataMember(Name:="url")> Public Url As String + <DataMember(Name:="profile_image_url")> Public ProfileImageUrl As String + <DataMember(Name:="notifications")> Public Notifications As String + <DataMember(Name:="profile_text_color")> Public ProfileTextColor As String + <DataMember(Name:="protected")> Public [Protected] As Boolean + <DataMember(Name:="id_str")> Public IdStr As String + <DataMember(Name:="lang")> Public Lang As String + <DataMember(Name:="profile_background_image_url")> Public ProfileBackgroundImageUrl As String + <DataMember(Name:="screen_name")> Public ScreenName As String + <DataMember(Name:="name")> Public Name As String + <DataMember(Name:="following")> Public Following As String + <DataMember(Name:="profile_link_color")> Public ProfileLinkColor As String + <DataMember(Name:="id")> Public Id As Int64 + <DataMember(Name:="listed_count")> Public ListedCount As Integer + <DataMember(Name:="profile_background_tile")> Public ProfileBackgroundTile As Boolean + <DataMember(Name:="utc_offset")> Public UtcOffset As String + <DataMember(Name:="place", IsRequired:=False)> Public Place As Place + End Class + + <DataContract()> _ + Public Class Coordinates + <DataMember(Name:="type", IsRequired:=False)> Public Type As String + <DataMember(Name:="coordinates", IsRequired:=False)> Public Coordinates(2) As Double + End Class + + <DataContract()> _ + Public Class Geo + <DataMember(Name:="type", IsRequired:=False)> Public Type As String + <DataMember(Name:="coordinates", IsRequired:=False)> Public Coordinates(2) As Double + End Class + + <DataContract()> _ + Public Class BoundingBox + <DataMember(Name:="type", IsRequired:=False)> Public Type As String + <DataMember(Name:="coordinates", IsRequired:=False)> Public Coordinates As Double()()() + End Class + + <DataContract()> _ + Public Class Attributes + <DataMember(Name:="street_address", IsRequired:=False)> Public StreetAddress As String + End Class + + <DataContract()> _ + Public Class Place + <DataMember(Name:="url")> Public Url As String + <DataMember(Name:="bounding_box", IsRequired:=False)> Public BoundingBox As BoundingBox + <DataMember(Name:="street_address", IsRequired:=False)> Public StreetAddress As String + <DataMember(Name:="full_name")> Public FullName As String + <DataMember(Name:="name")> Public Name As String + '<DataMember(Name:="attributes", IsRequired:=False)> Public attributes As attributes + <DataMember(Name:="country_code", IsRequired:=False)> Public CountryCode As String + <DataMember(Name:="id")> Public Id As String + <DataMember(Name:="country")> Public Country As String + <DataMember(Name:="place_type")> Public PlaceType As String + End Class + + <DataContract()> _ + Public Class RetweetedStatus + <DataMember(Name:="coordinates", IsRequired:=False)> Public Coordinates As Coordinates + <DataMember(Name:="geo", IsRequired:=False)> Public Geo As Geo + <DataMember(Name:="in_reply_to_user_id")> Public InReplyToUserId As String + <DataMember(Name:="source")> Public Source As String + <DataMember(Name:="user")> Public User As User + <DataMember(Name:="in_reply_to_screen_name")> Public InReplyToScreenName As String + <DataMember(Name:="created_at")> Public CreatedAt As String + <DataMember(Name:="contributors")> Public Contributors As Integer() + <DataMember(Name:="favorited")> Public Favorited As Boolean + <DataMember(Name:="truncated")> Public Truncated As Boolean + <DataMember(Name:="id")> Public Id As Int64 + <DataMember(Name:="annotations", IsRequired:=False)> Public Annotations As String + <DataMember(Name:="place", IsRequired:=False)> Public Place As Place + <DataMember(Name:="in_reply_to_status_id")> Public InReplyToStatusId As String + <DataMember(Name:="text")> Public Text As String + End Class + + <DataContract()> _ + Public Class Status + <DataMember(Name:="in_reply_to_status_id_str")> Public InReplyToStatusIdStr As String + <DataMember(Name:="contributors", IsRequired:=False)> Public Contributors As Integer() + <DataMember(Name:="in_reply_to_screen_name")> Public InReplyToScreenName As String + <DataMember(Name:="in_reply_to_status_id")> Public InReplyToStatusId As String + <DataMember(Name:="in_reply_to_user_id_str")> Public InReplyToUserIdStr As String + <DataMember(Name:="retweet_count")> Public RetweetCount As String + <DataMember(Name:="created_at")> Public CreatedAt As String + <DataMember(Name:="geo", IsRequired:=False)> Public Geo As Geo + <DataMember(Name:="retweeted")> Public Retweeted As Boolean + <DataMember(Name:="in_reply_to_user_id")> Public InReplyToUserId As String + <DataMember(Name:="source")> Public Source As String + <DataMember(Name:="id_str")> Public IdStr As String + <DataMember(Name:="coordinates", IsRequired:=False)> Public Coordinates As Coordinates + <DataMember(Name:="truncated")> Public Truncated As Boolean + <DataMember(Name:="place", IsRequired:=False)> Public Place As Place + <DataMember(Name:="user")> Public User As User + <DataMember(Name:="retweeted_status", IsRequired:=False)> Public RetweetedStatus As RetweetedStatus + <DataMember(Name:="id")> Public Id As Int64 + <DataMember(Name:="favorited")> Public Favorited As Boolean + <DataMember(Name:="text")> Public Text As String + End Class + + <DataContract()> _ + Public Class Directmessage + <DataMember(Name:="created_at")> Public CreatedAt As String + <DataMember(Name:="sender_id")> Public SenderId As Int64 + <DataMember(Name:="sender_screen_name")> Public SenderScreenName As String + <DataMember(Name:="sender")> Public Sender As User + <DataMember(Name:="id_str")> Public IdStr As String + <DataMember(Name:="recipient")> Public Recipient As User + <DataMember(Name:="recipient_screen_name")> Public RecipientScreenName As String + <DataMember(Name:="recipient_id")> Public RecipientId As Int64 + <DataMember(Name:="id")> Public Id As Int64 + <DataMember(Name:="text")> Public Text As String + End Class + + <DataContract()> _ + Public Class Friendsevent + <DataMember(Name:="friends")> Public Friends As Int64() + End Class + + <DataContract()> _ + Public Class DeletedStatusContent + <DataMember(Name:="id")> Public Id As Int64 + <DataMember(Name:="user_id")> Public UserId As Int64 + End Class + + <DataContract()> _ + Public Class DeletedStatus + <DataMember(Name:="status")> Public Status As DeletedStatusContent + End Class + + <DataContract()> _ + Public Class DeleteEvent + <DataMember(Name:="delete")> Public [Event] As DeletedStatus + End Class + + <DataContract()> _ + Public Class DeletedDirectmessage + <DataMember(Name:="direct_message")> Public Directmessage As DeletedStatusContent + End Class + + <DataContract()> _ + Public Class DeleteDirectmessageEvent + <DataMember(Name:="delete")> Public [Event] As DeletedDirectmessage + End Class + <DataContract()> _ + Public Class DirectmessageEvent + <DataMember(Name:="direct_message")> Public Directmessage As Directmessage + End Class + + <DataContract()> _ + Public Class TrackCount + <DataMember(Name:="track")> Public Track As Integer + End Class + + <DataContract()> _ + Public Class LimitEvent + <DataMember(Name:="limit")> Public Limit As TrackCount + End Class + + <DataContract()> _ + Public Class EventData + <DataMember(Name:="target")> Public Target As User + <DataMember(Name:="target_object")> Public TargetObject As Status + <DataMember(Name:="created_at")> Public CreatedAt As String + <DataMember(Name:="event")> Public [Event] As String + <DataMember(Name:="source")> Public Source As User + End Class +End Class Modified: trunk/Tween/MyCommon.vb =================================================================== --- trunk/Tween/MyCommon.vb 2010-11-30 17:06:51 UTC (rev 1144) +++ trunk/Tween/MyCommon.vb 2010-12-01 09:14:29 UTC (rev 1145) @@ -117,6 +117,7 @@ PublicSearch '公式検索 List 'Lists Related '関連発言 + UserStream 'UserStream ''' ErrorState 'エラー表示のみで後処理終了(認証エラー時など) End Enum Modified: trunk/Tween/Tween.Designer.vb =================================================================== --- trunk/Tween/Tween.Designer.vb 2010-11-30 17:06:51 UTC (rev 1144) +++ trunk/Tween/Tween.Designer.vb 2010-12-01 09:14:29 UTC (rev 1145) @@ -149,12 +149,13 @@ Me.RtUnOpMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.QtOpMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.ToolStripSeparator25 = New System.Windows.Forms.ToolStripSeparator() + Me.FavOpMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.FavoriteRetweetMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.FavoriteRetweetUnofficialMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.UnFavOpMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.ToolStripSeparator38 = New System.Windows.Forms.ToolStripSeparator() - Me.FavOpMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.UnFavOpMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.ShowProfMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ShowRelatedStatusesMenuItem2 = New System.Windows.Forms.ToolStripMenuItem() Me.OpenOpMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.OpenHomeOpMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.OpenFavOpMenuItem = New System.Windows.Forms.ToolStripMenuItem() @@ -212,6 +213,12 @@ Me.HashManageToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.RtCountMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.ListManageToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.MenuItemUserStream = New System.Windows.Forms.ToolStripMenuItem() + Me.PauseToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.StopToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripSeparator40 = New System.Windows.Forms.ToolStripSeparator() + Me.TrackToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.AllrepliesToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.MenuItemHelp = New System.Windows.Forms.ToolStripMenuItem() Me.MatomeMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.ShortcutKeyListMenuItem = New System.Windows.Forms.ToolStripMenuItem() @@ -224,6 +231,7 @@ Me.DebugModeToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.DumpPostClassToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.TraceOutToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.CacheInfoMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.ContextMenuOperate = New System.Windows.Forms.ContextMenuStrip(Me.components) Me.ReplyStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.ReplyAllStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() @@ -232,12 +240,13 @@ Me.ReTweetStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.QuoteStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.ToolStripSeparator39 = New System.Windows.Forms.ToolStripSeparator() + Me.FavAddToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.FavoriteRetweetContextMenu = New System.Windows.Forms.ToolStripMenuItem() Me.FavoriteRetweetUnofficialContextMenu = New System.Windows.Forms.ToolStripMenuItem() + Me.FavRemoveToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.ToolStripSeparator2 = New System.Windows.Forms.ToolStripSeparator() - Me.FavAddToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.FavRemoveToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.ShowProfileMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ShowRelatedStatusesMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.ToolStripMenuItem6 = New System.Windows.Forms.ToolStripMenuItem() Me.MoveToHomeToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.MoveToFavToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() @@ -275,9 +284,6 @@ Me.TimerRefreshIcon = New System.Windows.Forms.Timer(Me.components) Me.OpenFileDialog1 = New System.Windows.Forms.OpenFileDialog() Me.ToolTip1 = New System.Windows.Forms.ToolTip(Me.components) - Me.ShowRelatedStatusesMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.CacheInfoMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.ShowRelatedStatusesMenuItem2 = New System.Windows.Forms.ToolStripMenuItem() Me.ToolStripContainer1.BottomToolStripPanel.SuspendLayout() Me.ToolStripContainer1.ContentPanel.SuspendLayout() Me.ToolStripContainer1.TopToolStripPanel.SuspendLayout() @@ -374,6 +380,7 @@ ' Me.ContextMenuPostMode.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ToolStripMenuItemUrlMultibyteSplit, Me.ToolStripMenuItemApiCommandEvasion, Me.ToolStripMenuItemUrlAutoShorten, Me.IdeographicSpaceToSpaceToolStripMenuItem, Me.MultiLineMenuItem, Me.ToolStripFocusLockMenuItem, Me.ToolStripSeparator35, Me.ImageSelectMenuItem, Me.ToolStripSeparator8, Me.HashToggleMenuItem, Me.HashManageMenuItem}) Me.ContextMenuPostMode.Name = "ContextMenuStripPostMode" + Me.ContextMenuPostMode.OwnerItem = Me.HashStripSplitButton resources.ApplyResources(Me.ContextMenuPostMode, "ContextMenuPostMode") ' 'ToolStripMenuItemUrlMultibyteSplit @@ -919,7 +926,7 @@ 'MenuStrip1 ' resources.ApplyResources(Me.MenuStrip1, "MenuStrip1") - Me.MenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.MenuItemFile, Me.MenuItemEdit, Me.MenuItemOperate, Me.MenuItemTab, Me.MenuItemCommand, Me.MenuItemHelp}) + Me.MenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.MenuItemFile, Me.MenuItemEdit, Me.MenuItemOperate, Me.MenuItemTab, Me.MenuItemCommand, Me.MenuItemUserStream, Me.MenuItemHelp}) Me.MenuStrip1.Name = "MenuStrip1" Me.MenuStrip1.RenderMode = System.Windows.Forms.ToolStripRenderMode.Professional ' @@ -1079,6 +1086,11 @@ Me.ToolStripSeparator25.Name = "ToolStripSeparator25" resources.ApplyResources(Me.ToolStripSeparator25, "ToolStripSeparator25") ' + 'FavOpMenuItem + ' + Me.FavOpMenuItem.Name = "FavOpMenuItem" + resources.ApplyResources(Me.FavOpMenuItem, "FavOpMenuItem") + ' 'FavoriteRetweetMenuItem ' Me.FavoriteRetweetMenuItem.Name = "FavoriteRetweetMenuItem" @@ -1089,26 +1101,26 @@ Me.FavoriteRetweetUnofficialMenuItem.Name = "FavoriteRetweetUnofficialMenuItem" resources.ApplyResources(Me.FavoriteRetweetUnofficialMenuItem, "FavoriteRetweetUnofficialMenuItem") ' + 'UnFavOpMenuItem + ' + Me.UnFavOpMenuItem.Name = "UnFavOpMenuItem" + resources.ApplyResources(Me.UnFavOpMenuItem, "UnFavOpMenuItem") + ' 'ToolStripSeparator38 ' Me.ToolStripSeparator38.Name = "ToolStripSeparator38" resources.ApplyResources(Me.ToolStripSeparator38, "ToolStripSeparator38") ' - 'FavOpMenuItem - ' - Me.FavOpMenuItem.Name = "FavOpMenuItem" - resources.ApplyResources(Me.FavOpMenuItem, "FavOpMenuItem") - ' - 'UnFavOpMenuItem - ' - Me.UnFavOpMenuItem.Name = "UnFavOpMenuItem" - resources.ApplyResources(Me.UnFavOpMenuItem, "UnFavOpMenuItem") - ' 'ShowProfMenuItem ' Me.ShowProfMenuItem.Name = "ShowProfMenuItem" resources.ApplyResources(Me.ShowProfMenuItem, "ShowProfMenuItem") ' + 'ShowRelatedStatusesMenuItem2 + ' + Me.ShowRelatedStatusesMenuItem2.Name = "ShowRelatedStatusesMenuItem2" + resources.ApplyResources(Me.ShowRelatedStatusesMenuItem2, "ShowRelatedStatusesMenuItem2") + ' 'OpenOpMenuItem ' Me.OpenOpMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.OpenHomeOpMenuItem, Me.OpenFavOpMenuItem, Me.OpenStatusOpMenuItem, Me.OpenRepSourceOpMenuItem, Me.OpenFavotterOpMenuItem, Me.OpenUrlOpMenuItem, Me.OpenRterHomeMenuItem}) @@ -1404,6 +1416,39 @@ Me.ListManageToolStripMenuItem.Name = "ListManageToolStripMenuItem" resources.ApplyResources(Me.ListManageToolStripMenuItem, "ListManageToolStripMenuItem") ' + 'MenuItemUserStream + ' + Me.MenuItemUserStream.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.PauseToolStripMenuItem, Me.StopToolStripMenuItem, Me.ToolStripSeparator40, Me.TrackToolStripMenuItem, Me.AllrepliesToolStripMenuItem}) + resources.ApplyResources(Me.MenuItemUserStream, "MenuItemUserStream") + Me.MenuItemUserStream.Name = "MenuItemUserStream" + ' + 'PauseToolStripMenuItem + ' + resources.ApplyResources(Me.PauseToolStripMenuItem, "PauseToolStripMenuItem") + Me.PauseToolStripMenuItem.Name = "PauseToolStripMenuItem" + ' + 'StopToolStripMenuItem + ' + Me.StopToolStripMenuItem.Name = "StopToolStripMenuItem" + resources.ApplyResources(Me.StopToolStripMenuItem, "StopToolStripMenuItem") + ' + 'ToolStripSeparator40 + ' + Me.ToolStripSeparator40.Name = "ToolStripSeparator40" + resources.ApplyResources(Me.ToolStripSeparator40, "ToolStripSeparator40") + ' + 'TrackToolStripMenuItem + ' + Me.TrackToolStripMenuItem.CheckOnClick = True + Me.TrackToolStripMenuItem.Name = "TrackToolStripMenuItem" + resources.ApplyResources(Me.TrackToolStripMenuItem, "TrackToolStripMenuItem") + ' + 'AllrepliesToolStripMenuItem + ' + Me.AllrepliesToolStripMenuItem.CheckOnClick = True + Me.AllrepliesToolStripMenuItem.Name = "AllrepliesToolStripMenuItem" + resources.ApplyResources(Me.AllrepliesToolStripMenuItem, "AllrepliesToolStripMenuItem") + ' 'MenuItemHelp ' Me.MenuItemHelp.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.MatomeMenuItem, Me.ShortcutKeyListMenuItem, Me.ToolStripSeparator16, Me.VerUpMenuItem, Me.ToolStripSeparator14, Me.ApiInfoMenuItem, Me.ToolStripSeparator7, Me.AboutMenuItem, Me.DebugModeToolStripMenuItem}) @@ -1468,6 +1513,11 @@ Me.TraceOutToolStripMenuItem.Name = "TraceOutToolStripMenuItem" resources.ApplyResources(Me.TraceOutToolStripMenuItem, "TraceOutToolStripMenuItem") ' + 'CacheInfoMenuItem + ' + Me.CacheInfoMenuItem.Name = "CacheInfoMenuItem" + resources.ApplyResources(Me.CacheInfoMenuItem, "CacheInfoMenuItem") + ' 'ContextMenuOperate ' Me.ContextMenuOperate.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ReplyStripMenuItem, Me.ReplyAllStripMenuItem, Me.DMStripMenuItem, Me.ReTweetOriginalStripMenuItem, Me.ReTweetStripMenuItem, Me.QuoteStripMenuItem, Me.ToolStripSeparator39, Me.FavAddToolStripMenuItem, Me.FavoriteRetweetContextMenu, Me.FavoriteRetweetUnofficialContextMenu, Me.FavRemoveToolStripMenuItem, Me.ToolStripSeparator2, Me.ShowProfileMenuItem, Me.ShowRelatedStatusesMenuItem, Me.ToolStripMenuItem6, Me.ToolStripMenuItem7, Me.ListManageUserContextToolStripMenuItem2, Me.ToolStripSeparator4, Me.ToolStripMenuItem11, Me.JumpUnreadMenuItem, Me.ToolStripSeparator10, Me.SelectAllMenuItem, Me.DeleteStripMenuItem, Me.RefreshStripMenuItem, Me.RefreshMoreStripMenuItem}) @@ -1510,6 +1560,11 @@ Me.ToolStripSeparator39.Name = "ToolStripSeparator39" resources.ApplyResources(Me.ToolStripSeparator39, "ToolStripSeparator39") ' + 'FavAddToolStripMenuItem + ' + Me.FavAddToolStripMenuItem.Name = "FavAddToolStripMenuItem" + resources.ApplyResources(Me.FavAddToolStripMenuItem, "FavAddToolStripMenuItem") + ' 'FavoriteRetweetContextMenu ' Me.FavoriteRetweetContextMenu.Name = "FavoriteRetweetContextMenu" @@ -1520,26 +1575,26 @@ Me.FavoriteRetweetUnofficialContextMenu.Name = "FavoriteRetweetUnofficialContextMenu" resources.ApplyResources(Me.FavoriteRetweetUnofficialContextMenu, "FavoriteRetweetUnofficialContextMenu") ' + 'FavRemoveToolStripMenuItem + ' + Me.FavRemoveToolStripMenuItem.Name = "FavRemoveToolStripMenuItem" + resources.ApplyResources(Me.FavRemoveToolStripMenuItem, "FavRemoveToolStripMenuItem") + ' 'ToolStripSeparator2 ' Me.ToolStripSeparator2.Name = "ToolStripSeparator2" resources.ApplyResources(Me.ToolStripSeparator2, "ToolStripSeparator2") ' - 'FavAddToolStripMenuItem - ' - Me.FavAddToolStripMenuItem.Name = "FavAddToolStripMenuItem" - resources.ApplyResources(Me.FavAddToolStripMenuItem, "FavAddToolStripMenuItem") - ' - 'FavRemoveToolStripMenuItem - ' - Me.FavRemoveToolStripMenuItem.Name = "FavRemoveToolStripMenuItem" - resources.ApplyResources(Me.FavRemoveToolStripMenuItem, "FavRemoveToolStripMenuItem") - ' 'ShowProfileMenuItem ' Me.ShowProfileMenuItem.Name = "ShowProfileMenuItem" resources.ApplyResources(Me.ShowProfileMenuItem, "ShowProfileMenuItem") ' + 'ShowRelatedStatusesMenuItem + ' + Me.ShowRelatedStatusesMenuItem.Name = "ShowRelatedStatusesMenuItem" + resources.ApplyResources(Me.ShowRelatedStatusesMenuItem, "ShowRelatedStatusesMenuItem") + ' 'ToolStripMenuItem6 ' Me.ToolStripMenuItem6.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.MoveToHomeToolStripMenuItem, Me.MoveToFavToolStripMenuItem, Me.StatusOpenMenuItem, Me.RepliedStatusOpenMenuItem, Me.FavorareMenuItem, Me.OpenURLMenuItem, Me.MoveToRTHomeMenuItem}) @@ -1724,21 +1779,6 @@ ' Me.OpenFileDialog1.FileName = "OpenFileDialog1" ' - 'ShowRelatedStatusesMenuItem - ' - Me.ShowRelatedStatusesMenuItem.Name = "ShowRelatedStatusesMenuItem" - resources.ApplyResources(Me.ShowRelatedStatusesMenuItem, "ShowRelatedStatusesMenuItem") - ' - 'CacheInfoMenuItem - ' - Me.CacheInfoMenuItem.Name = "CacheInfoMenuItem" - resources.ApplyResources(Me.CacheInfoMenuItem, "CacheInfoMenuItem") - ' - 'ShowRelatedStatusesMenuItem2 - ' - Me.ShowRelatedStatusesMenuItem2.Name = "ShowRelatedStatusesMenuItem2" - resources.ApplyResources(Me.ShowRelatedStatusesMenuItem2, "ShowRelatedStatusesMenuItem2") - ' 'TweenMain ' Me.AllowDrop = True @@ -2042,5 +2082,11 @@ Friend WithEvents ToolStripSeparator2 As System.Windows.Forms.ToolStripSeparator Friend WithEvents ShowRelatedStatusesMenuItem2 As System.Windows.Forms.ToolStripMenuItem Friend WithEvents ShowRelatedStatusesMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents MenuItemUserStream As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents PauseToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents StopToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents ToolStripSeparator40 As System.Windows.Forms.ToolStripSeparator + Friend WithEvents TrackToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents AllrepliesToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem End Class Modified: trunk/Tween/Tween.resx =================================================================== --- trunk/Tween/Tween.resx 2010-11-30 17:06:51 UTC (rev 1144) +++ trunk/Tween/Tween.resx 2010-12-01 09:14:29 UTC (rev 1145) @@ -130,7 +130,7 @@ </data> <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> <data name="StatusLabelUrl.Size" type="System.Drawing.Size, System.Drawing"> - <value>243, 22</value> + <value>435, 22</value> </data> <data name="StatusLabelUrl.Text" xml:space="preserve"> <value>ToolStripStatusLabel1</value> @@ -138,12 +138,6 @@ <data name="StatusLabelUrl.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing"> <value>MiddleLeft</value> </data> - <data name="StatusLabelApi.Size" type="System.Drawing.Size, System.Drawing"> - <value>77, 22</value> - </data> - <data name="StatusLabelApi.Text" xml:space="preserve"> - <value>API ???/???</value> - </data> <data name="StatusLabel.Size" type="System.Drawing.Size, System.Drawing"> <value>71, 22</value> </data> @@ -159,9 +153,81 @@ <data name="ToolStripStatusLabel1.Size" type="System.Drawing.Size, System.Drawing"> <value>2, 22</value> </data> - <metadata name="ContextMenuPostMode.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <metadata name="ContextMenuPostMode.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <value>263, 17</value> </metadata> + <data name="ToolStripMenuItemUrlMultibyteSplit.Size" type="System.Drawing.Size, System.Drawing"> + <value>280, 22</value> + </data> + <data name="ToolStripMenuItemUrlMultibyteSplit.Text" xml:space="preserve"> + <value>URLからの全角文字列の切り離し</value> + </data> + <data name="ToolStripMenuItemApiCommandEvasion.Size" type="System.Drawing.Size, System.Drawing"> + <value>280, 22</value> + </data> + <data name="ToolStripMenuItemApiCommandEvasion.Text" xml:space="preserve"> + <value>APIコマンドを回避する</value> + </data> + <data name="ToolStripMenuItemUrlAutoShorten.Size" type="System.Drawing.Size, System.Drawing"> + <value>280, 22</value> + </data> + <data name="ToolStripMenuItemUrlAutoShorten.Text" xml:space="preserve"> + <value>自動的にURLを短縮する</value> + </data> + <data name="IdeographicSpaceToSpaceToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing"> + <value>280, 22</value> + </data> + <data name="IdeographicSpaceToSpaceToolStripMenuItem.Text" xml:space="preserve"> + <value>全角スペースを半角スペースにする</value> + </data> + <data name="MultiLineMenuItem.ShortcutKeys" type="System.Windows.Forms.Keys, System.Windows.Forms"> + <value>Ctrl+Y</value> + </data> + <data name="MultiLineMenuItem.Size" type="System.Drawing.Size, System.Drawing"> + <value>280, 22</value> + </data> + <data name="MultiLineMenuItem.Text" xml:space="preserve"> + <value>発言欄複数行入力(&M)</value> + </data> + <data name="ToolStripFocusLockMenuItem.Size" type="System.Drawing.Size, System.Drawing"> + <value>280, 22</value> + </data> + <data name="ToolStripFocusLockMenuItem.Text" xml:space="preserve"> + <value>フォーカスを発言欄へロックする</value> + </data> + <data name="ToolStripSeparator35.Size" type="System.Drawing.Size, System.Drawing"> + <value>277, 6</value> + </data> + <data name="ImageSelectMenuItem.ShortcutKeys" type="System.Windows.Forms.Keys, System.Windows.Forms"> + <value>Ctrl+Shift+P</value> + </data> + <data name="ImageSelectMenuItem.Size" type="System.Drawing.Size, System.Drawing"> + <value>280, 22</value> + </data> + <data name="ImageSelectMenuItem.Text" xml:space="preserve"> + <value>投稿画像選択(&P)</value> + </data> + <data name="ToolStripSeparator8.Size" type="System.Drawing.Size, System.Drawing"> + <value>277, 6</value> + </data> + <data name="HashToggleMenuItem.ShortcutKeys" type="System.Windows.Forms.Keys, System.Windows.Forms"> + <value>Ctrl+Shift+T</value> + </data> + <data name="HashToggleMenuItem.Size" type="System.Drawing.Size, System.Drawing"> + <value>280, 22</value> + </data> + <data name="HashToggleMenuItem.Text" xml:space="preserve"> + <value>ハッシュタグ自動付加</value> + </data> + <data name="HashManageMenuItem.ShortcutKeys" type="System.Windows.Forms.Keys, System.Windows.Forms"> + <value>Ctrl+T</value> + </data> + <data name="HashManageMenuItem.Size" type="System.Drawing.Size, System.Drawing"> + <value>280, 22</value> + </data> + <data name="HashManageMenuItem.Text" xml:space="preserve"> + <value>ハッシュタグ設定</value> + </data> <data name="ContextMenuPostMode.Size" type="System.Drawing.Size, System.Drawing"> <value>281, 214</value> </data> @@ -181,7 +247,7 @@ <value>0, 0</value> </data> <data name="StatusStrip1.Size" type="System.Drawing.Size, System.Drawing"> - <value>457, 27</value> + <value>574, 27</value> </data> <data name="StatusStrip1.TabIndex" type="System.Int32, mscorlib"> <value>0</value> @@ -222,6 +288,105 @@ <data name="SplitContainer1.Orientation" type="System.Windows.Forms.Orientation, System.Windows.Forms"> <value>Horizontal</value> </data> + <data name="ListTab.Alignment" type="System.Windows.Forms.TabAlignment, System.Windows.Forms"> + <value>Bottom</value> + </data> + <metadata name="ContextMenuTabProperty.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>130, 99</value> + </metadata> + <data name="AddTabMenuItem.Size" type="System.Drawing.Size, System.Drawing"> + <value>226, 22</value> + </data> + <data name="AddTabMenuItem.Text" xml:space="preserve"> + <value>タブ作成(&N)...</value> + </data> + <data name="TabRenameMenuItem.Size" type="System.Drawing.Size, System.Drawing"> + <value>226, 22</value> + </data> + <data name="TabRenameMenuItem.Text" xml:space="preserve"> + <value>タブ名の変更(&R)</value> + </data> + <data name="ToolStripSeparator20.Size" type="System.Drawing.Size, System.Drawing"> + <value>223, 6</value> + </data> + <data name="UreadManageMenuItem.Size" type="System.Drawing.Size, System.Drawing"> + <value>226, 22</value> + </data> + <data name="UreadManageMenuItem.Text" xml:space="preserve"> + <value>未読管理(&U)</value> + </data> + <data name="NotifyDispMenuItem.Size" type="System.Drawing.Size, System.Drawing"> + <value>226, 22</value> + </data> + <data name="NotifyDispMenuItem.Text" xml:space="preserve"> + <value>新着通知表示(&Q)</value> + </data> + <data name="SoundFileComboBox.Size" type="System.Drawing.Size, System.Drawing"> + <value>121, 26</value> + </data> + <data name="SoundFileComboBox.ToolTipText" xml:space="preserve"> + <value>再生するwavファイルを指定してください</value> + </data> + <data name="ToolStripSeparator18.Size" type="System.Drawing.Size, System.Drawing"> + <value>223, 6</value> + </data> + <data name="FilterEditMenuItem.Size" type="System.Drawing.Size, System.Drawing"> + <value>226, 22</value> + </data> + <data name="FilterEditMenuItem.Text" xml:space="preserve"> + <value>振り分けルール編集(&F)...</value> + </data> + <data name="ToolStripSeparator19.Size" type="System.Drawing.Size, System.Drawing"> + <value>223, 6</value> + </data> + <data name="ClearTabMenuItem.Size" type="System.Drawing.Size, System.Drawing"> + <value>226, 22</value> + </data> + <data name="ClearTabMenuItem.Text" xml:space="preserve"> + <value>このタブの発言をクリア(&C)</value> + </data> + <data name="ToolStripSeparator11.Size" type="System.Drawing.Size, System.Drawing"> + <value>223, 6</value> + </data> + <data name="DeleteTabMenuItem.Size" type="System.Drawing.Size, System.Drawing"> + <value>226, 22</value> + </data> + <data name="DeleteTabMenuItem.Text" xml:space="preserve"> + <value>タブ削除(&D)</value> + </data> + <data name="ContextMenuTabProperty.Size" type="System.Drawing.Size, System.Drawing"> + <value>227, 212</value> + </data> + <data name=">>ContextMenuTabProperty.Name" xml:space="preserve"> + <value>ContextMenuTabProperty</value> + </data> + <data name=">>ContextMenuTabProperty.Type" xml:space="preserve"> + <value>System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </data> + <data name="ListTab.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms"> + <value>Fill</value> + </data> + <metadata name="TabImage.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>17, 99</value> + </metadata> + <data name="TabImage.ImageSize" type="System.Drawing.Size, System.Drawing"> + <value>16, 16</value> + </data> + <data name="ListTab.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms"> + <value>Disable</value> + </data> + <data name="ListTab.Location" type="System.Drawing.Point, System.Drawing"> + <value>0, 0</value> + </data> + <data name="ListTab.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms"> + <value>0, 0, 0, 0</value> + </data> + <data name="ListTab.Size" type="System.Drawing.Size, System.Drawing"> + <value>570, 220</value> + </data> + <data name="ListTab.TabIndex" type="System.Int32, mscorlib"> + <value>0</value> + </data> <data name=">>ListTab.Name" xml:space="preserve"> <value>ListTab</value> </data> @@ -241,7 +406,7 @@ <value>0, 0</value> </data> <data name="TimelinePanel.Size" type="System.Drawing.Size, System.Drawing"> - <value>453, 164</value> + <value>570, 220</value> </data> <data name="TimelinePanel.TabIndex" type="System.Int32, mscorlib"> <value>0</value> @@ -261,6 +426,24 @@ <data name="ImageSelectionPanel.AutoScroll" type="System.Boolean, mscorlib"> <value>True</value> </data> + <data name="ImageSelectedPicture.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms"> + <value>Fill</value> + </data> + <data name="ImageSelectedPicture.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms"> + <value>Off</value> + </data> + <data name="ImageSelectedPicture.Location" type="System.Drawing.Point, System.Drawing"> + <value>0, 0</value> + </data> + <data name="ImageSelectedPicture.Size" type="System.Drawing.Size, System.Drawing"> + <value>570, 192</value> + </data> + <data name="ImageSelectedPicture.SizeMode" type="System.Windows.Forms.PictureBoxSizeMode, System.Windows.Forms"> + <value>Zoom</value> + </data> + <data name="ImageSelectedPicture.TabIndex" type="System.Int32, mscorlib"> + <value>5</value> + </data> <data name=">>ImageSelectedPicture.Name" xml:space="preserve"> <value>ImageSelectedPicture</value> </data> @@ -273,6 +456,201 @@ <data name=">>ImageSelectedPicture.ZOrder" xml:space="preserve"> <value>0</value> </data> + <data name="ImagefilePathText.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms"> + <value>Fill</value> + </data> + <data name="ImagefilePathText.Location" type="System.Drawing.Point, System.Drawing"> + <value>57, 3</value> + </data> + <data name="ImagefilePathText.Size" type="System.Drawing.Size, System.Drawing"> + <value>278, 19</value> + </data> + <data name="ImagefilePathText.TabIndex" type="System.Int32, mscorlib"> + <value>1</value> + </data> + <data name=">>ImagefilePathText.Name" xml:space="preserve"> + <value>ImagefilePathText</value> + </data> + <data name=">>ImagefilePathText.Type" xml:space="preserve"> + <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </data> + <data name=">>ImagefilePathText.Parent" xml:space="preserve"> + <value>ImagePathPanel</value> + </data> + <data name=">>ImagefilePathText.ZOrder" xml:space="preserve"> + <value>0</value> + </data> + <data name="FilePickButton.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms"> + <value>Right</value> + </data> + <data name="FilePickButton.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms"> + <value>Off</value> + </data> + <data name="FilePickButton.Location" type="System.Drawing.Point, System.Drawing"> + <value>335, 3</value> + </data> + <data name="FilePickButton.Size" type="System.Drawing.Size, System.Drawing"> + <value>22, 22</value> + </data> + <data name="FilePickButton.TabIndex" type="System.Int32, mscorlib"> + <value>2</value> + </data> + <data name="FilePickButton.Text" xml:space="preserve"> + <value>...</value> + </data> + <data name=">>FilePickButton.Name" xml:space="preserve"> + <value>FilePickButton</value> + </data> + <data name=">>FilePickButton.Type" xml:space="preserve"> + <value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </data> + <data name=">>FilePickButton.Parent" xml:space="preserve"> + <value>ImagePathPanel</value> + </data> + <data name=">>FilePickButton.ZOrder" xml:space="preserve"> + <value>1</value> + </data> + <data name="Label2.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms"> + <value>Right</value> + </data> + <data name="Label2.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms"> + <value>Off</value> + </data> + <data name="Label2.Location" type="System.Drawing.Point, System.Drawing"> + <value>357, 3</value> + </data> + <data name="Label2.Size" type="System.Drawing.Size, System.Drawing"> + <value>57, 22</value> + </data> + <data name="Label2.TabIndex" type="System.Int32, mscorlib"> + <value>3</value> + </data> + <data name="Label2.Text" xml:space="preserve"> + <value>投稿先</value> + </data> + <data name="Label2.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing"> + <value>MiddleRight</value> + </data> + <data name=">>Label2.Name" xml:space="preserve"> + <value>Label2</value> + </data> + <data name=">>Label2.Type" xml:space="preserve"> + <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </data> + <data name=">>Label2.Parent" xml:space="preserve"> + <value>ImagePathPanel</value> + </data> + <data name=">>Label2.ZOrder" xml:space="preserve"> + <value>2</value> + </data> + <data name="ImageServiceCombo.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms"> + <value>Right</value> + </data> + <data name="ImageServiceCombo.Items" xml:space="preserve"> + <value>TwitPic</value> + </data> + <data name="ImageServiceCombo.Items1" xml:space="preserve"> + <value>TwitVideo</value> + </data> + <data name="ImageServiceCombo.Location" type="System.Drawing.Point, System.Drawing"> + <value>414, 3</value> + </data> + <data name="ImageServiceCombo.Size" type="System.Drawing.Size, System.Drawing"> + <value>97, 20</value> + </data> + <data name="ImageServiceCombo.TabIndex" type="System.Int32, mscorlib"> + <value>4</value> + </data> + <data name=">>ImageServiceCombo.Name" xml:space="preserve"> + <value>ImageServiceCombo</value> + </data> + <data name=">>ImageServiceCombo.Type" xml:space="preserve"> + <value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </data> + <data name=">>ImageServiceCombo.Parent" xml:space="preserve"> + <value>ImagePathPanel</value> + </data> + <data name=">>ImageServiceCombo.ZOrder" xml:space="preserve"> + <value>3</value> + </data> + <data name="ImageCancelButton.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms"> + <value>Right</value> + </data> + <data name="ImageCancelButton.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms"> + <value>Off</value> + </data> + <data name="ImageCancelButton.Location" type="System.Drawing.Point, System.Drawing"> + <value>511, 3</value> + </data> + <data name="ImageCancelButton.Size" type="System.Drawing.Size, System.Drawing"> + <value>56, 22</value> + </data> + <data name="ImageCancelButton.TabIndex" type="System.Int32, mscorlib"> + <value>5</value> + </data> + <data name="ImageCancelButton.Text" xml:space="preserve"> + <value>Cancel</value> + </data> + <data name=">>ImageCancelButton.Name" xml:space="preserve"> + <value>ImageCancelButton</value> + </data> + <data name=">>ImageCancelButton.Type" xml:space="preserve"> + <value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </data> + <data name=">>ImageCancelButton.Parent" xml:space="preserve"> + <value>ImagePathPanel</value> + </data> + <data name=">>ImageCancelButton.ZOrder" xml:space="preserve"> + <value>4</value> + </data> + <data name="Label1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms"> + <value>Left</value> + </data> + <data name="Label1.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms"> + <value>Off</value> + </data> + <data name="Label1.Location" type="System.Drawing.Point, System.Drawing"> + <value>3, 3</value> + </data> + <data name="Label1.Size" type="System.Drawing.Size, System.Drawing"> + <value>54, 22</value> + </data> + <data name="Label1.TabIndex" type="System.Int32, mscorlib"> + <value>0</value> + </data> + <data name="Label1.Text" xml:space="preserve"> + <value>ファイル</value> + </data> + <data name="Label1.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing"> + <value>MiddleLeft</value> + </data> + <data name=">>Label1.Name" xml:space="preserve"> + <value>Label1</value> + </data> + <data name=">>Label1.Type" xml:space="preserve"> + <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </data> + <data name=">>Label1.Parent" xml:space="preserve"> + <value>ImagePathPanel</value> + </data> + <data name=">>Label1.ZOrder" xml:space="preserve"> + <value>5</value> + </data> + <data name="ImagePathPanel.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms"> + <value>Bottom</value> + </data> + <data name="ImagePathPanel.Location" type="System.Drawing.Point, System.Drawing"> + <value>0, 192</value> + </data> + <data name="ImagePathPanel.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms"> + <value>3, 3, 3, 3</value> + </data> + <data name="ImagePathPanel.Size" type="System.Drawing.Size, System.Drawing"> + <value>570, 28</value> + </data> + <data name="ImagePathPanel.TabIndex" type="System.Int32, mscorlib"> + <value>0</value> + </data> <data name=">>ImagePathPanel.Name" xml:space="preserve"> <value>ImagePathPanel</value> </data> @@ -292,7 +670,7 @@ <value>0, 0</value> </data> <data name="ImageSelectionPanel.Size" type="System.Drawing.Size, System.Drawing"> - <value>453, 164</value> + <value>570, 220</value> </data> <data name="ImageSelectionPanel.TabIndex" type="System.Int32, mscorlib"> <value>1</value> @@ -319,7 +697,7 @@ <value>0, 0</value> </data> <data name="ProfilePanel.Size" type="System.Drawing.Size, System.Drawing"> - <value>453, 164</value> + <value>570, 220</value> </data> <data name="ProfilePanel.TabIndex" type="System.Int32, mscorlib"> <value>2</value> @@ -369,6 +747,87 @@ <data name="TableLayoutPanel1.ColumnCount" type="System.Int32, mscorlib"> <value>4</value> </data> + <metadata name="ContextMenuUserPicture.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>635, 58</value> + </metadata> + <data name="FollowToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing"> + <value>238, 22</value> + </data> + <data name="FollowToolStripMenuItem.Text" xml:space="preserve"> + <value>フォローする(&F)</value> + </data> + <data name="UnFollowToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing"> + <value>238, 22</value> + </data> + <data name="UnFollowToolStripMenuItem.Text" xml:space="preserve"> + <value>フォロー解除(&N)</value> + </data> + <data name="ShowFriendShipToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing"> + <value>238, 22</value> + </data> + <data name="ShowFriendShipToolStripMenuItem.Text" xml:space="preserve"> + <value>相互フォロー状態表示(&H)</value> + </data> + <data name="ListManageUserContextToolStripMenuItem3.Size" type="System.Drawing.Size, System.Drawing"> + <value>238, 22</value> + </data> + <data name="ListManageUserContextToolStripMenuItem3.Text" xml:space="preserve"> + <value>リスト管理(&L)</value> + </data> + <data name="ToolStripSeparator37.Size" type="System.Drawing.Size, System.Drawing"> + <value>235, 6</value> + </data> + <data name="ShowUserStatusToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing"> + <value>238, 22</value> + </data> + <data name="ShowUserStatusToolStripMenuItem.Text" xml:space="preserve"> + <value>プロフィール表示(&P)</value> + </data> + <data name="SearchPostsDetailNameToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing"> + <value>238, 22</value> + </data> + <data name="SearchPostsDetailNameToolStripMenuItem.Text" xml:space="preserve"> + <value>このユーザーの発言を検索(&S)</value> + </data> + <data name="ToolStripMenuItem1.Size" type="System.Drawing.Size, System.Drawing"> + <value>235, 6</value> + </data> + <data name="IconNameToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing"> + <value>238, 22</value> + </data> + <data name="IconNameToolStripMenuItem.Text" xml:space="preserve"> + <value>IconName</value> + </data> + <data name="SaveIconPictureToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing"> + <value>238, 22</value> + </data> + <data name="SaveIconPictureToolStripMenuItem.Text" xml:space="preserve"> + <value>保存(&I)...</value> + </data> + <data name="ContextMenuUserPicture.Size" type="System.Drawing.Size, System.Drawing"> + <value>239, 192</value> + </data> + <data name=">>ContextMenuUserPicture.Name" xml:space="preserve"> + <value>ContextMenuUserPicture</value> + </data> + <data name=">>ContextMenuUserPicture.Type" xml:space="preserve"> + <value>System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </data> + <data name="UserPicture.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms"> + <value>Off</value> + </data> + <data name="UserPicture.Location" type="System.Drawing.Point, System.Drawing"> + <value>3, 3</value> + </data> + <data name="UserPicture.Size" type="System.Drawing.Size, System.Drawing"> + <value>50, 50</value> + </data> + <data name="UserPicture.SizeMode" type="System.Windows.Forms.PictureBoxSizeMode, System.Windows.Forms"> + <value>Zoom</value> + </data> + <data name="UserPicture.TabIndex" type="System.Int32, mscorlib"> + <value>5</value> + </data> <data name=">>UserPicture.Name" xml:space="preserve"> <value>UserPicture</value> </data> @@ -381,6 +840,237 @@ <data name=">>UserPicture.ZOrder" xml:space="preserve"> <value>0</value> </data> + <data name="NameLabel.AutoSize" type="System.Boolean, mscorlib"> + <value>True</value> + </data> + <data name="NameLabel.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms"> + <value>Fill</value> + </data> + <data name="NameLabel.Font" type="System.Drawing.Font, System.Drawing"> + <value>MS UI Gothic, 9pt, style=Bold</value> + </data> + <data name="NameLabel.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms"> + <value>Off</value> + </data> + <data name="NameLabel.Location" type="System.Drawing.Point, System.Drawing"> + <value>59, 3</value> + </data> + <data name="NameLabel.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms"> + <value>3, 3, 3, 0</value> + </data> + <data name="NameLabel.Size" type="System.Drawing.Size, System.Drawing"> + <value>323, 14</value> + </data> + <data name="NameLabel.TabIndex" type="System.Int32, mscorlib"> + <value>0</value> + </data> + <data name="NameLabel.Text" xml:space="preserve"> + <value>LblName</value> + </data> + <data name="NameLabel.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing"> + <value>MiddleLeft</value> + </data> + <data name=">>NameLabel.Name" xml:space="preserve"> + <value>NameLabel</value> + </data> + <data name=">>NameLabel.Type" xml:space="preserve"> + <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </data> + <data name=">>NameLabel.Parent" xml:space="preserve"> + <value>TableLayoutPanel1</value> + </data> + <data name=">>NameLabel.ZOrder" xml:space="preserve"> + <value>1</value> + </data> + <metadata name="ContextMenuPostBrowser.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>480, 17</value> + </metadata> + <data name="SearchGoogleContextMenuItem.Size" type="System.Drawing.Size, System.Drawing"> + <value>180, 22</value> + </data> + <data name="SearchGoogleContextMenuItem.Text" xml:space="preserve"> + <value>Google(&G)</value> + </data> + <data name="SearchWikipediaContextMenuItem.Size" type="System.Drawing.Size, System.Drawing"> + <value>180, 22</value> + </data> + <data name="SearchWikipediaContextMenuItem.Text" xml:space="preserve"> + <value>Wikipedia(&W)</value> + </data> + <data name="SearchYatsContextMenuItem.Size" type="System.Drawing.Size, System.Drawing"> + <value>180, 22</value> + </data> + <data name="SearchYatsContextMenuItem.Text" xml:space="preserve"> + <value>Twitter検索(&Y)</value> + </data> + <data name="SearchPublicSearchContextMenuItem.Size" type="System.Drawing.Size, System.Drawing"> + <value>180, 22</value> + </data> + <data name="SearchPublicSearchContextMenuItem.Text" xml:space="preserve"> + <value>Twitter Search(&S)</value> + </data> + <data name="CurrentTabToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing"> + <value>180, 22</value> + </data> + <data name="CurrentTabToolStripMenuItem.Text" xml:space="preserve"> + <value>現在のタブ(&L)</value> + </data> + <data name="SelectionSearchContextMenuItem.Size" type="System.Drawing.Size, System.Drawing"> + <value>238, 22</value> + </data> + <data name="SelectionSearchContextMenuItem.Text" xml:space="preserve"> + <value>選択文字列で検索(&S)</value> + </data> + <data name="ToolStripSeparator13.Size" type="System.Drawing.Size, System.Drawing"> + <value>235, 6</value> + </data> + <data name="SelectionCopyContextMenuItem.Size" type="System.Drawing.Size, System.Drawing"> + <value>238, 22</value> + </data> + <data name="SelectionCopyContextMenuItem.Text" xml:space="preserve"> + <value>選択文字列をコピー(&C)</value> + </data> + <data name="UrlCopyContextMenuItem.Enabled" type="System.Boolean, mscorlib"> + <value>False</value> + </data> + <data name="UrlCopyContextMenuItem.Size" type="System.Drawing.Size, System.Drawing"> + <value>238, 22</value> + </data> + <data name="UrlCopyContextMenuItem.Text" xml:space="preserve"> + <value>URLをコピー(&U)</value> + </data> + <data name="SelectionAllContextMenuItem.Size" type="System.Drawing.Size, System.Drawing"> + <value>238, 22</value> + </data> + <data name="SelectionAllContextMenuItem.Text" xml:space="preserve"> + <value>すべて選択(&A)</value> + </data> + <data name="ToolStripSeparator5.Size" type="System.Drawing.Size, System.Drawing"> + <value>235, 6</value> + </data> + <data name="FollowContextMenuItem.Size" type="System.Drawing.Size, System.Drawing"> + <value>238, 22</value> + </data> + <data name="FollowContextMenuItem.Text" xml:space="preserve"> + <value>フォローする(&F)</value> + </data> + <data name="RemoveContextMenuItem.Size" type="System.Drawing.Size, System.Drawing"> + <value>238, 22</value> + </data> + <data name="RemoveContextMenuItem.Text" xml:space="preserve"> + <value>フォロー解除(&N)</value> + </data> + <data name="FriendshipContextMenuItem.Size" type="System.Drawing.Size, System.Drawing"> + <value>238, 22</value> + </data> + <data name="FriendshipContextMenuItem.Text" xml:space="preserve"> + <value>相互フォロー状態表示(&R)</value> + </data> + <data name="FriendshipAllMenuItem.Size" type="System.Drawing.Size, System.Drawing"> + <value>238, 22</value> + </data> + <data name="FriendshipAllMenuItem.Text" xml:space="preserve"> + <value>全ユーザーのフォロー状態(&A)</value> + </data> + <data name="ToolStripSeparator36.Size" type="System.Drawing.Size, System.Drawing"> + <value>235, 6</value> + </data> + <data name="ShowUserStatusContextMenuItem.Size" type="System.Drawing.Size, System.Drawing"> + <value>238, 22</value> + </data> + <data name="ShowUserStatusContextMenuItem.Text" xml:space="preserve"> + <value>プロフィール表示(&P)</value> + </data> + <data name="SearchPostsDetailToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing"> + <value>238, 22</value> + </data> + <data name="SearchPostsDetailToolStripMenuItem.Text" xml:space="preserve"> + <value>このユーザーの発言を検索(&F)</value> + </data> + <data name="ToolStripSeparator32.Size" type="System.Drawing.Size, System.Drawing"> + <value>235, 6</value> + </data> + <data name="IdFilterAddMenuItem.Size" type="System.Drawing.Size, System.Drawing"> + <value>238, 22</value> + </data> + <data name="IdFilterAddMenuItem.Text" xml:space="preserve"> + <value>ID振分ルール作成(&I)</value> + </data> + <data name="ListManageUserContextToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing"> + <value>238, 22</value> + </data> + <data name="ListManageUserContextToolStripMenuItem.Text" xml:space="preserve"> + <value>リスト管理(&L)</value> + </data> + <data name="ToolStripSeparator33.Size" type="System.Drawing.Size, System.Drawing"> + <value>235, 6</value> + </data> + <data name="UseHashtagMenuItem.Size" type="System.Drawing.Size, System.Drawing"> + <value>238, 22</value> + </data> + <data name="UseHashtagMenuItem.Text" xml:space="preserve"> + <value>ハッシュタグを固定(&H)</value> + </data> + <data name="ContextMenuPostBrowser.Size" type="System.Drawing.Size, System.Drawing"> + <value>239, 320</value> + </data> + <data name=">>ContextMenuPostBrowser.Name" xml:space="preserve"> + <value>ContextMenuPostBrowser</value> + </data> + <data name=">>ContextMenuPostBrowser.Type" xml:space="preserve"> + <value>System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </data> + <data name="PostBrowser.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms"> + <value>Fill</value> + </data> + <data name="PostBrowser.Location" type="System.Drawing.Point, System.Drawing"> + <value>59, 20</value> + </data> + <data name="PostBrowser.Size" type="System.Drawing.Size, System.Drawing"> + <value>508, 68</value> + </data> + <data name="PostBrowser.TabIndex" type="System.Int32, mscorlib"> + <value>6</value> + </data> + <data name=">>PostBrowser.Name" xml:space="preserve"> + <value>PostBrowser</value> + </data> + <data name=">>PostBrowser.Type" xml:space="preserve"> + <value>System.Windows.Forms.WebBrowser, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </data> + <data name=">>PostBrowser.Parent" xml:space="preserve"> + <value>TableLayoutPanel1</value> + </data> + <data name=">>PostBrowser.ZOrder" xml:space="preserve"> + <value>2</value> + </data> + <data name="DateTimeLabel.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms"> + <value>Top, Bottom, Right</value> + </data> + <data name="DateTimeLabel.AutoSize" type="System.Boolean, mscorlib"> + <value>True</value> + </data> + <data name="DateTimeLabel.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms"> + <value>Off</value> + </data> + <data name="DateTimeLabel.Location" type="System.Drawing.Point, System.Drawing"> + <value>464, 3</value> + </data> + <data name="DateTimeLabel.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms"> + <value>3, 3, 3, 0</value> + </data> + <data name="DateTimeLabel.Size" type="System.Drawing.Size, System.Drawing"> + <value>38, 14</value> + </data> + <data name="DateTimeLabel.TabIndex" type="System.Int32, mscorlib"> + <value>1</value> + </data> + <data name="DateTimeLabel.Text" xml:space="preserve"> + <value>Label1</value> + </data> + <data name="DateTimeLabel.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing"> + <value>MiddleRight</value> + </data> <data name=">>DateTimeLabel.Name" xml:space="preserve"> <value>DateTimeLabel</value> </data> @@ -393,11 +1083,38 @@ <data name=">>DateTimeLabel.ZOrder" xml:space="preserve"> <value>3</value> </data> + <data name="SourceLinkLabel.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms"> + <value>Top, Bottom, Left, Right</value> + </data> + <data name="SourceLinkLabel.AutoSize" type="System.Boolean, mscorlib"> + <value>True</value> + </data> + <data name="SourceLinkLabel.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms"> + <value>Off</value> + </data> + <data name="SourceLinkLabel.Location" type="System.Drawing.Point, System.Drawing"> + <value>508, 3</value> + </data> + <data name="SourceLinkLabel.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms"> + <value>3, 3, 3, 0</value> + </data> + <data name="SourceLinkLabel.Size" type="System.Drawing.Size, System.Drawing"> + <value>59, 14</value> + </data> + <data name="SourceLinkLabel.TabIndex" type="System.Int32, mscorlib"> + <value>7</value> + </data> + <data name="SourceLinkLabel.Text" xml:space="preserve"> + <value>LinkLabel1</value> + </data> + <data name="SourceLinkLabel.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing"> + <value>MiddleRight</value> + </data> <data name=">>SourceLinkLabel.Name" xml:space="preserve"> <value>SourceLinkLabel</value> </data> <data name=">>SourceLinkLabel.Type" xml:space="preserve"> - <value>System.Windows.Forms.LinkLabel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + <value>System.Windows.Forms.LinkLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </data> <data name=">>SourceLinkLabel.Parent" xml:space="preserve"> <value>TableLayoutPanel1</value> @@ -415,7 +1132,7 @@ <value>2</value> </data> <data name="TableLayoutPanel1.Size" type="System.Drawing.Size, System.Drawing"> - <value>453, 99</value> + <value>570, 91</value> </data> <data name="TableLayoutPanel1.TabIndex" type="System.Int32, mscorlib"> <value>1</value> @@ -457,7 +1174,7 @@ <value>0, 0</value> </data> <data name="StatusText.Size" type="System.Drawing.Size, System.Drawing"> - <value>365, 19</value> + <value>482, 19</value> </data> <data name="StatusText.TabIndex" type="System.Int32, mscorlib"> <value>1</value> @@ -481,7 +1198,7 @@ <value>Off</value> </data> <data name="lblLen.Location" type="System.Drawing.Point, System.Drawing"> - <value>365, 0</value> + <value>482, 0</value> </data> <data name="lblLen.Size" type="System.Drawing.Size, System.Drawing"> <value>44, 25</value> @@ -514,7 +1231,7 @@ <value>Off</value> </data> <data name="PostButton.Location" type="System.Drawing.Point, System.Drawing"> - <value>409, 0</value> + <value>526, 0</value> </data> <data name="PostButton.Size" type="System.Drawing.Size, System.Drawing"> <value>44, 25</value> @@ -553,10 +1270,10 @@ <value>19</value> </data> <data name="SplitContainer2.Size" type="System.Drawing.Size, System.Drawing"> - <value>453, 126</value> + <value>570, 118</value> </data> <data name="SplitContainer2.SplitterDistance" type="System.Int32, mscorlib"> - <value>99</value> + <value>91</value> </data> <data name="SplitContainer2.SplitterWidth" type="System.Int32, mscorlib"> <value>2</value> @@ -598,7 +1315,7 @@ <value>0, 0</value> </data> <data name="PreviewPicture.Size" type="System.Drawing.Size, System.Drawing"> - <value>77, 126</value> + <value>194, 120</value> </data> <data name="PreviewPicture.SizeMode" type="System.Windows.Forms.PictureBoxSizeMode, System.Windows.Forms"> <value>Zoom</value> @@ -625,10 +1342,10 @@ <value>Off</value> </data> <data name="PreviewScrollBar.Location" type="System.Drawing.Point, System.Drawing"> - <value>77, 0</value> + <value>194, 0</value> </data> <data name="PreviewScrollBar.Size" type="System.Drawing.Size, System.Drawing"> - <value>17, 126</value> + <value>17, 120</value> </data> <data name="PreviewScrollBar.TabIndex" type="System.Int32, mscorlib"> <value>0</value> @@ -658,7 +1375,7 @@ <value>1</value> </data> <data name="SplitContainer3.Size" type="System.Drawing.Size, System.Drawing"> - <value>453, 126</value> + <value>570, 118</value> </data> <data name="SplitContainer3.SplitterDistance" type="System.Int32, mscorlib"> <value>355</value> @@ -694,10 +1411,10 @@ <value>23</value> </data> <data name="SplitContainer1.Size" type="System.Drawing.Size, System.Drawing"> - <value>457, 300</value> + <value>574, 348</value> </data> <data name="SplitContainer1.SplitterDistance" type="System.Int32, mscorlib"> - <value>168</value> + <value>224</value> </data> <data name="SplitContainer1.SplitterWidth" type="System.Int32, mscorlib"> <value>2</value> @@ -718,7 +1435,7 @@ <value>0</value> </data> <data name="ToolStripContainer1.ContentPanel.Size" type="System.Drawing.Size, System.Drawing"> - <value>457, 300</value> + <value>574, 348</value> </data> <data name=">>ToolStripContainer1.ContentPanel.Name" xml:space="preserve"> <value>ToolStripContainer1.ContentPanel</value> @@ -763,7 +1480,7 @@ <value>2</value> </data> <data name="ToolStripContainer1.Size" type="System.Drawing.Size, System.Drawing"> - <value>457, 353</value> + <value>574, 401</value> </data> <data name="ToolStripContainer1.TabIndex" type="System.Int32, mscorlib"> <value>0</value> @@ -777,855 +1494,6 @@ <data name="MenuStrip1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms"> <value>None</value> </data> - <data name="MenuStrip1.Location" type="System.Drawing.Point, System.Drawing"> - <value>0, 0</value> - </data> - <data name="MenuStrip1.Size" type="System.Drawing.Size, System.Drawing"> - <value>457, 26</value> - </data> - <data name="MenuStrip1.TabIndex" type="System.Int32, mscorlib"> - <value>0</value> - </data> - <data name="MenuStrip1.Text" xml:space="preserve"> - <value>MenuStrip1</value> - </data> - <data name=">>MenuStrip1.Name" xml:space="preserve"> - <value>MenuStrip1</value> - </data> - <data name=">>MenuStrip1.Type" xml:space="preserve"> - <value>System.Windows.Forms.MenuStrip, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> - </data> - <data name=">>MenuStrip1.Parent" xml:space="preserve"> - <value>ToolStripContainer1.TopToolStripPanel</value> - </data> - <data name=">>MenuStrip1.ZOrder" xml:space="preserve"> - <value>0</value> - </data> - <data name=">>ToolStripContainer1.TopToolStripPanel.Name" xml:space="preserve"> - <value>ToolStripContainer1.TopToolStripPanel</value> - </data> - <data name=">>ToolStripContainer1.TopToolStripPanel.Type" xml:space="preserve"> - <value>System.Windows.Forms.ToolStripPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> - </data> - <data name=">>ToolStripContainer1.TopToolStripPanel.Parent" xml:space="preserve"> - <value>ToolStripContainer1</value> - </data> - <data name=">>ToolStripContainer1.TopToolStripPanel.ZOrder" xml:space="preserve"> - <value>3</value> - </data> - <data name=">>ToolStripContainer1.Name" xml:space="preserve"> - <value>ToolStripContainer1</value> - </data> - <data name=">>ToolStripContainer1.Type" xml:space="preserve"> - <value>System.Windows.Forms.ToolStripContainer, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> - </data> - <data name=">>ToolStripContainer1.Parent" xml:space="preserve"> - <value>$this</value> - </data> - <data name=">>ToolStripContainer1.ZOrder" xml:space="preserve"> - <value>6</value> - </data> - <data name="ToolStripMenuItemUrlMultibyteSplit.Size" type="System.Drawing.Size, System.Drawing"> - <value>280, 22</value> - </data> - <data name="ToolStripMenuItemUrlMultibyteSplit.Text" xml:space="preserve"> - <value>URLからの全角文字列の切り離し</value> - </data> - <data name="ToolStripMenuItemApiCommandEvasion.Size" type="System.Drawing.Size, System.Drawing"> - <value>280, 22</value> - </data> - <data name="ToolStripMenuItemApiCommandEvasion.Text" xml:space="preserve"> - <value>APIコマンドを回避する</value> - </data> - <data name="ToolStripMenuItemUrlAutoShorten.Size" type="System.Drawing.Size, System.Drawing"> - <value>280, 22</value> - </data> - <data name="ToolStripMenuItemUrlAutoShorten.Text" xml:space="preserve"> - <value>自動的にURLを短縮する</value> - </data> - <data name="IdeographicSpaceToSpaceToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing"> - <value>280, 22</value> - </data> - <data name="IdeographicSpaceToSpaceToolStripMenuItem.Text" xml:space="preserve"> - <value>全角スペースを半角スペースにする</value> - </data> - <data name="MultiLineMenuItem.ShortcutKeys" type="System.Windows.Forms.Keys, System.Windows.Forms"> - <value>Ctrl+Y</value> - </data> - <data name="MultiLineMenuItem.Size" type="System.Drawing.Size, System.Drawing"> - <value>280, 22</value> - </data> - <data name="MultiLineMenuItem.Text" xml:space="preserve"> - <value>発言欄複数行入力(&M)</value> - </data> - <data name="ToolStripFocusLockMenuItem.Size" type="System.Drawing.Size, System.Drawing"> - <value>280, 22</value> - </data> - <data name="ToolStripFocusLockMenuItem.Text" xml:space="preserve"> - <value>フォーカスを発言欄へロックする</value> - </data> - <data name="ToolStripSeparator35.Size" type="System.Drawing.Size, System.Drawing"> - <value>277, 6</value> - </data> - <data name="ImageSelectMenuItem.ShortcutKeys" type="System.Windows.Forms.Keys, System.Windows.Forms"> - <value>Ctrl+Shift+P</value> - </data> - <data name="ImageSelectMenuItem.Size" type="System.Drawing.Size, System.Drawing"> - <value>280, 22</value> - </data> - <data name="ImageSelectMenuItem.Text" xml:space="preserve"> - <value>投稿画像選択(&P)</value> - </data> - <data name="ToolStripSeparator8.Size" type="System.Drawing.Size, System.Drawing"> - <value>277, 6</value> - </data> - <data name="HashToggleMenuItem.ShortcutKeys" type="System.Windows.Forms.Keys, System.Windows.Forms"> - <value>Ctrl+Shift+T</value> - </data> - <data name="HashToggleMenuItem.Size" type="System.Drawing.Size, System.Drawing"> - <value>280, 22</value> - </data> - <data name="HashToggleMenuItem.Text" xml:space="preserve"> - <value>ハッシュタグ自動付加</value> - </data> - <data name="HashManageMenuItem.ShortcutKeys" type="System.Windows.Forms.Keys, System.Windows.Forms"> - <value>Ctrl+T</value> - </data> - <data name="HashManageMenuItem.Size" type="System.Drawing.Size, System.Drawing"> - <value>280, 22</value> - </data> - <data name="HashManageMenuItem.Text" xml:space="preserve"> - <value>ハッシュタグ設定</value> - </data> - <data name="ListTab.Alignment" type="System.Windows.Forms.TabAlignment, System.Windows.Forms"> - <value>Bottom</value> - </data> - <metadata name="ContextMenuTabProperty.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> - <value>130, 99</value> - </metadata> - <data name="ContextMenuTabProperty.Size" type="System.Drawing.Size, System.Drawing"> - <value>227, 212</value> - </data> - <data name=">>ContextMenuTabProperty.Name" xml:space="preserve"> - <value>ContextMenuTabProperty</value> - </data> - <data name=">>ContextMenuTabProperty.Type" xml:space="preserve"> - <value>System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> - </data> - <data name="ListTab.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms"> - <value>Fill</value> - </data> - <metadata name="TabImage.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> - <value>17, 99</value> - </metadata> - <data name="TabImage.ImageSize" type="System.Drawing.Size, System.Drawing"> - <value>16, 16</value> - </data> - <data name="ListTab.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms"> - <value>Disable</value> - </data> - <data name="ListTab.Location" type="System.Drawing.Point, System.Drawing"> - <value>0, 0</value> - </data> - <data name="ListTab.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms"> - <value>0, 0, 0, 0</value> - </data> - <data name="ListTab.Size" type="System.Drawing.Size, System.Drawing"> - <value>453, 164</value> - </data> - <data name="ListTab.TabIndex" type="System.Int32, mscorlib"> - <value>0</value> - </data> - <data name=">>ListTab.Name" xml:space="preserve"> - <value>ListTab</value> - </data> - <data name=">>ListTab.Type" xml:space="preserve"> - <value>System.Windows.Forms.TabControl, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> - </data> - <data name=">>ListTab.Parent" xml:space="preserve"> - <value>TimelinePanel</value> - </data> - <data name=">>ListTab.ZOrder" xml:space="preserve"> - <value>0</value> - </data> - <data name="AddTabMenuItem.Size" type="System.Drawing.Size, System.Drawing"> - <value>226, 22</value> - </data> - <data name="AddTabMenuItem.Text" xml:space="preserve"> - <value>タブ作成(&N)...</value> - </data> - <data name="TabRenameMenuItem.Size" type="System.Drawing.Size, System.Drawing"> - <value>226, 22</value> - </data> - <data name="TabRenameMenuItem.Text" xml:space="preserve"> - <value>タブ名の変更(&R)</value> - </data> - <data name="ToolStripSeparator20.Size" type="System.Drawing.Size, System.Drawing"> - <value>223, 6</value> - </data> - <data name="UreadManageMenuItem.Size" type="System.Drawing.Size, System.Drawing"> - <value>226, 22</value> - </data> - <data name="UreadManageMenuItem.Text" xml:space="preserve"> - <value>未読管理(&U)</value> - </data> - <data name="NotifyDispMenuItem.Size" type="System.Drawing.Size, System.Drawing"> - <value>226, 22</value> - </data> - <data name="NotifyDispMenuItem.Text" xml:space="preserve"> - <value>新着通知表示(&Q)</value> - </data> - <data name="SoundFileComboBox.Size" type="System.Drawing.Size, System.Drawing"> - <value>121, 26</value> - </data> - <data name="SoundFileComboBox.ToolTipText" xml:space="preserve"> - <value>再生するwavファイルを指定してください</value> - </data> - <data name="ToolStripSeparator18.Size" type="System.Drawing.Size, System.Drawing"> - <value>223, 6</value> - </data> - <data name="FilterEditMenuItem.Size" type="System.Drawing.Size, System.Drawing"> - <value>226, 22</value> - </data> - <data name="FilterEditMenuItem.Text" xml:space="preserve"> - <value>振り分けルール編集(&F)...</value> - </data> - <data name="ToolStripSeparator19.Size" type="System.Drawing.Size, System.Drawing"> - <value>223, 6</value> - </data> - <data name="ClearTabMenuItem.Size" type="System.Drawing.Size, System.Drawing"> - <value>226, 22</value> - </data> - <data name="ClearTabMenuItem.Text" xml:space="preserve"> - <value>このタブの発言をクリア(&C)</value> - </data> - <data name="ToolStripSeparator11.Size" type="System.Drawing.Size, System.Drawing"> - <value>223, 6</value> - </data> - <data name="DeleteTabMenuItem.Size" type="System.Drawing.Size, System.Drawing"> - <value>226, 22</value> - </data> - <data name="DeleteTabMenuItem.Text" xml:space="preserve"> - <value>タブ削除(&D)</value> - </data> - <data name="ImageSelectedPicture.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms"> - <value>Fill</value> - </data> - <data name="ImageSelectedPicture.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms"> - <value>Off</value> - </data> - <data name="ImageSelectedPicture.Location" type="System.Drawing.Point, System.Drawing"> - <value>0, 0</value> - </data> - <data name="ImageSelectedPicture.Size" type="System.Drawing.Size, System.Drawing"> - <value>453, 136</value> - </data> - <data name="ImageSelectedPicture.SizeMode" type="System.Windows.Forms.PictureBoxSizeMode, System.Windows.Forms"> - <value>Zoom</value> - </data> - <data name="ImageSelectedPicture.TabIndex" type="System.Int32, mscorlib"> - <value>5</value> - </data> - <data name=">>ImageSelectedPicture.Name" xml:space="preserve"> - <value>ImageSelectedPicture</value> - </data> - <data name=">>ImageSelectedPicture.Type" xml:space="preserve"> - <value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> - </data> - <data name=">>ImageSelectedPicture.Parent" xml:space="preserve"> - <value>ImageSelectionPanel</value> - </data> - <data name=">>ImageSelectedPicture.ZOrder" xml:space="preserve"> - <value>0</value> - </data> - <data name=">>ImagefilePathText.Name" xml:space="preserve"> - <value>ImagefilePathText</value> - </data> - <data name=">>ImagefilePathText.Type" xml:space="preserve"> - <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> - </data> - <data name=">>ImagefilePathText.Parent" xml:space="preserve"> - <value>ImagePathPanel</value> - </data> - <data name=">>ImagefilePathText.ZOrder" xml:space="preserve"> - <value>0</value> - </data> - <data name=">>FilePickButton.Name" xml:space="preserve"> - <value>FilePickButton</value> - </data> - <data name=">>FilePickButton.Type" xml:space="preserve"> - <value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> - </data> - <data name=">>FilePickButton.Parent" xml:space="preserve"> - <value>ImagePathPanel</value> - </data> - <data name=">>FilePickButton.ZOrder" xml:space="preserve"> - <value>1</value> - </data> - <data name=">>Label2.Name" xml:space="preserve"> - <value>Label2</value> - </data> - <data name=">>Label2.Type" xml:space="preserve"> - <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> - </data> - <data name=">>Label2.Parent" xml:space="preserve"> - <value>ImagePathPanel</value> - </data> - <data name=">>Label2.ZOrder" xml:space="preserve"> - <value>2</value> - </data> - <data name=">>ImageServiceCombo.Name" xml:space="preserve"> - <value>ImageServiceCombo</value> - </data> - <data name=">>ImageServiceCombo.Type" xml:space="preserve"> - <value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> - </data> - <data name=">>ImageServiceCombo.Parent" xml:space="preserve"> - <value>ImagePathPanel</value> - </data> - <data name=">>ImageServiceCombo.ZOrder" xml:space="preserve"> - <value>3</value> - </data> - <data name=">>ImageCancelButton.Name" xml:space="preserve"> - <value>ImageCancelButton</value> - </data> - <data name=">>ImageCancelButton.Type" xml:space="preserve"> - <value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> - </data> - <data name=">>ImageCancelButton.Parent" xml:space="preserve"> - <value>ImagePathPanel</value> - </data> - <data name=">>ImageCancelButton.ZOrder" xml:space="preserve"> - <value>4</value> - </data> - <data name=">>Label1.Name" xml:space="preserve"> - <value>Label1</value> - </data> - <data name=">>Label1.Type" xml:space="preserve"> - <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> - </data> - <data name=">>Label1.Parent" xml:space="preserve"> - <value>ImagePathPanel</value> - </data> - <data name=">>Label1.ZOrder" xml:space="preserve"> - <value>5</value> - </data> - <data name="ImagePathPanel.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms"> - <value>Bottom</value> - </data> - <data name="ImagePathPanel.Location" type="System.Drawing.Point, System.Drawing"> - <value>0, 136</value> - </data> - <data name="ImagePathPanel.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms"> - <value>3, 3, 3, 3</value> - </data> - <data name="ImagePathPanel.Size" type="System.Drawing.Size, System.Drawing"> - <value>453, 28</value> - </data> - <data name="ImagePathPanel.TabIndex" type="System.Int32, mscorlib"> - <value>0</value> - </data> - <data name=">>ImagePathPanel.Name" xml:space="preserve"> - <value>ImagePathPanel</value> - </data> - <data name=">>ImagePathPanel.Type" xml:space="preserve"> - <value>System.Windows.Forms.Panel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> - </data> - <data name=">>ImagePathPanel.Parent" xml:space="preserve"> - <value>ImageSelectionPanel</value> - </data> - <data name=">>ImagePathPanel.ZOrder" xml:space="preserve"> - <value>1</value> - </data> - <data name="ImagefilePathText.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms"> - <value>Fill</value> - </data> - <data name="ImagefilePathText.Location" type="System.Drawing.Point, System.Drawing"> - <value>57, 3</value> - </data> - <data name="ImagefilePathText.Size" type="System.Drawing.Size, System.Drawing"> - <value>161, 19</value> - </data> - <data name="ImagefilePathText.TabIndex" type="System.Int32, mscorlib"> - <value>1</value> - </data> - <data name="FilePickButton.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms"> - <value>Right</value> - </data> - <data name="FilePickButton.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms"> - <value>Off</value> - </data> - <data name="FilePickButton.Location" type="System.Drawing.Point, System.Drawing"> - <value>218, 3</value> - </data> - <data name="FilePickButton.Size" type="System.Drawing.Size, System.Drawing"> - <value>22, 22</value> - </data> - <data name="FilePickButton.TabIndex" type="System.Int32, mscorlib"> - <value>2</value> - </data> - <data name="FilePickButton.Text" xml:space="preserve"> - <value>...</value> - </data> - <data name="Label2.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms"> - <value>Right</value> - </data> - <data name="Label2.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms"> - <value>Off</value> - </data> - <data name="Label2.Location" type="System.Drawing.Point, System.Drawing"> - <value>240, 3</value> - </data> - <data name="Label2.Size" type="System.Drawing.Size, System.Drawing"> - <value>57, 22</value> - </data> - <data name="Label2.TabIndex" type="System.Int32, mscorlib"> - <value>3</value> - </data> - <data name="Label2.Text" xml:space="preserve"> - <value>投稿先</value> - </data> - <data name="Label2.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing"> - <value>MiddleRight</value> - </data> - <data name="ImageServiceCombo.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms"> - <value>Right</value> - </data> - <data name="ImageServiceCombo.Items" xml:space="preserve"> - <value>TwitPic</value> - </data> - <data name="ImageServiceCombo.Items1" xml:space="preserve"> - <value>TwitVideo</value> - </data> - <data name="ImageServiceCombo.Location" type="System.Drawing.Point, System.Drawing"> - <value>297, 3</value> - </data> - <data name="ImageServiceCombo.Size" type="System.Drawing.Size, System.Drawing"> - <value>97, 20</value> - </data> - <data name="ImageServiceCombo.TabIndex" type="System.Int32, mscorlib"> - <value>4</value> - </data> - <data name="ImageCancelButton.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms"> - <value>Right</value> - </data> - <data name="ImageCancelButton.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms"> - <value>Off</value> - </data> - <data name="ImageCancelButton.Location" type="System.Drawing.Point, System.Drawing"> - <value>394, 3</value> - </data> - <data name="ImageCancelButton.Size" type="System.Drawing.Size, System.Drawing"> - <value>56, 22</value> - </data> - <data name="ImageCancelButton.TabIndex" type="System.Int32, mscorlib"> - <value>5</value> - </data> - <data name="ImageCancelButton.Text" xml:space="preserve"> - <value>Cancel</value> - </data> - <data name="Label1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms"> - <value>Left</value> - </data> - <data name="Label1.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms"> - <value>Off</value> - </data> - <data name="Label1.Location" type="System.Drawing.Point, System.Drawing"> - <value>3, 3</value> - </data> - <data name="Label1.Size" type="System.Drawing.Size, System.Drawing"> - <value>54, 22</value> - </data> - <data name="Label1.TabIndex" type="System.Int32, mscorlib"> - <value>0</value> - </data> - <data name="Label1.Text" xml:space="preserve"> - <value>ファイル</value> - </data> - <data name="Label1.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing"> - <value>MiddleLeft</value> - </data> - <metadata name="ContextMenuUserPicture.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> - <value>635, 58</value> - </metadata> - <data name="ContextMenuUserPicture.Size" type="System.Drawing.Size, System.Drawing"> - <value>239, 192</value> - </data> - <data name=">>ContextMenuUserPicture.Name" xml:space="preserve"> - <value>ContextMenuUserPicture</value> - </data> - <data name=">>ContextMenuUserPicture.Type" xml:space="preserve"> - <value>System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> - </data> - <data name="UserPicture.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms"> - <value>Off</value> - </data> - <data name="UserPicture.Location" type="System.Drawing.Point, System.Drawing"> - <value>3, 3</value> - </data> - <data name="UserPicture.Size" type="System.Drawing.Size, System.Drawing"> - <value>50, 50</value> - </data> - <data name="UserPicture.SizeMode" type="System.Windows.Forms.PictureBoxSizeMode, System.Windows.Forms"> - <value>Zoom</value> - </data> - <data name="UserPicture.TabIndex" type="System.Int32, mscorlib"> - <value>5</value> - </data> - <data name=">>UserPicture.Name" xml:space="preserve"> - <value>UserPicture</value> - </data> - <data name=">>UserPicture.Type" xml:space="preserve"> - <value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> - </data> - <data name=">>UserPicture.Parent" xml:space="preserve"> - <value>TableLayoutPanel1</value> - </data> - <data name=">>UserPicture.ZOrder" xml:space="preserve"> - <value>0</value> - </data> - <data name="FollowToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing"> - <value>238, 22</value> - </data> - <data name="FollowToolStripMenuItem.Text" xml:space="preserve"> - <value>フォローする(&F)</value> - </data> - <data name="UnFollowToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing"> - <value>238, 22</value> - </data> - <data name="UnFollowToolStripMenuItem.Text" xml:space="preserve"> - <value>フォロー解除(&N)</value> - </data> - <data name="ShowFriendShipToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing"> - <value>238, 22</value> - </data> - <data name="ShowFriendShipToolStripMenuItem.Text" xml:space="preserve"> - <value>相互フォロー状態表示(&H)</value> - </data> - <data name="ListManageUserContextToolStripMenuItem3.Size" type="System.Drawing.Size, System.Drawing"> - <value>238, 22</value> - </data> - <data name="ListManageUserContextToolStripMenuItem3.Text" xml:space="preserve"> - <value>リスト管理(&L)</value> - </data> - <data name="ToolStripSeparator37.Size" type="System.Drawing.Size, System.Drawing"> - <value>235, 6</value> - </data> - <data name="ShowUserStatusToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing"> - <value>238, 22</value> - </data> - <data name="ShowUserStatusToolStripMenuItem.Text" xml:space="preserve"> - <value>プロフィール表示(&P)</value> - </data> - <data name="SearchPostsDetailNameToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing"> - <value>238, 22</value> - </data> - <data name="SearchPostsDetailNameToolStripMenuItem.Text" xml:space="preserve"> - <value>このユーザーの発言を検索(&S)</value> - </data> - <data name="ToolStripMenuItem1.Size" type="System.Drawing.Size, System.Drawing"> - <value>235, 6</value> - </data> - <data name="IconNameToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing"> - <value>238, 22</value> - </data> - <data name="IconNameToolStripMenuItem.Text" xml:space="preserve"> - <value>IconName</value> - </data> - <data name="SaveIconPictureToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing"> - <value>238, 22</value> - </data> - <data name="SaveIconPictureToolStripMenuItem.Text" xml:space="preserve"> - <value>保存(&I)...</value> - </data> - <data name="NameLabel.AutoSize" type="System.Boolean, mscorlib"> - <value>True</value> - </data> - <data name="NameLabel.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms"> - <value>Fill</value> - </data> - <data name="NameLabel.Font" type="System.Drawing.Font, System.Drawing"> - <value>MS UI Gothic, 9pt, style=Bold</value> - </data> - <data name="NameLabel.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms"> - <value>Off</value> - </data> - <data name="NameLabel.Location" type="System.Drawing.Point, System.Drawing"> - <value>59, 3</value> - </data> - <data name="NameLabel.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms"> - <value>3, 3, 3, 0</value> - </data> - <data name="NameLabel.Size" type="System.Drawing.Size, System.Drawing"> - <value>206, 14</value> - </data> - <data name="NameLabel.TabIndex" type="System.Int32, mscorlib"> - <value>0</value> - </data> - <data name="NameLabel.Text" xml:space="preserve"> - <value>LblName</value> - </data> - <data name="NameLabel.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing"> - <value>MiddleLeft</value> - </data> - <data name=">>NameLabel.Name" xml:space="preserve"> - <value>NameLabel</value> - </data> - <data name=">>NameLabel.Type" xml:space="preserve"> - <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> - </data> - <data name=">>NameLabel.Parent" xml:space="preserve"> - <value>TableLayoutPanel1</value> - </data> - <data name=">>NameLabel.ZOrder" xml:space="preserve"> - <value>1</value> - </data> - <metadata name="ContextMenuPostBrowser.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> - <value>480, 17</value> - </metadata> - <data name="ContextMenuPostBrowser.Size" type="System.Drawing.Size, System.Drawing"> - <value>239, 320</value> - </data> - <data name=">>ContextMenuPostBrowser.Name" xml:space="preserve"> - <value>ContextMenuPostBrowser</value> - </data> - <data name=">>ContextMenuPostBrowser.Type" xml:space="preserve"> - <value>System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> - </data> - <data name="PostBrowser.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms"> - <value>Fill</value> - </data> - <data name="PostBrowser.Location" type="System.Drawing.Point, System.Drawing"> - <value>59, 20</value> - </data> - <data name="PostBrowser.Size" type="System.Drawing.Size, System.Drawing"> - <value>391, 76</value> - </data> - <data name="PostBrowser.TabIndex" type="System.Int32, mscorlib"> - <value>6</value> - </data> - <data name=">>PostBrowser.Name" xml:space="preserve"> - <value>PostBrowser</value> - </data> - <data name=">>PostBrowser.Type" xml:space="preserve"> - <value>System.Windows.Forms.WebBrowser, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> - </data> - <data name=">>PostBrowser.Parent" xml:space="preserve"> - <value>TableLayoutPanel1</value> - </data> - <data name=">>PostBrowser.ZOrder" xml:space="preserve"> - <value>2</value> - </data> - <data name="SelectionSearchContextMenuItem.Size" type="System.Drawing.Size, System.Drawing"> - <value>238, 22</value> - </data> - <data name="SelectionSearchContextMenuItem.Text" xml:space="preserve"> - <value>選択文字列で検索(&S)</value> - </data> - <data name="SearchGoogleContextMenuItem.Size" type="System.Drawing.Size, System.Drawing"> - <value>180, 22</value> - </data> - <data name="SearchGoogleContextMenuItem.Text" xml:space="preserve"> - <value>Google(&G)</value> - </data> - <data name="SearchWikipediaContextMenuItem.Size" type="System.Drawing.Size, System.Drawing"> - <value>180, 22</value> - </data> - <data name="SearchWikipediaContextMenuItem.Text" xml:space="preserve"> - <value>Wikipedia(&W)</value> - </data> - <data name="SearchYatsContextMenuItem.Size" type="System.Drawing.Size, System.Drawing"> - <value>180, 22</value> - </data> - <data name="SearchYatsContextMenuItem.Text" xml:space="preserve"> - <value>Twitter検索(&Y)</value> - </data> - <data name="SearchPublicSearchContextMenuItem.Size" type="System.Drawing.Size, System.Drawing"> - <value>180, 22</value> - </data> - <data name="SearchPublicSearchContextMenuItem.Text" xml:space="preserve"> - <value>Twitter Search(&S)</value> - </data> - <data name="CurrentTabToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing"> - <value>180, 22</value> - </data> - <data name="CurrentTabToolStripMenuItem.Text" xml:space="preserve"> - <value>現在のタブ(&L)</value> - </data> - <data name="ToolStripSeparator13.Size" type="System.Drawing.Size, System.Drawing"> - <value>235, 6</value> - </data> - <data name="SelectionCopyContextMenuItem.Size" type="System.Drawing.Size, System.Drawing"> - <value>238, 22</value> - </data> - <data name="SelectionCopyContextMenuItem.Text" xml:space="preserve"> - <value>選択文字列をコピー(&C)</value> - </data> - <data name="UrlCopyContextMenuItem.Enabled" type="System.Boolean, mscorlib"> - <value>False</value> - </data> - <data name="UrlCopyContextMenuItem.Size" type="System.Drawing.Size, System.Drawing"> - <value>238, 22</value> - </data> - <data name="UrlCopyContextMenuItem.Text" xml:space="preserve"> - <value>URLをコピー(&U)</value> - </data> - <data name="SelectionAllContextMenuItem.Size" type="System.Drawing.Size, System.Drawing"> - <value>238, 22</value> - </data> - <data name="SelectionAllContextMenuItem.Text" xml:space="preserve"> - <value>すべて選択(&A)</value> - </data> - <data name="ToolStripSeparator5.Size" type="System.Drawing.Size, System.Drawing"> - <value>235, 6</value> - </data> - <data name="FollowContextMenuItem.Size" type="System.Drawing.Size, System.Drawing"> - <value>238, 22</value> - </data> - <data name="FollowContextMenuItem.Text" xml:space="preserve"> - <value>フォローする(&F)</value> - </data> - <data name="RemoveContextMenuItem.Size" type="System.Drawing.Size, System.Drawing"> - <value>238, 22</value> - </data> - <data name="RemoveContextMenuItem.Text" xml:space="preserve"> - <value>フォロー解除(&N)</value> - </data> - <data name="FriendshipContextMenuItem.Size" type="System.Drawing.Size, System.Drawing"> - <value>238, 22</value> - </data> - <data name="FriendshipContextMenuItem.Text" xml:space="preserve"> - <value>相互フォロー状態表示(&R)</value> - </data> - <data name="FriendshipAllMenuItem.Size" type="System.Drawing.Size, System.Drawing"> - <value>238, 22</value> - </data> - <data name="FriendshipAllMenuItem.Text" xml:space="preserve"> - <value>全ユーザーのフォロー状態(&A)</value> - </data> - <data name="ToolStripSeparator36.Size" type="System.Drawing.Size, System.Drawing"> - <value>235, 6</value> - </data> - <data name="ShowUserStatusContextMenuItem.Size" type="System.Drawing.Size, System.Drawing"> - <value>238, 22</value> - </data> - <data name="ShowUserStatusContextMenuItem.Text" xml:space="preserve"> - <value>プロフィール表示(&P)</value> - </data> - <data name="SearchPostsDetailToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing"> - <value>238, 22</value> - </data> - <data name="SearchPostsDetailToolStripMenuItem.Text" xml:space="preserve"> - <value>このユーザーの発言を検索(&F)</value> - </data> - <data name="ToolStripSeparator32.Size" type="System.Drawing.Size, System.Drawing"> - <value>235, 6</value> - </data> - <data name="IdFilterAddMenuItem.Size" type="System.Drawing.Size, System.Drawing"> - <value>238, 22</value> - </data> - <data name="IdFilterAddMenuItem.Text" xml:space="preserve"> - <value>ID振分ルール作成(&I)</value> - </data> - <data name="ListManageUserContextToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing"> - <value>238, 22</value> - </data> - <data name="ListManageUserContextToolStripMenuItem.Text" xml:space="preserve"> - <value>リスト管理(&L)</value> - </data> - <data name="ToolStripSeparator33.Size" type="System.Drawing.Size, System.Drawing"> - <value>235, 6</value> - </data> - <data name="UseHashtagMenuItem.Size" type="System.Drawing.Size, System.Drawing"> - <value>238, 22</value> - </data> - <data name="UseHashtagMenuItem.Text" xml:space="preserve"> - <value>ハッシュタグを固定(&H)</value> - </data> - <data name="DateTimeLabel.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms"> - <value>Top, Bottom, Right</value> - </data> - <data name="DateTimeLabel.AutoSize" type="System.Boolean, mscorlib"> - <value>True</value> - </data> - <data name="DateTimeLabel.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms"> - <value>Off</value> - </data> - <data name="DateTimeLabel.Location" type="System.Drawing.Point, System.Drawing"> - <value>347, 3</value> - </data> - <data name="DateTimeLabel.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms"> - <value>3, 3, 3, 0</value> - </data> - <data name="DateTimeLabel.Size" type="System.Drawing.Size, System.Drawing"> - <value>38, 14</value> - </data> - <data name="DateTimeLabel.TabIndex" type="System.Int32, mscorlib"> - <value>1</value> - </data> - <data name="DateTimeLabel.Text" xml:space="preserve"> - <value>Label1</value> - </data> - <data name="DateTimeLabel.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing"> - <value>MiddleRight</value> - </data> - <data name=">>DateTimeLabel.Name" xml:space="preserve"> - <value>DateTimeLabel</value> - </data> - <data name=">>DateTimeLabel.Type" xml:space="preserve"> - <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> - </data> - <data name=">>DateTimeLabel.Parent" xml:space="preserve"> - <value>TableLayoutPanel1</value> - </data> - <data name=">>DateTimeLabel.ZOrder" xml:space="preserve"> - <value>3</value> - </data> - <data name="SourceLinkLabel.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms"> - <value>Top, Bottom, Left, Right</value> - </data> - <data name="SourceLinkLabel.AutoSize" type="System.Boolean, mscorlib"> - <value>True</value> - </data> - <data name="SourceLinkLabel.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms"> - <value>Off</value> - </data> - <data name="SourceLinkLabel.Location" type="System.Drawing.Point, System.Drawing"> - <value>391, 3</value> - </data> - <data name="SourceLinkLabel.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms"> - <value>3, 3, 3, 0</value> - </data> - <data name="SourceLinkLabel.Size" type="System.Drawing.Size, System.Drawing"> - <value>59, 14</value> - </data> - <data name="SourceLinkLabel.TabIndex" type="System.Int32, mscorlib"> - <value>7</value> - </data> - <data name="SourceLinkLabel.Text" xml:space="preserve"> - <value>LinkLabel1</value> - </data> - <data name="SourceLinkLabel.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing"> - <value>MiddleRight</value> - </data> - <data name=">>SourceLinkLabel.Name" xml:space="preserve"> - <value>SourceLinkLabel</value> - </data> - <data name=">>SourceLinkLabel.Type" xml:space="preserve"> - <value>System.Windows.Forms.LinkLabel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> - </data> - <data name=">>SourceLinkLabel.Parent" xml:space="preserve"> - <value>TableLayoutPanel1</value> - </data> - <data name=">>SourceLinkLabel.ZOrder" xml:space="preserve"> - <value>4</value> - </data> - <data name="MenuItemFile.Size" type="System.Drawing.Size, System.Drawing"> - <value>85, 22</value> - </data> - <data name="MenuItemFile.Text" xml:space="preserve"> - <value>ファイル(&F)</value> - </data> <data name="SettingFileMenuItem.Size" type="System.Drawing.Size, System.Drawing"> <value>189, 22</value> </data> @@ -1671,11 +1539,11 @@ <data name="EndFileMenuItem.Text" xml:space="preserve"> <value>終了(&X)</value> </data> - <data name="MenuItemEdit.Size" type="System.Drawing.Size, System.Drawing"> - <value>61, 22</value> + <data name="MenuItemFile.Size" type="System.Drawing.Size, System.Drawing"> + <value>85, 22</value> </data> - <data name="MenuItemEdit.Text" xml:space="preserve"> - <value>編集(&E)</value> + <data name="MenuItemFile.Text" xml:space="preserve"> + <value>ファイル(&F)</value> </data> <data name="UndoRemoveTabMenuItem.Size" type="System.Drawing.Size, System.Drawing"> <value>259, 22</value> @@ -1746,11 +1614,11 @@ <data name="PublicSearchQueryMenuItem.Text" xml:space="preserve"> <value>抽出条件入力(&Q)</value> </data> - <data name="MenuItemOperate.Size" type="System.Drawing.Size, System.Drawing"> - <value>63, 22</value> + <data name="MenuItemEdit.Size" type="System.Drawing.Size, System.Drawing"> + <value>61, 22</value> </data> - <data name="MenuItemOperate.Text" xml:space="preserve"> - <value>操作(&O)</value> + <data name="MenuItemEdit.Text" xml:space="preserve"> + <value>編集(&E)</value> </data> <data name="ReplyOpMenuItem.ShortcutKeys" type="System.Windows.Forms.Keys, System.Windows.Forms"> <value>Ctrl+R</value> @@ -1809,6 +1677,15 @@ <data name="ToolStripSeparator25.Size" type="System.Drawing.Size, System.Drawing"> <value>313, 6</value> </data> + <data name="FavOpMenuItem.ShortcutKeys" type="System.Windows.Forms.Keys, System.Windows.Forms"> + <value>Ctrl+S</value> + </data> + <data name="FavOpMenuItem.Size" type="System.Drawing.Size, System.Drawing"> + <value>316, 22</value> + </data> + <data name="FavOpMenuItem.Text" xml:space="preserve"> + <value>Fav追加(&F)</value> + </data> <data name="FavoriteRetweetMenuItem.ShortcutKeys" type="System.Windows.Forms.Keys, System.Windows.Forms"> <value>Ctrl+Alt+S</value> </data> @@ -1827,18 +1704,6 @@ <data name="FavoriteRetweetUnofficialMenuItem.Text" xml:space="preserve"> <value>Fav追加+Retweet(Unofficial)</value> </data> - <data name="ToolStripSeparator38.Size" type="System.Drawing.Size, System.Drawing"> - <value>313, 6</value> - </data> - <data name="FavOpMenuItem.ShortcutKeys" type="System.Windows.Forms.Keys, System.Windows.Forms"> - <value>Ctrl+S</value> - </data> - <data name="FavOpMenuItem.Size" type="System.Drawing.Size, System.Drawing"> - <value>316, 22</value> - </data> - <data name="FavOpMenuItem.Text" xml:space="preserve"> - <value>Fav追加(&F)</value> - </data> <data name="UnFavOpMenuItem.ShortcutKeys" type="System.Windows.Forms.Keys, System.Windows.Forms"> <value>Ctrl+Shift+S</value> </data> @@ -1848,6 +1713,9 @@ <data name="UnFavOpMenuItem.Text" xml:space="preserve"> <value>Fav削除(&V)</value> </data> + <data name="ToolStripSeparator38.Size" type="System.Drawing.Size, System.Drawing"> + <value>313, 6</value> + </data> <data name="ShowProfMenuItem.ShortcutKeyDisplayString" xml:space="preserve"> <value /> </data> @@ -1860,11 +1728,11 @@ <data name="ShowProfMenuItem.Text" xml:space="preserve"> <value>プロフィール表示</value> </data> - <data name="OpenOpMenuItem.Size" type="System.Drawing.Size, System.Drawing"> + <data name="ShowRelatedStatusesMenuItem2.Size" type="System.Drawing.Size, System.Drawing"> <value>316, 22</value> </data> - <data name="OpenOpMenuItem.Text" xml:space="preserve"> - <value>開く(&O)</value> + <data name="ShowRelatedStatusesMenuItem2.Text" xml:space="preserve"> + <value>関連発言表示(&G)</value> </data> <data name="OpenHomeOpMenuItem.ShortcutKeys" type="System.Windows.Forms.Keys, System.Windows.Forms"> <value>Ctrl+H</value> @@ -1929,11 +1797,11 @@ <data name="OpenRterHomeMenuItem.Text" xml:space="preserve"> <value>RTした人のホームを開く(&R)</value> </data> - <data name="CreateRuleOpMenuItem.Size" type="System.Drawing.Size, System.Drawing"> + <data name="OpenOpMenuItem.Size" type="System.Drawing.Size, System.Drawing"> <value>316, 22</value> </data> - <data name="CreateRuleOpMenuItem.Text" xml:space="preserve"> - <value>振り分けルール作成(&C)</value> + <data name="OpenOpMenuItem.Text" xml:space="preserve"> + <value>開く(&O)</value> </data> <data name="CreateTabRuleOpMenuItem.Size" type="System.Drawing.Size, System.Drawing"> <value>227, 22</value> @@ -1947,6 +1815,12 @@ <data name="CreateIdRuleOpMenuItem.Text" xml:space="preserve"> <value>ID振り分けルール作成(&I)</value> </data> + <data name="CreateRuleOpMenuItem.Size" type="System.Drawing.Size, System.Drawing"> + <value>316, 22</value> + </data> + <data name="CreateRuleOpMenuItem.Text" xml:space="preserve"> + <value>振り分けルール作成(&C)</value> + </data> <data name="ListManageMenuItem.Size" type="System.Drawing.Size, System.Drawing"> <value>316, 22</value> </data> @@ -1956,12 +1830,6 @@ <data name="ToolStripSeparator26.Size" type="System.Drawing.Size, System.Drawing"> <value>313, 6</value> </data> - <data name="ChangeReadOpMenuItem.Size" type="System.Drawing.Size, System.Drawing"> - <value>316, 22</value> - </data> - <data name="ChangeReadOpMenuItem.Text" xml:space="preserve"> - <value>未読状態変更(&H)</value> - </data> <data name="ReadOpMenuItem.ShortcutKeys" type="System.Windows.Forms.Keys, System.Windows.Forms"> <value>Ctrl+B</value> </data> @@ -1980,6 +1848,12 @@ <data name="UnreadOpMenuItem.Text" xml:space="preserve"> <value>未読にする(&U)</value> </data> + <data name="ChangeReadOpMenuItem.Size" type="System.Drawing.Size, System.Drawing"> + <value>316, 22</value> + </data> + <data name="ChangeReadOpMenuItem.Text" xml:space="preserve"> + <value>未読状態変更(&H)</value> + </data> <data name="JumpReadOpMenuItem.Size" type="System.Drawing.Size, System.Drawing"> <value>316, 22</value> </data> @@ -2025,11 +1899,11 @@ <data name="RefreshPrevOpMenuItem.Text" xml:space="preserve"> <value>前データを取得(&I)</value> </data> - <data name="MenuItemTab.Size" type="System.Drawing.Size, System.Drawing"> - <value>62, 22</value> + <data name="MenuItemOperate.Size" type="System.Drawing.Size, System.Drawing"> + <value>63, 22</value> </data> - <data name="MenuItemTab.Text" xml:space="preserve"> - <value>タブ(&T)</value> + <data name="MenuItemOperate.Text" xml:space="preserve"> + <value>操作(&O)</value> </data> <data name="CreateTbMenuItem.Size" type="System.Drawing.Size, System.Drawing"> <value>226, 22</value> @@ -2091,18 +1965,12 @@ <data name="DeleteTbMenuItem.Text" xml:space="preserve"> <value>タブ削除(&D)</value> </data> - <data name="MenuItemCommand.Size" type="System.Drawing.Size, System.Drawing"> - <value>98, 22</value> + <data name="MenuItemTab.Size" type="System.Drawing.Size, System.Drawing"> + <value>62, 22</value> </data> - <data name="MenuItemCommand.Text" xml:space="preserve"> - <value>その他機能(&C)</value> + <data name="MenuItemTab.Text" xml:space="preserve"> + <value>タブ(&T)</value> </data> - <data name="TinyUrlConvertToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing"> - <value>280, 22</value> - </data> - <data name="TinyUrlConvertToolStripMenuItem.Text" xml:space="preserve"> - <value>入力欄のURLを短縮変換</value> - </data> <data name="UrlConvertAutoToolStripMenuItem.ShortcutKeys" type="System.Windows.Forms.Keys, System.Windows.Forms"> <value>Ctrl+L</value> </data> @@ -2151,6 +2019,12 @@ <data name="JmpStripMenuItem.Text" xml:space="preserve"> <value>j.mp</value> </data> + <data name="TinyUrlConvertToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing"> + <value>280, 22</value> + </data> + <data name="TinyUrlConvertToolStripMenuItem.Text" xml:space="preserve"> + <value>入力欄のURLを短縮変換</value> + </data> <data name="UpdateFollowersMenuItem1.Size" type="System.Drawing.Size, System.Drawing"> <value>280, 22</value> </data> @@ -2226,12 +2100,51 @@ <data name="ListManageToolStripMenuItem.Text" xml:space="preserve"> <value>リスト編集</value> </data> - <data name="MenuItemHelp.Size" type="System.Drawing.Size, System.Drawing"> - <value>75, 22</value> + <data name="MenuItemCommand.Size" type="System.Drawing.Size, System.Drawing"> + <value>98, 22</value> </data> - <data name="MenuItemHelp.Text" xml:space="preserve"> - <value>ヘルプ(&H)</value> + <data name="MenuItemCommand.Text" xml:space="preserve"> + <value>その他機能(&C)</value> </data> + <data name="PauseToolStripMenuItem.Enabled" type="System.Boolean, mscorlib"> + <value>False</value> + </data> + <data name="PauseToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing"> + <value>144, 22</value> + </data> + <data name="PauseToolStripMenuItem.Text" xml:space="preserve"> + <value>Pause</value> + </data> + <data name="StopToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing"> + <value>144, 22</value> + </data> + <data name="StopToolStripMenuItem.Text" xml:space="preserve"> + <value>Stop</value> + </data> + <data name="ToolStripSeparator40.Size" type="System.Drawing.Size, System.Drawing"> + <value>141, 6</value> + </data> + <data name="TrackToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing"> + <value>144, 22</value> + </data> + <data name="TrackToolStripMenuItem.Text" xml:space="preserve"> + <value>Track</value> + </data> + <data name="AllrepliesToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing"> + <value>144, 22</value> + </data> + <data name="AllrepliesToolStripMenuItem.Text" xml:space="preserve"> + <value>All @replies</value> + </data> + <data name="MenuItemUserStream.Enabled" type="System.Boolean, mscorlib"> + <value>False</value> + </data> + <data name="MenuItemUserStream.Size" type="System.Drawing.Size, System.Drawing"> + <value>91, 22</value> + </data> + <data name="MenuItemUserStream.Text" xml:space="preserve"> + <value>UserStream</value> + </data> <data name="MatomeMenuItem.ShortcutKeys" type="System.Windows.Forms.Keys, System.Windows.Forms"> <value>F1</value> </data> @@ -2274,6 +2187,18 @@ <data name="AboutMenuItem.Text" xml:space="preserve"> <value>Tweenについて(&A)...</value> </data> + <data name="DumpPostClassToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing"> + <value>232, 22</value> + </data> + <data name="DumpPostClassToolStripMenuItem.Text" xml:space="preserve"> + <value>PostClassのダンプ</value> + </data> + <data name="TraceOutToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing"> + <value>232, 22</value> + </data> + <data name="TraceOutToolStripMenuItem.Text" xml:space="preserve"> + <value>TraceOut出力</value> + </data> <data name="CacheInfoMenuItem.Size" type="System.Drawing.Size, System.Drawing"> <value>232, 22</value> </data> @@ -2289,18 +2214,60 @@ <data name="DebugModeToolStripMenuItem.Visible" type="System.Boolean, mscorlib"> <value>False</value> </data> - <data name="DumpPostClassToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing"> - <value>179, 22</value> + <data name="MenuItemHelp.Size" type="System.Drawing.Size, System.Drawing"> + <value>75, 22</value> </data> - <data name="DumpPostClassToolStripMenuItem.Text" xml:space="preserve"> - <value>PostClassのダンプ</value> + <data name="MenuItemHelp.Text" xml:space="preserve"> + <value>ヘルプ(&H)</value> </data> - <data name="TraceOutToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing"> - <value>179, 22</value> + <data name="MenuStrip1.Location" type="System.Drawing.Point, System.Drawing"> + <value>0, 0</value> </data> - <data name="TraceOutToolStripMenuItem.Text" xml:space="preserve"> - <value>TraceOut出力</value> + <data name="MenuStrip1.Size" type="System.Drawing.Size, System.Drawing"> + <value>574, 26</value> </data> + <data name="MenuStrip1.TabIndex" type="System.Int32, mscorlib"> + <value>0</value> + </data> + <data name="MenuStrip1.Text" xml:space="preserve"> + <value>MenuStrip1</value> + </data> + <data name=">>MenuStrip1.Name" xml:space="preserve"> + <value>MenuStrip1</value> + </data> + <data name=">>MenuStrip1.Type" xml:space="preserve"> + <value>System.Windows.Forms.MenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </data> + <data name=">>MenuStrip1.Parent" xml:space="preserve"> + <value>ToolStripContainer1.TopToolStripPanel</value> + </data> + <data name=">>MenuStrip1.ZOrder" xml:space="preserve"> + <value>0</value> + </data> + <data name=">>ToolStripContainer1.TopToolStripPanel.Name" xml:space="preserve"> + <value>ToolStripContainer1.TopToolStripPanel</value> + </data> + <data name=">>ToolStripContainer1.TopToolStripPanel.Type" xml:space="preserve"> + <value>System.Windows.Forms.ToolStripPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </data> + <data name=">>ToolStripContainer1.TopToolStripPanel.Parent" xml:space="preserve"> + <value>ToolStripContainer1</value> + </data> + <data name=">>ToolStripContainer1.TopToolStripPanel.ZOrder" xml:space="preserve"> + <value>3</value> + </data> + <data name=">>ToolStripContainer1.Name" xml:space="preserve"> + <value>ToolStripContainer1</value> + </data> + <data name=">>ToolStripContainer1.Type" xml:space="preserve"> + <value>System.Windows.Forms.ToolStripContainer, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </data> + <data name=">>ToolStripContainer1.Parent" xml:space="preserve"> + <value>$this</value> + </data> + <data name=">>ToolStripContainer1.ZOrder" xml:space="preserve"> + <value>6</value> + </data> <metadata name="ContextMenuOperate.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <value>443, 58</value> </metadata> @@ -2382,12 +2349,66 @@ <data name="ShowRelatedStatusesMenuItem.Text" xml:space="preserve"> <value>関連発言表示(&G)</value> </data> + <data name="MoveToHomeToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing"> + <value>230, 22</value> + </data> + <data name="MoveToHomeToolStripMenuItem.Text" xml:space="preserve"> + <value>ホームを開く(&H)</value> + </data> + <data name="MoveToFavToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing"> + <value>230, 22</value> + </data> + <data name="MoveToFavToolStripMenuItem.Text" xml:space="preserve"> + <value>Favを開く(&G)</value> + </data> + <data name="StatusOpenMenuItem.Size" type="System.Drawing.Size, System.Drawing"> + <value>230, 22</value> + </data> + <data name="StatusOpenMenuItem.Text" xml:space="preserve"> + <value>ステータスを開く(&O)</value> + </data> + <data name="RepliedStatusOpenMenuItem.Size" type="System.Drawing.Size, System.Drawing"> + <value>230, 22</value> + </data> + <data name="RepliedStatusOpenMenuItem.Text" xml:space="preserve"> + <value>返信元ステータスを開く(&I)</value> + </data> + <data name="FavorareMenuItem.Size" type="System.Drawing.Size, System.Drawing"> + <value>230, 22</value> + </data> + <data name="FavorareMenuItem.Text" xml:space="preserve"> + <value>ふぁぼられを開く(&P)</value> + </data> + <data name="OpenURLMenuItem.Size" type="System.Drawing.Size, System.Drawing"> + <value>230, 22</value> + </data> + <data name="OpenURLMenuItem.Text" xml:space="preserve"> + <value>発言内URLを開く(&U)</value> + </data> + <data name="MoveToRTHomeMenuItem.Size" type="System.Drawing.Size, System.Drawing"> + <value>230, 22</value> + </data> + <data name="MoveToRTHomeMenuItem.Text" xml:space="preserve"> + <value>RTした人のホームを開く(&R)</value> + </data> <data name="ToolStripMenuItem6.Size" type="System.Drawing.Size, System.Drawing"> <value>243, 22</value> </data> <data name="ToolStripMenuItem6.Text" xml:space="preserve"> <value>開く(&O)</value> </data> + <data name="TabMenuItem.Size" type="System.Drawing.Size, System.Drawing"> + <value>239, 22</value> + </data> + <data name="TabMenuItem.Text" xml:space="preserve"> + <value>タブ振り分けルール作成(&N)...</value> + </data> + <data name="IDRuleMenuItem.Size" type="System.Drawing.Size, System.Drawing"> + <value>239, 22</value> + </data> + <data name="IDRuleMenuItem.Text" xml:space="preserve"> + <value>ID振り分けルール作成...</value> + </data> <data name="ToolStripMenuItem7.Size" type="System.Drawing.Size, System.Drawing"> <value>243, 22</value> </data> @@ -2403,6 +2424,18 @@ <data name="ToolStripSeparator4.Size" type="System.Drawing.Size, System.Drawing"> <value>240, 6</value> </data> + <data name="ReadedStripMenuItem.Size" type="System.Drawing.Size, System.Drawing"> + <value>154, 22</value> + </data> + <data name="ReadedStripMenuItem.Text" xml:space="preserve"> + <value>既読にする(&B)</value> + </data> + <data name="UnreadStripMenuItem.Size" type="System.Drawing.Size, System.Drawing"> + <value>154, 22</value> + </data> + <data name="UnreadStripMenuItem.Text" xml:space="preserve"> + <value>未読にする</value> + </data> <data name="ToolStripMenuItem11.Size" type="System.Drawing.Size, System.Drawing"> <value>243, 22</value> </data> @@ -2443,7 +2476,7 @@ <value>前データを取得(&I)</value> </data> <data name="ContextMenuOperate.Size" type="System.Drawing.Size, System.Drawing"> - <value>244, 512</value> + <value>244, 490</value> </data> <data name=">>ContextMenuOperate.Name" xml:space="preserve"> <value>ContextMenuOperate</value> @@ -2451,84 +2484,9 @@ <data name=">>ContextMenuOperate.Type" xml:space="preserve"> <value>System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </data> - <data name="MoveToHomeToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing"> - <value>230, 22</value> - </data> - <data name="MoveToHomeToolStripMenuItem.Text" xml:space="preserve"> - <value>ホームを開く(&H)</value> - </data> - <data name="MoveToFavToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing"> - <value>230, 22</value> - </data> - <data name="MoveToFavToolStripMenuItem.Text" xml:space="preserve"> - <value>Favを開く(&G)</value> - </data> - <data name="StatusOpenMenuItem.Size" type="System.Drawing.Size, System.Drawing"> - <value>230, 22</value> - </data> - <data name="StatusOpenMenuItem.Text" xml:space="preserve"> - <value>ステータスを開く(&O)</value> - </data> - <data name="RepliedStatusOpenMenuItem.Size" type="System.Drawing.Size, System.Drawing"> - <value>230, 22</value> - </data> - <data name="RepliedStatusOpenMenuItem.Text" xml:space="preserve"> - <value>返信元ステータスを開く(&I)</value> - </data> - <data name="FavorareMenuItem.Size" type="System.Drawing.Size, System.Drawing"> - <value>230, 22</value> - </data> - <data name="FavorareMenuItem.Text" xml:space="preserve"> - <value>ふぁぼられを開く(&P)</value> - </data> - <data name="OpenURLMenuItem.Size" type="System.Drawing.Size, System.Drawing"> - <value>230, 22</value> - </data> - <data name="OpenURLMenuItem.Text" xml:space="preserve"> - <value>発言内URLを開く(&U)</value> - </data> - <data name="MoveToRTHomeMenuItem.Size" type="System.Drawing.Size, System.Drawing"> - <value>230, 22</value> - </data> - <data name="MoveToRTHomeMenuItem.Text" xml:space="preserve"> - <value>RTした人のホームを開く(&R)</value> - </data> - <data name="TabMenuItem.Size" type="System.Drawing.Size, System.Drawing"> - <value>239, 22</value> - </data> - <data name="TabMenuItem.Text" xml:space="preserve"> - <value>タブ振り分けルール作成(&N)...</value> - </data> - <data name="IDRuleMenuItem.Size" type="System.Drawing.Size, System.Drawing"> - <value>239, 22</value> - </data> - <data name="IDRuleMenuItem.Text" xml:space="preserve"> - <value>ID振り分けルール作成...</value> - </data> - <data name="ReadedStripMenuItem.Size" type="System.Drawing.Size, System.Drawing"> - <value>154, 22</value> - </data> - <data name="ReadedStripMenuItem.Text" xml:space="preserve"> - <value>既読にする(&B)</value> - </data> - <data name="UnreadStripMenuItem.Size" type="System.Drawing.Size, System.Drawing"> - <value>154, 22</value> - </data> - <data name="UnreadStripMenuItem.Text" xml:space="preserve"> - <value>未読にする</value> - </data> - <metadata name="ContextMenuFile.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <metadata name="ContextMenuFile.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <value>276, 58</value> </metadata> - <data name="ContextMenuFile.Size" type="System.Drawing.Size, System.Drawing"> - <value>190, 154</value> - </data> - <data name=">>ContextMenuFile.Name" xml:space="preserve"> - <value>ContextMenuFile</value> - </data> - <data name=">>ContextMenuFile.Type" xml:space="preserve"> - <value>System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> - </data> <data name="SettingStripMenuItem.Size" type="System.Drawing.Size, System.Drawing"> <value>189, 22</value> </data> @@ -2577,6 +2535,15 @@ <data name="EndToolStripMenuItem.Text" xml:space="preserve"> <value>終了(&X)</value> </data> + <data name="ContextMenuFile.Size" type="System.Drawing.Size, System.Drawing"> + <value>190, 154</value> + </data> + <data name=">>ContextMenuFile.Name" xml:space="preserve"> + <value>ContextMenuFile</value> + </data> + <data name=">>ContextMenuFile.Type" xml:space="preserve"> + <value>System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </data> <metadata name="NotifyIcon1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <value>155, 58</value> </metadata> @@ -2595,13 +2562,7 @@ <metadata name="ToolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <value>750, 95</value> </metadata> - <data name="ShowRelatedStatusesMenuItem2.Size" type="System.Drawing.Size, System.Drawing"> - <value>316, 22</value> - </data> - <data name="ShowRelatedStatusesMenuItem2.Text" xml:space="preserve"> - <value>関連発言表示(&G)</value> - </data> - <metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> + <metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <value>True</value> </metadata> <metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> @@ -2611,7 +2572,7 @@ <value>6, 12</value> </data> <data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing"> - <value>457, 353</value> + <value>574, 401</value> </data> <data name="$this.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms"> <value>Off</value> @@ -2638,7 +2599,7 @@ <value>ToolStripStatusLabel1</value> </data> <data name=">>ToolStripStatusLabel1.Type" xml:space="preserve"> - <value>System.Windows.Forms.ToolStripStatusLabel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + <value>System.Windows.Forms.ToolStripStatusLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </data> <data name=">>HashStripSplitButton.Name" xml:space="preserve"> <value>HashStripSplitButton</value> @@ -3082,7 +3043,7 @@ <value>CopyUserIdStripMenuItem</value> </data> <data name=">>CopyUserIdStripMenuItem.Type" xml:space="preserve"> - <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </data> <data name=">>ToolStripSeparator6.Name" xml:space="preserve"> <value>ToolStripSeparator6</value> @@ -3168,28 +3129,22 @@ <data name=">>ToolStripSeparator25.Type" xml:space="preserve"> <value>System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </data> + <data name=">>FavOpMenuItem.Name" xml:space="preserve"> + <value>FavOpMenuItem</value> + </data> + <data name=">>FavOpMenuItem.Type" xml:space="preserve"> + <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </data> <data name=">>FavoriteRetweetMenuItem.Name" xml:space="preserve"> <value>FavoriteRetweetMenuItem</value> </data> <data name=">>FavoriteRetweetMenuItem.Type" xml:space="preserve"> - <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </data> <data name=">>FavoriteRetweetUnofficialMenuItem.Name" xml:space="preserve"> <value>FavoriteRetweetUnofficialMenuItem</value> </data> <data name=">>FavoriteRetweetUnofficialMenuItem.Type" xml:space="preserve"> - <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> - </data> - <data name=">>ToolStripSeparator38.Name" xml:space="preserve"> - <value>ToolStripSeparator38</value> - </data> - <data name=">>ToolStripSeparator38.Type" xml:space="preserve"> - <value>System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> - </data> - <data name=">>FavOpMenuItem.Name" xml:space="preserve"> - <value>FavOpMenuItem</value> - </data> - <data name=">>FavOpMenuItem.Type" xml:space="preserve"> <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </data> <data name=">>UnFavOpMenuItem.Name" xml:space="preserve"> @@ -3198,12 +3153,24 @@ <data name=">>UnFavOpMenuItem.Type" xml:space="preserve"> <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </data> + <data name=">>ToolStripSeparator38.Name" xml:space="preserve"> + <value>ToolStripSeparator38</value> + </data> + <data name=">>ToolStripSeparator38.Type" xml:space="preserve"> + <value>System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </data> <data name=">>ShowProfMenuItem.Name" xml:space="preserve"> <value>ShowProfMenuItem</value> </data> <data name=">>ShowProfMenuItem.Type" xml:space="preserve"> <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </data> + <data name=">>ShowRelatedStatusesMenuItem2.Name" xml:space="preserve"> + <value>ShowRelatedStatusesMenuItem2</value> + </data> + <data name=">>ShowRelatedStatusesMenuItem2.Type" xml:space="preserve"> + <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </data> <data name=">>OpenOpMenuItem.Name" xml:space="preserve"> <value>OpenOpMenuItem</value> </data> @@ -3546,6 +3513,42 @@ <data name=">>ListManageToolStripMenuItem.Type" xml:space="preserve"> <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </data> + <data name=">>MenuItemUserStream.Name" xml:space="preserve"> + <value>MenuItemUserStream</value> + </data> + <data name=">>MenuItemUserStream.Type" xml:space="preserve"> + <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </data> + <data name=">>PauseToolStripMenuItem.Name" xml:space="preserve"> + <value>PauseToolStripMenuItem</value> + </data> + <data name=">>PauseToolStripMenuItem.Type" xml:space="preserve"> + <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </data> + <data name=">>StopToolStripMenuItem.Name" xml:space="preserve"> + <value>StopToolStripMenuItem</value> + </data> + <data name=">>StopToolStripMenuItem.Type" xml:space="preserve"> + <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </data> + <data name=">>ToolStripSeparator40.Name" xml:space="preserve"> + <value>ToolStripSeparator40</value> + </data> + <data name=">>ToolStripSeparator40.Type" xml:space="preserve"> + <value>System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </data> + <data name=">>TrackToolStripMenuItem.Name" xml:space="preserve"> + <value>TrackToolStripMenuItem</value> + </data> + <data name=">>TrackToolStripMenuItem.Type" xml:space="preserve"> + <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </data> + <data name=">>AllrepliesToolStripMenuItem.Name" xml:space="preserve"> + <value>AllrepliesToolStripMenuItem</value> + </data> + <data name=">>AllrepliesToolStripMenuItem.Type" xml:space="preserve"> + <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </data> <data name=">>MenuItemHelp.Name" xml:space="preserve"> <value>MenuItemHelp</value> </data> @@ -3618,6 +3621,12 @@ <data name=">>TraceOutToolStripMenuItem.Type" xml:space="preserve"> <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </data> + <data name=">>CacheInfoMenuItem.Name" xml:space="preserve"> + <value>CacheInfoMenuItem</value> + </data> + <data name=">>CacheInfoMenuItem.Type" xml:space="preserve"> + <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </data> <data name=">>ReplyStripMenuItem.Name" xml:space="preserve"> <value>ReplyStripMenuItem</value> </data> @@ -3658,30 +3667,24 @@ <value>ToolStripSeparator39</value> </data> <data name=">>ToolStripSeparator39.Type" xml:space="preserve"> - <value>System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + <value>System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </data> + <data name=">>FavAddToolStripMenuItem.Name" xml:space="preserve"> + <value>FavAddToolStripMenuItem</value> + </data> + <data name=">>FavAddToolStripMenuItem.Type" xml:space="preserve"> + <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </data> <data name=">>FavoriteRetweetContextMenu.Name" xml:space="preserve"> <value>FavoriteRetweetContextMenu</value> </data> <data name=">>FavoriteRetweetContextMenu.Type" xml:space="preserve"> - <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </data> <data name=">>FavoriteRetweetUnofficialContextMenu.Name" xml:space="preserve"> <value>FavoriteRetweetUnofficialContextMenu</value> </data> <data name=">>FavoriteRetweetUnofficialContextMenu.Type" xml:space="preserve"> - <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> - </data> - <data name=">>ToolStripSeparator2.Name" xml:space="preserve"> - <value>ToolStripSeparator2</value> - </data> - <data name=">>ToolStripSeparator2.Type" xml:space="preserve"> - <value>System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> - </data> - <data name=">>FavAddToolStripMenuItem.Name" xml:space="preserve"> - <value>FavAddToolStripMenuItem</value> - </data> - <data name=">>FavAddToolStripMenuItem.Type" xml:space="preserve"> <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </data> <data name=">>FavRemoveToolStripMenuItem.Name" xml:space="preserve"> @@ -3690,12 +3693,24 @@ <data name=">>FavRemoveToolStripMenuItem.Type" xml:space="preserve"> <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </data> + <data name=">>ToolStripSeparator2.Name" xml:space="preserve"> + <value>ToolStripSeparator2</value> + </data> + <data name=">>ToolStripSeparator2.Type" xml:space="preserve"> + <value>System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </data> <data name=">>ShowProfileMenuItem.Name" xml:space="preserve"> <value>ShowProfileMenuItem</value> </data> <data name=">>ShowProfileMenuItem.Type" xml:space="preserve"> <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </data> + <data name=">>ShowRelatedStatusesMenuItem.Name" xml:space="preserve"> + <value>ShowRelatedStatusesMenuItem</value> + </data> + <data name=">>ShowRelatedStatusesMenuItem.Type" xml:space="preserve"> + <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </data> <data name=">>ToolStripMenuItem6.Name" xml:space="preserve"> <value>ToolStripMenuItem6</value> </data> @@ -3912,24 +3927,6 @@ <data name=">>ToolTip1.Type" xml:space="preserve"> <value>System.Windows.Forms.ToolTip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </data> - <data name=">>ShowRelatedStatusesMenuItem.Name" xml:space="preserve"> - <value>ShowRelatedStatusesMenuItem</value> - </data> - <data name=">>ShowRelatedStatusesMenuItem.Type" xml:space="preserve"> - <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> - </data> - <data name=">>ShowRelatedStatusesMenuItem2.Name" xml:space="preserve"> - <value>ShowRelatedStatusesMenuItem2</value> - </data> - <data name=">>ShowRelatedStatusesMenuItem2.Type" xml:space="preserve"> - <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> - </data> - <data name=">>CacheInfoMenuItem.Name" xml:space="preserve"> - <value>CacheInfoMenuItem</value> - </data> - <data name=">>CacheInfoMenuItem.Type" xml:space="preserve"> - <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> - </data> <data name=">>$this.Name" xml:space="preserve"> <value>TweenMain</value> </data> Modified: trunk/Tween/Tween.vb =================================================================== --- trunk/Tween/Tween.vb 2010-11-30 17:06:51 UTC (rev 1144) +++ trunk/Tween/Tween.vb 2010-12-01 09:14:29 UTC (rev 1145) @@ -8274,6 +8274,16 @@ End If End If _initial = False + AddHandler tw.NewPostFromStream, AddressOf tw_NewPostFromStream + AddHandler tw.UserStreamStarted, AddressOf tw_UserStreamStarted + AddHandler tw.UserStreamStopped, AddressOf tw_UserStreamStopped + AddHandler tw.UserStreamPaused, AddressOf tw_UserStreamPaused + AddHandler tw.PostDeleted, AddressOf tw_PostDeleted + PauseToolStripMenuItem.Text = "&Pause" + PauseToolStripMenuItem.Enabled = False + StopToolStripMenuItem.Text = "&Start" + StopToolStripMenuItem.Enabled = True + tw.StartUserStream() TimerTimeline.Enabled = True End Sub @@ -9740,4 +9750,169 @@ buf.AppendFormat("キャッシュエントリ破棄数 : {0}" + vbCrLf, DirectCast(TIconDic, ImageDictionary).CacheRemoveCount) MessageBox.Show(buf.ToString, "アイコンキャッシュ使用状況") End Sub + + Private Sub tw_PostDeleted(ByVal id As Long) + Try + If InvokeRequired Then + Invoke(New Action(Of Long)(AddressOf tw_PostDeleted), id) + Exit Sub + End If + Catch ex As ObjectDisposedException + Exit Sub + End Try + + _statuses.RemovePost(id) + + If _curTab Is Nothing OrElse _curList Is Nothing Then Exit Sub + + Dim fidx As Integer + If _curList.FocusedItem IsNot Nothing Then + fidx = _curList.FocusedItem.Index + ElseIf _curList.TopItem IsNot Nothing Then + fidx = _curList.TopItem.Index + Else + fidx = 0 + End If + + _itemCache = Nothing 'キャッシュ破棄 + _postCache = Nothing + _curPost = Nothing + _curItemIndex = -1 + For Each tb As TabPage In ListTab.TabPages + DirectCast(tb.Tag, DetailsListView).VirtualListSize = _statuses.Tabs(tb.Text).AllCount + If _curTab.Equals(tb) Then + _curList.SelectedIndices.Clear() + If _statuses.Tabs(tb.Text).AllCount > 0 Then + If _statuses.Tabs(tb.Text).AllCount - 1 > fidx AndAlso fidx > -1 Then + _curList.SelectedIndices.Add(fidx) + Else + _curList.SelectedIndices.Add(_statuses.Tabs(tb.Text).AllCount - 1) + End If + 'If _curList.SelectedIndices.Count > 0 Then + ' _curList.EnsureVisible(_curList.SelectedIndices(0)) + ' _curList.FocusedItem = _curList.Items(_curList.SelectedIndices(0)) + 'End If + End If + End If + If _statuses.Tabs(tb.Text).UnreadCount = 0 Then + If SettingDialog.TabIconDisp Then + If tb.ImageIndex = 0 Then tb.ImageIndex = -1 'タブアイコン + End If + End If + Next + If Not SettingDialog.TabIconDisp Then ListTab.Refresh() + End Sub + + Private Sub tw_NewPostFromStream() + If SettingDialog.ReadOldPosts Then + _statuses.SetRead() '新着時未読クリア + End If + + Dim rsltAddCount As Integer = _statuses.DistributePosts() + SyncLock _syncObject + Dim tm As Date = Now + If _tlTimestamps.ContainsKey(tm) Then + _tlTimestamps(tm) += rsltAddCount + Else + _tlTimestamps.Add(Now, rsltAddCount) + End If + Dim oneHour As Date = Now.Subtract(New TimeSpan(1, 0, 0)) + Dim keys As New List(Of Date) + _tlCount = 0 + For Each key As Date In _tlTimestamps.Keys + If key.CompareTo(oneHour) < 0 Then + keys.Add(key) + Else + _tlCount += _tlTimestamps(key) + End If + Next + For Each key As Date In keys + _tlTimestamps.Remove(key) + Next + keys.Clear() + + 'Static before As DateTime = Now + 'If before.Subtract(Now).Seconds > -5 Then Exit Sub + 'before = Now + End SyncLock + + Try + If InvokeRequired AndAlso Not IsDisposed Then + Invoke(New MethodInvoker(AddressOf RefreshTimeline)) + Exit Sub + End If + Catch ex As ObjectDisposedException + Exit Sub + End Try + End Sub + Private Sub tw_UserStreamStarted() + If InvokeRequired Then + Invoke(New MethodInvoker(AddressOf tw_UserStreamStarted)) + Exit Sub + End If + + MenuItemUserStream.Text = "&UserStream ▶" + MenuItemUserStream.Enabled = True + PauseToolStripMenuItem.Text = "&Pause" + PauseToolStripMenuItem.Enabled = True + StopToolStripMenuItem.Text = "&Stop" + StopToolStripMenuItem.Enabled = True + + StatusLabel.Text = "UserStream Started." + End Sub + + Private Sub tw_UserStreamStopped() + If InvokeRequired Then + Invoke(New MethodInvoker(AddressOf tw_UserStreamStopped)) + Exit Sub + End If + + MenuItemUserStream.Text = "&UserStream ■" + MenuItemUserStream.Enabled = True + PauseToolStripMenuItem.Text = "&Pause" + PauseToolStripMenuItem.Enabled = False + StopToolStripMenuItem.Text = "&Start" + StopToolStripMenuItem.Enabled = True + + StatusLabel.Text = "UserStream Stopped." + End Sub + + Private Sub tw_UserStreamPaused() + If InvokeRequired Then + Invoke(New MethodInvoker(AddressOf tw_UserStreamPaused)) + Exit Sub + End If + + MenuItemUserStream.Text = "&UserStream ||" + MenuItemUserStream.Enabled = True + PauseToolStripMenuItem.Text = "&Resume" + PauseToolStripMenuItem.Enabled = True + StopToolStripMenuItem.Text = "&Stop" + StopToolStripMenuItem.Enabled = True + + StatusLabel.Text = "UserStream Paused." + End Sub + + Private Sub PauseToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PauseToolStripMenuItem.Click + MenuItemUserStream.Enabled = False + tw.PauseUserStream() + End Sub + + Private Sub StopToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles StopToolStripMenuItem.Click + MenuItemUserStream.Enabled = False + tw.StartUserStream() + End Sub + + Private Sub TrackToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TrackToolStripMenuItem.Click + Static track As String + track = InputBox("追跡するキーワードを入力してください") + tw.StopUserStream() + tw.StartUserStream(AllrepliesToolStripMenuItem.Checked, track) + TrackToolStripMenuItem.Checked = Not String.IsNullOrEmpty(track) + End Sub + + Private Sub AllrepliesToolStripMenuItem_CheckStateChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AllrepliesToolStripMenuItem.CheckStateChanged + tw.StopUserStream() + tw.StartUserStream(AllrepliesToolStripMenuItem.Checked, "") + End Sub End Class Modified: trunk/Tween/Tween.vbproj =================================================================== --- trunk/Tween/Tween.vbproj 2010-11-30 17:06:51 UTC (rev 1144) +++ trunk/Tween/Tween.vbproj 2010-12-01 09:14:29 UTC (rev 1145) @@ -89,6 +89,9 @@ <PlatformTarget>x86</PlatformTarget> <WarningsAsErrors>41999,42016,42017,42018,42019,42020,42021,42022,42032,42036</WarningsAsErrors> </PropertyGroup> + <PropertyGroup> + <OptionInfer>On</OptionInfer> + </PropertyGroup> <ItemGroup> <Reference Include="System" /> <Reference Include="System.Drawing" /> @@ -128,6 +131,7 @@ <Compile Include="Connection\TwitVideo.vb" /> <Compile Include="Connection\imgly.vb" /> <Compile Include="Connection\yfrog.vb" /> + <Compile Include="DataModel.vb" /> <Compile Include="DetailsListView.vb"> <SubType>Component</SubType> </Compile> @@ -531,6 +535,9 @@ <Install>true</Install> </BootstrapperPackage> </ItemGroup> + <ItemGroup> + <WCFMetadata Include="Service References\" /> + </ItemGroup> <Import Project="$(MSBuildBinPath)\Microsoft.VisualBasic.targets" /> <!-- To modify your build process, add your task inside one of the targets below and uncomment it. Other similar extension points exist, see Microsoft.Common.targets. Modified: trunk/Tween/Twitter.vb =================================================================== --- trunk/Tween/Twitter.vb 2010-11-30 17:06:51 UTC (rev 1144) +++ trunk/Tween/Twitter.vb 2010-12-01 09:14:29 UTC (rev 1145) @@ -35,8 +35,11 @@ Imports System.Runtime.Serialization.Json Imports System.Linq Imports System.Xml.Linq +Imports System.Runtime.Serialization Public Class Twitter + Implements IDisposable + Delegate Sub GetIconImageDelegate(ByVal post As PostClass) Private ReadOnly LockObj As New Object Private followerId As New List(Of Long) @@ -93,6 +96,7 @@ Case HttpStatusCode.OK Twitter.AccountState = ACCOUNT_STATE.Valid _uid = username.ToLower + Me.ReconnectUserStream() Return "" Case HttpStatusCode.Unauthorized Twitter.AccountState = ACCOUNT_STATE.Invalid @@ -115,6 +119,7 @@ Public Sub ClearAuthInfo() Twitter.AccountState = ACCOUNT_STATE.Invalid + TwitterApiInfo.Initialize() twCon.ClearAuthInfo() _UserIdNo = "" End Sub @@ -460,7 +465,7 @@ xNode = xd.SelectSingleNode("/status/user/description/text()") If xNode IsNot Nothing Then _bio = xNode.Value xNode = xd.SelectSingleNode("/status/user/id/text()") - If xNode IsNot Nothing Then _userIdNo = xNode.Value + If xNode IsNot Nothing Then _UserIdNo = xNode.Value Catch ex As Exception Return "" End Try @@ -1397,19 +1402,143 @@ End Select If gType = WORKERTYPE.Timeline Then - Return CreatePostsFromXml(content, gType, Nothing, read, count, Me.minHomeTimeline) + Return CreatePostsFromJson(content, gType, Nothing, read, count, Me.minHomeTimeline) + 'Return CreatePostsFromXml(content, gType, Nothing, read, count, Me.minHomeTimeline) Else - Return CreatePostsFromXml(content, gType, Nothing, read, count, Me.minMentions) + 'Return CreatePostsFromXml(content, gType, Nothing, read, count, Me.minMentions) + Return CreatePostsFromJson(content, gType, Nothing, read, count, Me.minMentions) End If End Function - 'Public Overloads Function GetListStatus(ByVal read As Boolean, _ - ' ByVal tab As TabClass, _ - ' ByVal more As Boolean) As String + Private Function DateTimeParse(ByVal input As String) As Date + Dim rslt As Date + Dim format() As String = { + "ddd MMM dd HH:mm:ss zzzz yyyy" + } + For Each fmt As String In format + If DateTime.TryParseExact(input, _ + fmt, _ + System.Globalization.DateTimeFormatInfo.InvariantInfo, _ + System.Globalization.DateTimeStyles.None, _ + rslt) Then + Return rslt + Else + Continue For + End If + Next + TraceOut("Parse Error(DateTimeFormat) : " + input) + Return New Date + End Function - ' Return GetListStatus(read, tab, more, -1) - 'End Function + Private Function CreatePostsFromJson(ByVal content As String, ByVal gType As WORKERTYPE, ByVal tab As TabClass, ByVal read As Boolean, ByVal count As Integer, ByRef minimumId As Long) As String + Dim items As List(Of TwitterDataModel.Status) + Try + items = CreateDataFromJson(Of List(Of TwitterDataModel.Status))(content) + Catch ex As SerializationException + TraceOut(ex.Message + Environment.NewLine + content) + Return "Json Parse Error(DataContractJsonSerializer)" + Catch ex As Exception + TraceOut(content) + Return "Invalid Json!" + End Try + For Each status As TwitterDataModel.Status In items + Dim post As New PostClass + Try + post.Id = status.Id + If minimumId > post.Id Then minimumId = post.Id + '二重取得回避 + SyncLock LockObj + If tab Is Nothing Then + If TabInformations.GetInstance.ContainsKey(post.Id) Then Continue For + Else + If TabInformations.GetInstance.ContainsKey(post.Id, tab.TabName) Then Continue For + End If + End SyncLock + If status.RetweetedStatus IsNot Nothing Then + Dim retweeted As TwitterDataModel.RetweetedStatus = status.RetweetedStatus + + post.PDate = DateTimeParse(retweeted.CreatedAt) + + 'Id + post.RetweetedId = retweeted.Id + '本文 + post.Data = retweeted.Text + 'Source取得(htmlの場合は、中身を取り出し) + post.Source = retweeted.Source + 'Reply先 + Long.TryParse(retweeted.InReplyToStatusId, post.InReplyToId) + post.InReplyToUser = retweeted.InReplyToScreenName + post.IsFav = TabInformations.GetInstance.GetTabByType(TabUsageType.Favorites).Contains(post.RetweetedId) + + '以下、ユーザー情報 + Dim user As TwitterDataModel.User = retweeted.User + post.Uid = user.Id + post.Name = user.ScreenName + post.Nickname = user.Name + post.ImageUrl = user.ProfileImageUrl + post.IsProtect = user.Protected + If post.IsMe Then _UserIdNo = post.Uid.ToString() + + 'Retweetした人 + post.RetweetedBy = status.User.ScreenName + Else + post.PDate = DateTimeParse(status.CreatedAt) + '本文 + post.Data = status.Text + 'Source取得(htmlの場合は、中身を取り出し) + post.Source = status.Source + Long.TryParse(status.InReplyToStatusId, post.InReplyToId) + post.InReplyToUser = status.InReplyToScreenName + + post.IsFav = status.Favorited + + '以下、ユーザー情報 + Dim user As TwitterDataModel.User = status.User + post.Uid = user.Id + post.Name = user.ScreenName + post.Nickname = user.Name + post.ImageUrl = user.ProfileImageUrl + post.IsProtect = user.Protected + post.IsMe = post.Name.ToLower.Equals(_uid) + If post.IsMe Then _UserIdNo = post.Uid.ToString + End If + 'HTMLに整形 + post.OriginalData = CreateHtmlAnchor(post.Data, post.ReplyToList) + post.Data = HttpUtility.HtmlDecode(post.Data) + post.Data = post.Data.Replace("<3", "♡") + 'Source整形 + CreateSource(post) + + post.IsRead = read + If gType = WORKERTYPE.Timeline OrElse tab IsNot Nothing Then + post.IsReply = post.ReplyToList.Contains(_uid) + Else + post.IsReply = True + End If + post.IsExcludeReply = False + + If post.IsMe Then + post.IsOwl = False + Else + If followerId.Count > 0 Then post.IsOwl = Not followerId.Contains(post.Uid) + End If + If post.IsMe AndAlso Not read AndAlso _readOwnPost Then post.IsRead = True + + post.IsDm = False + If tab IsNot Nothing Then post.RelTabName = tab.TabName + Catch ex As Exception + TraceOut(content) + MessageBox.Show("Parse Error(CreatePostsFromJson)") + Continue For + End Try + '非同期アイコン取得&StatusDictionaryに追加 + TabInformations.GetInstance.AddPost(post) + Next + + Return "" + End Function + Public Overloads Function GetListStatus(ByVal read As Boolean, _ ByVal tab As TabClass, _ ByVal more As Boolean, _ @@ -1461,15 +1590,6 @@ Dim res As HttpStatusCode Dim content As String = "" - 'Dim count As Integer = Setting.Instance.CountApi - 'If gType = WORKERTYPE.Reply Then count = Setting.Instance.CountApiReply - 'If Setting.Instance.UseAdditionalCount Then - ' If more AndAlso Setting.Instance.MoreCountApi <> 0 Then - ' count = Setting.Instance.MoreCountApi - ' ElseIf startup AndAlso Setting.Instance.FirstCountApi <> 0 AndAlso gType = WORKERTYPE.Timeline Then - ' count = Setting.Instance.FirstCountApi - ' End If - 'End If Try res = twCon.GetRelatedResults(tab.RelationTargetId, content) Catch ex As Exception @@ -1517,16 +1637,9 @@ RetweetedId:=0, SourceHtml:="") - 'Dim arIdx As Integer = -1 - 'Dim dlgt(300) As GetIconImageDelegate 'countQueryに合わせる - 'Dim ar(300) As IAsyncResult 'countQueryに合わせる - Dim targetItem As PostClass = TabInformations.GetInstance.Item(tab.RelationTargetId).Copy() targetItem.RelTabName = tab.TabName TabInformations.GetInstance.AddPost(targetItem) - 'arIdx += 1 - 'dlgt(arIdx) = New GetIconImageDelegate(AddressOf GetIconImage) - 'ar(arIdx) = dlgt(arIdx).BeginInvoke(targetItem, Nothing, Nothing) Dim replyToItem As PostClass = Nothing If targetItem.InReplyToId > 0 AndAlso TabInformations.GetInstance.Item(targetItem.InReplyToId) IsNot Nothing Then @@ -1553,40 +1666,16 @@ If tab IsNot Nothing Then item.RelTabName = tab.TabName '非同期アイコン取得&StatusDictionaryに追加 TabInformations.GetInstance.AddPost(item) - 'arIdx += 1 - 'dlgt(arIdx) = New GetIconImageDelegate(AddressOf GetIconImage) - 'ar(arIdx) = dlgt(arIdx).BeginInvoke(item, Nothing, Nothing) Next - 'arIdx += 1 - 'dlgt(arIdx) = New GetIconImageDelegate(AddressOf GetIconImage) - 'ar(arIdx) = dlgt(arIdx).BeginInvoke(targetItem, Nothing, Nothing) If replyToItem IsNot Nothing Then - 'arIdx += 1 - 'dlgt(arIdx) = New GetIconImageDelegate(AddressOf GetIconImage) - 'ar(arIdx) = dlgt(arIdx).BeginInvoke(replyToItem, Nothing, Nothing) TabInformations.GetInstance.AddPost(replyToItem) End If - ''アイコン取得完了待ち - 'For i As Integer = 0 To arIdx - ' Try - ' dlgt(i).EndInvoke(ar(i)) - ' Catch ex As IndexOutOfRangeException - ' Throw New IndexOutOfRangeException(String.Format("i={0},dlgt.Length={1},ar.Length={2},arIdx={3}", i, dlgt.Length, ar.Length, arIdx)) - ' Catch ex As Exception - ' '最後までendinvoke回す(ゾンビ化回避) - ' ex.Data("IsTerminatePermission") = False - ' Throw - ' End Try - 'Next End Using Return "" End Function Private Function CreatePostsFromXml(ByVal content As String, ByVal gType As WORKERTYPE, ByVal tab As TabClass, ByVal read As Boolean, ByVal count As Integer, ByRef minimumId As Long) As String - 'Dim arIdx As Integer = -1 - 'Dim dlgt(300) As GetIconImageDelegate 'countQueryに合わせる - 'Dim ar(300) As IAsyncResult 'countQueryに合わせる Dim xdoc As New XmlDocument Try xdoc.LoadXml(content) @@ -1691,34 +1780,10 @@ Continue For End Try - 'Me._dIcon.Add(post.ImageUrl, Nothing) TabInformations.GetInstance.AddPost(post) - ''非同期アイコン取得&StatusDictionaryに追加 - 'arIdx += 1 - 'If arIdx > dlgt.Length - 1 Then - ' arIdx -= 1 - ' Exit For - 'End If - 'dlgt(arIdx) = New GetIconImageDelegate(AddressOf GetIconImage) - 'ar(arIdx) = dlgt(arIdx).BeginInvoke(post, Nothing, Nothing) Next - ''アイコン取得完了待ち - 'For i As Integer = 0 To arIdx - ' Try - ' dlgt(i).EndInvoke(ar(i)) - ' Catch ex As IndexOutOfRangeException - ' Throw New IndexOutOfRangeException(String.Format("i={0},dlgt.Length={1},ar.Length={2},arIdx={3}", i, dlgt.Length, ar.Length, arIdx)) - ' Catch ex As Exception - ' '最後までendinvoke回す(ゾンビ化回避) - ' ex.Data("IsTerminatePermission") = False - ' Throw - ' End Try - 'Next - - 'If _ApiMethod = MySocket.REQ_TYPE.ReqGetAPI Then _remainCountApi = sck.RemainCountApi - Return "" End Function @@ -1763,9 +1828,6 @@ If Not TabInformations.GetInstance.ContainsTab(tab) Then Return "" - 'Dim arIdx As Integer = -1 - 'Dim dlgt(300) As GetIconImageDelegate 'countQueryに合わせる - 'Dim ar(300) As IAsyncResult 'countQueryに合わせる Dim xdoc As New XmlDocument Try xdoc.LoadXml(content) @@ -1828,26 +1890,11 @@ 'Me._dIcon.Add(post.ImageUrl, Nothing) TabInformations.GetInstance.AddPost(post) - ''非同期アイコン取得&StatusDictionaryに追加 - 'arIdx += 1 - 'dlgt(arIdx) = New GetIconImageDelegate(AddressOf GetIconImage) - 'ar(arIdx) = dlgt(arIdx).BeginInvoke(post, Nothing, Nothing) Next '' TODO '' 遡るための情報max_idやnext_pageの情報を保持する - ''アイコン取得完了待ち - 'For i As Integer = 0 To arIdx - ' Try - ' dlgt(i).EndInvoke(ar(i)) - ' Catch ex As Exception - ' '最後までendinvoke回す(ゾンビ化回避) - ' ex.Data("IsTerminatePermission") = False - ' Throw - ' End Try - 'Next - #If 0 Then Dim xNode As XmlNode = xdoc.DocumentElement.SelectSingleNode("/search:feed/twitter:warning", nsmgr) @@ -1859,138 +1906,144 @@ Return "" End Function - Public Function GetDirectMessageApi(ByVal read As Boolean, _ - ByVal gType As WORKERTYPE, _ - ByVal more As Boolean) As String - If _endingFlag Then Return "" - - If Twitter.AccountState <> ACCOUNT_STATE.Valid Then Return "" - - Dim res As HttpStatusCode - Dim content As String = "" - + Private Function CreateDirectMessagesFromJson(ByVal content As String, ByVal gType As WORKERTYPE, ByVal read As Boolean) As String + Dim item As List(Of TwitterDataModel.Directmessage) Try - If gType = WORKERTYPE.DirectMessegeRcv Then - If more Then - res = twCon.DirectMessages(20, minDirectmessage, 0, content) - Else - res = twCon.DirectMessages(20, 0, 0, content) - End If + If gType = WORKERTYPE.UserStream Then + Dim itm As List(Of TwitterDataModel.DirectmessageEvent) = CreateDataFromJson(Of List(Of TwitterDataModel.DirectmessageEvent))(content) + item = New List(Of TwitterDataModel.Directmessage) + For Each dat As TwitterDataModel.DirectmessageEvent In itm + item.Add(dat.Directmessage) + Next Else - If more Then - res = twCon.DirectMessagesSent(20, minDirectmessageSent, 0, content) - Else - res = twCon.DirectMessagesSent(20, 0, 0, content) - End If + item = CreateDataFromJson(Of List(Of TwitterDataModel.Directmessage))(content) End If + Catch ex As SerializationException + TraceOut(ex.Message + Environment.NewLine + content) + Return "Json Parse Error(DataContractJsonSerializer)" Catch ex As Exception - Return "Err:" + ex.Message - End Try - - Select Case res - Case HttpStatusCode.OK - Twitter.AccountState = ACCOUNT_STATE.Valid - Case HttpStatusCode.Unauthorized - Twitter.AccountState = ACCOUNT_STATE.Invalid - Return "Check your Username/Password." - Case HttpStatusCode.BadRequest - Return "Err:API Limits?" - Case Else - Return "Err:" + res.ToString() + "(" + GetCurrentMethod.Name + ")" - End Select - - 'Dim arIdx As Integer = -1 - 'Dim dlgt(300) As GetIconImageDelegate 'countQueryに合わせる - 'Dim ar(300) As IAsyncResult 'countQueryに合わせる - Dim xdoc As New XmlDocument - Try - xdoc.LoadXml(content) - Catch ex As Exception TraceOut(content) - 'MessageBox.Show("不正なXMLです。(DM-LoadXml)") - Return "Invalid XML!" + Return "Invalid Json!" End Try - For Each xentryNode As XmlNode In xdoc.DocumentElement.SelectNodes("./direct_message") - Dim xentry As XmlElement = CType(xentryNode, XmlElement) + For Each message As TwitterDataModel.Directmessage In item Dim post As New PostClass Try - post.Id = Long.Parse(xentry.Item("id").InnerText) - If gType = WORKERTYPE.DirectMessegeRcv Then - If minDirectmessage > post.Id Then minDirectmessage = post.Id - Else - If minDirectmessageSent > post.Id Then minDirectmessageSent = post.Id + post.Id = message.Id + If gType <> WORKERTYPE.UserStream Then + If gType = WORKERTYPE.DirectMessegeRcv Then + If minDirectmessage > post.Id Then minDirectmessage = post.Id + Else + If minDirectmessageSent > post.Id Then minDirectmessageSent = post.Id + End If End If + '二重取得回避 SyncLock LockObj If TabInformations.GetInstance.GetTabByType(TabUsageType.DirectMessage).Contains(post.Id) Then Continue For End SyncLock 'sender_id 'recipient_id - post.PDate = DateTime.ParseExact(xentry.Item("created_at").InnerText, "ddd MMM dd HH:mm:ss zzzz yyyy", System.Globalization.DateTimeFormatInfo.InvariantInfo, System.Globalization.DateTimeStyles.None) + post.PDate = DateTimeParse(message.CreatedAt) '本文 - post.Data = xentry.Item("text").InnerText + post.Data = message.Text 'HTMLに整形 post.OriginalData = CreateHtmlAnchor(post.Data, post.ReplyToList) post.Data = HttpUtility.HtmlDecode(post.Data) post.Data = post.Data.Replace("<3", "♡") post.IsFav = False - '受信DMかの判定で使用 - If gType = WORKERTYPE.DirectMessegeRcv Then - post.IsOwl = True - Else - post.IsOwl = False - End If '以下、ユーザー情報 - Dim xUentry As XmlElement - If gType = WORKERTYPE.DirectMessegeRcv Then - xUentry = CType(xentry.SelectSingleNode("./sender"), XmlElement) - post.IsMe = False + Dim user As TwitterDataModel.User + If gType = WORKERTYPE.UserStream Then + If twCon.AuthenticatedUsername.Equals(message.Recipient.ScreenName, StringComparison.CurrentCultureIgnoreCase) Then + user = message.Sender + post.IsMe = False + post.IsOwl = True + Else + user = message.Recipient + post.IsMe = True + post.IsOwl = False + End If Else - xUentry = CType(xentry.SelectSingleNode("./recipient"), XmlElement) - post.IsMe = True + If gType = WORKERTYPE.DirectMessegeRcv Then + user = message.Sender + post.IsMe = False + post.IsOwl = True + Else + user = message.Recipient + post.IsMe = True + post.IsOwl = False + End If End If - post.Uid = Long.Parse(xUentry.Item("id").InnerText) - post.Name = xUentry.Item("screen_name").InnerText - post.Nickname = xUentry.Item("name").InnerText - post.ImageUrl = xUentry.Item("profile_image_url").InnerText - post.IsProtect = Boolean.Parse(xUentry.Item("protected").InnerText) + + post.Uid = user.id + post.Name = user.ScreenName + post.Nickname = user.Name + post.ImageUrl = user.ProfileImageUrl + post.IsProtect = user.protected Catch ex As Exception TraceOut(content) - 'MessageBox.Show("不正なXMLです。(DM-Parse)") + MessageBox.Show("Parse Error(CreateDirectMessagesFromJson)") Continue For End Try post.IsRead = read - If gType = WORKERTYPE.DirectMessegeSnt AndAlso Not read AndAlso _readOwnPost Then post.IsRead = True + If post.IsMe AndAlso Not read AndAlso _readOwnPost Then post.IsRead = True post.IsReply = False post.IsExcludeReply = False post.IsDm = True - 'Me._dIcon.Add(post.ImageUrl, Nothing) TabInformations.GetInstance.AddPost(post) - - ''非同期アイコン取得&StatusDictionaryに追加 - 'arIdx += 1 - 'dlgt(arIdx) = New GetIconImageDelegate(AddressOf GetIconImage) - 'ar(arIdx) = dlgt(arIdx).BeginInvoke(post, Nothing, Nothing) Next - ''アイコン取得完了待ち - 'For i As Integer = 0 To arIdx - ' Try - ' dlgt(i).EndInvoke(ar(i)) - ' Catch ex As Exception - ' '最後までendinvoke回す(ゾンビ化回避) - ' ex.Data("IsTerminatePermission") = False - ' Throw - ' End Try - 'Next + Return "" - Return "" End Function + Public Function GetDirectMessageApi(ByVal read As Boolean, _ + ByVal gType As WORKERTYPE, _ + ByVal more As Boolean) As String + If _endingFlag Then Return "" + + If Twitter.AccountState <> ACCOUNT_STATE.Valid Then Return "" + + Dim res As HttpStatusCode + Dim content As String = "" + + Try + If gType = WORKERTYPE.DirectMessegeRcv Then + If more Then + res = twCon.DirectMessages(20, minDirectmessage, 0, content) + Else + res = twCon.DirectMessages(20, 0, 0, content) + End If + Else + If more Then + res = twCon.DirectMessagesSent(20, minDirectmessageSent, 0, content) + Else + res = twCon.DirectMessagesSent(20, 0, 0, content) + End If + End If + Catch ex As Exception + Return "Err:" + ex.Message + End Try + + Select Case res + Case HttpStatusCode.OK + Twitter.AccountState = ACCOUNT_STATE.Valid + Case HttpStatusCode.Unauthorized + Twitter.AccountState = ACCOUNT_STATE.Invalid + Return "Check your Username/Password." + Case HttpStatusCode.BadRequest + Return "Err:API Limits?" + Case Else + Return "Err:" + res.ToString() + "(" + GetCurrentMethod.Name + ")" + End Select + + Return CreateDirectMessagesFromJson(content, gType, read) + End Function + Public Function GetFavoritesApi(ByVal read As Boolean, _ ByVal gType As WORKERTYPE) As String @@ -2023,78 +2076,81 @@ Return "Err:" + res.ToString() + "(" + GetCurrentMethod.Name + ")" End Select - 'Dim arIdx As Integer = -1 - 'Dim dlgt(300) As GetIconImageDelegate 'countQueryに合わせる - 'Dim ar(300) As IAsyncResult 'countQueryに合わせる - Dim xdoc As New XmlDocument + Dim serializer As New DataContractJsonSerializer(GetType(List(Of TwitterDataModel.Status))) + Dim item As List(Of TwitterDataModel.Status) + Try - xdoc.LoadXml(content) + Using stream As New MemoryStream() + Dim buf As Byte() = Encoding.Unicode.GetBytes(content) + stream.Write(buf, 0, buf.Length) + stream.Seek(offset:=0, loc:=SeekOrigin.Begin) + item = DirectCast(serializer.ReadObject(stream), List(Of TwitterDataModel.Status)) + End Using + Catch ex As SerializationException + TraceOut(ex.Message + Environment.NewLine + content) + Return "Json Parse Error(DataContractJsonSerializer)" Catch ex As Exception TraceOut(content) - 'MessageBox.Show("不正なXMLです。(TL-LoadXml)") - Return "Invalid XML!" + Return "Invalid Json!" End Try - For Each xentryNode As XmlNode In xdoc.DocumentElement.SelectNodes("./status") - Dim xentry As XmlElement = CType(xentryNode, XmlElement) + For Each status As TwitterDataModel.Status In item Dim post As New PostClass Try - post.Id = Long.Parse(xentry.Item("id").InnerText) + post.Id = status.Id '二重取得回避 SyncLock LockObj - 'If TabInformations.GetInstance.ContainsKey(post.Id) Then Continue For If TabInformations.GetInstance.GetTabByType(TabUsageType.Favorites).Contains(post.Id) Then Continue For End SyncLock 'Retweet判定 - Dim xRnode As XmlNode = xentry.SelectSingleNode("./retweeted_status") - If xRnode IsNot Nothing Then - Dim xRentry As XmlElement = CType(xRnode, XmlElement) - post.PDate = DateTime.ParseExact(xRentry.Item("created_at").InnerText, "ddd MMM dd HH:mm:ss zzzz yyyy", System.Globalization.DateTimeFormatInfo.InvariantInfo, System.Globalization.DateTimeStyles.None) + If status.RetweetedStatus IsNot Nothing Then + Dim retweeted As TwitterDataModel.RetweetedStatus = status.RetweetedStatus + post.PDate = DateTimeParse(retweeted.CreatedAt) + 'Id - post.RetweetedId = Long.Parse(xRentry.Item("id").InnerText) + post.RetweetedId = post.Id '本文 - post.Data = xRentry.Item("text").InnerText + post.Data = retweeted.text 'Source取得(htmlの場合は、中身を取り出し) - post.Source = xRentry.Item("source").InnerText + post.Source = retweeted.source 'Reply先 - Long.TryParse(xRentry.Item("in_reply_to_status_id").InnerText, post.InReplyToId) - post.InReplyToUser = xRentry.Item("in_reply_to_screen_name").InnerText - 'in_reply_to_user_idを使うか? - post.IsFav = Boolean.Parse(xRentry.Item("favorited").InnerText) + Long.TryParse(retweeted.InReplyToStatusId, post.InReplyToId) + post.InReplyToUser = retweeted.InReplyToScreenName + post.IsFav = retweeted.favorited '以下、ユーザー情報 - Dim xRUentry As XmlElement = CType(xRentry.SelectSingleNode("./user"), XmlElement) - post.Uid = Long.Parse(xRUentry.Item("id").InnerText) - post.Name = xRUentry.Item("screen_name").InnerText - post.Nickname = xRUentry.Item("name").InnerText - post.ImageUrl = xRUentry.Item("profile_image_url").InnerText - post.IsProtect = Boolean.Parse(xRUentry.Item("protected").InnerText) + Dim user As TwitterDataModel.User = retweeted.User + post.Uid = user.Id + post.Name = user.ScreenName + post.Nickname = user.Name + post.ImageUrl = user.ProfileImageUrl + post.IsProtect = user.Protected post.IsMe = post.Name.ToLower.Equals(_uid) If post.IsMe Then _UserIdNo = post.Uid.ToString() 'Retweetした人 - Dim xUentry As XmlElement = CType(xentry.SelectSingleNode("./user"), XmlElement) - post.RetweetedBy = xUentry.Item("screen_name").InnerText + post.RetweetedBy = status.User.ScreenName Else - post.PDate = DateTime.ParseExact(xentry.Item("created_at").InnerText, "ddd MMM dd HH:mm:ss zzzz yyyy", System.Globalization.DateTimeFormatInfo.InvariantInfo, System.Globalization.DateTimeStyles.None) + post.PDate = DateTimeParse(status.CreatedAt) + '本文 - post.Data = xentry.Item("text").InnerText + post.Data = status.Text 'Source取得(htmlの場合は、中身を取り出し) - post.Source = xentry.Item("source").InnerText - Long.TryParse(xentry.Item("in_reply_to_status_id").InnerText, post.InReplyToId) - post.InReplyToUser = xentry.Item("in_reply_to_screen_name").InnerText - 'in_reply_to_user_idを使うか? - post.IsFav = Boolean.Parse(xentry.Item("favorited").InnerText) + post.Source = status.Source + Long.TryParse(status.InReplyToStatusId, post.InReplyToId) + post.InReplyToUser = status.InReplyToScreenName + post.IsFav = status.Favorited + '以下、ユーザー情報 - Dim xUentry As XmlElement = CType(xentry.SelectSingleNode("./user"), XmlElement) - post.Uid = Long.Parse(xUentry.Item("id").InnerText) - post.Name = xUentry.Item("screen_name").InnerText - post.Nickname = xUentry.Item("name").InnerText - post.ImageUrl = xUentry.Item("profile_image_url").InnerText - post.IsProtect = Boolean.Parse(xUentry.Item("protected").InnerText) + Dim user As TwitterDataModel.User = status.User + post.Uid = user.Id + post.Name = user.ScreenName + post.Nickname = user.Name + post.ImageUrl = user.ProfileImageUrl + post.IsProtect = user.Protected post.IsMe = post.Name.ToLower.Equals(_uid) - If post.IsMe Then _UserIdNo = post.Uid.ToString() + If post.IsMe Then _UserIdNo = post.Uid.ToString End If 'HTMLに整形 post.OriginalData = CreateHtmlAnchor(post.Data, post.ReplyToList) @@ -2116,30 +2172,13 @@ post.IsDm = False Catch ex As Exception TraceOut(content) - 'MessageBox.Show("不正なXMLです。(TL-Parse)") Continue For End Try - 'Me._dIcon.Add(post.ImageUrl, Nothing) TabInformations.GetInstance.AddPost(post) - ''非同期アイコン取得&StatusDictionaryに追加 - 'arIdx += 1 - 'dlgt(arIdx) = New GetIconImageDelegate(AddressOf GetIconImage) - 'ar(arIdx) = dlgt(arIdx).BeginInvoke(post, Nothing, Nothing) Next - ''アイコン取得完了待ち - 'For i As Integer = 0 To arIdx - ' Try - ' dlgt(i).EndInvoke(ar(i)) - ' Catch ex As Exception - ' '最後までendinvoke回す(ゾンビ化回避) - ' ex.Data("IsTerminatePermission") = False - ' Throw - ' End Try - 'Next - Return "" End Function @@ -2728,4 +2767,331 @@ Private Sub Twitter_ApiInformationChanged(ByVal sender As Object, ByVal e As ApiInformationChangedEventArgs) Handles Me.ApiInformationChanged End Sub + + + + Public Event NewPostFromStream() + Public Event UserStreamStarted() + Public Event UserStreamStopped() + Public Event UserStreamPaused() + Public Event UserStreamGetFriendsList() + Public Event PostDeleted(ByVal id As Long) + Private WithEvents userStream As TwitterUserstream + + Private _streamBypass As Boolean + Private EventNameTable() As String = { + "favorite", + "unfavorite", + "follow", + "list_member_added", + "list_member_removed" + } + + Private Sub userStream_StatusArrived(ByVal line As String) Handles userStream.StatusArrived + If _streamBypass OrElse String.IsNullOrEmpty(line) Then Exit Sub + + Dim idx As Integer = line.IndexOf("{""") + Dim idx2 As Integer = line.IndexOf(""":") + If idx = 0 AndAlso idx2 > 0 Then + Try + Dim eventname As String = line.Substring(idx + 2, idx2 - 2) + If eventname.Equals("friends") Then + Debug.Print("friends") + Exit Sub + ElseIf eventname.Equals("delete") Then + Debug.Print("delete") + If line.Contains("direct_message") Then + Dim data As TwitterDataModel.DeleteDirectmessageEvent = CreateDataFromJson(Of TwitterDataModel.DeleteDirectmessageEvent)(line) + RaiseEvent PostDeleted(data.Event.Directmessage.Id) + Else + Dim data As TwitterDataModel.DeleteEvent = CreateDataFromJson(Of TwitterDataModel.DeleteEvent)(line) + RaiseEvent PostDeleted(data.Event.Status.Id) + End If + Exit Sub + ElseIf eventname.Equals("limit") Then + Debug.Print("limit") + Exit Sub + ElseIf eventname.Equals("target") Then + Dim data As TwitterDataModel.EventData = CreateDataFromJson(Of TwitterDataModel.EventData)(line) + Select Case Array.IndexOf(EventNameTable, data.Event) + Case 0 ' favorite + Debug.Print("Event:favorite") + Case 1 ' unfavorite + Debug.Print("Event:unfavorite") + Case 2 ' follow + Debug.Print("Event:follow") + Case 3 ' list_member_added + Debug.Print("Event:list_member_added") + Case 4 ' list_member_removed + Debug.Print("Event:list_member_removed") + Case Else ' その他イベント + TraceOut("Unknown Event:" + data.Event + Environment.NewLine + line) + End Select + Exit Sub + ElseIf Not eventname.Equals("place") AndAlso Not eventname.Equals("in_reply_to_status_id_str") Then + Debug.Print(eventname) + End If + Catch ex As SerializationException + TraceOut(ex.Message + Environment.NewLine + line) + Catch ex As Exception + TraceOut(line) + End Try + + End If + + Dim res As New StringBuilder + res.Length = 0 + res.Append("[") + res.Append(line) + res.Append("]") + + Try + If line.StartsWith("{""direct_message"":") Then + CreateDirectMessagesFromJson(res.ToString, WORKERTYPE.UserStream, False) + Else + CreatePostsFromJson(res.ToString, WORKERTYPE.Timeline, Nothing, False, Nothing, Nothing) + End If + Catch ex As SerializationException + TraceOut(ex.Message + Environment.NewLine + line) + Catch ex As Exception + TraceOut(line) + End Try + + RaiseEvent NewPostFromStream() + End Sub + + Private Function CreateDataFromJson(Of T)(ByVal content As String) As T + Dim data As T + Using stream As New MemoryStream() + Dim buf As Byte() = Encoding.Unicode.GetBytes(content) + stream.Write(Encoding.Unicode.GetBytes(content), offset:=0, count:=buf.Length) + stream.Seek(offset:=0, loc:=SeekOrigin.Begin) + data = DirectCast((New DataContractJsonSerializer(GetType(T))).ReadObject(stream), T) + End Using + Return data + End Function + + Private Sub userStream_Started() Handles userStream.Started + RaiseEvent UserStreamStarted() + End Sub + + Private Sub userStream_Stopped() Handles userStream.Stopped + RaiseEvent UserStreamStopped() + End Sub + + Public ReadOnly Property UserStreamEnabled As Boolean + Get + Return If(userStream Is Nothing, False, userStream.Enabled) + End Get + End Property + + Public Overloads Sub StartUserStream() + StartUserStream(False, "") + End Sub + + Public Overloads Sub StartUserStream(ByVal allAtReplies As Boolean, ByVal trackWords As String) + If userStream IsNot Nothing Then + StopUserStream() + Else + Me._streamBypass = False + userStream = New TwitterUserstream(twCon) + userStream.Start(allAtReplies, trackWords) + End If + End Sub + + Public Sub StopUserStream() + Me._streamBypass = True + If userStream IsNot Nothing Then userStream.Dispose() + userStream = Nothing + If Not _endingFlag Then RaiseEvent UserStreamStopped() + End Sub + + Private Sub ReconnectUserStream() + If userStream IsNot Nothing Then + Me.StopUserStream() + Me.StartUserStream() + End If + End Sub + + Public Sub PauseUserStream() + If _streamBypass Then + _streamBypass = False + RaiseEvent UserStreamStarted() + Else + _streamBypass = True + RaiseEvent UserStreamPaused() + End If + End Sub + + Private Class TwitterUserstream + Implements IDisposable + + Public Event StatusArrived(ByVal status As String) + Public Event Stopped() + Public Event Started() + Private twCon As HttpTwitter + + Private _streamThread As Thread + Private _streamActive As Boolean + + Private _allAtreplies As Boolean = False + Private _trackwords As String = "" + + Public Sub New(ByVal twitterConnection As HttpTwitter) + twCon = DirectCast(twitterConnection.Clone(), HttpTwitter) + End Sub + + Public Overloads Sub Start(ByVal allAtReplies As Boolean, ByVal trackwords As String) + Me.AllAtReplies = allAtReplies + Me.TrackWords = trackwords + Me.Start() + End Sub + + Public Overloads Sub Start() + _streamActive = True + If _streamThread IsNot Nothing AndAlso _streamThread.IsAlive Then Exit Sub + _streamThread = New Thread(AddressOf UserStreamLoop) + _streamThread.Name = "UserStreamReceiver" + _streamThread.IsBackground = True + _streamThread.Start() + End Sub + + Public ReadOnly Property Enabled() As Boolean + Get + Return _streamActive + End Get + End Property + + Public Property AllAtReplies As Boolean + Get + Return _allAtreplies + End Get + Set(ByVal value As Boolean) + _allAtreplies = value + End Set + End Property + + Public Property TrackWords As String + Get + Return _trackwords + End Get + Set(ByVal value As String) + _trackwords = value + End Set + End Property + + Private Sub UserStreamLoop() + Dim st As Stream = Nothing + Dim sr As StreamReader = Nothing + Do + Try + RaiseEvent Started() + + twCon.UserStream(st, _allAtreplies, _trackwords) + sr = New StreamReader(st) + + Do While _streamActive + RaiseEvent StatusArrived(sr.ReadLine()) + Loop + + RaiseEvent Stopped() + Exit Do + Catch ex As WebException + If Not Me._streamActive Then + Exit Do + ElseIf ex.Status = WebExceptionStatus.Timeout Then + RaiseEvent Stopped() + Thread.Sleep(10 * 1000) + Else + ExceptionOut(ex) + End If + Catch ex As ThreadAbortException + Exit Do + Catch ex As IOException + If Not Me._streamActive Then + Exit Do + Else + ExceptionOut(ex) + End If + Catch ex As Exception + ExceptionOut(ex) + Finally + If sr IsNot Nothing Then + twCon.RequestAbort() + sr.BaseStream.Close() + End If + End Try + Loop While True + End Sub + +#Region "IDisposable Support" + Private disposedValue As Boolean ' 重複する呼び出しを検出するには + + ' IDisposable + Protected Overridable Sub Dispose(ByVal disposing As Boolean) + If Not Me.disposedValue Then + If disposing Then + ' TODO: マネージ状態を破棄します (マネージ オブジェクト)。 + _streamActive = False + If _streamThread IsNot Nothing AndAlso _streamThread.IsAlive Then + _streamThread.Abort() + _streamThread.Join(1000) + End If + End If + + ' TODO: アンマネージ リソース (アンマネージ オブジェクト) を解放し、下の Finalize() をオーバーライドします。 + ' TODO: 大きなフィールドを null に設定します。 + End If + Me.disposedValue = True + End Sub + + ' TODO: 上の Dispose(ByVal disposing As Boolean) にアンマネージ リソースを解放するコードがある場合にのみ、Finalize() をオーバーライドします。 + 'Protected Overrides Sub Finalize() + ' ' このコードを変更しないでください。クリーンアップ コードを上の Dispose(ByVal disposing As Boolean) に記述します。 + ' Dispose(False) + ' MyBase.Finalize() + 'End Sub + + ' このコードは、破棄可能なパターンを正しく実装できるように Visual Basic によって追加されました。 + Public Sub Dispose() Implements IDisposable.Dispose + ' このコードを変更しないでください。クリーンアップ コードを上の Dispose(ByVal disposing As Boolean) に記述します。 + Dispose(True) + GC.SuppressFinalize(Me) + End Sub +#End Region + + End Class + +#Region "IDisposable Support" + Private disposedValue As Boolean ' 重複する呼び出しを検出するには + + ' IDisposable + Protected Overridable Sub Dispose(ByVal disposing As Boolean) + If Not Me.disposedValue Then + If disposing Then + ' TODO: マネージ状態を破棄します (マネージ オブジェクト)。 + Me.StopUserStream() + End If + + ' TODO: アンマネージ リソース (アンマネージ オブジェクト) を解放し、下の Finalize() をオーバーライドします。 + ' TODO: 大きなフィールドを null に設定します。 + End If + Me.disposedValue = True + End Sub + + ' TODO: 上の Dispose(ByVal disposing As Boolean) にアンマネージ リソースを解放するコードがある場合にのみ、Finalize() をオーバーライドします。 + 'Protected Overrides Sub Finalize() + ' ' このコードを変更しないでください。クリーンアップ コードを上の Dispose(ByVal disposing As Boolean) に記述します。 + ' Dispose(False) + ' MyBase.Finalize() + 'End Sub + + ' このコードは、破棄可能なパターンを正しく実装できるように Visual Basic によって追加されました。 + Public Sub Dispose() Implements IDisposable.Dispose + ' このコードを変更しないでください。クリーンアップ コードを上の Dispose(ByVal disposing As Boolean) に記述します。 + Dispose(True) + GC.SuppressFinalize(Me) + End Sub +#End Region + End Class