mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-04 19:08:55 -04:00
Made this into a datanode
This commit is contained in:
parent
6eeafea9b3
commit
d79c1db68e
@ -18,25 +18,31 @@
|
|||||||
|
|
||||||
TypeHandle AwMouseAndKeyboard::_type_handle;
|
TypeHandle AwMouseAndKeyboard::_type_handle;
|
||||||
|
|
||||||
AwMouseAndKeyboard::AwMouseAndKeyboard(GraphicsWindow *window, int device, const string &name):
|
AwMouseAndKeyboard::AwMouseAndKeyboard(const string &name):
|
||||||
MouseAndKeyboard(window,device,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){
|
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 ");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -25,9 +25,15 @@
|
|||||||
// Class : AwMouseAndKeyboard
|
// Class : AwMouseAndKeyboard
|
||||||
// Description : Thin wrappings arround WebCore.h
|
// 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:
|
PUBLISHED:
|
||||||
AwMouseAndKeyboard(GraphicsWindow *window, int device, const string &name);
|
AwMouseAndKeyboard(const string &name);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
// Inherited from DataNode
|
// Inherited from DataNode
|
||||||
@ -42,7 +48,7 @@ public:
|
|||||||
static void init_type() {
|
static void init_type() {
|
||||||
MouseAndKeyboard::init_type();
|
MouseAndKeyboard::init_type();
|
||||||
register_type(_type_handle, "AwMouseAndKeyboard",
|
register_type(_type_handle, "AwMouseAndKeyboard",
|
||||||
MouseAndKeyboard::get_class_type());
|
DataNode::get_class_type());
|
||||||
}
|
}
|
||||||
virtual TypeHandle get_type() const {
|
virtual TypeHandle get_type() const {
|
||||||
return get_class_type();
|
return get_class_type();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user