* Add includes of headers for select.

* Make initialization and cleanup of display::Canvast safer.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@533 e378c898-3ddf-0310-93e7-cc216c733640
This commit is contained in:
rakshasa
2005-08-17 16:58:07 +00:00
parent 4eb18663f5
commit 7f2b66d601
5 changed files with 57 additions and 39 deletions
+2
View File
@@ -38,6 +38,8 @@
#include <cstring> #include <cstring>
#include <stdexcept> #include <stdexcept>
#include <unistd.h>
#include <sys/time.h>
#include <torrent/poll_epoll.h> #include <torrent/poll_epoll.h>
#include <torrent/torrent.h> #include <torrent/torrent.h>
+2
View File
@@ -38,6 +38,8 @@
#include <cstring> #include <cstring>
#include <stdexcept> #include <stdexcept>
#include <unistd.h>
#include <sys/time.h>
#include <torrent/poll_select.h> #include <torrent/poll_select.h>
#include <torrent/torrent.h> #include <torrent/torrent.h>
+13 -1
View File
@@ -40,6 +40,8 @@
namespace display { namespace display {
bool Canvas::m_isInitialized = false;
void void
Canvas::resize(int x, int y, int w, int h) { Canvas::resize(int x, int y, int w, int h) {
wresize(m_window, h, w); wresize(m_window, h, w);
@@ -47,7 +49,12 @@ Canvas::resize(int x, int y, int w, int h) {
} }
void void
Canvas::init() { Canvas::initialize() {
if (m_isInitialized)
return;
m_isInitialized = true;
initscr(); initscr();
raw(); raw();
noecho(); noecho();
@@ -58,6 +65,11 @@ Canvas::init() {
void void
Canvas::cleanup() { Canvas::cleanup() {
if (!m_isInitialized)
return;
m_isInitialized = false;
noraw(); noraw();
endwin(); endwin();
} }
+3 -1
View File
@@ -106,7 +106,7 @@ public:
void set_attr(int x, int y, int n, int attr, int color) { mvwchgat(m_window, y, x, n, attr, color, NULL); } void set_attr(int x, int y, int n, int attr, int color) { mvwchgat(m_window, y, x, n, attr, color, NULL); }
// Initialize stdscr. // Initialize stdscr.
static void init(); static void initialize();
static void cleanup(); static void cleanup();
static int get_screen_width() { int x, y; getmaxyx(stdscr, y, x); return x; } static int get_screen_width() { int x, y; getmaxyx(stdscr, y, x); return x; }
@@ -118,6 +118,8 @@ private:
Canvas(const Canvas&); Canvas(const Canvas&);
void operator = (const Canvas&); void operator = (const Canvas&);
static bool m_isInitialized;
WINDOW* m_window; WINDOW* m_window;
}; };
+1 -1
View File
@@ -58,7 +58,7 @@ Control::~Control() {
void void
Control::initialize() { Control::initialize() {
display::Canvas::init(); display::Canvas::initialize();
display::Window::slot_adjust(sigc::mem_fun(m_display, &display::Manager::adjust_layout)); display::Window::slot_adjust(sigc::mem_fun(m_display, &display::Manager::adjust_layout));
m_core.get_poll_manager()->signal_interrupted().connect(sigc::mem_fun(*m_inputStdin, &input::InputEvent::event_read)); m_core.get_poll_manager()->signal_interrupted().connect(sigc::mem_fun(*m_inputStdin, &input::InputEvent::event_read));