Browse Source

Made this into a datanode

Bei Yang 15 years ago
parent
commit
d79c1db68e

+ 20 - 14
panda/src/awesomium/AwMouseAndKeyboard.cxx

@@ -18,25 +18,31 @@
 
 
 TypeHandle AwMouseAndKeyboard::_type_handle;
 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){
 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 ");
-		}
 }
 }

+ 9 - 3
panda/src/awesomium/AwMouseAndKeyboard.h

@@ -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();