mirror of
https://github.com/rakshasa/rtorrent.git
synced 2026-08-10 12:12:31 +00:00
Adding active/disabled status on windows so it's easier to show/hide
them while keeping the order. git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@284 e378c898-3ddf-0310-93e7-cc216c733640
This commit is contained in:
@@ -26,13 +26,17 @@ Manager::adjust_layout() {
|
||||
int countDynamic = 0;
|
||||
int staticHeight = 0;
|
||||
|
||||
std::for_each(begin(), end(), func::accumulate(staticHeight, std::mem_fun(&Window::get_min_height)));
|
||||
std::for_each(begin(), end(), func::accumulate(countDynamic, std::mem_fun(&Window::is_dynamic)));
|
||||
std::for_each(begin(), end(), func::if_then(std::mem_fun(&Window::is_active), func::accumulate(staticHeight, std::mem_fun(&Window::get_min_height))));
|
||||
std::for_each(begin(), end(), func::if_then(std::mem_fun(&Window::is_active), func::accumulate(countDynamic, std::mem_fun(&Window::is_dynamic))));
|
||||
|
||||
int dynamic = std::max(0, Canvas::get_screen_height() - staticHeight);
|
||||
int height = 0, h;
|
||||
|
||||
for (iterator itr = begin(); itr != end(); ++itr, height += h) {
|
||||
h = 0;
|
||||
|
||||
if (!(*itr)->is_active())
|
||||
continue;
|
||||
|
||||
if ((*itr)->is_dynamic()) {
|
||||
dynamic -= h = (dynamic + countDynamic - 1) / countDynamic;
|
||||
@@ -52,8 +56,8 @@ void
|
||||
Manager::do_update() {
|
||||
Canvas::refresh_std();
|
||||
|
||||
std::for_each(begin(), end(), std::mem_fun(&Window::redraw));
|
||||
std::for_each(begin(), end(), std::mem_fun(&Window::refresh));
|
||||
std::for_each(begin(), end(), func::if_then(std::mem_fun(&Window::is_active), std::mem_fun(&Window::redraw)));
|
||||
std::for_each(begin(), end(), func::if_then(std::mem_fun(&Window::is_active), std::mem_fun(&Window::refresh)));
|
||||
|
||||
Canvas::do_update();
|
||||
}
|
||||
|
||||
+10
-5
@@ -10,19 +10,23 @@ class Canvas;
|
||||
class Window {
|
||||
public:
|
||||
Window(Canvas* c = NULL, bool d = false, int h = 1) :
|
||||
m_canvas(c), m_dynamic(d), m_minHeight(h) {}
|
||||
m_canvas(c), m_active(true), m_dynamic(d), m_minHeight(h) {}
|
||||
|
||||
virtual ~Window();
|
||||
|
||||
bool is_dynamic() { return m_dynamic; }
|
||||
bool is_dirty() { return m_lastDraw == 0; }
|
||||
bool is_active() { return m_active; }
|
||||
bool is_dynamic() { return m_dynamic; }
|
||||
bool is_dirty() { return m_lastDraw == 0; }
|
||||
|
||||
int get_min_height() { return m_minHeight; }
|
||||
int get_min_height() { return m_minHeight; }
|
||||
|
||||
bool get_active() { return m_active; }
|
||||
void set_active(bool a) { m_active = a; }
|
||||
|
||||
void refresh();
|
||||
void resize(int x, int y, int w, int h);
|
||||
|
||||
void mark_dirty() { m_lastDraw = 0; }
|
||||
void mark_dirty() { m_lastDraw = 0; }
|
||||
|
||||
virtual void redraw() = 0;
|
||||
|
||||
@@ -32,6 +36,7 @@ protected:
|
||||
|
||||
Canvas* m_canvas;
|
||||
|
||||
bool m_active;
|
||||
bool m_dynamic;
|
||||
int m_minHeight;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user