svnno****@sourc*****
svnno****@sourc*****
2011年 2月 3日 (木) 21:54:11 JST
Revision: 1437 http://sourceforge.jp/projects/tween/svn/view?view=rev&revision=1437 Author: syo68k Date: 2011-02-03 21:54:10 +0900 (Thu, 03 Feb 2011) Log Message: ----------- 自分がイベントソースになっているイベントを通知するかどうかを各イベントごとに設定可能にした Modified Paths: -------------- trunk/Tween/AppendSettingDialog.Designer.vb trunk/Tween/AppendSettingDialog.resx trunk/Tween/AppendSettingDialog.vb trunk/Tween/Setting/SettingCommon.vb trunk/Tween/Tween.vb -------------- next part -------------- Modified: trunk/Tween/AppendSettingDialog.Designer.vb =================================================================== --- trunk/Tween/AppendSettingDialog.Designer.vb 2011-02-03 08:09:59 UTC (rev 1436) +++ trunk/Tween/AppendSettingDialog.Designer.vb 2011-02-03 12:54:10 UTC (rev 1437) @@ -352,6 +352,7 @@ Me.CheckUserUpdateEvent.Checked = True Me.CheckUserUpdateEvent.CheckState = System.Windows.Forms.CheckState.Checked Me.CheckUserUpdateEvent.Name = "CheckUserUpdateEvent" + Me.CheckUserUpdateEvent.ThreeState = True Me.CheckUserUpdateEvent.UseVisualStyleBackColor = True ' 'Label35 @@ -379,6 +380,7 @@ Me.CheckListCreatedEvent.Checked = True Me.CheckListCreatedEvent.CheckState = System.Windows.Forms.CheckState.Checked Me.CheckListCreatedEvent.Name = "CheckListCreatedEvent" + Me.CheckListCreatedEvent.ThreeState = True Me.CheckListCreatedEvent.UseVisualStyleBackColor = True ' 'CheckBlockEvent @@ -387,6 +389,7 @@ Me.CheckBlockEvent.Checked = True Me.CheckBlockEvent.CheckState = System.Windows.Forms.CheckState.Checked Me.CheckBlockEvent.Name = "CheckBlockEvent" + Me.CheckBlockEvent.ThreeState = True Me.CheckBlockEvent.UseVisualStyleBackColor = True ' 'CheckForceEventNotify @@ -403,6 +406,7 @@ Me.CheckListMemberRemovedEvent.Checked = True Me.CheckListMemberRemovedEvent.CheckState = System.Windows.Forms.CheckState.Checked Me.CheckListMemberRemovedEvent.Name = "CheckListMemberRemovedEvent" + Me.CheckListMemberRemovedEvent.ThreeState = True Me.CheckListMemberRemovedEvent.UseVisualStyleBackColor = True ' 'CheckListMemberAddedEvent @@ -411,6 +415,7 @@ Me.CheckListMemberAddedEvent.Checked = True Me.CheckListMemberAddedEvent.CheckState = System.Windows.Forms.CheckState.Checked Me.CheckListMemberAddedEvent.Name = "CheckListMemberAddedEvent" + Me.CheckListMemberAddedEvent.ThreeState = True Me.CheckListMemberAddedEvent.UseVisualStyleBackColor = True ' 'CheckFollowEvent @@ -419,6 +424,7 @@ Me.CheckFollowEvent.Checked = True Me.CheckFollowEvent.CheckState = System.Windows.Forms.CheckState.Checked Me.CheckFollowEvent.Name = "CheckFollowEvent" + Me.CheckFollowEvent.ThreeState = True Me.CheckFollowEvent.UseVisualStyleBackColor = True ' 'CheckUnfavoritesEvent @@ -427,6 +433,7 @@ Me.CheckUnfavoritesEvent.Checked = True Me.CheckUnfavoritesEvent.CheckState = System.Windows.Forms.CheckState.Checked Me.CheckUnfavoritesEvent.Name = "CheckUnfavoritesEvent" + Me.CheckUnfavoritesEvent.ThreeState = True Me.CheckUnfavoritesEvent.UseVisualStyleBackColor = True ' 'CheckFavoritesEvent @@ -435,6 +442,7 @@ Me.CheckFavoritesEvent.Checked = True Me.CheckFavoritesEvent.CheckState = System.Windows.Forms.CheckState.Checked Me.CheckFavoritesEvent.Name = "CheckFavoritesEvent" + Me.CheckFavoritesEvent.ThreeState = True Me.CheckFavoritesEvent.UseVisualStyleBackColor = True ' 'CheckEventNotify Modified: trunk/Tween/AppendSettingDialog.resx =================================================================== --- trunk/Tween/AppendSettingDialog.resx 2011-02-03 08:09:59 UTC (rev 1436) +++ trunk/Tween/AppendSettingDialog.resx 2011-02-03 12:54:10 UTC (rev 1437) @@ -264,7 +264,7 @@ <value>True</value> </data> <data name="CheckUserUpdateEvent.Location" type="System.Drawing.Point, System.Drawing"> - <value>40, 162</value> + <value>40, 145</value> </data> <data name="CheckUserUpdateEvent.Size" type="System.Drawing.Size, System.Drawing"> <value>189, 16</value> @@ -366,7 +366,7 @@ <value>True</value> </data> <data name="CheckListCreatedEvent.Location" type="System.Drawing.Point, System.Drawing"> - <value>40, 145</value> + <value>40, 162</value> </data> <data name="CheckListCreatedEvent.Size" type="System.Drawing.Size, System.Drawing"> <value>134, 16</value> Modified: trunk/Tween/AppendSettingDialog.vb =================================================================== --- trunk/Tween/AppendSettingDialog.vb 2011-02-03 08:09:59 UTC (rev 1436) +++ trunk/Tween/AppendSettingDialog.vb 2011-02-03 12:54:10 UTC (rev 1437) @@ -133,6 +133,7 @@ Private _curPanel As Panel = Nothing Private _MyEventNotifyEnabled As Boolean Private _MyEventNotifyFlag As EVENTTYPE + Private _isMyEventNotifyFlag As EVENTTYPE Private _MyForceEventNotify As Boolean Private _MyFavEventUnread As Boolean Private _MyTranslateLanguage As String @@ -331,7 +332,7 @@ _MyRetweetNoConfirm = CheckRetweetNoConfirm.Checked _MyLimitBalloon = CheckBalloonLimit.Checked _MyEventNotifyEnabled = CheckEventNotify.Checked - _MyEventNotifyFlag = GetEventNotifyFlag() + GetEventNotifyFlag(_MyEventNotifyFlag, _isMyEventNotifyFlag) _MyForceEventNotify = CheckForceEventNotify.Checked _MyFavEventUnread = CheckFavEventUnread.Checked _MyTranslateLanguage = (New Google).GetLanguageEnumFromIndex(ComboBoxTranslateLanguage.SelectedIndex) @@ -587,7 +588,7 @@ CheckRetweetNoConfirm.Checked = _MyRetweetNoConfirm CheckBalloonLimit.Checked = _MyLimitBalloon - ApplyEventNotifyFlag(_MyEventNotifyEnabled, _MyEventNotifyFlag) + ApplyEventNotifyFlag(_MyEventNotifyEnabled, _MyEventNotifyFlag, _isMyEventNotifyFlag) CheckForceEventNotify.Checked = _MyForceEventNotify CheckFavEventUnread.Checked = _MyFavEventUnread ComboBoxTranslateLanguage.SelectedIndex = (New Google).GetIndexFromLanguageEnum(_MyTranslateLanguage) @@ -1992,6 +1993,15 @@ End Set End Property + Public Property IsMyEventNotifyFlag As EVENTTYPE + Get + Return _isMyEventNotifyFlag + End Get + Set(ByVal value As EVENTTYPE) + _isMyEventNotifyFlag = value + End Set + End Property + Public Property ForceEventNotify As Boolean Get Return _MyForceEventNotify @@ -2457,79 +2467,74 @@ End Sub Private Sub CheckEventNotify_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _ - Handles CheckEventNotify.CheckedChanged, CheckFavoritesEvent.CheckedChanged, _ - CheckUnfavoritesEvent.CheckedChanged, CheckFollowEvent.CheckedChanged, _ - CheckListMemberAddedEvent.CheckedChanged, CheckListMemberRemovedEvent.CheckedChanged, _ - CheckListCreatedEvent.CheckedChanged, CheckUserUpdateEvent.CheckedChanged + Handles CheckEventNotify.CheckedChanged, CheckFavoritesEvent.CheckStateChanged, _ + CheckUnfavoritesEvent.CheckStateChanged, CheckFollowEvent.CheckStateChanged, _ + CheckListMemberAddedEvent.CheckStateChanged, CheckListMemberRemovedEvent.CheckStateChanged, _ + CheckListCreatedEvent.CheckStateChanged, CheckUserUpdateEvent.CheckStateChanged _MyEventNotifyEnabled = CheckEventNotify.Checked - _MyEventNotifyFlag = GetEventNotifyFlag() - ApplyEventNotifyFlag(_MyEventNotifyEnabled, _MyEventNotifyFlag) + GetEventNotifyFlag(_MyEventNotifyFlag, _isMyEventNotifyFlag) + ApplyEventNotifyFlag(_MyEventNotifyEnabled, _MyEventNotifyFlag, _isMyEventNotifyFlag) End Sub - Private Function GetEventNotifyFlag() As EVENTTYPE - Dim evt As EVENTTYPE = EVENTTYPE.None + Private Class EventCheckboxTblElement + Public CheckBox As CheckBox + Public Type As EVENTTYPE + End Class - If CheckFavoritesEvent.Checked Then - evt = evt Or EVENTTYPE.Favorite - End If + Private Function GetEventCheckboxTable() As EventCheckboxTblElement() - If CheckUnfavoritesEvent.Checked Then - evt = evt Or EVENTTYPE.Unfavorite - End If + Static _eventCheckboxTable As EventCheckboxTblElement() = { + New EventCheckboxTblElement With {.CheckBox = CheckFavoritesEvent, .Type = EVENTTYPE.Favorite}, + New EventCheckboxTblElement With {.CheckBox = CheckUnfavoritesEvent, .Type = EVENTTYPE.Unfavorite}, + New EventCheckboxTblElement With {.CheckBox = CheckFollowEvent, .Type = EVENTTYPE.Follow}, + New EventCheckboxTblElement With {.CheckBox = CheckListMemberAddedEvent, .Type = EVENTTYPE.ListMemberAdded}, + New EventCheckboxTblElement With {.CheckBox = CheckListMemberRemovedEvent, .Type = EVENTTYPE.ListMemberRemoved}, + New EventCheckboxTblElement With {.CheckBox = CheckBlockEvent, .Type = EVENTTYPE.Block}, + New EventCheckboxTblElement With {.CheckBox = CheckUserUpdateEvent, .Type = EVENTTYPE.UserUpdate}, + New EventCheckboxTblElement With {.CheckBox = CheckListCreatedEvent, .Type = EVENTTYPE.ListCreated} + } - If CheckFollowEvent.Checked Then - evt = evt Or EVENTTYPE.Follow - End If + Return _eventCheckboxTable + End Function + + Private Sub GetEventNotifyFlag(ByRef eventnotifyflag As EVENTTYPE, ByRef isMyeventnotifyflag As EVENTTYPE) + Dim evt As EVENTTYPE = EVENTTYPE.None + Dim myevt As EVENTTYPE = EVENTTYPE.None - If CheckListMemberAddedEvent.Checked Then - evt = evt Or EVENTTYPE.ListMemberAdded - End If + For Each tbl As EventCheckboxTblElement In GetEventCheckboxTable() + Select Case tbl.CheckBox.CheckState + Case CheckState.Checked + evt = evt Or tbl.Type + myevt = myevt Or tbl.Type + Case CheckState.Indeterminate + evt = evt Or tbl.Type + Case CheckState.Unchecked + ' + End Select + Next + eventnotifyflag = evt + isMyeventnotifyflag = myevt + End Sub - If CheckListMemberRemovedEvent.Checked Then - evt = evt Or EVENTTYPE.ListMemberRemoved - End If + Private Sub ApplyEventNotifyFlag(ByVal rootEnabled As Boolean, ByVal eventnotifyflag As EVENTTYPE, ByVal isMyeventnotifyflag As EVENTTYPE) + Dim evt = eventnotifyflag + Dim myevt = isMyeventnotifyflag - If CheckBlockEvent.Checked Then - evt = evt Or EVENTTYPE.Block - End If - - If CheckUserUpdateEvent.Checked Then - evt = evt Or EVENTTYPE.UserUpdate - End If - - If CheckListCreatedEvent.Checked Then - evt = evt Or EVENTTYPE.ListCreated - End If - - Return evt - End Function - - Private Sub ApplyEventNotifyFlag(ByVal rootEnabled As Boolean, ByVal evt As EVENTTYPE) CheckEventNotify.Checked = rootEnabled - CheckFavoritesEvent.Checked = CBool(evt And EVENTTYPE.Favorite) - CheckFavoritesEvent.Enabled = rootEnabled + For Each tbl As EventCheckboxTblElement In GetEventCheckboxTable() + If CBool(evt And tbl.Type) Then + If CBool(myevt And tbl.Type) Then + tbl.CheckBox.CheckState = CheckState.Checked + Else + tbl.CheckBox.CheckState = CheckState.Indeterminate + End If + Else + tbl.CheckBox.CheckState = CheckState.Unchecked + End If + tbl.CheckBox.Enabled = rootEnabled + Next - CheckUnfavoritesEvent.Checked = CBool(evt And EVENTTYPE.Unfavorite) - CheckUnfavoritesEvent.Enabled = rootEnabled - - CheckFollowEvent.Checked = CBool(evt And EVENTTYPE.Follow) - CheckFollowEvent.Enabled = rootEnabled - - CheckListMemberAddedEvent.Checked = CBool(evt And EVENTTYPE.ListMemberAdded) - CheckListMemberAddedEvent.Enabled = rootEnabled - - CheckListMemberRemovedEvent.Checked = CBool(evt And EVENTTYPE.ListMemberRemoved) - CheckListMemberRemovedEvent.Enabled = rootEnabled - - CheckBlockEvent.Checked = CBool(evt And EVENTTYPE.Block) - CheckBlockEvent.Enabled = rootEnabled - - CheckListCreatedEvent.Checked = CBool(evt And EVENTTYPE.ListCreated) - CheckListCreatedEvent.Enabled = rootEnabled - - CheckUserUpdateEvent.Checked = CBool(evt And EVENTTYPE.UserUpdate) - CheckUserUpdateEvent.Enabled = rootEnabled End Sub Private Sub CheckForceEventNotify_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckForceEventNotify.CheckedChanged Modified: trunk/Tween/Setting/SettingCommon.vb =================================================================== --- trunk/Tween/Setting/SettingCommon.vb 2011-02-03 08:09:59 UTC (rev 1436) +++ trunk/Tween/Setting/SettingCommon.vb 2011-02-03 12:54:10 UTC (rev 1437) @@ -97,7 +97,8 @@ Public IconSize As IconSizes = IconSizes.Icon16 Public NewAllPop As Boolean = True Public EventNotifyEnabled As Boolean = True - Public EventNotifyFlag As EVENTTYPE = EVENTTYPE.ALL + Public EventNotifyFlag As EVENTTYPE = EVENTTYPE.All + Public IsMyEventNotifyFlag As EVENTTYPE = EVENTTYPE.All Public ForceEventNotify As Boolean = True Public FavEventUnread As Boolean = True Public TranslateLanguage As String = My.Resources.TranslateDefaultLanguage Modified: trunk/Tween/Tween.vb =================================================================== --- trunk/Tween/Tween.vb 2011-02-03 08:09:59 UTC (rev 1436) +++ trunk/Tween/Tween.vb 2011-02-03 12:54:10 UTC (rev 1437) @@ -693,6 +693,7 @@ SettingDialog.LimitBalloon = _cfgCommon.LimitBalloon SettingDialog.EventNotifyEnabled = _cfgCommon.EventNotifyEnabled SettingDialog.EventNotifyFlag = _cfgCommon.EventNotifyFlag + SettingDialog.IsMyEventNotifyFlag = _cfgCommon.IsMyEventNotifyFlag SettingDialog.ForceEventNotify = _cfgCommon.ForceEventNotify SettingDialog.FavEventUnread = _cfgCommon.FavEventUnread SettingDialog.TranslateLanguage = _cfgCommon.TranslateLanguage @@ -1370,9 +1371,17 @@ Return BalloonRequired(New Twitter.FormattedEvent With {.Eventtype = EVENTTYPE.None}) End Function + Private Function IsEventNotifyAsEventType(ByVal type As EVENTTYPE) As Boolean + Return SettingDialog.EventNotifyEnabled AndAlso CBool(type And SettingDialog.EventNotifyFlag) OrElse type = EVENTTYPE.None + End Function + + Private Function IsMyEventNotityAsEventType(ByVal ev As Twitter.FormattedEvent) As Boolean + Return If(CBool(ev.Eventtype And SettingDialog.IsMyEventNotifyFlag), True, Not ev.IsMe) + End Function + Private Overloads Function BalloonRequired(ByVal ev As Twitter.FormattedEvent) As Boolean If ( - (SettingDialog.EventNotifyEnabled AndAlso CBool(ev.Eventtype And SettingDialog.EventNotifyFlag) OrElse ev.Eventtype = EVENTTYPE.None) AndAlso + IsEventNotifyAsEventType(ev.Eventtype) AndAlso IsMyEventNotityAsEventType(ev) AndAlso (NewPostPopMenuItem.Checked OrElse (SettingDialog.ForceEventNotify AndAlso ev.Eventtype <> EVENTTYPE.None)) AndAlso Not _initial AndAlso ( @@ -5918,6 +5927,7 @@ _cfgCommon.LimitBalloon = SettingDialog.LimitBalloon _cfgCommon.EventNotifyEnabled = SettingDialog.EventNotifyEnabled _cfgCommon.EventNotifyFlag = SettingDialog.EventNotifyFlag + _cfgCommon.IsMyEventNotifyFlag = SettingDialog.IsMyEventNotifyFlag _cfgCommon.ForceEventNotify = SettingDialog.ForceEventNotify _cfgCommon.FavEventUnread = SettingDialog.FavEventUnread _cfgCommon.TranslateLanguage = SettingDialog.TranslateLanguage @@ -9922,7 +9932,7 @@ 'サウンド再生 Dim snd As String = SettingDialog.EventSoundFile If Not _initial AndAlso SettingDialog.PlaySound AndAlso snd <> "" Then - If CBool(ev.Eventtype And SettingDialog.EventNotifyFlag) Then + If CBool(ev.Eventtype And SettingDialog.EventNotifyFlag) AndAlso IsMyEventNotityAsEventType(ev) Then Try Dim dir As String = My.Application.Info.DirectoryPath If Directory.Exists(Path.Combine(dir, "Sounds")) Then