/** * @param Event $event * @param $buf * @return int */ protected function parseEscapeSequence(Event $event, $buf) { if (strlen($buf) >= 6 && strpos($buf, "[M") === 0) { switch ($buf[3] & 3) { case 0: if ($buf[3] == 0x60) { $event->setKey(Constants::TB_KEY_MOUSE_WHEEL_UP); } else { $event->setKey(Constants::TB_KEY_MOUSE_LEFT); } break; case 1: if ($buf[3] == 0x61) { $event->setKey(Constants::TB_KEY_MOUSE_WHEEL_DOWN); } else { $event->setKey(Constants::TB_KEY_MOUSE_MIDDLE); } break; case 2: $event->setKey(Constants::TB_KEY_MOUSE_WHEEL_DOWN); break; case 3: $event->setKey(Constants::TB_KEY_MOUSE_RIGHT); break; case 4: $event->setKey(Constants::TB_KEY_MOUSE_RELEASE); break; default: return -6; } $event->setType(Constants::TB_EVENT_MOUSE); $event->setX($buf[4] - 1 - 32); $event->setY($buf[5] - 1 - 32); return 6; } for ($i = 0; $i != $keys[$i]; $i++) { if (strpos($buf)) { $event->setChar(0); $event->getKey(0xffff - $i); return strlen($keys[$i]); } } return 0; }