make parts of interface hideable
This commit is contained in:
@@ -61,12 +61,16 @@
|
|||||||
#
|
#
|
||||||
#song_status_format = "(%l) {%a - }{%t}|{%f}"
|
#song_status_format = "(%l) {%a - }{%t}|{%f}"
|
||||||
#
|
#
|
||||||
##### window title settings #####
|
#song_window_title_format = "{%a - }{%t}|{%f}"
|
||||||
|
#
|
||||||
|
##### interface settings #####
|
||||||
|
#
|
||||||
|
#header_visibility = "yes"
|
||||||
|
#
|
||||||
|
#statusbar_visibility = "yes"
|
||||||
#
|
#
|
||||||
#enable_window_title = "yes"
|
#enable_window_title = "yes"
|
||||||
#
|
#
|
||||||
#song_window_title_format = "{%a - }{%t}|{%f}"
|
|
||||||
#
|
|
||||||
##### colors definitions #####
|
##### colors definitions #####
|
||||||
#
|
#
|
||||||
#empty_tag_color = "cyan"
|
#empty_tag_color = "cyan"
|
||||||
|
|||||||
@@ -76,6 +76,24 @@ string DisplaySong(const Song &s, const string &song_template)
|
|||||||
|
|
||||||
for (string::const_iterator it = song_template.begin(); it != song_template.end(); it++)
|
for (string::const_iterator it = song_template.begin(); it != song_template.end(); it++)
|
||||||
{
|
{
|
||||||
|
if (*it == '}')
|
||||||
|
{
|
||||||
|
if (!tags_present)
|
||||||
|
result = result.substr(0, result.length()-i);
|
||||||
|
|
||||||
|
it++;
|
||||||
|
link_tags = 0;
|
||||||
|
i = 0;
|
||||||
|
|
||||||
|
if (*it == '|' && *(it+1) == '{')
|
||||||
|
{
|
||||||
|
if (!tags_present)
|
||||||
|
it++;
|
||||||
|
else
|
||||||
|
while (*++it != '}');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (*it == '}')
|
if (*it == '}')
|
||||||
{
|
{
|
||||||
if (!tags_present)
|
if (!tags_present)
|
||||||
@@ -119,7 +137,10 @@ string DisplaySong(const Song &s, const string &song_template)
|
|||||||
if (link_tags)
|
if (link_tags)
|
||||||
{
|
{
|
||||||
if (s.GetTotalLength() > 0)
|
if (s.GetTotalLength() > 0)
|
||||||
|
{
|
||||||
result += s.GetLength();
|
result += s.GetLength();
|
||||||
|
i += s.GetLength().length();
|
||||||
|
}
|
||||||
else
|
else
|
||||||
tags_present = 0;
|
tags_present = 0;
|
||||||
}
|
}
|
||||||
@@ -130,11 +151,13 @@ string DisplaySong(const Song &s, const string &song_template)
|
|||||||
case 'F':
|
case 'F':
|
||||||
{
|
{
|
||||||
result += s.GetFile();
|
result += s.GetFile();
|
||||||
|
i += s.GetFile().length();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 'f':
|
case 'f':
|
||||||
{
|
{
|
||||||
result += s.GetShortFilename();
|
result += s.GetShortFilename();
|
||||||
|
i += s.GetShortFilename().length();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 'a':
|
case 'a':
|
||||||
@@ -142,7 +165,10 @@ string DisplaySong(const Song &s, const string &song_template)
|
|||||||
if (link_tags)
|
if (link_tags)
|
||||||
{
|
{
|
||||||
if (s.GetArtist() != UNKNOWN_ARTIST)
|
if (s.GetArtist() != UNKNOWN_ARTIST)
|
||||||
|
{
|
||||||
result += s.GetArtist();
|
result += s.GetArtist();
|
||||||
|
i += s.GetArtist().length();
|
||||||
|
}
|
||||||
else
|
else
|
||||||
tags_present = 0;
|
tags_present = 0;
|
||||||
}
|
}
|
||||||
@@ -155,7 +181,10 @@ string DisplaySong(const Song &s, const string &song_template)
|
|||||||
if (link_tags)
|
if (link_tags)
|
||||||
{
|
{
|
||||||
if (s.GetAlbum() != UNKNOWN_ALBUM)
|
if (s.GetAlbum() != UNKNOWN_ALBUM)
|
||||||
|
{
|
||||||
result += s.GetAlbum();
|
result += s.GetAlbum();
|
||||||
|
i += s.GetAlbum().length();
|
||||||
|
}
|
||||||
else
|
else
|
||||||
tags_present = 0;
|
tags_present = 0;
|
||||||
}
|
}
|
||||||
@@ -168,7 +197,10 @@ string DisplaySong(const Song &s, const string &song_template)
|
|||||||
if (link_tags)
|
if (link_tags)
|
||||||
{
|
{
|
||||||
if (s.GetYear() != EMPTY_TAG)
|
if (s.GetYear() != EMPTY_TAG)
|
||||||
|
{
|
||||||
result += s.GetYear();
|
result += s.GetYear();
|
||||||
|
i += s.GetYear().length();
|
||||||
|
}
|
||||||
else
|
else
|
||||||
tags_present = 0;
|
tags_present = 0;
|
||||||
}
|
}
|
||||||
@@ -181,7 +213,10 @@ string DisplaySong(const Song &s, const string &song_template)
|
|||||||
if (link_tags)
|
if (link_tags)
|
||||||
{
|
{
|
||||||
if (s.GetTrack() != EMPTY_TAG)
|
if (s.GetTrack() != EMPTY_TAG)
|
||||||
|
{
|
||||||
result += s.GetTrack();
|
result += s.GetTrack();
|
||||||
|
i += s.GetTrack().length();
|
||||||
|
}
|
||||||
else
|
else
|
||||||
tags_present = 0;
|
tags_present = 0;
|
||||||
}
|
}
|
||||||
@@ -194,7 +229,10 @@ string DisplaySong(const Song &s, const string &song_template)
|
|||||||
if (link_tags)
|
if (link_tags)
|
||||||
{
|
{
|
||||||
if (s.GetGenre() != EMPTY_TAG)
|
if (s.GetGenre() != EMPTY_TAG)
|
||||||
|
{
|
||||||
result += s.GetGenre();
|
result += s.GetGenre();
|
||||||
|
i += s.GetGenre().length();
|
||||||
|
}
|
||||||
else
|
else
|
||||||
tags_present = 0;
|
tags_present = 0;
|
||||||
}
|
}
|
||||||
@@ -207,7 +245,10 @@ string DisplaySong(const Song &s, const string &song_template)
|
|||||||
if (link_tags)
|
if (link_tags)
|
||||||
{
|
{
|
||||||
if (s.GetComment() != EMPTY_TAG)
|
if (s.GetComment() != EMPTY_TAG)
|
||||||
|
{
|
||||||
result += s.GetComment();
|
result += s.GetComment();
|
||||||
|
i += s.GetComment().length();
|
||||||
|
}
|
||||||
else
|
else
|
||||||
tags_present = 0;
|
tags_present = 0;
|
||||||
}
|
}
|
||||||
@@ -220,7 +261,10 @@ string DisplaySong(const Song &s, const string &song_template)
|
|||||||
if (link_tags)
|
if (link_tags)
|
||||||
{
|
{
|
||||||
if (s.GetTitle() != UNKNOWN_TITLE)
|
if (s.GetTitle() != UNKNOWN_TITLE)
|
||||||
|
{
|
||||||
result += s.GetTitle();
|
result += s.GetTitle();
|
||||||
|
i += s.GetTitle().length();
|
||||||
|
}
|
||||||
else
|
else
|
||||||
tags_present = 0;
|
tags_present = 0;
|
||||||
}
|
}
|
||||||
@@ -382,9 +426,12 @@ void ShowMessage(const string &message, int delay)
|
|||||||
{
|
{
|
||||||
block_delay = time(NULL);
|
block_delay = time(NULL);
|
||||||
block_statusbar_update_delay = delay;
|
block_statusbar_update_delay = delay;
|
||||||
|
if (Config.statusbar_visibility)
|
||||||
block_statusbar_update = 1;
|
block_statusbar_update = 1;
|
||||||
|
else
|
||||||
|
block_progressbar_update = 1;
|
||||||
wFooter->Bold(0);
|
wFooter->Bold(0);
|
||||||
wFooter->WriteXY(0, 1, message, 1);
|
wFooter->WriteXY(0, Config.statusbar_visibility, message, 1);
|
||||||
wFooter->Bold(1);
|
wFooter->Bold(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -381,7 +381,7 @@ void Menu::Highlight(int which)
|
|||||||
itsHighlight = which-1;
|
itsHighlight = which-1;
|
||||||
|
|
||||||
if (which > itsHeight)
|
if (which > itsHeight)
|
||||||
itsBeginning = which-itsHeight/2;
|
itsBeginning = itsHighlight-itsHeight/2;
|
||||||
else
|
else
|
||||||
itsBeginning = 0;
|
itsBeginning = 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,13 +27,21 @@
|
|||||||
#define FOR_EACH_MPD_DATA(x) for (; (x); (x) = mpd_data_get_next(x))
|
#define FOR_EACH_MPD_DATA(x) for (; (x); (x) = mpd_data_get_next(x))
|
||||||
|
|
||||||
#define BLOCK_STATUSBAR_UPDATE \
|
#define BLOCK_STATUSBAR_UPDATE \
|
||||||
|
if (Config.statusbar_visibility) \
|
||||||
block_statusbar_update = 1; \
|
block_statusbar_update = 1; \
|
||||||
|
else \
|
||||||
|
block_progressbar_update = 1; \
|
||||||
allow_statusbar_unblock = 0
|
allow_statusbar_unblock = 0
|
||||||
|
|
||||||
#define UNBLOCK_STATUSBAR_UPDATE \
|
#define UNBLOCK_STATUSBAR_UPDATE \
|
||||||
allow_statusbar_unblock = 1; \
|
allow_statusbar_unblock = 1; \
|
||||||
if (block_statusbar_update_delay < 0) \
|
if (block_statusbar_update_delay < 0) \
|
||||||
block_statusbar_update = 0
|
{ \
|
||||||
|
if (Config.statusbar_visibility) \
|
||||||
|
block_statusbar_update = 0; \
|
||||||
|
else \
|
||||||
|
block_progressbar_update = 0; \
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef HAVE_TAGLIB_H
|
#ifdef HAVE_TAGLIB_H
|
||||||
const string tag_screen_keydesc = "\tE e : Edit song's tags\n";
|
const string tag_screen_keydesc = "\tE e : Edit song's tags\n";
|
||||||
@@ -137,12 +145,23 @@ int main(int argc, char *argv[])
|
|||||||
curs_set(0);
|
curs_set(0);
|
||||||
EnableColors();
|
EnableColors();
|
||||||
|
|
||||||
mPlaylist = new Menu(0, 2, COLS, LINES-4, "", Config.main_color, brNone);
|
int main_start_y = 2;
|
||||||
|
int main_height = LINES-4;
|
||||||
|
|
||||||
|
if (!Config.header_visibility)
|
||||||
|
{
|
||||||
|
main_start_y -= 2;
|
||||||
|
main_height += 2;
|
||||||
|
}
|
||||||
|
if (!Config.statusbar_visibility)
|
||||||
|
main_height++;
|
||||||
|
|
||||||
|
mPlaylist = new Menu(0, main_start_y, COLS, main_height, "", Config.main_color, brNone);
|
||||||
mBrowser = new Menu(mPlaylist->EmptyClone());
|
mBrowser = new Menu(mPlaylist->EmptyClone());
|
||||||
mTagEditor = new Menu(mPlaylist->EmptyClone());
|
mTagEditor = new Menu(mPlaylist->EmptyClone());
|
||||||
mSearcher = new Menu(mPlaylist->EmptyClone());
|
mSearcher = new Menu(mPlaylist->EmptyClone());
|
||||||
|
|
||||||
sHelp = new Scrollpad(0, 2, COLS, LINES-4, "", Config.main_color, brNone);
|
sHelp = new Scrollpad(0, main_start_y, COLS, main_height, "", Config.main_color, brNone);
|
||||||
|
|
||||||
sHelp->Add(" [b]Keys - Movement\n -----------------------------------------[/b]\n");
|
sHelp->Add(" [b]Keys - Movement\n -----------------------------------------[/b]\n");
|
||||||
sHelp->Add("\tUp : Move Cursor up\n");
|
sHelp->Add("\tUp : Move Cursor up\n");
|
||||||
@@ -201,22 +220,21 @@ int main(int argc, char *argv[])
|
|||||||
sHelp->Add(" [b]Keys - Tag Editor\n -----------------------------------------[/b]\n");
|
sHelp->Add(" [b]Keys - Tag Editor\n -----------------------------------------[/b]\n");
|
||||||
sHelp->Add("\tEnter : Change option\n");
|
sHelp->Add("\tEnter : Change option\n");
|
||||||
|
|
||||||
|
if (Config.header_visibility)
|
||||||
|
{
|
||||||
wHeader = new Window(0, 0, COLS, 2, "", Config.header_color, brNone);
|
wHeader = new Window(0, 0, COLS, 2, "", Config.header_color, brNone);
|
||||||
wFooter = new Window(0, LINES-2, COLS, 2, "", Config.statusbar_color, brNone);
|
|
||||||
|
|
||||||
wHeader->Display();
|
wHeader->Display();
|
||||||
|
}
|
||||||
|
|
||||||
|
int footer_start_y = LINES-(Config.statusbar_visibility ? 2 : 1);
|
||||||
|
int footer_height = Config.statusbar_visibility ? 2 : 1;
|
||||||
|
|
||||||
|
wFooter = new Window(0, footer_start_y, COLS, footer_height, "", Config.statusbar_color, brNone);
|
||||||
wFooter->Display();
|
wFooter->Display();
|
||||||
|
|
||||||
mpd_signal_connect_error(conn, (ErrorCallback)NcmpcppErrorCallback, NULL);
|
mpd_signal_connect_error(conn, (ErrorCallback)NcmpcppErrorCallback, NULL);
|
||||||
mpd_signal_connect_status_changed(conn, (StatusChangedCallback)NcmpcppStatusChanged, NULL);
|
mpd_signal_connect_status_changed(conn, (StatusChangedCallback)NcmpcppStatusChanged, NULL);
|
||||||
|
|
||||||
mvwhline(wHeader->RawWin(), 1, 0, 0, wHeader->GetWidth());
|
|
||||||
wHeader->Refresh();
|
|
||||||
wFooter->SetColor(Config.progressbar_color);
|
|
||||||
mvwhline(wFooter->RawWin(), 0, 0, 0, wFooter->GetWidth());
|
|
||||||
wFooter->SetColor(Config.statusbar_color);
|
|
||||||
wFooter->Refresh();
|
|
||||||
|
|
||||||
wCurrent = mPlaylist;
|
wCurrent = mPlaylist;
|
||||||
current_screen = csPlaylist;
|
current_screen = csPlaylist;
|
||||||
|
|
||||||
@@ -236,11 +254,13 @@ int main(int argc, char *argv[])
|
|||||||
{
|
{
|
||||||
TraceMpdStatus();
|
TraceMpdStatus();
|
||||||
|
|
||||||
|
messages_allowed = 1;
|
||||||
|
|
||||||
|
if (Config.header_visibility)
|
||||||
|
{
|
||||||
string title;
|
string title;
|
||||||
int max_allowed_title_length = wHeader->GetWidth()-volume_state.length();
|
int max_allowed_title_length = wHeader->GetWidth()-volume_state.length();
|
||||||
|
|
||||||
messages_allowed = 1;
|
|
||||||
|
|
||||||
switch (current_screen)
|
switch (current_screen)
|
||||||
{
|
{
|
||||||
case csHelp:
|
case csHelp:
|
||||||
@@ -300,6 +320,7 @@ int main(int argc, char *argv[])
|
|||||||
wHeader->WriteXY(8, 0, browsed_dir);
|
wHeader->WriteXY(8, 0, browsed_dir);
|
||||||
wHeader->Bold(0);
|
wHeader->Bold(0);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
wCurrent->Refresh();
|
wCurrent->Refresh();
|
||||||
|
|
||||||
@@ -346,15 +367,25 @@ int main(int argc, char *argv[])
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
sHelp->Resize(COLS, LINES-4);
|
main_height = LINES-4;
|
||||||
sHelp->Timeout(ncmpcpp_window_timeout);
|
|
||||||
mPlaylist->Resize(COLS, LINES-4);
|
|
||||||
mBrowser->Resize(COLS, LINES-4);
|
|
||||||
mTagEditor->Resize(COLS, LINES-4);
|
|
||||||
mSearcher->Resize(COLS, LINES-4);
|
|
||||||
|
|
||||||
|
if (!Config.header_visibility)
|
||||||
|
main_height += 2;
|
||||||
|
if (!Config.statusbar_visibility)
|
||||||
|
main_height++;
|
||||||
|
|
||||||
|
sHelp->Resize(COLS, main_height);
|
||||||
|
sHelp->Timeout(ncmpcpp_window_timeout);
|
||||||
|
mPlaylist->Resize(COLS, main_height);
|
||||||
|
mBrowser->Resize(COLS, main_height);
|
||||||
|
mTagEditor->Resize(COLS, main_height);
|
||||||
|
mSearcher->Resize(COLS, main_height);
|
||||||
|
|
||||||
|
if (Config.header_visibility)
|
||||||
wHeader->Resize(COLS, wHeader->GetHeight());
|
wHeader->Resize(COLS, wHeader->GetHeight());
|
||||||
wFooter->MoveTo(0, LINES-2);
|
|
||||||
|
footer_start_y = LINES-(Config.statusbar_visibility ? 2 : 1);
|
||||||
|
wFooter->MoveTo(0, footer_start_y);
|
||||||
wFooter->Resize(COLS, wFooter->GetHeight());
|
wFooter->Resize(COLS, wFooter->GetHeight());
|
||||||
|
|
||||||
if (wCurrent != sHelp)
|
if (wCurrent != sHelp)
|
||||||
|
|||||||
@@ -38,6 +38,8 @@ void DefaultConfiguration(ncmpcpp_config &conf)
|
|||||||
conf.main_color = clYellow;
|
conf.main_color = clYellow;
|
||||||
conf.progressbar_color = clDefault;
|
conf.progressbar_color = clDefault;
|
||||||
conf.statusbar_color = clDefault;
|
conf.statusbar_color = clDefault;
|
||||||
|
conf.header_visibility = true;
|
||||||
|
conf.statusbar_visibility = true;
|
||||||
conf.set_window_title = true;
|
conf.set_window_title = true;
|
||||||
conf.mpd_connection_timeout = 5;
|
conf.mpd_connection_timeout = 5;
|
||||||
conf.crossfade_time = 5;
|
conf.crossfade_time = 5;
|
||||||
@@ -161,8 +163,11 @@ void ReadConfiguration(ncmpcpp_config &conf)
|
|||||||
if (!v.empty())
|
if (!v.empty())
|
||||||
conf.song_status_format = v;
|
conf.song_status_format = v;
|
||||||
|
|
||||||
if (it->find("enable_window_title") != string::npos)
|
if (it->find("header_visibility") != string::npos)
|
||||||
conf.set_window_title = v == "yes";
|
conf.header_visibility = v == "yes";
|
||||||
|
|
||||||
|
if (it->find("statusbar_visibility") != string::npos)
|
||||||
|
conf.statusbar_visibility = v == "yes";
|
||||||
|
|
||||||
if (it->find("song_window_title_format") != string::npos)
|
if (it->find("song_window_title_format") != string::npos)
|
||||||
if (!v.empty())
|
if (!v.empty())
|
||||||
|
|||||||
@@ -44,6 +44,8 @@ struct ncmpcpp_config
|
|||||||
COLOR statusbar_color;
|
COLOR statusbar_color;
|
||||||
|
|
||||||
bool set_window_title;
|
bool set_window_title;
|
||||||
|
bool header_visibility;
|
||||||
|
bool statusbar_visibility;
|
||||||
|
|
||||||
int mpd_connection_timeout;
|
int mpd_connection_timeout;
|
||||||
int crossfade_time;
|
int crossfade_time;
|
||||||
|
|||||||
@@ -93,7 +93,12 @@ void TraceMpdStatus()
|
|||||||
if (!block_statusbar_update_delay)
|
if (!block_statusbar_update_delay)
|
||||||
{
|
{
|
||||||
block_statusbar_update_delay = -1;
|
block_statusbar_update_delay = -1;
|
||||||
|
|
||||||
|
if (Config.statusbar_visibility)
|
||||||
block_statusbar_update = !allow_statusbar_unblock;
|
block_statusbar_update = !allow_statusbar_unblock;
|
||||||
|
else
|
||||||
|
block_progressbar_update = !allow_statusbar_unblock;
|
||||||
|
|
||||||
switch (mpd_player_get_state(conn))
|
switch (mpd_player_get_state(conn))
|
||||||
{
|
{
|
||||||
case MPD_PLAYER_STOP:
|
case MPD_PLAYER_STOP:
|
||||||
@@ -253,7 +258,7 @@ void NcmpcppStatusChanged(MpdObj *conn, ChangedStatusType what)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!block_statusbar_update)
|
if (!block_statusbar_update && Config.statusbar_visibility)
|
||||||
wFooter->WriteXY(0, 1, player_state, player_state.empty());
|
wFooter->WriteXY(0, 1, player_state, player_state.empty());
|
||||||
}
|
}
|
||||||
if ((what & MPD_CST_ELAPSED_TIME))
|
if ((what & MPD_CST_ELAPSED_TIME))
|
||||||
@@ -265,7 +270,7 @@ void NcmpcppStatusChanged(MpdObj *conn, ChangedStatusType what)
|
|||||||
|
|
||||||
int elapsed = mpd_status_get_elapsed_song_time(conn);
|
int elapsed = mpd_status_get_elapsed_song_time(conn);
|
||||||
|
|
||||||
if (!block_statusbar_update)
|
if (!block_statusbar_update && Config.statusbar_visibility)
|
||||||
{
|
{
|
||||||
string tracklength;
|
string tracklength;
|
||||||
if (s.GetTotalLength() > 0)
|
if (s.GetTotalLength() > 0)
|
||||||
@@ -312,7 +317,7 @@ void NcmpcppStatusChanged(MpdObj *conn, ChangedStatusType what)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (!block_statusbar_update)
|
if (!block_statusbar_update && Config.statusbar_visibility)
|
||||||
wFooter->WriteXY(0, 1, "", 1);
|
wFooter->WriteXY(0, 1, "", 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -342,7 +347,7 @@ void NcmpcppStatusChanged(MpdObj *conn, ChangedStatusType what)
|
|||||||
ShowMessage(mpd_db_updating.empty() ? "Database update finished!" : "Database update started!");
|
ShowMessage(mpd_db_updating.empty() ? "Database update finished!" : "Database update started!");
|
||||||
header_update_status = 1;
|
header_update_status = 1;
|
||||||
}
|
}
|
||||||
if (header_update_status)
|
if (header_update_status && Config.header_visibility)
|
||||||
{
|
{
|
||||||
switch_state = mpd_repeat + mpd_random + mpd_crossfade + mpd_db_updating;
|
switch_state = mpd_repeat + mpd_random + mpd_crossfade + mpd_db_updating;
|
||||||
|
|
||||||
@@ -381,7 +386,7 @@ void NcmpcppStatusChanged(MpdObj *conn, ChangedStatusType what)
|
|||||||
}
|
}
|
||||||
playing_song_scroll_begin = 0;
|
playing_song_scroll_begin = 0;
|
||||||
}
|
}
|
||||||
if (what & MPD_CST_VOLUME)
|
if ((what & MPD_CST_VOLUME) && Config.header_visibility)
|
||||||
{
|
{
|
||||||
int vol = mpd_status_get_volume(conn);
|
int vol = mpd_status_get_volume(conn);
|
||||||
volume_state = " Volume: " + IntoStr(vol) + "%";
|
volume_state = " Volume: " + IntoStr(vol) + "%";
|
||||||
|
|||||||
@@ -221,8 +221,8 @@ void Window::Clear()
|
|||||||
|
|
||||||
void Window::Hide(char x) const
|
void Window::Hide(char x) const
|
||||||
{
|
{
|
||||||
for (int i = GetStartY(); i <= GetHeight()+1; i++)
|
for (int i = 0; i < GetHeight(); i++)
|
||||||
mvhline(i, GetStartX(), x, GetWidth());
|
mvhline(i+GetStartY(), GetStartX(), x, GetWidth());
|
||||||
refresh();
|
refresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user