use ncurses pad instead of ncurses window by default

This commit is contained in:
Andrzej Rybczak
2009-02-18 21:45:54 +01:00
parent b210d3f270
commit c827c88993
8 changed files with 27 additions and 69 deletions

View File

@@ -99,7 +99,8 @@ void MediaLibrary::Refresh()
Songs->Display(); Songs->Display();
if (Albums->Empty()) if (Albums->Empty())
{ {
*Albums << XY(0, 0) << "No albums found." << wrefresh; *Albums << XY(0, 0) << "No albums found.";
Albums->Window::Refresh();
} }
} }
@@ -214,7 +215,8 @@ void MediaLibrary::Update()
Mpd->AddSearch(Config.media_lib_primary_tag, locale_to_utf_cpy(Artists->Current())); Mpd->AddSearch(Config.media_lib_primary_tag, locale_to_utf_cpy(Artists->Current()));
if (Albums->Empty()) // left for compatibility with <mpd-0.14 if (Albums->Empty()) // left for compatibility with <mpd-0.14
{ {
*Albums << XY(0, 0) << "No albums found." << wrefresh; *Albums << XY(0, 0) << "No albums found.";
Albums->Window::Refresh();
} }
else else
Mpd->AddSearch(MPD_TAG_ITEM_ALBUM, locale_to_utf_cpy(Albums->Current().second)); Mpd->AddSearch(MPD_TAG_ITEM_ALBUM, locale_to_utf_cpy(Albums->Current().second));

View File

@@ -345,7 +345,7 @@ template <class T> void Menu<T>::Refresh()
Bold(0); Bold(0);
line++; line++;
} }
wrefresh(itsWindow); Window::Refresh();
} }
template <class T> void Menu<T>::Scroll(Where where) template <class T> void Menu<T>::Scroll(Where where)

View File

@@ -159,7 +159,8 @@ void PlaylistEditor::Update()
if (Content->Empty()) if (Content->Empty())
{ {
*Content << XY(0, 0) << "Playlist is empty." << wrefresh; *Content << XY(0, 0) << "Playlist is empty.";
Content->Window::Refresh();
} }
} }

View File

