diff --git a/src/display/Makefile.am b/src/display/Makefile.am index 6f2484d8..1f12c7a5 100644 --- a/src/display/Makefile.am +++ b/src/display/Makefile.am @@ -7,8 +7,12 @@ libsub_display_a_SOURCES = \ manager.h \ window.cc \ window.h \ + window_download.cc \ + window_download.h \ window_download_list.cc \ window_download_list.h \ + window_statusbar.cc \ + window_statusbar.h \ window_title.cc \ window_title.h diff --git a/src/display/window_download.cc b/src/display/window_download.cc new file mode 100644 index 00000000..7b873757 --- /dev/null +++ b/src/display/window_download.cc @@ -0,0 +1,20 @@ +#include "config.h" + +#include "canvas.h" +#include "window_download.h" + +namespace display { + +WindowDownload::WindowDownload(DPtr d) : + Window(new Canvas, true), + m_download(d) { +} + +void +WindowDownload::redraw() { + m_canvas->erase(); + + m_canvas->print(0, 0, "Download: %s", m_download->get_download().get_name().c_str()); +} + +} diff --git a/src/display/window_download.h b/src/display/window_download.h new file mode 100644 index 00000000..b6085831 --- /dev/null +++ b/src/display/window_download.h @@ -0,0 +1,25 @@ +#ifndef RTORRENT_DISPLAY_WINDOW_DOWNLOAD_H +#define RTORRENT_DISPLAY_WINDOW_DOWNLOAD_H + +#include "window.h" +#include "core/download_list.h" + +namespace display { + +class WindowDownload : public Window { +public: + typedef core::DownloadList::iterator DPtr; + + WindowDownload(DPtr d); + + DPtr get_download() { return m_download; } + + virtual void redraw(); + +private: + DPtr m_download; +}; + +} + +#endif diff --git a/src/display/window_statusbar.cc b/src/display/window_statusbar.cc new file mode 100644 index 00000000..d9de9779 --- /dev/null +++ b/src/display/window_statusbar.cc @@ -0,0 +1,21 @@ +#include "config.h" + +#include + +#include "canvas.h" +#include "window_statusbar.h" + +namespace display { + +WindowStatusbar::WindowStatusbar() : + Window(new Canvas, false, 1), + m_counter(0) { +} + +void +WindowStatusbar::redraw() { + m_canvas->erase(); + m_canvas->print(0, 0, "Loop: %i", ++m_counter); +} + +} diff --git a/src/display/window_statusbar.h b/src/display/window_statusbar.h new file mode 100644 index 00000000..b15356e3 --- /dev/null +++ b/src/display/window_statusbar.h @@ -0,0 +1,20 @@ +#ifndef RTORRENT_DISPLAY_WINDOW_STATUSBAR_H +#define RTORRENT_DISPLAY_WINDOW_STATUSBAR_H + +#include "window.h" + +namespace display { + +class WindowStatusbar : public Window { +public: + WindowStatusbar(); + + virtual void redraw(); + +private: + int m_counter; +}; + +} + +#endif diff --git a/src/display/window_title.cc b/src/display/window_title.cc index dfc8b209..d5b4b0e1 100644 --- a/src/display/window_title.cc +++ b/src/display/window_title.cc @@ -1,27 +1,20 @@ #include "config.h" -#include - #include "canvas.h" #include "window_title.h" namespace display { -WindowTitle::WindowTitle() : +WindowTitle::WindowTitle(const std::string& s) : Window(new Canvas, false, 1), - m_counter(0) { - - m_title += "rtorrent " VERSION " - "; - m_title += torrent::get(torrent::LIBRARY_NAME); + m_title(s) { } void WindowTitle::redraw() { - m_counter++; - m_canvas->erase(); m_canvas->print(std::max(0, (m_canvas->get_width() - (int)m_title.size()) / 2 - 4), 0, - "*** %s *** %i", m_title.c_str(), m_counter); + "*** %s ***", m_title.c_str()); } } diff --git a/src/display/window_title.h b/src/display/window_title.h index 8361ee7e..adc245fa 100644 --- a/src/display/window_title.h +++ b/src/display/window_title.h @@ -8,14 +8,12 @@ namespace display { class WindowTitle : public Window { public: - WindowTitle(); + WindowTitle(const std::string& s); virtual void redraw(); private: std::string m_title; - - int m_counter; }; } diff --git a/src/main.cc b/src/main.cc index 64a2b839..4519d26d 100644 --- a/src/main.cc +++ b/src/main.cc @@ -6,15 +6,11 @@ #include #include "display/canvas.h" -#include "display/manager.h" -#include "display/window_title.h" -#include "display/window_download_list.h" +#include "display/window_statusbar.h" #include "core/poll.h" #include "core/download_list.h" -#include "input/bindings.h" -#include "input/manager.h" #include "ui/control.h" #include "ui/download_list.h" @@ -53,6 +49,8 @@ main(int argc, char** argv) { ui::Control uiControl; ui::DownloadList uiDownloadList(&downloads, &uiControl); + uiControl.get_display().push_front(new display::WindowStatusbar); + uiDownloadList.activate(); poll.slot_read_stdin(sigc::mem_fun(uiControl.get_input(), &input::Manager::pressed));