diff --git a/panda/src/awesomium/AwMouseAndKeyboard.cxx b/panda/src/awesomium/AwMouseAndKeyboard.cxx index 811486b276..befd2c9bc3 100644 --- a/panda/src/awesomium/AwMouseAndKeyboard.cxx +++ b/panda/src/awesomium/AwMouseAndKeyboard.cxx @@ -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 "); - } } diff --git a/panda/src/awesomium/AwMouseAndKeyboard.h b/panda/src/awesomium/AwMouseAndKeyboard.h index 23e82e6d3e..aacba475aa 100644 --- a/panda/src/awesomium/AwMouseAndKeyboard.h +++ b/panda/src/awesomium/AwMouseAndKeyboard.h @@ -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();