From 74f80bde7705d703a3a8cb351c77e2991115f761 Mon Sep 17 00:00:00 2001 From: Alexander Eckart Date: Mon, 3 Dec 2012 19:00:10 +0100 Subject: [PATCH] changed mouse interaction in song menu --- Vocaluxe/Screens/CScreenSong.cs | 167 ++++++++++++++++---------------- 1 file changed, 81 insertions(+), 86 deletions(-) diff --git a/Vocaluxe/Screens/CScreenSong.cs b/Vocaluxe/Screens/CScreenSong.cs index e26b3451..1e648672 100644 --- a/Vocaluxe/Screens/CScreenSong.cs +++ b/Vocaluxe/Screens/CScreenSong.cs @@ -331,6 +331,7 @@ namespace Vocaluxe.Screens _PlaylistActive = true; Playlists[htPlaylists(Playlist)].Selected = _PlaylistActive; SongMenus[htSongMenus(SongMenu)].SetActive(!_PlaylistActive); + ToggleSongOptions(ESongOptionsView.None); } else if (CHelper.IsInBounds(SongMenus[htSongMenus(SongMenu)].Rect, MouseEvent.X, MouseEvent.Y)) { @@ -342,101 +343,95 @@ namespace Vocaluxe.Screens if (Playlists[htPlaylists(Playlist)].Visible && Playlists[htPlaylists(Playlist)].HandleMouse(MouseEvent)) return true; - if (!_SongOptionsActive) + if ((MouseEvent.RB) && (CSongs.Category < 0)) { + ToggleSongOptions(ESongOptionsView.None); + CGraphics.FadeTo(EScreens.ScreenMain); + } + else if (MouseEvent.RB && _SongOptionsActive) + ToggleSongOptions(ESongOptionsView.None); - 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.LBH && !DragAndDropActive && Playlists[htPlaylists(Playlist)].Visible && CSongs.NumVisibleSongs > 0 && SongMenus[htSongMenus(SongMenu)].GetActualSelection() != -1) - { - DragAndDropCover = SongMenus[htSongMenus(SongMenu)].GetSelectedSongCover(); - DragAndDropCover.Rect.Z = CSettings.zNear; - Playlists[htPlaylists(Playlist)].DragAndDropSongID = CSongs.VisibleSongs[SongMenus[htSongMenus(SongMenu)].GetActualSelection()].ID; - DragAndDropActive = true; - } - else 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); - } - } + if (MouseEvent.MB && CSongs.Category != -1) + { + ToggleSongOptions(ESongOptionsView.None); + SongMenus[htSongMenus(SongMenu)].SetSelectedSong(CSongs.GetRandomSong()); + } + else if (MouseEvent.MB && CSongs.Category == -1) + { + ToggleSongOptions(ESongOptionsView.None); + SongMenus[htSongMenus(SongMenu)].SetSelectedCategory(CSongs.GetRandomCategory()); } else + SongMenus[htSongMenus(SongMenu)].HandleMouse(ref MouseEvent); + + if (MouseEvent.LBH && !DragAndDropActive && Playlists[htPlaylists(Playlist)].Visible && CSongs.NumVisibleSongs > 0 && SongMenus[htSongMenus(SongMenu)].GetActualSelection() != -1) { - if (MouseEvent.LB && IsMouseOver(MouseEvent)) + DragAndDropCover = SongMenus[htSongMenus(SongMenu)].GetSelectedSongCover(); + DragAndDropCover.Rect.Z = CSettings.zNear; + Playlists[htPlaylists(Playlist)].DragAndDropSongID = CSongs.VisibleSongs[SongMenus[htSongMenus(SongMenu)].GetActualSelection()].ID; + DragAndDropActive = true; + ToggleSongOptions(ESongOptionsView.None); + } + else if (MouseEvent.LB && CSongs.NumVisibleSongs > 0 && SongMenus[htSongMenus(SongMenu)].GetActualSelection() != -1) + { + if (SongMenus[htSongMenus(SongMenu)].GetSelectedSong() != -1 && !_SongOptionsActive) { - 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(); - } + ToggleSongOptions(ESongOptionsView.Song); } - if (MouseEvent.RB) + else + ToggleSongOptions(ESongOptionsView.None); + } + else if (MouseEvent.LB && IsMouseOver(MouseEvent)) + { + if (Buttons[htButtons(ButtonOpenOptions)].Selected) + { + ToggleSongOptions(ESongOptionsView.General); + }else 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 && _SongOptionsActive) + { + ToggleSongOptions(ESongOptionsView.None); } if (!MouseEvent.LBH && DragAndDropActive) @@ -676,7 +671,7 @@ namespace Vocaluxe.Screens private void ToggleSongOptions(ESongOptionsView view) { - _SongOptionsActive = !_SongOptionsActive; + _SongOptionsActive = view != ESongOptionsView.None; if (_SongOptionsActive) { if (view == ESongOptionsView.Song)