diff --git a/src/music_gui.cpp b/src/music_gui.cpp --- a/src/music_gui.cpp +++ b/src/music_gui.cpp @@ -403,7 +403,9 @@ enum MusicWidgets { MW_STOP, MW_PLAY, MW_SLIDERS, + MW_MUSIC_VOL, MW_GAUGE, + MW_EFFECT_VOL, MW_BACKGROUND, MW_INFO, MW_SHUFFLE, @@ -420,6 +422,8 @@ struct MusicWindow : public Window { MusicWindow(const WindowDesc *desc, WindowNumber number) : Window() { this->InitNested(desc, number); + this->LowerWidget(msf.playlist + MW_ALL); + this->SetWidgetLoweredState(MW_SHUFFLE, msf.shuffle); } virtual void DrawWidget(const Rect &r, int widget) const @@ -447,7 +451,7 @@ struct MusicWindow : public Window { SetDParam(0, _music_wnd_cursong); str = (_music_wnd_cursong < 10) ? STR_MUSIC_TRACK_SINGLE_DIGIT : STR_MUSIC_TRACK_DOUBLE_DIGIT; } - DrawString(r.left + 3, r.right - 3, r.top, str); + DrawString(r.left + 3, r.right - 3, r.top + 1, str); str = STR_MUSIC_TITLE_NONE; if (_song_is_active != 0 && _music_wnd_cursong != 0) { str = STR_MUSIC_TITLE_NAME; @@ -456,18 +460,6 @@ struct MusicWindow : public Window { } DrawString(r.left, r.right, r.top + 1, str, TC_FROMSTRING, SA_CENTER); } break; - - case MW_SHUFFLE: - DrawString(r.left, r.right, r.top, STR_MUSIC_SHUFFLE, (msf.shuffle ? TC_WHITE : TC_BLACK), SA_CENTER); - break; - - case MW_PROGRAMME: - DrawString(r.left, r.right, r.top, STR_MUSIC_PROGRAM, TC_FROMSTRING, SA_CENTER); - break; - - case MW_ALL: case MW_OLD: case MW_NEW: case MW_EZY: case MW_CUSTOM1: case MW_CUSTOM2: - DrawString(r.left, r.right, r.top, STR_MUSIC_PLAYLIST_ALL + (widget - MW_ALL), msf.playlist == (widget - MW_ALL) ? TC_WHITE : TC_BLACK, SA_CENTER); - break; } } @@ -513,7 +505,7 @@ struct MusicWindow : public Window { msf.playing = true; break; - case MW_SLIDERS: { // volume sliders + case MW_MUSIC_VOL: case MW_EFFECT_VOL: { // volume sliders int x = pt.x - 88; if (x < 0) return; @@ -535,6 +527,8 @@ struct MusicWindow : public Window { case MW_SHUFFLE: // toggle shuffle msf.shuffle ^= 1; + this->SetWidgetLoweredState(MW_SHUFFLE, msf.shuffle); + this->InvalidateWidget(MW_SHUFFLE); StopMusic(); SelectSongToPlay(); break; @@ -545,7 +539,9 @@ struct MusicWindow : public Window { case MW_ALL: case MW_OLD: case MW_NEW: case MW_EZY: case MW_CUSTOM1: case MW_CUSTOM2: // playlist + this->RaiseWidget(msf.playlist + MW_ALL); msf.playlist = widget - MW_ALL; + this->LowerWidget(widget); this->SetDirty(); InvalidateWindow(WC_MUSIC_TRACK_SELECTION, 0); StopMusic(); @@ -573,30 +569,34 @@ static const NWidgetPart _nested_music_w NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, MW_NEXT), SetMinimalSize(22, 22), SetDataTip(SPR_IMG_SKIP_TO_NEXT, STR_MUSIC_TOOLTIP_SKIP_TO_NEXT_TRACK_IN_SELECTION), NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, MW_STOP), SetMinimalSize(22, 22), SetDataTip(SPR_IMG_STOP_MUSIC, STR_MUSIC_TOOLTIP_STOP_PLAYING_MUSIC), NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, MW_PLAY), SetMinimalSize(22, 22), SetDataTip(SPR_IMG_PLAY_MUSIC, STR_MUSIC_TOOLTIP_START_PLAYING_MUSIC), - NWidget(WWT_PANEL, COLOUR_GREY, MW_SLIDERS), SetDataTip(0x0, STR_MUSIC_TOOLTIP_DRAG_SLIDERS_TO_SET_MUSIC), - NWidget(WWT_PANEL, COLOUR_GREY, MW_GAUGE), SetMinimalSize(16, 20), SetPadding(1, 98, 1, 98), EndContainer(), + NWidget(WWT_PANEL, COLOUR_GREY, MW_SLIDERS), + NWidget(NWID_HORIZONTAL), + NWidget(WWT_EMPTY, COLOUR_GREY, MW_MUSIC_VOL), SetMinimalSize(98, 22), SetDataTip(0x0, STR_MUSIC_TOOLTIP_DRAG_SLIDERS_TO_SET_MUSIC), + NWidget(WWT_PANEL, COLOUR_GREY, MW_GAUGE), SetMinimalSize(16, 20), SetPadding(1, 0, 1, 0), EndContainer(), + NWidget(WWT_EMPTY, COLOUR_GREY, MW_EFFECT_VOL), SetMinimalSize(98, 22), SetDataTip(0x0, STR_MUSIC_TOOLTIP_DRAG_SLIDERS_TO_SET_MUSIC), + EndContainer(), EndContainer(), NWidget(NWID_SPACER), SetFill(true, false), EndContainer(), NWidget(WWT_PANEL, COLOUR_GREY, MW_BACKGROUND), NWidget(NWID_HORIZONTAL), - NWidget(WWT_PUSHBTN, COLOUR_GREY, MW_SHUFFLE), SetMinimalSize(50, 8), SetDataTip(0x0, STR_MUSIC_TOOLTIP_TOGGLE_PROGRAM_SHUFFLE), SetPadding(6, 3, 8, 6), + NWidget(WWT_TEXTBTN, COLOUR_GREY, MW_SHUFFLE), SetMinimalSize(50, 8), SetDataTip(STR_MUSIC_SHUFFLE, STR_MUSIC_TOOLTIP_TOGGLE_PROGRAM_SHUFFLE), SetPadding(6, 3, 8, 6), NWidget(NWID_VERTICAL), NWidget(NWID_SPACER), SetMinimalSize(0, 9), NWidget(WWT_PANEL, COLOUR_GREY, MW_INFO), SetMinimalSize(182, 9), SetFill(false, false), EndContainer(), NWidget(NWID_SPACER), SetFill(false, true), EndContainer(), - NWidget(WWT_PUSHBTN, COLOUR_GREY, MW_PROGRAMME), SetMinimalSize(50, 8), SetDataTip(0x0, STR_MUSIC_TOOLTIP_SHOW_MUSIC_TRACK_SELECTION), SetPadding(6, 0, 8, 3), + NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, MW_PROGRAMME), SetMinimalSize(50, 8), SetDataTip(STR_MUSIC_PROGRAM, STR_MUSIC_TOOLTIP_SHOW_MUSIC_TRACK_SELECTION), SetPadding(6, 0, 8, 3), NWidget(NWID_SPACER), SetFill(true, false), EndContainer(), EndContainer(), - NWidget(NWID_HORIZONTAL), - NWidget(WWT_PUSHBTN, COLOUR_GREY, MW_ALL), SetMinimalSize(50, 8), SetDataTip(0x0, STR_MUSIC_TOOLTIP_SELECT_ALL_TRACKS_PROGRAM), - NWidget(WWT_PUSHBTN, COLOUR_GREY, MW_OLD), SetMinimalSize(50, 8), SetDataTip(0x0, STR_MUSIC_TOOLTIP_SELECT_OLD_STYLE_MUSIC), - NWidget(WWT_PUSHBTN, COLOUR_GREY, MW_NEW), SetMinimalSize(50, 8), SetDataTip(0x0, STR_MUSIC_TOOLTIP_SELECT_NEW_STYLE_MUSIC), - NWidget(WWT_PUSHBTN, COLOUR_GREY, MW_EZY), SetMinimalSize(50, 8), SetDataTip(0x0, STR_MUSIC_TOOLTIP_SELECT_EZY_STREET_STYLE), - NWidget(WWT_PUSHBTN, COLOUR_GREY, MW_CUSTOM1), SetMinimalSize(50, 8), SetDataTip(0x0, STR_MUSIC_TOOLTIP_SELECT_CUSTOM_1_USER_DEFINED), - NWidget(WWT_PUSHBTN, COLOUR_GREY, MW_CUSTOM2), SetMinimalSize(50, 8), SetDataTip(0x0, STR_MUSIC_TOOLTIP_SELECT_CUSTOM_2_USER_DEFINED), + NWidget(NWID_HORIZONTAL, NC_EQUALSIZE), + NWidget(WWT_TEXTBTN, COLOUR_GREY, MW_ALL), SetMinimalSize(50, 8), SetDataTip(STR_MUSIC_PLAYLIST_ALL, STR_MUSIC_TOOLTIP_SELECT_ALL_TRACKS_PROGRAM), + NWidget(WWT_TEXTBTN, COLOUR_GREY, MW_OLD), SetMinimalSize(50, 8), SetDataTip(STR_MUSIC_PLAYLIST_OLD_STYLE, STR_MUSIC_TOOLTIP_SELECT_OLD_STYLE_MUSIC), + NWidget(WWT_TEXTBTN, COLOUR_GREY, MW_NEW), SetMinimalSize(50, 8), SetDataTip(STR_MUSIC_PLAYLIST_NEW_STYLE, STR_MUSIC_TOOLTIP_SELECT_NEW_STYLE_MUSIC), + NWidget(WWT_TEXTBTN, COLOUR_GREY, MW_EZY), SetMinimalSize(50, 8), SetDataTip(STR_MUSIC_PLAYLIST_EZY_STREET, STR_MUSIC_TOOLTIP_SELECT_EZY_STREET_STYLE), + NWidget(WWT_TEXTBTN, COLOUR_GREY, MW_CUSTOM1), SetMinimalSize(50, 8), SetDataTip(STR_MUSIC_PLAYLIST_CUSTOM_1, STR_MUSIC_TOOLTIP_SELECT_CUSTOM_1_USER_DEFINED), + NWidget(WWT_TEXTBTN, COLOUR_GREY, MW_CUSTOM2), SetMinimalSize(50, 8), SetDataTip(STR_MUSIC_PLAYLIST_CUSTOM_2, STR_MUSIC_TOOLTIP_SELECT_CUSTOM_2_USER_DEFINED), EndContainer(), };