From 853164575fd7605b945a29ba69ff64d8100ec1f2 Mon Sep 17 00:00:00 2001 From: Andrzej Rybczak Date: Sat, 8 Aug 2009 21:18:46 +0200 Subject: [PATCH] adjust mouse bindings a bit and document them in help screen --- src/browser.cpp | 10 +--- src/help.cpp | 117 ++++++++++++++++++++++++++++++++-------- src/media_library.cpp | 20 +++++-- src/playlist.cpp | 2 +- src/playlist_editor.cpp | 11 ++-- src/search_engine.cpp | 2 +- src/tag_editor.cpp | 15 +++--- 7 files changed, 130 insertions(+), 47 deletions(-) diff --git a/src/browser.cpp b/src/browser.cpp index ebcde5ae..c85fcdaa 100644 --- a/src/browser.cpp +++ b/src/browser.cpp @@ -280,7 +280,7 @@ void Browser::MouseButtonPressed(MEVENT me) { if (w->Empty() || !w->hasCoords(me.x, me.y) || size_t(me.y) >= w->Size()) return; - if (me.bstate & BUTTON1_PRESSED || me.bstate & BUTTON3_PRESSED) + if (me.bstate & (BUTTON1_PRESSED | BUTTON3_PRESSED)) { w->Goto(me.y); switch (w->Current().type) @@ -300,14 +300,6 @@ void Browser::MouseButtonPressed(MEVENT me) } break; case itPlaylist: - if (me.bstate & BUTTON3_PRESSED) - { - size_t pos = w->Choice(); - SpacePressed(); - if (pos < w->Size()-1) - w->Scroll(wUp); - } - break; case itSong: if (me.bstate & BUTTON1_PRESSED) { diff --git a/src/help.cpp b/src/help.cpp index 4fdbde53..3102aefb 100644 --- a/src/help.cpp +++ b/src/help.cpp @@ -131,8 +131,8 @@ void Help::GetKeybindings() *w << DisplayKeys(Key.PageUp) << "Page up\n"; *w << DisplayKeys(Key.PageDown) << "Page down\n"; *w << DisplayKeys(Key.Home) << "Home\n"; - *w << DisplayKeys(Key.End) << "End\n\n"; - + *w << DisplayKeys(Key.End) << "End\n"; + *w << "\n"; *w << DisplayKeys(Key.ScreenSwitcher) << "Switch between playlist and browser\n"; *w << DisplayKeys(Key.Help) << "Help screen\n"; *w << DisplayKeys(Key.Playlist) << "Playlist screen\n"; @@ -149,10 +149,9 @@ void Help::GetKeybindings() # ifdef ENABLE_CLOCK *w << DisplayKeys(Key.Clock) << "Clock screen\n"; # endif // ENABLE_CLOCK - *w << "\n\n"; - *w << " " << fmtBold << "Keys - Global\n -----------------------------------------\n" << fmtBoldEnd; + *w << "\n\n " << fmtBold << "Keys - Global\n -----------------------------------------\n" << fmtBoldEnd; *w << DisplayKeys(Key.Stop) << "Stop\n"; *w << DisplayKeys(Key.Pause) << "Pause\n"; *w << DisplayKeys(Key.Next) << "Next track\n"; @@ -160,15 +159,15 @@ void Help::GetKeybindings() *w << DisplayKeys(Key.SeekForward) << "Seek forward\n"; *w << DisplayKeys(Key.SeekBackward) << "Seek backward\n"; *w << DisplayKeys(Key.VolumeDown) << "Decrease volume\n"; - *w << DisplayKeys(Key.VolumeUp) << "Increase volume\n\n"; - + *w << DisplayKeys(Key.VolumeUp) << "Increase volume\n"; + *w << "\n"; *w << DisplayKeys(Key.ToggleSpaceMode) << "Toggle space mode (select/add)\n"; *w << DisplayKeys(Key.ToggleAddMode) << "Toggle add mode\n"; *w << DisplayKeys(Key.ToggleMouse) << "Toggle mouse support\n"; *w << DisplayKeys(Key.ReverseSelection) << "Reverse selection\n"; *w << DisplayKeys(Key.DeselectAll) << "Deselect all items\n"; - *w << DisplayKeys(Key.AddSelected) << "Add selected items to playlist/m3u file\n\n"; - + *w << DisplayKeys(Key.AddSelected) << "Add selected items to playlist/m3u file\n"; + *w << "\n"; *w << DisplayKeys(Key.ToggleRepeat) << "Toggle repeat mode\n"; *w << DisplayKeys(Key.ToggleRandom) << "Toggle random mode\n"; *w << DisplayKeys(Key.ToggleSingle) << "Toggle single mode\n"; @@ -176,8 +175,8 @@ void Help::GetKeybindings() *w << DisplayKeys(Key.Shuffle) << "Shuffle playlist\n"; *w << DisplayKeys(Key.ToggleCrossfade) << "Toggle crossfade mode\n"; *w << DisplayKeys(Key.SetCrossfade) << "Set crossfade\n"; - *w << DisplayKeys(Key.UpdateDB) << "Start a music database update\n\n"; - + *w << DisplayKeys(Key.UpdateDB) << "Start a music database update\n"; + *w << "\n"; *w << DisplayKeys(Key.ApplyFilter) << "Apply filter\n"; *w << DisplayKeys(Key.FindForward) << "Forward find\n"; *w << DisplayKeys(Key.FindBackward) << "Backward find\n"; @@ -192,12 +191,12 @@ void Help::GetKeybindings() *w << DisplayKeys(Key.ArtistInfo) << "Show artist's info\n"; *w << DisplayKeys(Key.ToggleLyricsDB) << "Toggle lyrics database\n"; # endif // HAVE_CURL_CURL_H - *w << DisplayKeys(Key.Lyrics) << "Show/hide song's lyrics\n\n"; - - *w << DisplayKeys(Key.Quit) << "Quit\n\n\n"; + *w << DisplayKeys(Key.Lyrics) << "Show/hide song's lyrics\n"; + *w << "\n"; + *w << DisplayKeys(Key.Quit) << "Quit\n"; - *w << " " << fmtBold << "Keys - Playlist screen\n -----------------------------------------\n" << fmtBoldEnd; + *w << "\n\n " << fmtBold << "Keys - Playlist\n -----------------------------------------\n" << fmtBoldEnd; *w << DisplayKeys(Key.Enter) << "Play\n"; *w << DisplayKeys(Key.SwitchTagTypeList) << "Add random songs to playlist\n"; *w << DisplayKeys(Key.Delete) << "Delete item/selected items from playlist\n"; @@ -213,10 +212,10 @@ void Help::GetKeybindings() *w << DisplayKeys(Key.SavePlaylist) << "Save playlist\n"; *w << DisplayKeys(Key.SortPlaylist) << "Sort/reverse playlist\n"; *w << DisplayKeys(Key.GoToNowPlaying) << "Go to currently playing position\n"; - *w << DisplayKeys(Key.ToggleAutoCenter) << "Toggle auto center mode\n\n\n"; + *w << DisplayKeys(Key.ToggleAutoCenter) << "Toggle auto center mode\n"; - *w << " " << fmtBold << "Keys - Browse screen\n -----------------------------------------\n" << fmtBoldEnd; + *w << "\n\n " << fmtBold << "Keys - Browser\n -----------------------------------------\n" << fmtBoldEnd; *w << DisplayKeys(Key.Enter) << "Enter directory/Add item to playlist and play\n"; *w << DisplayKeys(Key.Space) << "Add item to playlist\n"; # ifdef HAVE_TAGLIB_H @@ -228,19 +227,19 @@ void Help::GetKeybindings() *w << DisplayKeys(Key.SwitchTagTypeList)<< "Browse MPD database/local filesystem\n"; *w << DisplayKeys(Key.GoToNowPlaying) << "Locate currently playing song\n"; *w << DisplayKeys(Key.GoToParentDir) << "Go to parent directory\n"; - *w << DisplayKeys(Key.Delete) << "Delete playlist/file/directory\n\n\n"; + *w << DisplayKeys(Key.Delete) << "Delete playlist/file/directory\n"; - *w << " " << fmtBold << "Keys - Search engine\n -----------------------------------------\n" << fmtBoldEnd; + *w << "\n\n " << fmtBold << "Keys - Search engine\n -----------------------------------------\n" << fmtBoldEnd; *w << DisplayKeys(Key.Enter) << "Add item to playlist and play/change option\n"; *w << DisplayKeys(Key.Space) << "Add item to playlist\n"; # ifdef HAVE_TAGLIB_H *w << DisplayKeys(Key.EditTags) << "Edit song's tags\n"; # endif // HAVE_TAGLIB_H - *w << DisplayKeys(Key.ToggleSingle) << "Start searching immediately\n\n\n"; + *w << DisplayKeys(Key.ToggleSingle) << "Start searching immediately\n"; - *w << " " << fmtBold << "Keys - Media library\n -----------------------------------------\n" << fmtBoldEnd; + *w << "\n\n " << fmtBold << "Keys - Media library\n -----------------------------------------\n" << fmtBoldEnd; *w << DisplayKeys(Key.MediaLibrary) << "Switch between two/three columns\n"; *w << DisplayKeys(&Key.VolumeDown[0], 1) << "Previous column\n"; *w << DisplayKeys(&Key.VolumeUp[0], 1) << "Next column\n"; @@ -249,10 +248,10 @@ void Help::GetKeybindings() # ifdef HAVE_TAGLIB_H *w << DisplayKeys(Key.EditTags) << "Edit main tag/album/song's tags\n"; # endif // HAVE_TAGLIB_H - *w << DisplayKeys(Key.SwitchTagTypeList) << "Tag type list switcher (left column)\n\n\n"; + *w << DisplayKeys(Key.SwitchTagTypeList) << "Tag type list switcher (left column)\n"; - *w << " " << fmtBold << "Keys - Playlist Editor\n -----------------------------------------\n" << fmtBoldEnd; + *w << "\n\n " << fmtBold << "Keys - Playlist Editor\n -----------------------------------------\n" << fmtBoldEnd; *w << DisplayKeys(&Key.VolumeDown[0], 1) << "Previous column\n"; *w << DisplayKeys(&Key.VolumeUp[0], 1) << "Next column\n"; *w << DisplayKeys(Key.Enter) << "Add item to playlist and play\n"; @@ -292,5 +291,79 @@ void Help::GetKeybindings() *w << "\n\n " << fmtBold << "Keys - Outputs\n -----------------------------------------\n" << fmtBoldEnd; *w << DisplayKeys(Key.Enter) << "Enable/disable output\n"; # endif // ENABLE_OUTPUTS + + + *w << "\n\n " << fmtBold << "Mouse - Global\n -----------------------------------------\n" << fmtBoldEnd; + *w << "\tLeft click on \"Playing/Paused\" " << ": Play/pause\n"; + *w << "\tLeft click on progressbar " << ": Go to chosen position in played track\n"; + *w << "\n"; + *w << "\tMouse wheel on \"Volume: xx\" " << ": Change volume\n"; + *w << "\tMouse wheel on main window " << ": Scroll\n"; + + + *w << "\n\n " << fmtBold << "Mouse - Playlist\n -----------------------------------------\n" << fmtBoldEnd; + *w << "\tLeft click " << ": Highlight\n"; + *w << "\tRight click " << ": Play\n"; + + + *w << "\n\n " << fmtBold << "Mouse - Browser\n -----------------------------------------\n" << fmtBoldEnd; + *w << "\tLeft click on directory " << ": Enter directory\n"; + *w << "\tRight click on directory " << ": Add to playlist\n"; + *w << "\n"; + *w << "\tLeft click on song/playlist " << ": Add to playlist\n"; + *w << "\tRight click on song/playlist " << ": Add to playlist and play\n"; + + + *w << "\n\n " << fmtBold << "Mouse - Search engine\n -----------------------------------------\n" << fmtBoldEnd; + *w << "\tLeft click " << ": Highlight/switch value\n"; + *w << "\tRight click " << ": Change value\n"; + + + *w << "\n\n " << fmtBold << "Mouse - Media library\n -----------------------------------------\n" << fmtBoldEnd; + *w << fmtBold << "\tLeft/middle column:\n" << fmtBoldEnd; + *w << "\t\tLeft Click " << ": Highlight\n"; + *w << "\t\tRight Click " << ": Add to playlist\n"; + *w << "\n"; + *w << fmtBold << "\tRight column:\n" << fmtBoldEnd; + *w << "\t\tLeft Click " << ": Add to playlist\n"; + *w << "\t\tRight Click " << ": Add to playlist and play\n"; + + + *w << "\n\n " << fmtBold << "Mouse - Playlist editor\n -----------------------------------------\n" << fmtBoldEnd; + *w << fmtBold << "\tLeft column:\n" << fmtBoldEnd; + *w << "\t\tLeft Click " << ": Highlight\n"; + *w << "\t\tRight Click " << ": Add to playlist\n"; + *w << "\n"; + *w << fmtBold << "\tRight column:\n" << fmtBoldEnd; + *w << "\t\tLeft Click " << ": Add to playlist\n"; + *w << "\t\tRight Click " << ": Add to playlist and play\n"; + + +# ifdef HAVE_TAGLIB_H + *w << "\n\n " << fmtBold << "Mouse - Tiny tag editor\n -----------------------------------------\n" << fmtBoldEnd; + *w << "\tLeft click " << ": Highlight\n"; + *w << "\tRight click " << ": Change value/execute command\n"; + + + *w << "\n\n " << fmtBold << "Mouse - Tag editor\n -----------------------------------------\n" << fmtBoldEnd; + *w << fmtBold << "\tLeft column:\n" << fmtBoldEnd; + *w << "\t\tLeft Click " << ": Enter directory/highlight album\n"; + *w << "\t\tRight Click " << ": Switch to directories/albums view\n"; + *w << "\n"; + *w << fmtBold << "\tMiddle column:\n" << fmtBoldEnd; + *w << "\t\tLeft Click " << ": Highlight\n"; + *w << "\t\tRight Click " << ": Change value/execute command\n"; + *w << "\n"; + *w << fmtBold << "\tRight column:\n" << fmtBoldEnd; + *w << "\t\tLeft Click " << ": Highlight\n"; + *w << "\t\tRight Click " << ": Change value\n"; +# endif // HAVE_TAGLIB_H + + +# ifdef ENABLE_OUTPUTS + *w << "\n\n " << fmtBold << "Mouse - Outputs\n -----------------------------------------\n" << fmtBoldEnd; + *w << "\tLeft click " << ": Highlight\n"; + *w << "\tRight click " << ": Enable/disable output\n"; +# endif // ENABLE_OUTPUTS } diff --git a/src/media_library.cpp b/src/media_library.cpp index 3ef9c01d..6c7de6d8 100644 --- a/src/media_library.cpp +++ b/src/media_library.cpp @@ -339,11 +339,16 @@ void MediaLibrary::MouseButtonPressed(MEVENT me) PrevColumn(); PrevColumn(); } - if (size_t(me.y) < Artists->Size() && (me.bstate & BUTTON1_PRESSED || me.bstate & BUTTON3_PRESSED)) + if (size_t(me.y) < Artists->Size() && (me.bstate & (BUTTON1_PRESSED | BUTTON3_PRESSED))) { Artists->Goto(me.y); if (me.bstate & BUTTON3_PRESSED) - EnterPressed(); + { + size_t pos = Artists->Choice(); + SpacePressed(); + if (pos < Artists->Size()-1) + Artists->Scroll(wUp); + } } else Screen::MouseButtonPressed(me); @@ -354,11 +359,16 @@ void MediaLibrary::MouseButtonPressed(MEVENT me) { if (w != Albums) w == Artists ? NextColumn() : PrevColumn(); - if (size_t(me.y) < Albums->Size() && (me.bstate & BUTTON1_PRESSED || me.bstate & BUTTON3_PRESSED)) + if (size_t(me.y) < Albums->Size() && (me.bstate & (BUTTON1_PRESSED | BUTTON3_PRESSED))) { Albums->Goto(me.y); if (me.bstate & BUTTON3_PRESSED) - EnterPressed(); + { + size_t pos = Albums->Choice(); + SpacePressed(); + if (pos < Albums->Size()-1) + Albums->Scroll(wUp); + } } else Screen::MouseButtonPressed(me); @@ -371,7 +381,7 @@ void MediaLibrary::MouseButtonPressed(MEVENT me) NextColumn(); NextColumn(); } - if (size_t(me.y) < Songs->Size() && (me.bstate & BUTTON1_PRESSED || me.bstate & BUTTON3_PRESSED)) + if (size_t(me.y) < Songs->Size() && (me.bstate & (BUTTON1_PRESSED | BUTTON3_PRESSED))) { Songs->Goto(me.y); if (me.bstate & BUTTON1_PRESSED) diff --git a/src/playlist.cpp b/src/playlist.cpp index 1f7e7bb3..f0039416 100644 --- a/src/playlist.cpp +++ b/src/playlist.cpp @@ -141,7 +141,7 @@ void Playlist::MouseButtonPressed(MEVENT me) { if (w->Empty() || !w->hasCoords(me.x, me.y) || size_t(me.y) >= w->Size()) return; - if (me.bstate & BUTTON1_PRESSED || me.bstate & BUTTON3_PRESSED) + if (me.bstate & (BUTTON1_PRESSED | BUTTON3_PRESSED)) { w->Goto(me.y); if (me.bstate & BUTTON3_PRESSED) diff --git a/src/playlist_editor.cpp b/src/playlist_editor.cpp index 9a8ae9f7..66670a3c 100644 --- a/src/playlist_editor.cpp +++ b/src/playlist_editor.cpp @@ -290,11 +290,16 @@ void PlaylistEditor::MouseButtonPressed(MEVENT me) { if (w != Playlists) PrevColumn(); - if (size_t(me.y) < Playlists->Size() && (me.bstate & BUTTON1_PRESSED || me.bstate & BUTTON3_PRESSED)) + if (size_t(me.y) < Playlists->Size() && (me.bstate & (BUTTON1_PRESSED | BUTTON3_PRESSED))) { Playlists->Goto(me.y); if (me.bstate & BUTTON3_PRESSED) - EnterPressed(); + { + size_t pos = Playlists->Choice(); + SpacePressed(); + if (pos < Playlists->Size()-1) + Playlists->Scroll(wUp); + } } else Screen::MouseButtonPressed(me); @@ -304,7 +309,7 @@ void PlaylistEditor::MouseButtonPressed(MEVENT me) { if (w != Content) NextColumn(); - if (size_t(me.y) < Content->Size() && (me.bstate & BUTTON1_PRESSED || me.bstate & BUTTON3_PRESSED)) + if (size_t(me.y) < Content->Size() && (me.bstate & (BUTTON1_PRESSED | BUTTON3_PRESSED))) { Content->Goto(me.y); if (me.bstate & BUTTON1_PRESSED) diff --git a/src/search_engine.cpp b/src/search_engine.cpp index 06ccef89..67157d97 100644 --- a/src/search_engine.cpp +++ b/src/search_engine.cpp @@ -302,7 +302,7 @@ void SearchEngine::MouseButtonPressed(MEVENT me) { if (w->Empty() || !w->hasCoords(me.x, me.y) || size_t(me.y) >= w->Size()) return; - if (me.bstate & BUTTON1_PRESSED || me.bstate & BUTTON3_PRESSED) + if (me.bstate & (BUTTON1_PRESSED | BUTTON3_PRESSED)) { if (!w->Goto(me.y)) return; diff --git a/src/tag_editor.cpp b/src/tag_editor.cpp index 1d6603b1..7f26d3d0 100644 --- a/src/tag_editor.cpp +++ b/src/tag_editor.cpp @@ -221,12 +221,15 @@ void TinyTagEditor::MouseButtonPressed(MEVENT me) { if (w->Empty() || !w->hasCoords(me.x, me.y) || size_t(me.y) >= w->Size()) return; - if (me.bstate & BUTTON1_PRESSED) + if (me.bstate & (BUTTON1_PRESSED | BUTTON3_PRESSED)) { if (!w->Goto(me.y)) return; - w->Refresh(); - EnterPressed(); + if (me.bstate & BUTTON3_PRESSED) + { + w->Refresh(); + EnterPressed(); + } } else Screen< Menu >::MouseButtonPressed(me); @@ -760,7 +763,7 @@ void TagEditor::MouseButtonPressed(MEVENT me) PrevColumn(); PrevColumn(); } - if (size_t(me.y) < LeftColumn->Size() && (me.bstate & BUTTON1_PRESSED || me.bstate & BUTTON3_PRESSED)) + if (size_t(me.y) < LeftColumn->Size() && (me.bstate & (BUTTON1_PRESSED | BUTTON3_PRESSED))) { LeftColumn->Goto(me.y); if (me.bstate & BUTTON1_PRESSED) @@ -776,7 +779,7 @@ void TagEditor::MouseButtonPressed(MEVENT me) { if (w != TagTypes) w == LeftColumn ? NextColumn() : PrevColumn(); - if (size_t(me.y) < TagTypes->Size() && (me.bstate & BUTTON1_PRESSED || me.bstate & BUTTON3_PRESSED)) + if (size_t(me.y) < TagTypes->Size() && (me.bstate & (BUTTON1_PRESSED | BUTTON3_PRESSED))) { if (!TagTypes->Goto(me.y)) return; @@ -795,7 +798,7 @@ void TagEditor::MouseButtonPressed(MEVENT me) NextColumn(); NextColumn(); } - if (size_t(me.y) < Tags->Size() && (me.bstate & BUTTON1_PRESSED || me.bstate & BUTTON3_PRESSED)) + if (size_t(me.y) < Tags->Size() && (me.bstate & (BUTTON1_PRESSED | BUTTON3_PRESSED))) { Tags->Goto(me.y); Tags->Refresh();