mirror of
https://github.com/w23/xash3d-fwgs
synced 2024-12-15 13:41:33 +01:00
Small refactoring of EnableTextInput
This commit is contained in:
parent
545b781934
commit
63513ec475
@ -695,16 +695,31 @@ void Key_Event( int key, qboolean down )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
================
|
||||||
|
Key_EnableTextInput
|
||||||
|
|
||||||
|
================
|
||||||
|
*/
|
||||||
void Key_EnableTextInput( qboolean enable, qboolean force )
|
void Key_EnableTextInput( qboolean enable, qboolean force )
|
||||||
{
|
{
|
||||||
|
void (*pfnEnableTextInput)( qboolean enable );
|
||||||
|
|
||||||
#if XASH_INPUT == INPUT_SDL
|
#if XASH_INPUT == INPUT_SDL
|
||||||
SDLash_EnableTextInput( enable, force );
|
pfnEnableTextInput = SDLash_EnableTextInput;
|
||||||
#elif XASH_INPUT == INPUT_ANDROID
|
#elif XASH_INPUT == INPUT_ANDROID
|
||||||
Android_EnableTextInput( enable, force );
|
pfnEnableTextInput = Android_EnableTextInput;
|
||||||
#endif
|
#else
|
||||||
#if 0
|
#error "Here must be a text input for your platform"
|
||||||
Joy_EnableTextInput( enable, force );
|
return;
|
||||||
#endif
|
#endif
|
||||||
|
if( enable && ( !host.textmode || force ) )
|
||||||
|
pfnEnableTextInput( true );
|
||||||
|
else if( !enable )
|
||||||
|
pfnEnableTextInput( false );
|
||||||
|
|
||||||
|
if( !force )
|
||||||
|
host.textmode = enable;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -32,7 +32,6 @@ static enum VGUI_KeyCode s_pVirtualKeyTrans[256];
|
|||||||
static enum VGUI_DefaultCursor s_currentCursor;
|
static enum VGUI_DefaultCursor s_currentCursor;
|
||||||
#ifdef XASH_SDL
|
#ifdef XASH_SDL
|
||||||
#include <SDL_events.h>
|
#include <SDL_events.h>
|
||||||
#include "platform/sdl/events.h"
|
|
||||||
static SDL_Cursor* s_pDefaultCursor[20];
|
static SDL_Cursor* s_pDefaultCursor[20];
|
||||||
#endif
|
#endif
|
||||||
static void *s_pVGuiSupport; // vgui_support library
|
static void *s_pVGuiSupport; // vgui_support library
|
||||||
@ -161,9 +160,8 @@ void GAME_EXPORT VGUI_SetVisible( qboolean state )
|
|||||||
SDL_ShowCursor( state );
|
SDL_ShowCursor( state );
|
||||||
if( !state )
|
if( !state )
|
||||||
SDL_GetRelativeMouseState( NULL, NULL );
|
SDL_GetRelativeMouseState( NULL, NULL );
|
||||||
|
|
||||||
SDLash_EnableTextInput( state, true );
|
|
||||||
#endif
|
#endif
|
||||||
|
Key_EnableTextInput( state, true );
|
||||||
}
|
}
|
||||||
|
|
||||||
int GAME_EXPORT VGUI_UtfProcessChar( int in )
|
int GAME_EXPORT VGUI_UtfProcessChar( int in )
|
||||||
@ -491,21 +489,19 @@ void VGui_KeyEvent( int key, int down )
|
|||||||
if( !vgui.initialized )
|
if( !vgui.initialized )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
#ifdef XASH_SDL
|
|
||||||
if( host.mouse_visible )
|
if( host.mouse_visible )
|
||||||
SDLash_EnableTextInput( 1, false );
|
Key_EnableTextInput( true, false );
|
||||||
#endif
|
|
||||||
|
|
||||||
switch( key )
|
switch( key )
|
||||||
{
|
{
|
||||||
case K_MOUSE1:
|
case K_MOUSE1:
|
||||||
vgui.Mouse( down?MA_PRESSED:MA_RELEASED, MOUSE_LEFT );
|
vgui.Mouse( down ? MA_PRESSED : MA_RELEASED, MOUSE_LEFT );
|
||||||
return;
|
return;
|
||||||
case K_MOUSE2:
|
case K_MOUSE2:
|
||||||
vgui.Mouse( down?MA_PRESSED:MA_RELEASED, MOUSE_RIGHT );
|
vgui.Mouse( down ? MA_PRESSED : MA_RELEASED, MOUSE_RIGHT );
|
||||||
return;
|
return;
|
||||||
case K_MOUSE3:
|
case K_MOUSE3:
|
||||||
vgui.Mouse( down?MA_PRESSED:MA_RELEASED, MOUSE_MIDDLE );
|
vgui.Mouse( down ? MA_PRESSED : MA_RELEASED, MOUSE_MIDDLE );
|
||||||
return;
|
return;
|
||||||
case K_MWHEELDOWN:
|
case K_MWHEELDOWN:
|
||||||
vgui.Mouse( MA_WHEEL, 1 );
|
vgui.Mouse( MA_WHEEL, 1 );
|
||||||
|
@ -177,17 +177,14 @@ SDLash_InputEvent
|
|||||||
*/
|
*/
|
||||||
static void SDLash_InputEvent( SDL_TextInputEvent input )
|
static void SDLash_InputEvent( SDL_TextInputEvent input )
|
||||||
{
|
{
|
||||||
int i;
|
for( char *text = input.text; *text; text++ )
|
||||||
|
|
||||||
// Pass characters one by one to Con_CharEvent
|
|
||||||
for(i = 0; input.text[i]; ++i)
|
|
||||||
{
|
{
|
||||||
int ch;
|
int ch;
|
||||||
|
|
||||||
if( !Q_stricmp( cl_charset->string, "utf-8" ) )
|
if( !Q_stricmp( cl_charset->string, "utf-8" ) )
|
||||||
ch = (unsigned char)input.text[i];
|
ch = (unsigned char)*text;
|
||||||
else
|
else
|
||||||
ch = Con_UtfProcessCharForce( (unsigned char)input.text[i] );
|
ch = Con_UtfProcessCharForce( (unsigned char)*text );
|
||||||
|
|
||||||
if( !ch )
|
if( !ch )
|
||||||
continue;
|
continue;
|
||||||
@ -202,28 +199,9 @@ SDLash_EnableTextInput
|
|||||||
|
|
||||||
=============
|
=============
|
||||||
*/
|
*/
|
||||||
void SDLash_EnableTextInput( int enable, qboolean force )
|
void SDLash_EnableTextInput( qboolean enable )
|
||||||
{
|
{
|
||||||
if( force )
|
enable ? SDL_StartTextInput() : SDL_StopTextInput();
|
||||||
{
|
|
||||||
if( enable )
|
|
||||||
SDL_StartTextInput();
|
|
||||||
else
|
|
||||||
SDL_StopTextInput();
|
|
||||||
}
|
|
||||||
else if( enable )
|
|
||||||
{
|
|
||||||
if( !host.textmode )
|
|
||||||
{
|
|
||||||
SDL_StartTextInput();
|
|
||||||
}
|
|
||||||
host.textmode = true;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
SDL_StopTextInput();
|
|
||||||
host.textmode = false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -20,7 +20,7 @@ GNU General Public License for more details.
|
|||||||
#ifdef XASH_SDL
|
#ifdef XASH_SDL
|
||||||
|
|
||||||
void SDLash_RunEvents( void );
|
void SDLash_RunEvents( void );
|
||||||
void SDLash_EnableTextInput( int enable, qboolean force );
|
void SDLash_EnableTextInput( qboolean enable );
|
||||||
int SDLash_JoyInit( int numjoy ); // pass -1 to init every joystick
|
int SDLash_JoyInit( int numjoy ); // pass -1 to init every joystick
|
||||||
|
|
||||||
#endif // XASH_SDL
|
#endif // XASH_SDL
|
||||||
|
Loading…
Reference in New Issue
Block a user