@@ -33,10 +33,6 @@ Scrollpad::Scrollpad(size_t startx,
itsBeginning(0), itsBeginning(0),
itsRealHeight(1) itsRealHeight(1)
{ {
delwin(itsWindow);
itsWindow = newpad(itsHeight, itsWidth);
SetColor(itsColor);
keypad(itsWindow, 1);
} }
Scrollpad::Scrollpad(const Scrollpad &s) : Window(s) Scrollpad::Scrollpad(const Scrollpad &s) : Window(s)
@@ -119,43 +115,12 @@ void Scrollpad::Recreate()
void Scrollpad::Refresh() void Scrollpad::Refresh()
{ {
prefresh(itsWindow, itsBeginning, 0, itsStartY, itsStartX, itsStartY+itsHeight-1, itsStartX+itsWidth); prefresh(itsWindow, itsBeginning, 0, itsStartY, itsStartX, itsStartY+itsHeight-1, itsStartX+itsWidth-1);
}
void Scrollpad::MoveTo(size_t x, size_t y)
{
itsStartX = x;
itsStartY = y;
if (itsBorder != brNone)
{
itsStartX++;
itsStartY++;
}
if (!itsTitle.empty())
itsStartY += 2;
} }
void Scrollpad::Resize(size_t width, size_t height) void Scrollpad::Resize(size_t width, size_t height)
{ {
/*if (width+itsStartX > size_t(COLS) AdjustDimensions(width, height);
|| height+itsStartY > size_t(LINES))
throw BadSize();*/
if (itsBorder != brNone)
{
delwin(itsWinBorder);
itsWinBorder = newpad(height, width);
wattron(itsWinBorder, COLOR_PAIR(itsBorder));
box(itsWinBorder, 0, 0);
width -= 2;
height -= 2;
}
if (!itsTitle.empty())
width -= 2;
itsHeight = height;
itsWidth = width;
itsBeginning = 0; itsBeginning = 0;
itsRealHeight = itsHeight; itsRealHeight = itsHeight;
Flush(); Flush();

View File

@@ -38,7 +38,6 @@ class Scrollpad: public Window
virtual void Refresh(); virtual void Refresh();
virtual void Scroll(Where); virtual void Scroll(Where);
virtual void MoveTo(size_t, size_t);
virtual void Resize(size_t, size_t); virtual void Resize(size_t, size_t);
virtual void Clear(bool = 1); virtual void Clear(bool = 1);

View File

@@ -414,7 +414,8 @@ void TagEditor::Update()
if (Config.albums_in_tag_editor) if (Config.albums_in_tag_editor)
{ {
std::vector<string_pair> maplist; std::vector<string_pair> maplist;
*Albums << XY(0, 0) << "Fetching albums' list..." << wrefresh; *Albums << XY(0, 0) << "Fetching albums' list...";
Albums->Window::Refresh();
Mpd->GetAlbums("", list); Mpd->GetAlbums("", list);
for (TagList::const_iterator it = list.begin(); it != list.end(); it++) for (TagList::const_iterator it = list.begin(); it != list.end(); it++)
{ {

View File

@@ -93,7 +93,7 @@ Window::Window(size_t startx,
itsHeight -= 2; itsHeight -= 2;
} }
itsWindow = newwin(itsHeight, itsWidth, itsStartY, itsStartX); itsWindow = newpad(itsHeight, itsWidth);
SetColor(itsColor); SetColor(itsColor);
keypad(itsWindow, 1); keypad(itsWindow, 1);
@@ -201,7 +201,7 @@ void Window::SetTitle(const string &newtitle)
void Window::Recreate() void Window::Recreate()
{ {
delwin(itsWindow); delwin(itsWindow);
itsWindow = newwin(itsHeight, itsWidth, itsStartY, itsStartX); itsWindow = newpad(itsHeight, itsWidth);
SetTimeout(itsWindowTimeout); SetTimeout(itsWindowTimeout);
SetColor(itsColor, itsBgColor); SetColor(itsColor, itsBgColor);
keypad(itsWindow, 1); keypad(itsWindow, 1);
@@ -209,15 +209,6 @@ void Window::Recreate()
void Window::MoveTo(size_t newx, size_t newy) void Window::MoveTo(size_t newx, size_t newy)
{ {
if (newx == itsStartX && newy == itsStartY)
return;
/*if (newx > size_t(COLS)
|| newy > size_t(LINES)
|| itsWidth+newx > size_t(COLS)
|| itsHeight+newy > size_t(LINES))
throw BadSize();*/
itsStartX = newx; itsStartX = newx;
itsStartY = newy; itsStartY = newy;
if (itsBorder != brNone) if (itsBorder != brNone)
@@ -227,15 +218,10 @@ void Window::MoveTo(size_t newx, size_t newy)
} }
if (!itsTitle.empty()) if (!itsTitle.empty())
itsStartY += 2; itsStartY += 2;
mvwin(itsWindow, itsStartY, itsStartX);
} }
void Window::Resize(size_t width, size_t height) void Window::AdjustDimensions(size_t &width, size_t &height)
{ {
/*if (width+itsStartX > size_t(COLS)
|| height+itsStartY > size_t(LINES))
throw BadSize();*/
if (itsBorder != brNone) if (itsBorder != brNone)
{ {
delwin(itsWinBorder); delwin(itsWinBorder);
@@ -247,12 +233,14 @@ void Window::Resize(size_t width, size_t height)
} }
if (!itsTitle.empty()) if (!itsTitle.empty())
height -= 2; height -= 2;
if (wresize(itsWindow, height, width) == OK)
{
itsHeight = height; itsHeight = height;
itsWidth = width; itsWidth = width;
} }
void Window::Resize(size_t width, size_t height)
{
AdjustDimensions(width, height);
Recreate();
} }
void Window::ShowBorder() const void Window::ShowBorder() const
@@ -285,13 +273,13 @@ void Window::Display()
void Window::Refresh() void Window::Refresh()
{ {
wrefresh(itsWindow); prefresh(itsWindow, 0, 0, itsStartY, itsStartX, itsStartY+itsHeight-1, itsStartX+itsWidth-1);
} }
void Window::Clear(bool) void Window::Clear(bool)
{ {
werase(itsWindow); werase(itsWindow);
wrefresh(itsWindow); Refresh();
} }
void Window::Hide(char x) const void Window::Hide(char x) const

View File

@@ -153,8 +153,10 @@ class Window
class BadSize { }; class BadSize { };
void ShowBorder() const;
void AdjustDimensions(size_t &, size_t &);
virtual void Recreate(); virtual void Recreate();
virtual void ShowBorder() const;
WINDOW *itsWindow; WINDOW *itsWindow;
WINDOW *itsWinBorder; WINDOW *itsWinBorder;