OSDN Git Service

自己紹介表示部分で、本体の詳細表示と同等の処理を行いWebBrowserコンポーネントに投げるようにした。ContextMenuはまだ。
authorsyo68k <syo68k@users.sourceforge.jp>
Sun, 9 May 2010 16:08:29 +0000 (16:08 +0000)
committerKimura Youichi <kim.upsilon@bucyou.net>
Sat, 18 Feb 2012 14:12:12 +0000 (23:12 +0900)
git-svn-id: http://svn.sourceforge.jp/svnroot/tween/trunk@281 e39ad16e-3079-482e-bb30-4b4d378143b6

Tween/Resources/ChangeLog.txt
Tween/ShowUserInfo.Designer.vb
Tween/ShowUserInfo.resx
Tween/ShowUserInfo.vb
Tween/Tween.vb
Tween/Twitter.vb

index 5e2948f..41f35f3 100644 (file)
@@ -3,6 +3,7 @@
 ==== Ver 0.8.9.3(2010/05/**)
  * Alt+Shift+R,Ctrl+Qが効かない場合があったバグを修正
  * Replyタブの初期設定での更新間隔を180秒に。バージョンアップの方は手動で調整してください。
+ * ユーザー情報ダイアログで自己紹介の部分をhtml化して表示するようにした。サムネイルと右クリックメニュー以外は、@IDやハッシュタグのリンク化など、詳細表示とほぼ同等の機能があります。
 ==== Ver 0.8.9.2(2010/05/09)
  * 言及先の抽出ができていなかったバグを修正
  * ユーザー情報ダイアログで、アイコンの元画像サイズを考慮していなかったのを修正
index c9a615b..6035292 100644 (file)
@@ -31,7 +31,6 @@ Partial Class ShowUserInfo
         Me.LinkLabelWeb = New System.Windows.Forms.LinkLabel()
         Me.LabelLocation = New System.Windows.Forms.Label()
         Me.LabelName = New System.Windows.Forms.Label()
-        Me.LabelDescription = New System.Windows.Forms.Label()
         Me.Label5 = New System.Windows.Forms.Label()
         Me.Label6 = New System.Windows.Forms.Label()
         Me.LinkLabelFollowing = New System.Windows.Forms.LinkLabel()
@@ -51,6 +50,7 @@ Partial Class ShowUserInfo
         Me.UserPicture = New System.Windows.Forms.PictureBox()
         Me.BackgroundWorkerImageLoader = New System.ComponentModel.BackgroundWorker()
         Me.LabelScreenName = New System.Windows.Forms.Label()
+        Me.DescriptionBrowser = New System.Windows.Forms.WebBrowser()
         CType(Me.UserPicture, System.ComponentModel.ISupportInitialize).BeginInit()
         Me.SuspendLayout()
         '
@@ -100,12 +100,6 @@ Partial Class ShowUserInfo
         Me.LabelName.Name = "LabelName"
         Me.LabelName.UseMnemonic = False
         '
-        'LabelDescription
-        '
-        resources.ApplyResources(Me.LabelDescription, "LabelDescription")
-        Me.LabelDescription.Name = "LabelDescription"
-        Me.LabelDescription.UseMnemonic = False
-        '
         'Label5
         '
         resources.ApplyResources(Me.Label5, "Label5")
@@ -207,10 +201,21 @@ Partial Class ShowUserInfo
         resources.ApplyResources(Me.LabelScreenName, "LabelScreenName")
         Me.LabelScreenName.Name = "LabelScreenName"
         '
+        'DescriptionBrowser
+        '
+        Me.DescriptionBrowser.AllowWebBrowserDrop = False
+        Me.DescriptionBrowser.IsWebBrowserContextMenuEnabled = False
+        resources.ApplyResources(Me.DescriptionBrowser, "DescriptionBrowser")
+        Me.DescriptionBrowser.MinimumSize = New System.Drawing.Size(20, 20)
+        Me.DescriptionBrowser.Name = "DescriptionBrowser"
+        Me.DescriptionBrowser.Url = New System.Uri("", System.UriKind.Relative)
+        Me.DescriptionBrowser.WebBrowserShortcutsEnabled = False
+        '
         'ShowUserInfo
         '
         resources.ApplyResources(Me, "$this")
         Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
+        Me.Controls.Add(Me.DescriptionBrowser)
         Me.Controls.Add(Me.LabelScreenName)
         Me.Controls.Add(Me.UserPicture)
         Me.Controls.Add(Me.LabelIsFollowed)
@@ -229,7 +234,6 @@ Partial Class ShowUserInfo
         Me.Controls.Add(Me.LinkLabelFollowing)
         Me.Controls.Add(Me.Label6)
         Me.Controls.Add(Me.Label5)
-        Me.Controls.Add(Me.LabelDescription)
         Me.Controls.Add(Me.LabelName)
         Me.Controls.Add(Me.LabelLocation)
         Me.Controls.Add(Me.LinkLabelWeb)
@@ -257,7 +261,6 @@ Partial Class ShowUserInfo
     Friend WithEvents LinkLabelWeb As System.Windows.Forms.LinkLabel
     Friend WithEvents LabelLocation As System.Windows.Forms.Label
     Friend WithEvents LabelName As System.Windows.Forms.Label
-    Friend WithEvents LabelDescription As System.Windows.Forms.Label
     Friend WithEvents Label5 As System.Windows.Forms.Label
     Friend WithEvents Label6 As System.Windows.Forms.Label
     Friend WithEvents LinkLabelFollowing As System.Windows.Forms.LinkLabel
@@ -277,4 +280,5 @@ Partial Class ShowUserInfo
     Friend WithEvents UserPicture As System.Windows.Forms.PictureBox
     Friend WithEvents BackgroundWorkerImageLoader As System.ComponentModel.BackgroundWorker
     Friend WithEvents LabelScreenName As System.Windows.Forms.Label
+    Friend WithEvents DescriptionBrowser As System.Windows.Forms.WebBrowser
 End Class
index 6f07b51..6f5602f 100644 (file)
   <data name="&gt;&gt;LabelName.ZOrder" xml:space="preserve">
     <value>19</value>
   </data>
-  <data name="LabelDescription.Location" type="System.Drawing.Point, System.Drawing">
-    <value>71, 203</value>
-  </data>
-  <data name="LabelDescription.Size" type="System.Drawing.Size, System.Drawing">
-    <value>328, 134</value>
-  </data>
-  <data name="LabelDescription.TabIndex" type="System.Int32, mscorlib">
-    <value>9</value>
-  </data>
-  <data name="LabelDescription.Text" xml:space="preserve">
-    <value>LabelDescription</value>
-  </data>
-  <data name="&gt;&gt;LabelDescription.Name" xml:space="preserve">
-    <value>LabelDescription</value>
-  </data>
-  <data name="&gt;&gt;LabelDescription.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="&gt;&gt;LabelDescription.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name="&gt;&gt;LabelDescription.ZOrder" xml:space="preserve">
-    <value>18</value>
-  </data>
   <data name="Label5.AutoSize" type="System.Boolean, mscorlib">
     <value>True</value>
   </data>
     <value>$this</value>
   </data>
   <data name="&gt;&gt;Label5.ZOrder" xml:space="preserve">
-    <value>17</value>
+    <value>18</value>
   </data>
   <data name="Label6.AutoSize" type="System.Boolean, mscorlib">
     <value>True</value>
     <value>$this</value>
   </data>
   <data name="&gt;&gt;Label6.ZOrder" xml:space="preserve">
-    <value>16</value>
+    <value>17</value>
   </data>
   <data name="LinkLabelFollowing.AutoSize" type="System.Boolean, mscorlib">
     <value>True</value>
     <value>$this</value>
   </data>
   <data name="&gt;&gt;LinkLabelFollowing.ZOrder" xml:space="preserve">
-    <value>15</value>
+    <value>16</value>
   </data>
   <data name="LinkLabelFollowers.AutoSize" type="System.Boolean, mscorlib">
     <value>True</value>
     <value>$this</value>
   </data>
   <data name="&gt;&gt;LinkLabelFollowers.ZOrder" xml:space="preserve">
-    <value>14</value>
+    <value>15</value>
   </data>
   <data name="Label7.AutoSize" type="System.Boolean, mscorlib">
     <value>True</value>
     <value>$this</value>
   </data>
   <data name="&gt;&gt;Label7.ZOrder" xml:space="preserve">
-    <value>13</value>
+    <value>14</value>
   </data>
   <data name="LabelCreatedAt.AutoSize" type="System.Boolean, mscorlib">
     <value>True</value>
     <value>$this</value>
   </data>
   <data name="&gt;&gt;LabelCreatedAt.ZOrder" xml:space="preserve">
-    <value>12</value>
+    <value>13</value>
   </data>
   <data name="Label8.AutoSize" type="System.Boolean, mscorlib">
     <value>True</value>
     <value>$this</value>
   </data>
   <data name="&gt;&gt;Label8.ZOrder" xml:space="preserve">
-    <value>11</value>
+    <value>12</value>
   </data>
   <data name="LinkLabelTweet.AutoSize" type="System.Boolean, mscorlib">
     <value>True</value>
     <value>$this</value>
   </data>
   <data name="&gt;&gt;LinkLabelTweet.ZOrder" xml:space="preserve">
-    <value>10</value>
+    <value>11</value>
   </data>
   <data name="Label9.AutoSize" type="System.Boolean, mscorlib">
     <value>True</value>
     <value>$this</value>
   </data>
   <data name="&gt;&gt;Label9.ZOrder" xml:space="preserve">
-    <value>9</value>
+    <value>10</value>
   </data>
   <data name="LinkLabelFav.AutoSize" type="System.Boolean, mscorlib">
     <value>True</value>
     <value>$this</value>
   </data>
   <data name="&gt;&gt;LinkLabelFav.ZOrder" xml:space="preserve">
-    <value>8</value>
+    <value>9</value>
   </data>
   <data name="ButtonFollow.Location" type="System.Drawing.Point, System.Drawing">
     <value>16, 489</value>
     <value>$this</value>
   </data>
   <data name="&gt;&gt;ButtonFollow.ZOrder" xml:space="preserve">
-    <value>7</value>
+    <value>8</value>
   </data>
   <data name="ButtonUnFollow.Location" type="System.Drawing.Point, System.Drawing">
     <value>116, 489</value>
     <value>$this</value>
   </data>
   <data name="&gt;&gt;ButtonUnFollow.ZOrder" xml:space="preserve">
-    <value>6</value>
+    <value>7</value>
   </data>
   <data name="Label10.AutoSize" type="System.Boolean, mscorlib">
     <value>True</value>
     <value>$this</value>
   </data>
   <data name="&gt;&gt;Label10.ZOrder" xml:space="preserve">
-    <value>5</value>
+    <value>6</value>
   </data>
   <data name="LabelIsProtected.AutoSize" type="System.Boolean, mscorlib">
     <value>True</value>
     <value>$this</value>
   </data>
   <data name="&gt;&gt;LabelIsProtected.ZOrder" xml:space="preserve">
-    <value>4</value>
+    <value>5</value>
   </data>
   <data name="LabelIsFollowing.AutoSize" type="System.Boolean, mscorlib">
     <value>True</value>
     <value>$this</value>
   </data>
   <data name="&gt;&gt;LabelIsFollowing.ZOrder" xml:space="preserve">
-    <value>3</value>
+    <value>4</value>
   </data>
   <data name="LabelIsFollowed.AutoSize" type="System.Boolean, mscorlib">
     <value>True</value>
     <value>$this</value>
   </data>
   <data name="&gt;&gt;LabelIsFollowed.ZOrder" xml:space="preserve">
-    <value>2</value>
+    <value>3</value>
   </data>
   <data name="UserPicture.Location" type="System.Drawing.Point, System.Drawing">
     <value>12, 24</value>
     <value>$this</value>
   </data>
   <data name="&gt;&gt;UserPicture.ZOrder" xml:space="preserve">
-    <value>1</value>
+    <value>2</value>
   </data>
   <metadata name="BackgroundWorkerImageLoader.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
     <value>17, 17</value>
     <value>$this</value>
   </data>
   <data name="&gt;&gt;LabelScreenName.ZOrder" xml:space="preserve">
+    <value>1</value>
+  </data>
+  <data name="DescriptionBrowser.Location" type="System.Drawing.Point, System.Drawing">
+    <value>66, 202</value>
+  </data>
+  <data name="DescriptionBrowser.Size" type="System.Drawing.Size, System.Drawing">
+    <value>341, 123</value>
+  </data>
+  <data name="DescriptionBrowser.TabIndex" type="System.Int32, mscorlib">
+    <value>27</value>
+  </data>
+  <data name="&gt;&gt;DescriptionBrowser.Name" xml:space="preserve">
+    <value>DescriptionBrowser</value>
+  </data>
+  <data name="&gt;&gt;DescriptionBrowser.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="&gt;&gt;DescriptionBrowser.Parent" xml:space="preserve">
+    <value>$this</value>
+  </data>
+  <data name="&gt;&gt;DescriptionBrowser.ZOrder" xml:space="preserve">
     <value>0</value>
   </data>
   <metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
index 3242a7a..a9e7b76 100644 (file)
 ' Boston, MA 02110-1301, USA.
 
 Imports System.Xml
+Imports System.Web
 
 Public Class ShowUserInfo
 
     Private userInfoXml As String = ""
     Private _info As UserInfo
     Private icondata As Image = Nothing
+    Private atlist As New Generic.List(Of String)
+    Dim dTxt As String
 
     Private Structure UserInfo
         Dim Name As String
@@ -89,7 +92,11 @@ Public Class ShowUserInfo
             LabelLocation.Text = _info.Location
             LinkLabelWeb.Text = _info.Url
 
-            LabelDescription.Text = _info.Description
+            'LabelDescription.Text = _info.Description
+
+            DescriptionBrowser.Visible = False
+            dTxt = TweenMain.createDetailHtml( _
+                    TweenMain.TwitterInstance.CreateHtmlAnchor(_info.Description, atlist))
 
             LinkLabelFollowing.Text = _info.FriendsCount.ToString
             LinkLabelFollowers.Text = _info.FollowersCount.ToString
@@ -217,4 +224,26 @@ Public Class ShowUserInfo
             UserPicture.Image = Nothing
         End Try
     End Sub
+
+    Private Sub ShowUserInfo_Shown(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Shown
+        DescriptionBrowser.DocumentText = dTxt
+        DescriptionBrowser.Visible = True
+    End Sub
+
+    Private Sub DescriptionBrowser_Navigating(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserNavigatingEventArgs) Handles DescriptionBrowser.Navigating
+        If e.Url.AbsoluteUri <> "about:blank" Then
+            e.Cancel = True
+
+            If e.Url.AbsoluteUri.StartsWith("http://twitter.com/search?q=%23") OrElse _
+               e.Url.AbsoluteUri.StartsWith("https://twitter.com/search?q=%23") Then
+                'ハッシュタグの場合は、タブで開く
+                Dim urlStr As String = HttpUtility.UrlDecode(e.Url.AbsoluteUri)
+                Dim hash As String = urlStr.Substring(urlStr.IndexOf("#"))
+                TweenMain.AddNewTabForSearch(hash)
+                Exit Sub
+            Else
+                TweenMain.OpenUriAsync(e.Url.OriginalString)
+            End If
+        End If
+    End Sub
 End Class
\ No newline at end of file
index 37380cd..5772777 100644 (file)
@@ -3184,7 +3184,7 @@ Public Class TweenMain
         End If
     End Sub
 
-    Private Sub AddNewTabForSearch(ByVal searchWord As String)
+    Public Sub AddNewTabForSearch(ByVal searchWord As String)
         '同一検索条件のタブが既に存在すれば、そのタブアクティブにして終了
         For Each tb As TabClass In _statuses.GetTabsByType(TabUsageType.PublicSearch)
             If tb.SearchWords = searchWord AndAlso tb.SearchLang = "" Then
@@ -4341,11 +4341,15 @@ RETRY:
         If Not SettingDialog.TabIconDisp Then ListTab.Refresh()
     End Sub
 
+    Public Function createDetailHtml(ByVal orgdata As String) As String
+        Return detailHtmlFormatHeader + orgdata + detailHtmlFormatFooter
+    End Function
+
     Private Sub DispSelectedPost()
 
         If _curList.SelectedIndices.Count = 0 OrElse _curPost Is Nothing Then Exit Sub
 
-        Dim dTxt As String = detailHtmlFormatHeader + _curPost.OriginalData + detailHtmlFormatFooter
+        Dim dTxt As String = createDetailHtml(_curPost.OriginalData)
         If _statuses.Tabs(_curTab.Text).TabType = TabUsageType.DirectMessage AndAlso _curPost.IsOwl Then
             NameLabel.Text = "DM TO -> "
         ElseIf _statuses.Tabs(_curTab.Text).TabType = TabUsageType.DirectMessage Then
index 1491321..9893635 100644 (file)
@@ -4128,7 +4128,7 @@ Public Class Twitter
 
     End Function
 
-    Private Function CreateHtmlAnchor(ByVal Text As String, ByVal AtList As List(Of String)) As String
+    Public Function CreateHtmlAnchor(ByVal Text As String, ByVal AtList As List(Of String)) As String
         'Dim retStr As String = HttpUtility.HtmlEncode(Text)     '要検証(デコードされて取得されるので再エンコード)
         'Dim retStr As String = HttpUtility.HtmlDecode(Text)
         Dim retStr As String = ""