Skip to content

Commit 8ee3d93

Browse files
committed
MediaViewerWebBrowserで表示中の画像のインデックスを持たせる
1 parent ebe61db commit 8ee3d93

File tree

3 files changed

+44
-7
lines changed

3 files changed

+44
-7
lines changed

OpenTween/MediaHandler.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,8 @@ public async Task OpenMediaInLightViewer(IWin32Window owner, ThumbnailInfo[] thu
8787
public void OpenMediaInWebBrowserViewer(IWin32Window owner, ThumbnailInfo[] thumbnails, int displayIndex)
8888
{
8989
var viewer = new MediaViewerWebBrowser();
90-
viewer.SetMediaItem(thumbnails[displayIndex]);
90+
viewer.SetMediaItems(thumbnails);
91+
viewer.SelectMedia(displayIndex);
9192

9293
using (var viewerDialog = new MediaViewerWebBrowserDialog(viewer))
9394
viewerDialog.ShowDialog(owner);

OpenTween/MediaViewerWebBrowserDialog.cs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,10 @@ private void Model_PropertyChanged(object sender, PropertyChangedEventArgs e)
4545
{
4646
switch (e.PropertyName)
4747
{
48+
case nameof(MediaViewerWebBrowser.MediaItems):
49+
case nameof(MediaViewerWebBrowser.DisplayMediaIndex):
50+
this.UpdateTitle();
51+
break;
4852
case nameof(MediaViewerWebBrowser.DisplayHTML):
4953
this.UpdateHTML();
5054
break;
@@ -59,9 +63,23 @@ private void Model_PropertyChanged(object sender, PropertyChangedEventArgs e)
5963

6064
private void UpdateAll()
6165
{
66+
this.UpdateTitle();
6267
this.UpdateHTML();
6368
}
6469

70+
private void UpdateTitle()
71+
{
72+
const string TITLE_TEMPLATE = "{0}/{1}";
73+
74+
var mediaCount = this.model.MediaItems.Length;
75+
var displayIndex = this.model.DisplayMediaIndex;
76+
77+
if (mediaCount == 1)
78+
this.Text = "";
79+
else
80+
this.Text = string.Format(TITLE_TEMPLATE, displayIndex + 1, mediaCount);
81+
}
82+
6583
private void UpdateHTML()
6684
=> this.webBrowser.DocumentText = this.model.DisplayHTML;
6785
}

OpenTween/Models/MediaViewerWebBrowser.cs

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,22 @@ namespace OpenTween.Models
2727
{
2828
public class MediaViewerWebBrowser : NotifyPropertyChangedBase
2929
{
30-
public ThumbnailInfo DisplayMedia
30+
public ThumbnailInfo[] MediaItems
3131
{
32-
get => this._displayMedia;
33-
private set => this.SetProperty(ref this._displayMedia, value);
32+
get => this._mediaItems;
33+
private set => this.SetProperty(ref this._mediaItems, value);
3434
}
35-
private ThumbnailInfo _displayMedia;
35+
private ThumbnailInfo[] _mediaItems = new ThumbnailInfo[0];
36+
37+
public int DisplayMediaIndex
38+
{
39+
get => this._displayMediaIndex;
40+
private set => this.SetProperty(ref this._displayMediaIndex, value);
41+
}
42+
private int _displayMediaIndex;
43+
44+
public ThumbnailInfo DisplayMedia
45+
=> this.MediaItems[this.DisplayMediaIndex];
3646

3747
public string DisplayHTML
3848
{
@@ -48,9 +58,17 @@ public ColorRGB BackColor
4858
}
4959
private ColorRGB _backColor = new ColorRGB(0, 0, 0);
5060

51-
public void SetMediaItem(ThumbnailInfo media)
61+
public void SetMediaItems(ThumbnailInfo[] thumbnails)
5262
{
53-
this.DisplayMedia = media;
63+
this.DisplayMediaIndex = 0;
64+
this.MediaItems = thumbnails;
65+
}
66+
67+
public void SelectMedia(int displayIndex)
68+
{
69+
this.DisplayMediaIndex = displayIndex;
70+
71+
var media = this.MediaItems[displayIndex];
5472
this.DisplayHTML = this.CreateDocument();
5573
}
5674

0 commit comments

Comments
 (0)