Added full-video-preview. Toggle wie "V" or click on video-icon.

This commit is contained in:
Florian Kuepper committed 2012-12-01 23:11:54 +01:00
1 parent 26a5086fc8
commit aa68edfba9
5 files changed
+188 -99

No files matched your search

+10
View File
@@ -143,6 +143,16 @@ namespace Vocaluxe.Menu.SongMenu
_SongMenu.SetSmallView(SmallView);
}
public void ToggleVideoFull()
{
_SongMenu.ToggleVideoFull();
}
public bool IsVideoFull()
{
return _SongMenu.IsVideoFull();
}
#endregion ISongMenu
#region IMenuElement
@@ -484,6 +484,9 @@ namespace Vocaluxe.Menu.SongMenu
_timer.Stop();
_timer.Reset();
_SelectedInternal = _SelectedPending;
if (IsVideoFull())
ToggleVideoFull();
}
public virtual void HandleInput(ref KeyEvent KeyEvent)
@@ -553,6 +556,17 @@ namespace Vocaluxe.Menu.SongMenu
return false;
}
public virtual void ToggleVideoFull()
{
if (!_Initialized)
return;
}
public virtual bool IsVideoFull()
{
return false;
}
public virtual void UnloadTextures()
{
}
+38 -7
View File
@@ -41,6 +41,7 @@ namespace Vocaluxe.Menu.SongMenu
private int _actualSelection = -1;
private bool _SmallView = false;
private bool _VidFull = false;
public override int GetActualSelection()
{
@@ -359,6 +360,10 @@ namespace Vocaluxe.Menu.SongMenu
}
else if (_PreviewSelected != -1 && MouseEvent.LB && CSongs.Category != -1)
{
if (CHelper.IsInBounds(_VideoIcon.Rect, MouseEvent))
{
ToggleVideoFull();
}
if (CHelper.IsInBounds(_CoverBig.Rect, MouseEvent) || CHelper.IsInBounds(_TextBG.Rect, MouseEvent))
{
_Locked = _PreviewSelected;
@@ -375,6 +380,10 @@ namespace Vocaluxe.Menu.SongMenu
}
}
}
else if (MouseEvent.LB && CHelper.IsInBounds(_VideoIcon.Rect, MouseEvent))
{
ToggleVideoFull();
}
if (MouseEvent.Wheel > 0)
{
@@ -472,14 +481,26 @@ namespace Vocaluxe.Menu.SongMenu
if (_vidtex.index != -1 && _Video != -1)
{
RectangleF bounds = new RectangleF(_CoverBig.Rect.X, _CoverBig.Rect.Y, _CoverBig.Rect.W, _CoverBig.Rect.H);
RectangleF rect = new RectangleF(0f, 0f, _vidtex.width, _vidtex.height);
CHelper.SetRect(bounds, ref rect, rect.Width / rect.Height, EAspect.Crop);
if (_VidFull)
{
RectangleF bounds = new RectangleF(0, 0, CSettings.iRenderW, CSettings.iRenderH);
RectangleF rect = new RectangleF(0f, 0f, _vidtex.width, _vidtex.height);
CHelper.SetRect(bounds, ref rect, rect.Width / rect.Height, EAspect.Crop);
CDraw.DrawTexture(_vidtex, new SRectF(rect.X, rect.Y, rect.Width, rect.Height, _CoverBig.Rect.Z),
_vidtex.color, new SRectF(bounds.X, bounds.Y, bounds.Width, bounds.Height, 0f), false);
CDraw.DrawTextureReflection(_vidtex, new SRectF(rect.X, rect.Y, rect.Width, rect.Height, _CoverBig.Rect.Z),
_vidtex.color, new SRectF(bounds.X, bounds.Y, bounds.Width, bounds.Height, 0f), _CoverBig.ReflectionSpace, _CoverBig.ReflectionHeight);
CDraw.DrawTexture(_vidtex, new SRectF(rect.X, rect.Y, rect.Width, rect.Height, CSettings.zNear),
_vidtex.color, new SRectF(bounds.X, bounds.Y, bounds.Width, bounds.Height, 0f), false);
}
else
{
RectangleF bounds = new RectangleF(_CoverBig.Rect.X, _CoverBig.Rect.Y, _CoverBig.Rect.W, _CoverBig.Rect.H);
RectangleF rect = new RectangleF(0f, 0f, _vidtex.width, _vidtex.height);
CHelper.SetRect(bounds, ref rect, rect.Width / rect.Height, EAspect.Crop);
CDraw.DrawTexture(_vidtex, new SRectF(rect.X, rect.Y, rect.Width, rect.Height, _CoverBig.Rect.Z),
_vidtex.color, new SRectF(bounds.X, bounds.Y, bounds.Width, bounds.Height, 0f), false);
CDraw.DrawTextureReflection(_vidtex, new SRectF(rect.X, rect.Y, rect.Width, rect.Height, _CoverBig.Rect.Z),
_vidtex.color, new SRectF(bounds.X, bounds.Y, bounds.Width, bounds.Height, 0f), _CoverBig.ReflectionSpace, _CoverBig.ReflectionHeight);
}
}
@@ -793,6 +814,16 @@ namespace Vocaluxe.Menu.SongMenu
return _SmallView;
}
public override void ToggleVideoFull()
{
_VidFull = !_VidFull;
}
public override bool IsVideoFull()
{
return _VidFull;
}
public override void LoadTextures()
{
base.LoadTextures();
+3
View File
@@ -33,6 +33,9 @@ namespace Vocaluxe.Menu.SongMenu
bool IsVisible();
void SetVisible(bool Visible);
void ToggleVideoFull();
bool IsVideoFull();
bool IsSmallView();
void SetSmallView(bool SmallView);
+123 -92
View File
@@ -141,7 +141,9 @@ namespace Vocaluxe.Screens
switch (KeyEvent.Key)
{
case Keys.Escape:
if (CSongs.Category < 0 || CConfig.Tabs == EOffOn.TR_CONFIG_OFF)
if (SongMenus[htSongMenus(SongMenu)].IsVideoFull())
SongMenus[htSongMenus(SongMenu)].ToggleVideoFull();
else if (CSongs.Category < 0 || CConfig.Tabs == EOffOn.TR_CONFIG_OFF)
CGraphics.FadeTo(EScreens.ScreenMain);
break;
@@ -149,7 +151,11 @@ namespace Vocaluxe.Screens
if (CSongs.NumVisibleSongs > 0)
{
if (SongMenus[htSongMenus(SongMenu)].GetSelectedSong() != -1 && !_SongOptionsActive)
{
ToggleSongOptions(ESongOptionsView.Song);
if (SongMenus[htSongMenus(SongMenu)].IsVideoFull())
SongMenus[htSongMenus(SongMenu)].ToggleVideoFull();
}
}
break;
@@ -174,6 +180,8 @@ namespace Vocaluxe.Screens
break;
case Keys.Space:
if (SongMenus[htSongMenus(SongMenu)].IsVideoFull())
SongMenus[htSongMenus(SongMenu)].ToggleVideoFull();
ToggleSongOptions(ESongOptionsView.General);
break;
@@ -187,6 +195,8 @@ namespace Vocaluxe.Screens
else
{
_SearchActive = true;
if (SongMenus[htSongMenus(SongMenu)].IsVideoFull())
SongMenus[htSongMenus(SongMenu)].ToggleVideoFull();
}
break;
@@ -215,6 +225,8 @@ namespace Vocaluxe.Screens
else
{
_SearchActive = true;
if (SongMenus[htSongMenus(SongMenu)].IsVideoFull())
SongMenus[htSongMenus(SongMenu)].ToggleVideoFull();
}
}
break;
@@ -234,13 +246,16 @@ namespace Vocaluxe.Screens
//TODO: Delete that!
case Keys.S:
if (CSongs.NumVisibleSongs > 0)
{
StartMedleySong(SongMenus[htSongMenus(SongMenu)].GetSelectedSong());
}
break;
}
}
}
else
else if(!SongMenus[htSongMenus(SongMenu)].IsVideoFull())
{
switch (KeyEvent.Key)
{
@@ -294,118 +309,134 @@ namespace Vocaluxe.Screens
}
}
if (KeyEvent.Key == Keys.V)
{
if (CSongs.Category != -1)
{
SongMenus[htSongMenus(SongMenu)].ToggleVideoFull();
}
}
return true;
}
public override bool HandleMouse(MouseEvent MouseEvent)
{
base.HandleMouse(MouseEvent);
if (Playlists[htPlaylists(Playlist)].Visible && Playlists[htPlaylists(Playlist)].IsMouseOver(MouseEvent))
if (!SongMenus[htSongMenus(SongMenu)].IsVideoFull())
{
_PlaylistActive = true;
Playlists[htPlaylists(Playlist)].Selected = _PlaylistActive;
SongMenus[htSongMenus(SongMenu)].SetActive(!_PlaylistActive);
}
else if (CHelper.IsInBounds(SongMenus[htSongMenus(SongMenu)].Rect, MouseEvent.X, MouseEvent.Y))
{
_PlaylistActive = false;
Playlists[htPlaylists(Playlist)].Selected = _PlaylistActive;
SongMenus[htSongMenus(SongMenu)].SetActive(!_PlaylistActive);
}
base.HandleMouse(MouseEvent);
if (Playlists[htPlaylists(Playlist)].Visible && Playlists[htPlaylists(Playlist)].HandleMouse(MouseEvent))
return true;
if (!_SongOptionsActive)
{
if ((MouseEvent.RB) && (CSongs.Category < 0))
if (Playlists[htPlaylists(Playlist)].Visible && Playlists[htPlaylists(Playlist)].IsMouseOver(MouseEvent))
{
CGraphics.FadeTo(EScreens.ScreenMain);
_PlaylistActive = true;
Playlists[htPlaylists(Playlist)].Selected = _PlaylistActive;
SongMenus[htSongMenus(SongMenu)].SetActive(!_PlaylistActive);
}
else if (CHelper.IsInBounds(SongMenus[htSongMenus(SongMenu)].Rect, MouseEvent.X, MouseEvent.Y))
{
_PlaylistActive = false;
Playlists[htPlaylists(Playlist)].Selected = _PlaylistActive;
SongMenus[htSongMenus(SongMenu)].SetActive(!_PlaylistActive);
}
else if (MouseEvent.RB && _SongOptionsActive)
ToggleSongOptions(ESongOptionsView.None);
if (MouseEvent.MB && CSongs.Category != -1)
if (Playlists[htPlaylists(Playlist)].Visible && Playlists[htPlaylists(Playlist)].HandleMouse(MouseEvent))
return true;
if (!_SongOptionsActive)
{
Console.WriteLine("MB pressed");
SongMenus[htSongMenus(SongMenu)].SetSelectedSong(CSongs.GetRandomSong());
}
else if (MouseEvent.MB && CSongs.Category == -1)
{
Console.WriteLine("MB pressed");
SongMenus[htSongMenus(SongMenu)].SetSelectedCategory(CSongs.GetRandomCategory());
if ((MouseEvent.RB) && (CSongs.Category < 0))
{
CGraphics.FadeTo(EScreens.ScreenMain);
}
else if (MouseEvent.RB && _SongOptionsActive)
ToggleSongOptions(ESongOptionsView.None);
if (MouseEvent.MB && CSongs.Category != -1)
{
Console.WriteLine("MB pressed");
SongMenus[htSongMenus(SongMenu)].SetSelectedSong(CSongs.GetRandomSong());
}
else if (MouseEvent.MB && CSongs.Category == -1)
{
Console.WriteLine("MB pressed");
SongMenus[htSongMenus(SongMenu)].SetSelectedCategory(CSongs.GetRandomCategory());
}
else
SongMenus[htSongMenus(SongMenu)].HandleMouse(ref MouseEvent);
if (MouseEvent.LB && CSongs.NumVisibleSongs > 0 && SongMenus[htSongMenus(SongMenu)].GetActualSelection() != -1)
{
if (SongMenus[htSongMenus(SongMenu)].GetSelectedSong() != -1 && !_SongOptionsActive)
{
ToggleSongOptions(ESongOptionsView.Song);
}
}
else if (MouseEvent.LB && IsMouseOver(MouseEvent))
{
if (Buttons[htButtons(ButtonOpenOptions)].Selected)
{
ToggleSongOptions(ESongOptionsView.General);
}
}
}
else
SongMenus[htSongMenus(SongMenu)].HandleMouse(ref MouseEvent);
if (MouseEvent.LB && CSongs.NumVisibleSongs > 0 && SongMenus[htSongMenus(SongMenu)].GetActualSelection() != -1)
{
if (SongMenus[htSongMenus(SongMenu)].GetSelectedSong() != -1 && !_SongOptionsActive)
if (MouseEvent.LB && IsMouseOver(MouseEvent))
{
ToggleSongOptions(ESongOptionsView.Song);
if (Buttons[htButtons(ButtonOptionsClose)].Selected)
{
ToggleSongOptions(ESongOptionsView.None);
}
else if (Buttons[htButtons(ButtonOptionsSing)].Selected)
{
ToggleSongOptions(ESongOptionsView.None);
StartSong(SongMenus[htSongMenus(SongMenu)].GetSelectedSong());
}
else if (Buttons[htButtons(ButtonOptionsPlaylist)].Selected)
{
OpenAndAddPlaylistAction();
}
else if (Buttons[htButtons(ButtonOptionsRandom)].Selected)
{
if (CSongs.Category != -1)
{
SongMenus[htSongMenus(SongMenu)].SetSelectedSong(CSongs.GetRandomSong());
}
}
else if (Buttons[htButtons(ButtonOptionsRandomCategory)].Selected)
{
if (CSongs.Category == -1)
{
SongMenus[htSongMenus(SongMenu)].SetSelectedCategory(CSongs.GetRandomCategory());
}
}
else if (Buttons[htButtons(ButtonOptionsSingAll)].Selected)
{
ToggleSongOptions(ESongOptionsView.None);
StartRandomAllSongs();
}
else if (Buttons[htButtons(ButtonOptionsSingAllVisible)].Selected)
{
ToggleSongOptions(ESongOptionsView.None);
StartRandomVisibleSongs();
}
else if (Buttons[htButtons(ButtonOptionsOpenPlaylist)].Selected)
{
OpenPlaylistAction();
}
}
}
else if (MouseEvent.LB && IsMouseOver(MouseEvent))
{
if (Buttons[htButtons(ButtonOpenOptions)].Selected)
if (MouseEvent.RB)
{
ToggleSongOptions(ESongOptionsView.General);
ToggleSongOptions(ESongOptionsView.None);
}
}
}
else
{
if (MouseEvent.LB && IsMouseOver(MouseEvent))
{
if (Buttons[htButtons(ButtonOptionsClose)].Selected)
{
ToggleSongOptions(ESongOptionsView.None);
}
else if (Buttons[htButtons(ButtonOptionsSing)].Selected)
{
ToggleSongOptions(ESongOptionsView.None);
StartSong(SongMenus[htSongMenus(SongMenu)].GetSelectedSong());
}
else if (Buttons[htButtons(ButtonOptionsPlaylist)].Selected)
{
OpenAndAddPlaylistAction();
}
else if (Buttons[htButtons(ButtonOptionsRandom)].Selected)
{
if (CSongs.Category != -1)
{
SongMenus[htSongMenus(SongMenu)].SetSelectedSong(CSongs.GetRandomSong());
}
}
else if (Buttons[htButtons(ButtonOptionsRandomCategory)].Selected)
{
if (CSongs.Category == -1)
{
SongMenus[htSongMenus(SongMenu)].SetSelectedCategory(CSongs.GetRandomCategory());
}
}
else if (Buttons[htButtons(ButtonOptionsSingAll)].Selected)
{
ToggleSongOptions(ESongOptionsView.None);
StartRandomAllSongs();
}
else if (Buttons[htButtons(ButtonOptionsSingAllVisible)].Selected)
{
ToggleSongOptions(ESongOptionsView.None);
StartRandomVisibleSongs();
}
else if (Buttons[htButtons(ButtonOptionsOpenPlaylist)].Selected)
{
OpenPlaylistAction();
}
}
if (MouseEvent.RB)
{
ToggleSongOptions(ESongOptionsView.None);
}
if(MouseEvent.RB || MouseEvent.LB)
SongMenus[htSongMenus(SongMenu)].ToggleVideoFull();
}
return true;