Made this into a datanode

This commit is contained in:
Bei Yang 2010-03-25 08:37:04 +00:00
parent 6eeafea9b3
commit d79c1db68e
2 changed files with 29 additions and 17 deletions

View File

@ -18,25 +18,31 @@
TypeHandle AwMouseAndKeyboard::_type_handle;
AwMouseAndKeyboard::AwMouseAndKeyboard(GraphicsWindow *window, int device, const string &name):
MouseAndKeyboard(window,device,name)
AwMouseAndKeyboard::AwMouseAndKeyboard(const string &name):
DataNode(name)
{
//do nothing
_button_events_input = define_input("button_events", ButtonEventList::get_class_type());
_button_events_output = define_output("button_events", ButtonEventList::get_class_type());
}
void AwMouseAndKeyboard::do_transmit_data(DataGraphTraverser *trav, const DataNodeTransmit &input, DataNodeTransmit &output){
MouseAndKeyboard::do_transmit_data(trav,input,output);
if (input.has_data(_button_events_input)) {
const ButtonEventList *button_events;
DCAST_INTO_V(button_events, input.get_data(_button_events_input).get_ptr());
int num_events = button_events->get_num_events();
for (int i = 0; i < num_events; i++) {
const ButtonEvent &be = button_events->get_event(i);
string event_name = be._button.get_name();
printf("Button Event! : %s with code %i and index %i ", event_name.c_str(), be._keycode, be._button.get_index());
if(be._type == ButtonEvent::T_down) printf("down");
if(be._type == ButtonEvent::T_repeat) printf("repeat");
if(be._type == ButtonEvent::T_up) printf("up");
if(be._type == ButtonEvent::T_resume_down) printf("T_resume_down");
printf("\n");
}
}
int num_events = _button_events->get_num_events();
for (int i = 0; i < num_events; i++) {
const ButtonEvent &be = _button_events->get_event(i);
string event_name = be._button.get_name();
printf("Button pressed: %s ", event_name);
if(be._type == ButtonEvent::T_down ) printf(" down ");
if(be._type == ButtonEvent::T_repeat ) printf(" repeat ");
if(be._type == ButtonEvent::T_resume_down ) printf(" resume down ");
if(be._type == ButtonEvent::T_resume_down ) printf(" up ");
}
}

View File

@ -25,9 +25,15 @@
// Class : AwMouseAndKeyboard
// Description : Thin wrappings arround WebCore.h
////////////////////////////////////////////////////////////////////
class EXPCL_PANDAAWESOMIUM AwMouseAndKeyboard : public MouseAndKeyboard {
class EXPCL_PANDAAWESOMIUM AwMouseAndKeyboard : public DataNode {
//member data data
protected:
// inputs adn output indices... initialized in constructor
int _button_events_input;
int _button_events_output;
PUBLISHED:
AwMouseAndKeyboard(GraphicsWindow *window, int device, const string &name);
AwMouseAndKeyboard(const string &name);
protected:
// Inherited from DataNode
@ -42,7 +48,7 @@ public:
static void init_type() {
MouseAndKeyboard::init_type();
register_type(_type_handle, "AwMouseAndKeyboard",
MouseAndKeyboard::get_class_type());
DataNode::get_class_type());
}
virtual TypeHandle get_type() const {
return get_class_type();