#ifndef _KEY_COMMAND_MAP_H
#define _KEY_COMMAND_MAP_H
#include <List.h>
#include <Locker.h>
#include <Looper.h>
#include <Messenger.h>
#include <Message.h>
#include <MessageFilter.h>
#include <Node.h>
class KeyCommandMap : public BLooper {
public:
KeyCommandMap(const char* watchFile);
virtual ~KeyCommandMap();
filter_result KeyEvent(const BMessage* keyMessage,
BList* outList,
const BMessenger& sendMessagesTo);
void MouseMessageReceived(const BMessage* message);
virtual void MessageReceived(BMessage* message);
void DrainInjectedEvents(const BMessage* keyMessage,
BList* outList,
const BMessenger& sendMessagesTo);
private:
void _PutMessageToPort();
void _DeleteHKSList(BList* list);
port_id fPort;
char* fFileName;
node_ref fNodeRef;
BLocker fSyncSpecs;
BList fInjects;
BList* fSpecs;
BMessage fLastMouseMessage;
};
#endif