[Tween-svn] [1327] もう眠いよパトラッシュ…

アーカイブの一覧に戻る

svnno****@sourc***** svnno****@sourc*****
2011年 1月 6日 (木) 22:04:29 JST


Revision: 1327
          http://sourceforge.jp/projects/tween/svn/view?view=rev&revision=1327
Author:   anis774
Date:     2011-01-06 22:04:29 +0900 (Thu, 06 Jan 2011)

Log Message:
-----------
もう眠いよパトラッシュ…

Modified Paths:
--------------
    branches/OperationClean/Tween/PostBrowser.vb
    branches/OperationClean/Tween/PostView.vb


-------------- next part --------------
Modified: branches/OperationClean/Tween/PostBrowser.vb
===================================================================
--- branches/OperationClean/Tween/PostBrowser.vb	2011-01-06 08:01:31 UTC (rev 1326)
+++ branches/OperationClean/Tween/PostBrowser.vb	2011-01-06 13:04:29 UTC (rev 1327)
@@ -1,5 +1,7 @@
 Imports System.Text.RegularExpressions
 Imports System.Text
+Imports System.Web
+Imports System.Reflection
 
 Public Class PostBrowser
     Private Const detailHtmlFormatMono1 As String = "<html><head><style type=""text/css""><!-- pre {font-family: """
@@ -168,4 +170,105 @@
     Public Function createDetailHtml(ByVal orgdata As String) As String
         Return Me.detailHtmlFormatHeader + orgdata + Me.detailHtmlFormatFooter
     End Function
+
+    Private Sub PostBrowser_Navigated(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserNavigatedEventArgs) Handles WebBrowser1.Navigated
+        If e.Url.AbsoluteUri <> "about:blank" Then
+            Me.Post = Me.Post
+            Dim hoge = Me.OpenUriAsync
+            hoge(e.Url.OriginalString) 'wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
+        End If
+    End Sub
+
+    Private Sub PostBrowser_Navigating(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserNavigatingEventArgs) Handles WebBrowser1.Navigating
+        If e.Url.Scheme = "data" Then
+            Me.StatusText = Me.WebBrowser1.StatusText.Replace("&", "&&")
+        ElseIf 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("#"))
+                HashSupl.AddItem(hash)
+                HashMgr.AddHashToHistory(hash.Trim, False)
+                Dim hoge = Me.AddNewTabForSearch
+                hoge(hash)
+                Exit Sub
+            Else
+                Dim m As Match = Regex.Match(e.Url.AbsoluteUri, "^https?://twitter.com/(#!/)?(?<name>[a-zA-Z0-9_]+)$")
+                If m.Success AndAlso IsTwitterId(m.Result("${name}")) Then
+                    Dim hoge = Me.AddNewTabForUserTimeline
+                    hoge(m.Result("${name}"))
+                Else
+                    Dim hoge = Me.OpenUriAsync
+                    hoge(e.Url.OriginalString)
+                End If
+            End If
+        End If
+    End Sub
+
+    Private Sub PostBrowser_StatusTextChanged(ByVal sender As Object, ByVal e As EventArgs) Handles WebBrowser1.StatusTextChanged
+        If Me.WebBrowser1.StatusText.StartsWith("http") OrElse Me.WebBrowser1.StatusText.StartsWith("ftp") _
+                OrElse Me.WebBrowser1.StatusText.StartsWith("data") Then
+            Me.StatusText = Me.WebBrowser1.StatusText.Replace("&", "&&")
+        End If
+    End Sub
+
+    Private Sub ScrollDownPostBrowser(ByVal forward As Boolean)
+        Dim doc As HtmlDocument = Me.WebBrowser1.Document
+        If doc Is Nothing Then Exit Sub
+        If doc.Body Is Nothing Then Exit Sub
+
+        If forward Then
+            doc.Body.ScrollTop += AppendSettingDialog.Instance.FontDetail.Height
+        Else
+            doc.Body.ScrollTop -= AppendSettingDialog.Instance.FontDetail.Height
+        End If
+    End Sub
+
+    Private Sub PageDownPostBrowser(ByVal forward As Boolean)
+        Dim doc As HtmlDocument = Me.WebBrowser1.Document
+        If doc Is Nothing Then Exit Sub
+        If doc.Body Is Nothing Then Exit Sub
+
+        If forward Then
+            doc.Body.ScrollTop += Me.WebBrowser1.ClientRectangle.Height - AppendSettingDialog.Instance.FontDetail.Height
+        Else
+            doc.Body.ScrollTop -= Me.WebBrowser1.ClientRectangle.Height - AppendSettingDialog.Instance.FontDetail.Height
+        End If
+    End Sub
+
+    Public Function WebBrowser_GetSelectionText(ByRef ComponentInstance As WebBrowser) As String
+        '発言詳細で「選択文字列をコピー」を行う
+        'WebBrowserコンポーネントのインスタンスを渡す
+        Dim typ As Type = ComponentInstance.ActiveXInstance.GetType()
+        Dim _SelObj As Object = typ.InvokeMember("selection", BindingFlags.GetProperty, Nothing, ComponentInstance.Document.DomDocument, Nothing)
+        Dim _objRange As Object = _SelObj.GetType().InvokeMember("createRange", BindingFlags.InvokeMethod, Nothing, _SelObj, Nothing)
+        Return DirectCast(_objRange.GetType().InvokeMember("text", BindingFlags.GetProperty, Nothing, _objRange, Nothing), String)
+    End Function
+
+    Public Event StatusTextChanged(ByVal sender As Object, ByVal e As EventArgs)
+
+    Private _statusText As String
+    Public Property StatusText() As String
+        Get
+            Return _statusText
+        End Get
+        Private Set(ByVal value As String)
+            Dim needRaiseEvent As Boolean = Me._statusText <> value
+            _statusText = value
+            If needRaiseEvent Then
+                RaiseEvent StatusTextChanged(Me, EventArgs.Empty)
+            End If
+        End Set
+    End Property
+
+
+    Public Property OpenUriAsync As Action(Of String)
+    Public Property HashSupl As AtIdSupplement
+    Public Property HashMgr As HashtagManage
+    Public Property AddNewTabForSearch As Action(Of String)
+    Public Property IsTwitterId As Func(Of String, Boolean)
+    Public Property AddNewTabForUserTimeline As Action(Of String)
 End Class

