From c827c88993517f077a03795c1e249ce6d2d7e3e3 Mon Sep 17 00:00:00 2001 From: Andrzej Rybczak Date: Wed, 18 Feb 2009 21:45:54 +0100 Subject: [PATCH] use ncurses pad instead of ncurses window by default --- src/media_library.cpp | 6 ++++-- src/menu.h | 2 +- src/playlist_editor.cpp | 3 ++- src/scrollpad.cpp | 39 ++------------------------------------- src/scrollpad.h | 1 - src/tag_editor.cpp | 3 ++- src/window.cpp | 38 +++++++++++++------------------------- src/window.h | 4 +++- 8 files changed, 27 insertions(+), 69 deletions(-) diff --git a/src/media_library.cpp b/src/media_library.cpp index c82bf6c2..ae866d2d 100644 --- a/src/media_library.cpp +++ b/src/media_library.cpp @@ -99,7 +99,8 @@ void MediaLibrary::Refresh() Songs->Display(); 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())); if (Albums->Empty()) // left for compatibility with Window::Refresh(); } else Mpd->AddSearch(MPD_TAG_ITEM_ALBUM, locale_to_utf_cpy(Albums->Current().second)); diff --git a/src/menu.h b/src/menu.h index 7e300368..1dd65e9e 100644 --- a/src/menu.h +++ b/src/menu.h @@ -345,7 +345,7 @@ template void Menu::Refresh() Bold(0); line++; } - wrefresh(itsWindow); + Window::Refresh(); } template void Menu::Scroll(Where where) diff --git a/src/playlist_editor.cpp b/src/playlist_editor.cpp index c21a181c..2e624f24 100644 --- a/src/playlist_editor.cpp +++ b/src/playlist_editor.cpp @@ -159,7 +159,8 @@ void PlaylistEditor::Update() if (Content->Empty()) { - *Content << XY(0, 0) << "Playlist is empty." << wrefresh; + *Content << XY(0, 0) << "Playlist is empty."; + Content->Window::Refresh(); } } diff --git a/src/scrollpad.cpp b/src/scrollpad.cpp index 87fb3d9e..74bf022c 100644 --- a/src/scrollpad.cpp +++ b/src/scrollpad.cpp @@ -33,10 +33,6 @@ Scrollpad::Scrollpad(size_t startx, itsBeginning(0), itsRealHeight(1) { - delwin(itsWindow); - itsWindow = newpad(itsHeight, itsWidth); - SetColor(itsColor); - keypad(itsWindow, 1); } Scrollpad::Scrollpad(const Scrollpad &s) : Window(s) @@ -119,43 +115,12 @@ void Scrollpad::Recreate() void Scrollpad::Refresh() { - prefresh(itsWindow, itsBeginning, 0, itsStartY, itsStartX, itsStartY+itsHeight-1, itsStartX+itsWidth); -} - -void Scrollpad::MoveTo(size_t x, size_t y) -{ - itsStartX = x; - itsStartY = y; - if (itsBorder != brNone) - { - itsStartX++; - itsStartY++; - } - if (!itsTitle.empty()) - itsStartY += 2; + prefresh(itsWindow, itsBeginning, 0, itsStartY, itsStartX, itsStartY+itsHeight-1, itsStartX+itsWidth-1); } void Scrollpad::Resize(size_t width, size_t height) { - /*if (width+itsStartX > size_t(COLS) - || 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; - + AdjustDimensions(width, height); itsBeginning = 0; itsRealHeight = itsHeight; Flush(); diff --git a/src/scrollpad.h b/src/scrollpad.h index 0d6dcfc1..c74131cd 100644 --- a/src/scrollpad.h +++ b/src/scrollpad.h @@ -38,7 +38,6 @@ class Scrollpad: public Window virtual void Refresh(); virtual void Scroll(Where); - virtual void MoveTo(size_t, size_t); virtual void Resize(size_t, size_t); virtual void Clear(bool = 1); diff --git a/src/tag_editor.cpp b/src/tag_editor.cpp index 41f0dea6..be342cff 100644 --- a/src/tag_editor.cpp +++ b/src/tag_editor.cpp @@ -414,7 +414,8 @@ void TagEditor::Update() if (Config.albums_in_tag_editor) { std::vector maplist; - *Albums << XY(0, 0) << "Fetching albums' list..." << wrefresh; + *Albums << XY(0, 0) << "Fetching albums' list..."; + Albums->Window::Refresh(); Mpd->GetAlbums("", list); for (TagList::const_iterator it = list.begin(); it != list.end(); it++) { diff --git a/src/window.cpp b/src/window.cpp index a787643b..699415f0 100644 --- a/src/window.cpp +++ b/src/window.cpp @@ -93,7 +93,7 @@ Window::Window(size_t startx, itsHeight -= 2; } - itsWindow = newwin(itsHeight, itsWidth, itsStartY, itsStartX); + itsWindow = newpad(itsHeight, itsWidth); SetColor(itsColor); keypad(itsWindow, 1); @@ -201,7 +201,7 @@ void Window::SetTitle(const string &newtitle) void Window::Recreate() { delwin(itsWindow); - itsWindow = newwin(itsHeight, itsWidth, itsStartY, itsStartX); + itsWindow = newpad(itsHeight, itsWidth); SetTimeout(itsWindowTimeout); SetColor(itsColor, itsBgColor); keypad(itsWindow, 1); @@ -209,15 +209,6 @@ void Window::Recreate() 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; itsStartY = newy; if (itsBorder != brNone) @@ -227,15 +218,10 @@ void Window::MoveTo(size_t newx, size_t newy) } if (!itsTitle.empty()) 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) { delwin(itsWinBorder); @@ -247,12 +233,14 @@ void Window::Resize(size_t width, size_t height) } if (!itsTitle.empty()) height -= 2; - - if (wresize(itsWindow, height, width) == OK) - { - itsHeight = height; - itsWidth = width; - } + itsHeight = height; + itsWidth = width; +} + +void Window::Resize(size_t width, size_t height) +{ + AdjustDimensions(width, height); + Recreate(); } void Window::ShowBorder() const @@ -285,13 +273,13 @@ void Window::Display() void Window::Refresh() { - wrefresh(itsWindow); + prefresh(itsWindow, 0, 0, itsStartY, itsStartX, itsStartY+itsHeight-1, itsStartX+itsWidth-1); } void Window::Clear(bool) { werase(itsWindow); - wrefresh(itsWindow); + Refresh(); } void Window::Hide(char x) const diff --git a/src/window.h b/src/window.h index f60176fe..7559d041 100644 --- a/src/window.h +++ b/src/window.h @@ -153,8 +153,10 @@ class Window class BadSize { }; + void ShowBorder() const; + void AdjustDimensions(size_t &, size_t &); + virtual void Recreate(); - virtual void ShowBorder() const; WINDOW *itsWindow; WINDOW *itsWinBorder;