Fixed typo in header file, implemented changing keycodes for on-screen keyboard
This commit is contained in:
@@ -311,7 +311,7 @@ static int try_init()
|
||||
{
|
||||
// Disable DPAD
|
||||
SDL_Rect pos = {0, 0, 0, 0};
|
||||
SDL_ANDROID_SetScreenKeyboardButtonPos(SDL_ANDRIOD_SCREENKEYBOARD_BUTTON_DPAD, &pos);
|
||||
SDL_ANDROID_SetScreenKeyboardButtonPos(SDL_ANDROID_SCREENKEYBOARD_BUTTON_DPAD, &pos);
|
||||
|
||||
// Rope button in lower-right
|
||||
pos.x = screen_width;
|
||||
@@ -321,7 +321,7 @@ static int try_init()
|
||||
pos.x -= pos.w;
|
||||
pos.y -= pos.h;
|
||||
|
||||
SDL_ANDROID_SetScreenKeyboardButtonPos(SDL_ANDRIOD_SCREENKEYBOARD_BUTTON_0, &pos);
|
||||
SDL_ANDROID_SetScreenKeyboardButtonPos(SDL_ANDROID_SCREENKEYBOARD_BUTTON_0, &pos);
|
||||
|
||||
// Move and jump buttons overlapped in lower-left
|
||||
pos.x = 0;
|
||||
@@ -330,18 +330,18 @@ static int try_init()
|
||||
pos.h = pos.w*1.5;
|
||||
pos.y -= pos.h;
|
||||
|
||||
SDL_ANDROID_SetScreenKeyboardButtonPos(SDL_ANDRIOD_SCREENKEYBOARD_BUTTON_2, &pos);
|
||||
SDL_ANDROID_SetScreenKeyboardButtonPos(SDL_ANDROID_SCREENKEYBOARD_BUTTON_2, &pos);
|
||||
|
||||
pos.x += pos.w;
|
||||
|
||||
SDL_ANDROID_SetScreenKeyboardButtonPos(SDL_ANDRIOD_SCREENKEYBOARD_BUTTON_3, &pos);
|
||||
SDL_ANDROID_SetScreenKeyboardButtonPos(SDL_ANDROID_SCREENKEYBOARD_BUTTON_3, &pos);
|
||||
|
||||
pos.w *= 2;
|
||||
pos.h = pos.w*2/3;
|
||||
pos.x = 0;
|
||||
pos.y -= pos.h/2;
|
||||
|
||||
SDL_ANDROID_SetScreenKeyboardButtonPos(SDL_ANDRIOD_SCREENKEYBOARD_BUTTON_1, &pos);
|
||||
SDL_ANDROID_SetScreenKeyboardButtonPos(SDL_ANDROID_SCREENKEYBOARD_BUTTON_1, &pos);
|
||||
|
||||
// weapprev weapnext buttons
|
||||
|
||||
@@ -351,11 +351,11 @@ static int try_init()
|
||||
pos.h = pos.w;
|
||||
pos.x -= pos.w;
|
||||
|
||||
SDL_ANDROID_SetScreenKeyboardButtonPos(SDL_ANDRIOD_SCREENKEYBOARD_BUTTON_5, &pos);
|
||||
SDL_ANDROID_SetScreenKeyboardButtonPos(SDL_ANDROID_SCREENKEYBOARD_BUTTON_5, &pos);
|
||||
|
||||
pos.x = 0;
|
||||
|
||||
SDL_ANDROID_SetScreenKeyboardButtonPos(SDL_ANDRIOD_SCREENKEYBOARD_BUTTON_4, &pos);
|
||||
SDL_ANDROID_SetScreenKeyboardButtonPos(SDL_ANDROID_SCREENKEYBOARD_BUTTON_4, &pos);
|
||||
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -38,17 +38,18 @@ extern "C" {
|
||||
/* Button IDs */
|
||||
enum {
|
||||
|
||||
SDL_ANDRIOD_SCREENKEYBOARD_BUTTON_DPAD = 0, /* Joystick/D-Pad button */
|
||||
SDL_ANDROID_SCREENKEYBOARD_BUTTON_DPAD = 0, /* Joystick/D-Pad button */
|
||||
|
||||
SDL_ANDRIOD_SCREENKEYBOARD_BUTTON_0, /* Main (usually Fire) button */
|
||||
SDL_ANDRIOD_SCREENKEYBOARD_BUTTON_1,
|
||||
SDL_ANDRIOD_SCREENKEYBOARD_BUTTON_2,
|
||||
SDL_ANDRIOD_SCREENKEYBOARD_BUTTON_3,
|
||||
SDL_ANDRIOD_SCREENKEYBOARD_BUTTON_4,
|
||||
SDL_ANDRIOD_SCREENKEYBOARD_BUTTON_5,
|
||||
SDL_ANDRIOD_SCREENKEYBOARD_BUTTON_6, /* Button to show screen keyboard */
|
||||
SDL_ANDROID_SCREENKEYBOARD_BUTTON_0, /* Main (usually Fire) button */
|
||||
SDL_ANDROID_SCREENKEYBOARD_BUTTON_1,
|
||||
SDL_ANDROID_SCREENKEYBOARD_BUTTON_2,
|
||||
SDL_ANDROID_SCREENKEYBOARD_BUTTON_3,
|
||||
SDL_ANDROID_SCREENKEYBOARD_BUTTON_4,
|
||||
SDL_ANDROID_SCREENKEYBOARD_BUTTON_5,
|
||||
|
||||
SDL_ANDRIOD_SCREENKEYBOARD_BUTTON_MAX = SDL_ANDRIOD_SCREENKEYBOARD_BUTTON_6
|
||||
SDL_ANDROID_SCREENKEYBOARD_BUTTON_TEXT, /* Button to show screen keyboard */
|
||||
|
||||
SDL_ANDROID_SCREENKEYBOARD_BUTTON_MAX = SDL_ANDROID_SCREENKEYBOARD_BUTTON_TEXT
|
||||
};
|
||||
|
||||
/* All functions return 0 on failure and 1 on success */
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
#include "../SDL_sysvideo.h"
|
||||
#include "SDL_androidvideo.h"
|
||||
#include "SDL_androidinput.h"
|
||||
#include "SDL_screenkeyboard.h"
|
||||
#include "jniwrapperstuff.h"
|
||||
|
||||
|
||||
@@ -1244,6 +1245,44 @@ JAVA_EXPORT_NAME(Settings_nativeSetKeymapKey) ( JNIEnv* env, jobject thiz, jint
|
||||
SDL_android_keymap[javakey] = key;
|
||||
}
|
||||
|
||||
JNIEXPORT jint JNICALL
|
||||
JAVA_EXPORT_NAME(Settings_nativeGetKeymapKeyScreenKb) ( JNIEnv* env, jobject thiz, jint keynum)
|
||||
{
|
||||
if( keynum < 0 || keynum > SDL_ANDROID_SCREENKEYBOARD_BUTTON_5 - SDL_ANDROID_SCREENKEYBOARD_BUTTON_0 + 4 )
|
||||
return SDL_KEY(UNKNOWN);
|
||||
|
||||
if( keynum <= SDL_ANDROID_SCREENKEYBOARD_BUTTON_5 - SDL_ANDROID_SCREENKEYBOARD_BUTTON_0 )
|
||||
return SDL_ANDROID_GetScreenKeyboardButtonKey(keynum + SDL_ANDROID_SCREENKEYBOARD_BUTTON_0);
|
||||
|
||||
return SDL_KEY(UNKNOWN);
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
JAVA_EXPORT_NAME(Settings_nativeSetKeymapKeyScreenKb) ( JNIEnv* env, jobject thiz, jint keynum, jint key)
|
||||
{
|
||||
if( keynum < 0 || keynum > SDL_ANDROID_SCREENKEYBOARD_BUTTON_5 - SDL_ANDROID_SCREENKEYBOARD_BUTTON_0 + 4 )
|
||||
return;
|
||||
|
||||
if( keynum <= SDL_ANDROID_SCREENKEYBOARD_BUTTON_5 - SDL_ANDROID_SCREENKEYBOARD_BUTTON_0 )
|
||||
SDL_ANDROID_SetScreenKeyboardButtonKey(keynum + SDL_ANDROID_SCREENKEYBOARD_BUTTON_0, key);
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
JAVA_EXPORT_NAME(Settings_nativeSetScreenKbKeyUsed) ( JNIEnv* env, jobject thiz, jint keynum, jint used)
|
||||
{
|
||||
SDL_Rect rect = {0, 0, 0, 0};
|
||||
int key = -1;
|
||||
if( keynum == 0 )
|
||||
key = SDL_ANDROID_SCREENKEYBOARD_BUTTON_DPAD;
|
||||
if( keynum == 1 )
|
||||
key = SDL_ANDROID_SCREENKEYBOARD_BUTTON_TEXT;
|
||||
if( keynum - 2 > 0 && keynum - 2 < SDL_ANDROID_SCREENKEYBOARD_BUTTON_5 - SDL_ANDROID_SCREENKEYBOARD_BUTTON_0 )
|
||||
key = keynum - 2 + SDL_ANDROID_SCREENKEYBOARD_BUTTON_0;
|
||||
|
||||
if( key >= 0 && !used )
|
||||
SDL_ANDROID_SetScreenKeyboardButtonPos(key, &rect);
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
JAVA_EXPORT_NAME(Settings_nativeInitKeymap) ( JNIEnv* env, jobject thiz )
|
||||
{
|
||||
|
||||
@@ -55,7 +55,7 @@ FONT_BTN1 = 4, FONT_BTN2 = 5, FONT_BTN3 = 6, FONT_BTN4 = 7
|
||||
static GLshort fontGL[sizeof(font)/sizeof(font[0])][FONT_MAX_LINES_PER_CHAR * 4 + 1];
|
||||
enum { FONT_CHAR_LINES_COUNT = FONT_MAX_LINES_PER_CHAR * 4 };
|
||||
|
||||
enum { MAX_BUTTONS = SDL_ANDRIOD_SCREENKEYBOARD_BUTTON_MAX, MAX_BUTTONS_AUTOFIRE = 2, BUTTON_TEXT_INPUT = MAX_BUTTONS - 1 } ; // Max amount of custom buttons
|
||||
enum { MAX_BUTTONS = SDL_ANDROID_SCREENKEYBOARD_BUTTON_MAX, MAX_BUTTONS_AUTOFIRE = 2, BUTTON_TEXT_INPUT = SDL_ANDROID_SCREENKEYBOARD_BUTTON_TEXT } ; // Max amount of custom buttons
|
||||
|
||||
int SDL_ANDROID_isTouchscreenKeyboardUsed = 0;
|
||||
static int touchscreenKeyboardTheme = 0;
|
||||
@@ -70,8 +70,7 @@ SDL_KEY(SDL_KEY_VAL(SDL_ANDROID_SCREENKB_KEYCODE_1)),
|
||||
SDL_KEY(SDL_KEY_VAL(SDL_ANDROID_SCREENKB_KEYCODE_2)),
|
||||
SDL_KEY(SDL_KEY_VAL(SDL_ANDROID_SCREENKB_KEYCODE_3)),
|
||||
SDL_KEY(SDL_KEY_VAL(SDL_ANDROID_SCREENKB_KEYCODE_4)),
|
||||
SDL_KEY(SDL_KEY_VAL(SDL_ANDROID_SCREENKB_KEYCODE_5)),
|
||||
0
|
||||
SDL_KEY(SDL_KEY_VAL(SDL_ANDROID_SCREENKB_KEYCODE_5))
|
||||
};
|
||||
|
||||
enum { ARROW_LEFT = 1, ARROW_RIGHT = 2, ARROW_UP = 4, ARROW_DOWN = 8 };
|
||||
@@ -849,10 +848,10 @@ JAVA_EXPORT_NAME(Settings_nativeSetupScreenKeyboardButtons) ( JNIEnv* env, jobj
|
||||
|
||||
int SDL_ANDROID_SetScreenKeyboardButtonPos(int buttonId, SDL_Rect * pos)
|
||||
{
|
||||
if( buttonId < 0 || buttonId > SDL_ANDRIOD_SCREENKEYBOARD_BUTTON_MAX || ! pos )
|
||||
if( buttonId < 0 || buttonId > SDL_ANDROID_SCREENKEYBOARD_BUTTON_MAX || ! pos )
|
||||
return 0;
|
||||
|
||||
if( buttonId == SDL_ANDRIOD_SCREENKEYBOARD_BUTTON_DPAD )
|
||||
if( buttonId == SDL_ANDROID_SCREENKEYBOARD_BUTTON_DPAD )
|
||||
{
|
||||
arrows = *pos;
|
||||
if(touchscreenKeyboardTheme == 0)
|
||||
@@ -865,10 +864,10 @@ int SDL_ANDROID_SetScreenKeyboardButtonPos(int buttonId, SDL_Rect * pos)
|
||||
}
|
||||
else
|
||||
{
|
||||
buttons[buttonId - SDL_ANDRIOD_SCREENKEYBOARD_BUTTON_0] = *pos;
|
||||
buttons[buttonId - SDL_ANDROID_SCREENKEYBOARD_BUTTON_0] = *pos;
|
||||
if(touchscreenKeyboardTheme == 0)
|
||||
{
|
||||
int i = buttonId - SDL_ANDRIOD_SCREENKEYBOARD_BUTTON_0;
|
||||
int i = buttonId - SDL_ANDROID_SCREENKEYBOARD_BUTTON_0;
|
||||
prepareFontCharWireframe(FONT_BTN1 + i, MIN(buttons[i].h, buttons[i].w), MIN(buttons[i].h, buttons[i].w));
|
||||
}
|
||||
}
|
||||
@@ -877,37 +876,35 @@ int SDL_ANDROID_SetScreenKeyboardButtonPos(int buttonId, SDL_Rect * pos)
|
||||
|
||||
int SDL_ANDROID_GetScreenKeyboardButtonPos(int buttonId, SDL_Rect * pos)
|
||||
{
|
||||
if( buttonId < 0 || buttonId > SDL_ANDRIOD_SCREENKEYBOARD_BUTTON_MAX || ! pos )
|
||||
if( buttonId < 0 || buttonId > SDL_ANDROID_SCREENKEYBOARD_BUTTON_MAX || ! pos )
|
||||
return 0;
|
||||
|
||||
if( buttonId == SDL_ANDRIOD_SCREENKEYBOARD_BUTTON_DPAD )
|
||||
if( buttonId == SDL_ANDROID_SCREENKEYBOARD_BUTTON_DPAD )
|
||||
{
|
||||
*pos = arrows;
|
||||
}
|
||||
else
|
||||
{
|
||||
*pos = buttons[buttonId - SDL_ANDRIOD_SCREENKEYBOARD_BUTTON_0];
|
||||
*pos = buttons[buttonId - SDL_ANDROID_SCREENKEYBOARD_BUTTON_0];
|
||||
}
|
||||
return 1;
|
||||
};
|
||||
|
||||
int SDL_ANDROID_SetScreenKeyboardButtonKey(int buttonId, SDLKey key)
|
||||
{
|
||||
if( buttonId < 0 || buttonId > SDL_ANDRIOD_SCREENKEYBOARD_BUTTON_MAX || ! key )
|
||||
if( buttonId < SDL_ANDROID_SCREENKEYBOARD_BUTTON_0 || buttonId > SDL_ANDROID_SCREENKEYBOARD_BUTTON_5 || ! key )
|
||||
return 0;
|
||||
if( buttonId == SDL_ANDRIOD_SCREENKEYBOARD_BUTTON_DPAD )
|
||||
return 0;
|
||||
buttonKeysyms[buttonId - SDL_ANDRIOD_SCREENKEYBOARD_BUTTON_0] = key;
|
||||
buttonKeysyms[buttonId - SDL_ANDROID_SCREENKEYBOARD_BUTTON_0] = key;
|
||||
return 1;
|
||||
};
|
||||
|
||||
SDLKey SDL_ANDROID_GetScreenKeyboardButtonKey(int buttonId)
|
||||
{
|
||||
if( buttonId < 0 || buttonId > SDL_ANDRIOD_SCREENKEYBOARD_BUTTON_MAX )
|
||||
if( buttonId < SDL_ANDROID_SCREENKEYBOARD_BUTTON_0 || buttonId > SDL_ANDROID_SCREENKEYBOARD_BUTTON_5 )
|
||||
return SDLK_UNKNOWN;
|
||||
if( buttonId == SDL_ANDRIOD_SCREENKEYBOARD_BUTTON_DPAD )
|
||||
if( buttonId == SDL_ANDROID_SCREENKEYBOARD_BUTTON_DPAD )
|
||||
return SDLK_UNKNOWN;
|
||||
return buttonKeysyms[buttonId - SDL_ANDRIOD_SCREENKEYBOARD_BUTTON_0];
|
||||
return buttonKeysyms[buttonId - SDL_ANDROID_SCREENKEYBOARD_BUTTON_0];
|
||||
};
|
||||
|
||||
int SDL_ANDROID_SetScreenKeyboardAutoFireButtonsAmount(int nbuttons)
|
||||
@@ -943,3 +940,4 @@ int SDL_ANDROID_ToggleScreenKeyboardTextInput()
|
||||
SDL_ANDROID_CallJavaShowScreenKeyboard();
|
||||
return 1;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user