rtorrent: Initial key handler implemented.

git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@239 e378c898-3ddf-0310-93e7-cc216c733640
This commit is contained in:
rakshasa
2005-01-28 18:43:39 +00:00
parent f9b95c6255
commit b994517819
10 changed files with 151 additions and 20 deletions
+9
View File
@@ -0,0 +1,9 @@
noinst_LIBRARIES = libsub_input.a
libsub_input_a_SOURCES = \
bindings.cc \
bindings.h \
manager.cc \
manager.h
INCLUDES = -I$(srcdir) -I$(srcdir)/.. -I$(top_srcdir)
+19
View File
@@ -0,0 +1,19 @@
#include "config.h"
#include <algorithm>
#include "bindings.h"
namespace input {
bool
Bindings::pressed(int key) {
const_iterator itr = find(key);
if (itr != end())
itr->second();
return itr != end();
}
}
+31
View File
@@ -0,0 +1,31 @@
#ifndef RTORRENT_INPUT_BINDINGS_H
#define RTORRENT_INPUT_BINDINGS_H
#include <map>
#include <sigc++/slot.h>
namespace input {
class Bindings : private std::map<int, sigc::slot0<void> > {
public:
typedef std::map<int, sigc::slot0<void> > Base;
using Base::iterator;
using Base::const_iterator;
using Base::reverse_iterator;
using Base::const_reverse_iterator;
using Base::begin;
using Base::end;
using Base::rbegin;
using Base::rend;
using Base::find;
using Base::operator[];
bool pressed(int key);
};
}
#endif
+16
View File
@@ -0,0 +1,16 @@
#include "config.h"
#include <algorithm>
#include <functional>
#include "manager.h"
#include "bindings.h"
namespace input {
bool
Manager::pressed(int key) {
return std::find_if(begin(), end(), std::bind2nd(std::mem_fun(&Bindings::pressed), key)) != end();
}
}
+32
View File
@@ -0,0 +1,32 @@
#ifndef RTORRENT_INPUT_MANAGER_H
#define RTORRENT_INPUT_MANAGER_H
#include <list>
namespace input {
class Bindings;
class Manager : private std::list<Bindings*> {
public:
typedef std::list<Bindings*> Base;
using Base::iterator;
using Base::const_iterator;
using Base::reverse_iterator;
using Base::const_reverse_iterator;
using Base::begin;
using Base::end;
using Base::rbegin;
using Base::rend;
using Base::push_back;
using Base::push_front;
bool pressed(int key);
};
}
#endif