Tutorial 4. Marmalade SDK Handling key inputs and the on screen keyboard
Автор: progman
Tutorial 4. Marmalade SDK Handling key inputs and the on screen keyboard
|
В сегодняшнем туториале мы рассмотрим клавишный ввод и экранную клавиатуру. Как обычно, если Вам нужен исходный код по этой статье, тогда вы можете Скачать его здесь. Если Вам нужны подробности по обновлённому классу CInput, тогда читайте дальше, пожалуйста. |
Keys and Key States
Marmalade отображает клавиши устройства в виде перечня, который называется s3eKey. Если Вы посмотрите на файл заголовка Marmalade SDK s3eKeyboard.h, Вы увидите, что список отображаемых клавиш довольно обширен.
Marmalade использует положения клавиш, чтобы мы знали, что в данный момент происходит со всеми доступными клавишами на устройстве, например, мы делаем запрос такой как «нажата ли задняя клавиша» или «клавиша меню вверх или вниз». Поддерживаются следующие положения:
• S3E_KEY_STATE_DOWN – Пользователь удерживает нажатой клавишу
• S3E_KEY_STATE_UP – Клавиша не нажата и не удерживается пользователем
• S3E_KEY_STATE_PRESSED – Пользователь только что нажал на клавишу
• S3E_KEY_STATE_RELEASED – Пользователь только что отпустил клавишу
Чтобы запросить положение отдельной клавиши нам нужно вызвать s3eKeyboardGetState(key), что возвращает положения указанной клавиши. Обратите внимание на то,что есть возможность того,что у клавиши может быть более одного положения. Например, если пользователь только что нажал клавишу, то у неё будет сразу два положения: S3E_KEY_STATE_DOWN и S3E_KEY_STATE_PRESSED.
On Screen Keyboard
Экранная клавиатура представляет собой программное обеспечение на основе клавиатуры, которое доступно для телефонов и планшетов, поддерживающих сенсорный экран (Вы можете вызвать s3eOSReadStringAvailable(), чтобы определить возможность поддержки). Вы можете вызвать конкретную экраннную клавиатуру ОС довольно легко, используя s3eOSReadStringUTF8() и s3eOSReadStringUTF8WithDefault() Marmalade. Эти функции блокировки отображают конкретную клавиатуру операционной системы и затем возвращают любой введённый текст. Есть возможность предложить системе (путём установки флажка на эти функции), какую клавиатуру вы хотите представить пользователю, чтобы обеспечить разные типы ввода. Доступны следующие типы:
• No flags – Стандартная клавиатура
• S3E_OSREADSTRING_FLAG_PASSWORD – Клавиатура для введения пароля
• S3E_OSREADSTRING_FLAG_EMAIL – Клавиатура для введения e-mail адреса
• S3E_OSREADSTRING_FLAG_URL – Клавиатура для введения URL
• S3E_OSREADSTRING_FLAG_NUMBER – Клавиатура для введения номера
CInput Changes
Хорошо, теперь,когда мы прошли основы, давайте рассмотрим изменения в классе CInput. Если Вы не читали предыдущую статью, которая представляла этот класс, тогда можете почитать о нём здесь
Если Вы рассмотрите CInput.h, Вы заметите несколько главных добавлений. Первые несколько добавлений включают в себя файлы заголовков, которые необходмы системам клавиш и экранной клавиатуры:
#include "s3eKeyboard.h" #include "s3eOSReadString.h"
Переключившись на исходный файл класса CInput.cpp, Вы заметите, что мы добавили несколько дополнительных проверок в CInput::Init()