Beispiel #1
0
uint csInputEventHelper::GetButton (iEventNameRegistry *reg,
	const iEvent* event)
{
  CS_ASSERT(CS_IS_INPUT_EVENT(reg, *event));

  if (CS_IS_MOUSE_EVENT(reg, *event))
  {
    return csMouseEventHelper::GetButton(event);
  }
  else if (CS_IS_JOYSTICK_EVENT(reg, *event))
  {
    return csJoystickEventHelper::GetButton(event);
  }
  else if (CS_IS_KEYBOARD_EVENT(reg, *event))
  {
    return 0;
  }
  else
  {
    return 0;
  }
}
Beispiel #2
0
bool csInputEventHelper::GetButtonState (iEventNameRegistry *reg,
	const iEvent* event)
{
  CS_ASSERT(CS_IS_INPUT_EVENT(reg, *event));

  if (CS_IS_MOUSE_EVENT(reg, *event))
  {
    return csMouseEventHelper::GetButtonState (event);
  }
  else if (CS_IS_JOYSTICK_EVENT(reg, *event))
  {
    return csJoystickEventHelper::GetButtonState (event);
  }
  else if (CS_IS_KEYBOARD_EVENT(reg, *event))
  {
    return ((csKeyEventHelper::GetEventType (event) == csKeyEventTypeDown)
	    ?true:false);
  }
  else
  {
    return false;
  }
}
Beispiel #3
0
bool EventTest::HandleEvent (iEvent &ev)
{
  csRef<iEventNameRegistry> namereg = csEventNameRegistry::GetRegistry (
  	GetObjectRegistry ());
  if (CS_IS_KEYBOARD_EVENT (namereg, ev))
  {
    utf32_char key = csKeyEventHelper::GetRawCode (&ev);
    utf32_char cooked = csKeyEventHelper::GetCookedCode (&ev);
    bool autorep = csKeyEventHelper::GetAutoRepeat (&ev);
    csKeyModifiers key_modifiers;
    csKeyEventHelper::GetModifiers (&ev, key_modifiers);
    uint32 modifiers = csKeyEventHelper::GetModifiersBits (key_modifiers);
    uint32 type = csKeyEventHelper::GetEventType (&ev);
    csString str = csInputDefinition::GetKeyString (namereg, key,
    	&key_modifiers, true);
    printf ("Key %s: raw=%" PRId32 "(%c) "
        "cooked=%" PRId32 "(%c) rep=%d mods=%08" PRIu32 " desc='%s'\n",
    	type == csKeyEventTypeUp ? "UP" : "DO",
	key, (key >= 32 && key < 128) ? (char)key : '-',
	cooked, (cooked >= 32 && cooked < 128) ? (char)cooked : '-',
	autorep, modifiers, str.GetData ());
    fflush (stdout);
  }
  else if (CS_IS_MOUSE_EVENT (namereg, ev))
  {
    uint device = csMouseEventHelper::GetNumber (&ev);
    csMouseEventType type = csMouseEventHelper::GetEventType (&ev);
    csKeyModifiers key_modifiers;
    csKeyEventHelper::GetModifiers (&ev, key_modifiers);
    uint32 modifiers = csMouseEventHelper::GetModifiers (&ev);

    csMouseEventData data;
    csMouseEventHelper::GetEventData (&ev, data);
    int x = csMouseEventHelper::GetX (&ev);
    int y = csMouseEventHelper::GetY (&ev);
    uint but = csMouseEventHelper::GetButton (&ev);
    bool butstate = csMouseEventHelper::GetButtonState (&ev);
    uint32 butmask = csMouseEventHelper::GetButtonMask (&ev);

    csInputDefinition def (namereg, &ev, modifiers, true); //do we want cooked?
    csString str = def.ToString ();
    printf ("Mouse %s: but=%d(state=%d,mask=%08" PRIu32 ") "
        "device=%d x=%d y=%d mods=%08" PRIu32 " desc='%s'\n",
	type == csMouseEventTypeMove ? "MOVE" :
    	type == csMouseEventTypeUp ? "UP" :
	type == csMouseEventTypeDown ? "DO" :
	type == csMouseEventTypeClick ? "CLICK" :
	type == csMouseEventTypeDoubleClick ? "DBL" :
	"?",
	but, butstate, butmask, device, x, y,
	modifiers, str.GetData ());
    fflush (stdout);
  }
  else if (CS_IS_JOYSTICK_EVENT (namereg, ev))
  {
    uint device = csJoystickEventHelper::GetNumber (&ev);
    csKeyModifiers key_modifiers;
    csKeyEventHelper::GetModifiers (&ev, key_modifiers);
    uint32 modifiers = csJoystickEventHelper::GetModifiers (&ev);
    csJoystickEventData data;
    csJoystickEventHelper::GetEventData (&ev, data);
    csInputDefinition def (namereg, &ev, modifiers, true);
    csString str = def.ToString (false);
    csString desc ("");
    if (CS_IS_JOYSTICK_BUTTON_EVENT (namereg, ev, device))
    {
      uint but = csJoystickEventHelper::GetButton (&ev);
      bool butstate = csJoystickEventHelper::GetButtonState (&ev);
      uint32 butmask = csJoystickEventHelper::GetButtonMask (&ev);
      printf ("Joystick %s: device=%d but=%d(state=%d,mask=%08" PRIu32 ") "
          "mods=%08" PRIu32 " desc='%s'\n",
          butstate ? "DO" : "UP", device, but, butstate, butmask,
          modifiers, str.GetData ());
    }
    else if (CS_IS_JOYSTICK_MOVE_EVENT (namereg, ev, device))
    {
      size_t pos = str.Find ("Axis");
      str.SubString (desc, pos + 4, (size_t)-1);
      uint axisnum = atoi(desc.GetData ());
      printf ("Joystick MOVE: device=%d axis=%" PRId32 " value=%d "
          "mods=%08" PRIu32 " desc='%s'\n",
          device, axisnum, data.axes[axisnum], modifiers, str.GetData ());
    }
    fflush(stdout);
  }

  csBaseEventHandler::HandleEvent(ev);
  return false;
}