Modified: branches/OperationClean/Tween/PostView.vb
===================================================================
--- branches/OperationClean/Tween/PostView.vb	2011-01-06 08:01:31 UTC (rev 1326)
+++ branches/OperationClean/Tween/PostView.vb	2011-01-06 13:04:29 UTC (rev 1327)
@@ -70,8 +70,45 @@
         End Get
     End Property
 
+    Private Sub SourceLinkLabel_LinkClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles SourceLinkLabel.LinkClicked
+        Dim link As String = CType(SourceLinkLabel.Tag, String)
+        If Not String.IsNullOrEmpty(link) Then
+            Dim hoge = Me.OpenUriAsync
+            hoge(link)
+        End If
+    End Sub
+
+    Private Sub SourceLinkLabel_MouseEnter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SourceLinkLabel.MouseEnter
+        Dim link As String = CType(SourceLinkLabel.Tag, String)
+        If Not String.IsNullOrEmpty(link) Then
+            Me.StatusText = link
+        End If
+    End Sub
+
+    Private Sub SourceLinkLabel_MouseLeave(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SourceLinkLabel.MouseLeave
+        Me.StatusText = String.Empty
+    End Sub
+
+    Public Event StatusTextChanged(ByVal sender As Object, ByVal e As EventArgs)
+
+    Private _statusText As String
+    Public Property StatusText() As String
+        Get
+            Return _statusText
+        End Get
+        Private Set(ByVal value As String)
+            Dim needRaiseEvent As Boolean = _statusText <> value
+            _statusText = value
+            If needRaiseEvent Then
+                RaiseEvent StatusTextChanged(Me, EventArgs.Empty)
+            End If
+        End Set
+    End Property
+
+
     Public Property OneWayLoveColor As Color
     Public Property RetweetColor As Color
     Public Property FavoriteColor As Color
     Public Property Thumbnail As Thumbnail
+    Public Property OpenUriAsync As Action(Of String)
 End Class



Tween-svn メーリングリストの案内
アーカイブの一覧に戻る