diff -crB /home/regj/misc/rtorrent-color-orig/src/rtorrent-0.8.6/src/command_network.cc ./src/command_network.cc *** /home/regj/misc/rtorrent-color-orig/src/rtorrent-0.8.6/src/command_network.cc 2009-11-12 09:19:40.000000000 +0100 --- ./src/command_network.cc 2009-12-17 19:27:05.783955715 +0100 *************** *** 495,498 **** --- 495,502 ---- // Not really network stuff: ADD_VARIABLE_BOOL ("handshake_log", false); ADD_VARIABLE_STRING("log.tracker", ""); + ADD_COMMAND_VALUE_TRI("done_fg_color", rak::make_mem_fun(control->ui(), &ui::Root::set_done_fg_color), rak::make_mem_fun(control->ui(), &ui::Root::get_done_fg_color)); + ADD_COMMAND_VALUE_TRI("done_bg_color", rak::make_mem_fun(control->ui(), &ui::Root::set_done_bg_color), rak::make_mem_fun(control->ui(), &ui::Root::get_done_bg_color)); + ADD_COMMAND_VALUE_TRI("active_fg_color", rak::make_mem_fun(control->ui(), &ui::Root::set_active_fg_color), rak::make_mem_fun(control->ui(), &ui::Root::get_active_fg_color)); + ADD_COMMAND_VALUE_TRI("active_bg_color", rak::make_mem_fun(control->ui(), &ui::Root::set_active_bg_color), rak::make_mem_fun(control->ui(), &ui::Root::get_active_bg_color)); } diff -crB /home/regj/misc/rtorrent-color-orig/src/rtorrent-0.8.6/src/display/canvas.cc ./src/display/canvas.cc *** /home/regj/misc/rtorrent-color-orig/src/rtorrent-0.8.6/src/display/canvas.cc 2009-11-12 09:03:47.000000000 +0100 --- ./src/display/canvas.cc 2009-12-17 19:27:05.783955715 +0100 *************** *** 92,97 **** --- 92,101 ---- m_isInitialized = true; initscr(); + start_color(); + use_default_colors(); + init_pair(2, -1, -1); + init_pair(1, -1, -1); raw(); noecho(); nodelay(stdscr, TRUE); Only in ./src/display: canvas.cc.orig diff -crB /home/regj/misc/rtorrent-color-orig/src/rtorrent-0.8.6/src/display/window_download_list.cc ./src/display/window_download_list.cc *** /home/regj/misc/rtorrent-color-orig/src/rtorrent-0.8.6/src/display/window_download_list.cc 2009-11-12 09:03:47.000000000 +0100 --- ./src/display/window_download_list.cc 2009-12-17 19:27:05.783955715 +0100 *************** *** 37,42 **** --- 37,43 ---- #include "config.h" #include + #include #include "core/download.h" #include "core/view.h" *************** *** 96,107 **** char* position; char* last = buffer + m_canvas->width() - 2 + 1; position = print_download_title(buffer, last, *range.first); ! m_canvas->print(0, pos++, "%c %s", range.first == m_view->focus() ? '*' : ' ', buffer); position = print_download_info(buffer, last, *range.first); m_canvas->print(0, pos++, "%c %s", range.first == m_view->focus() ? '*' : ' ', buffer); position = print_download_status(buffer, last, *range.first); m_canvas->print(0, pos++, "%c %s", range.first == m_view->focus() ? '*' : ' ', buffer); --- 97,126 ---- char* position; char* last = buffer + m_canvas->width() - 2 + 1; + if( pos >= m_canvas->height() ) break; position = print_download_title(buffer, last, *range.first); ! m_canvas->print(0, pos, "%c %s", range.first == m_view->focus() ? '*' : ' ', buffer); ! if( (*range.first)->is_done() ) { ! if( (*range.first)->download()->up_rate()->rate() != 0 ) { ! m_canvas->set_attr(0, pos, m_canvas->width()-1, A_BOLD, 2); ! } else { ! m_canvas->set_attr(0, pos, m_canvas->width()-1, A_NORMAL, 2); ! } ! } else if( (*range.first)->download()->is_active() ) { ! if( (*range.first)->download()->down_rate()->rate() != 0 ) { ! m_canvas->set_attr(0, pos, m_canvas->width()-1, A_BOLD, 1); ! } else { ! m_canvas->set_attr(0, pos, m_canvas->width()-1, A_NORMAL, 1); ! } ! } ! pos++; + if( pos >= m_canvas->height() ) break; + position = print_download_info(buffer, last, *range.first); m_canvas->print(0, pos++, "%c %s", range.first == m_view->focus() ? '*' : ' ', buffer); + if( pos >= m_canvas->height() ) break; position = print_download_status(buffer, last, *range.first); m_canvas->print(0, pos++, "%c %s", range.first == m_view->focus() ? '*' : ' ', buffer); *************** *** 109,112 **** --- 128,167 ---- } } + void + WindowDownloadList::set_done_fg_color(int64_t color) { + short fg, bg; + pair_content(2, &fg, &bg); + if( color < 0 ) color = -1; + color = color % 8; + init_pair(2, (short)color, bg); + } + + void + WindowDownloadList::set_done_bg_color(int64_t color) { + short fg, bg; + pair_content(2, &fg, &bg); + if( color < 0 ) color = -1; + color = color % 8; + init_pair(2, fg, (short)color); + } + + void + WindowDownloadList::set_active_fg_color(int64_t color) { + short fg, bg; + pair_content(1, &fg, &bg); + if( color < 0 ) color = -1; + color = color % 8; + init_pair(1, (short)color, bg); + } + + void + WindowDownloadList::set_active_bg_color(int64_t color) { + short fg, bg; + pair_content(1, &fg, &bg); + if( color < 0 ) color = -1; + color = color % 8; + init_pair(1, fg, (short)color); + } + } diff -crB /home/regj/misc/rtorrent-color-orig/src/rtorrent-0.8.6/src/display/window_download_list.h ./src/display/window_download_list.h *** /home/regj/misc/rtorrent-color-orig/src/rtorrent-0.8.6/src/display/window_download_list.h 2009-11-12 09:03:47.000000000 +0100 --- ./src/display/window_download_list.h 2009-12-17 19:27:05.783955715 +0100 *************** *** 59,64 **** --- 59,68 ---- virtual void redraw(); void set_view(core::View* l); + void set_done_fg_color(int64_t color); + void set_done_bg_color(int64_t color); + void set_active_fg_color(int64_t color); + void set_active_bg_color(int64_t color); private: core::View* m_view; diff -crB /home/regj/misc/rtorrent-color-orig/src/rtorrent-0.8.6/src/ui/download_list.cc ./src/ui/download_list.cc *** /home/regj/misc/rtorrent-color-orig/src/rtorrent-0.8.6/src/ui/download_list.cc 2009-11-12 09:03:48.000000000 +0100 --- ./src/ui/download_list.cc 2009-12-17 19:27:05.783955715 +0100 *************** *** 137,142 **** --- 137,147 ---- current_view()->next_focus(); } + display::WindowDownloadList* + DownloadList::current_window_list() { + return dynamic_cast(m_uiArray[DISPLAY_DOWNLOAD_LIST])->window(); + } + void DownloadList::activate_display(Display displayType) { if (!is_active()) Only in ./src/ui: download_list.cc.orig diff -crB /home/regj/misc/rtorrent-color-orig/src/rtorrent-0.8.6/src/ui/download_list.h ./src/ui/download_list.h *** /home/regj/misc/rtorrent-color-orig/src/rtorrent-0.8.6/src/ui/download_list.h 2009-11-12 09:03:48.000000000 +0100 --- ./src/ui/download_list.h 2009-12-17 19:27:05.783955715 +0100 *************** *** 101,106 **** --- 101,107 ---- void activate_display(Display d); core::View* current_view(); + display::WindowDownloadList* current_window_list(); void set_current_view(const std::string& name); void slot_open_uri(SlotOpenUri s) { m_slotOpenUri = s; } diff -crB /home/regj/misc/rtorrent-color-orig/src/rtorrent-0.8.6/src/ui/element_download_list.h ./src/ui/element_download_list.h *** /home/regj/misc/rtorrent-color-orig/src/rtorrent-0.8.6/src/ui/element_download_list.h 2009-11-12 09:03:48.000000000 +0100 --- ./src/ui/element_download_list.h 2009-12-17 19:27:05.783955715 +0100 *************** *** 60,65 **** --- 60,66 ---- void disable(); core::View* view() { return m_view; } + WDownloadList* window() { return m_window; } void set_view(core::View* l); void receive_command(const char* cmd); Only in ./src/ui: element_download_list.h.orig diff -crB /home/regj/misc/rtorrent-color-orig/src/rtorrent-0.8.6/src/ui/root.cc ./src/ui/root.cc *** /home/regj/misc/rtorrent-color-orig/src/rtorrent-0.8.6/src/ui/root.cc 2009-11-12 09:03:48.000000000 +0100 --- ./src/ui/root.cc 2009-12-17 19:27:05.783955715 +0100 *************** *** 44,49 **** --- 44,50 ---- #include "core/manager.h" #include "display/frame.h" + #include "display/window_download_list.h" #include "display/window_http_queue.h" #include "display/window_title.h" #include "display/window_input.h" *************** *** 65,71 **** m_windowTitle(NULL), m_windowHttpQueue(NULL), m_windowInput(NULL), ! m_windowStatusbar(NULL) { } void --- 66,76 ---- m_windowTitle(NULL), m_windowHttpQueue(NULL), m_windowInput(NULL), ! m_windowStatusbar(NULL), ! done_fg_color(-1), ! done_bg_color(-1), ! active_fg_color(-1), ! active_bg_color(-1) { } void *************** *** 97,102 **** --- 102,111 ---- setup_keys(); m_downloadList->activate(rootFrame->frame(1)); + m_downloadList->current_window_list()->set_done_fg_color(done_fg_color); + m_downloadList->current_window_list()->set_done_bg_color(done_bg_color); + m_downloadList->current_window_list()->set_active_fg_color(active_fg_color); + m_downloadList->current_window_list()->set_active_bg_color(active_bg_color); } void *************** *** 219,224 **** --- 228,273 ---- torrent::set_max_unchoked(maxUnchoked); } + int + Root::get_done_fg_color() { + return done_fg_color; + } + + void + Root::set_done_fg_color(int64_t color) { + done_fg_color = color; + } + + int + Root::get_done_bg_color() { + return done_bg_color; + } + + void + Root::set_done_bg_color(int64_t color) { + done_bg_color = color; + } + + int + Root::get_active_fg_color() { + return active_fg_color; + } + + void + Root::set_active_fg_color(int64_t color) { + active_fg_color = color; + } + + int + Root::get_active_bg_color() { + return active_bg_color; + } + + void + Root::set_active_bg_color(int64_t color) { + active_bg_color = color; + } + void Root::adjust_down_throttle(int throttle) { set_down_throttle(std::max(torrent::down_throttle_global()->max_rate() / 1024 + throttle, 0)); Only in ./src/ui: root.cc.orig diff -crB /home/regj/misc/rtorrent-color-orig/src/rtorrent-0.8.6/src/ui/root.h ./src/ui/root.h *** /home/regj/misc/rtorrent-color-orig/src/rtorrent-0.8.6/src/ui/root.h 2009-11-12 09:03:48.000000000 +0100 --- ./src/ui/root.h 2009-12-17 19:27:05.783955715 +0100 *************** *** 82,87 **** --- 82,95 ---- // Rename to raw or something, make base function. void set_down_throttle_i64(int64_t throttle) { set_down_throttle(throttle >> 10); } void set_up_throttle_i64(int64_t throttle) { set_up_throttle(throttle >> 10); } + int get_done_fg_color(); + void set_done_fg_color(int64_t color); + int get_done_bg_color(); + void set_done_bg_color(int64_t color); + int get_active_fg_color(); + void set_active_fg_color(int64_t color); + int get_active_bg_color(); + void set_active_bg_color(int64_t color); void adjust_down_throttle(int throttle); void adjust_up_throttle(int throttle); *************** *** 105,110 **** --- 113,122 ---- WStatusbar* m_windowStatusbar; input::Bindings m_bindings; + int64_t done_fg_color; + int64_t done_bg_color; + int64_t active_fg_color; + int64_t active_bg_color; };