summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTomas 'ZeXx86' Jedrzejek <zexx86@gmail.com>2009-04-18 21:38:03 +0200
committerTomas 'ZeXx86' Jedrzejek <zexx86@gmail.com>2009-04-18 21:38:03 +0200
commitce19d33b99ba02fb29297a21bf88d830e708cb27 (patch)
tree928c3e0639540742564eb07df7b9f1c7223ce2ab /src
parent9964d4c7f92344d66b92279a03b8c8130fd2fa1a (diff)
In-Game Chat was improved - Upper-Letter support + Additional character set; Optimalization of
widget_textfield's readKey ()
Diffstat (limited to 'src')
-rw-r--r--src/client/chat.c12
-rw-r--r--src/widget/widget_textfield.c43
2 files changed, 49 insertions, 6 deletions
diff --git a/src/client/chat.c b/src/client/chat.c
index 9d35519..ca98389 100644
--- a/src/client/chat.c
+++ b/src/client/chat.c
@@ -143,13 +143,21 @@ static void processMessageKey(SDL_keysym keysym)
/* here would be much better to put 'strcat' as 'line' is expected
* to be full of '0' up to its end
*/
- line[len] = keysym.sym;
+ char c = keysym.sym;
+
+ /* TODO: should correspond with ASCII table */
+ if (keysym.mod & KMOD_RSHIFT)
+ c --;
+
+ line[len] = c;
+ return;
}
/* processing of letters */
if (keysym.sym >= SDLK_a && keysym.sym <= SDLK_z) {
char c = keysym.sym;
- if (keysym.mod == KMOD_SHIFT) {
+
+ if (keysym.mod & KMOD_SHIFT) {
c = toupper(c);
}
/* here would be much better to put 'strcat' as 'line' is expected
diff --git a/src/widget/widget_textfield.c b/src/widget/widget_textfield.c
index f292927..41428ff 100644
--- a/src/widget/widget_textfield.c
+++ b/src/widget/widget_textfield.c
@@ -181,7 +181,7 @@ static void checkText(widget_textfield_t * p)
}
-static void readKey(widget_textfield_t *p)
+static void readKey (widget_textfield_t *p)
{
int len;
int i;
@@ -219,7 +219,7 @@ static void readKey(widget_textfield_t *p)
char c = '\0';
- /* printf("name %s\n", name); */
+ /* printf("name %s : %d\n", name, k.sym); */
switch (strlen (name)) {
case 1:
@@ -230,9 +230,9 @@ static void readKey(widget_textfield_t *p)
break;
}
- if (!strcmp (name, "space"))
+ if (k.sym == SDLK_SPACE || k.sym == SDLK_TAB)
c = ' ';
- else if (!strcmp (name, "backspace") && len > 0 ) {
+ else if (k.sym == SDLK_BACKSPACE && len > 0 ) {
p->text[len-1] = '\0';
checkText (p);
break;
@@ -259,6 +259,41 @@ static void readKey(widget_textfield_t *p)
p->text[len] -= 32;
}
+/*
+ switch (k.sym) {
+ case SDLK_PLUS:
+ p->text[len] = '1';
+ break;
+ case SDLK_WORLD_76:
+ p->text[len] = '2';
+ break;
+ case SDLK_WORLD_25:
+ p->text[len] = '3';
+ break;
+ case SDLK_WORLD_72:
+ p->text[len] = '4';
+ break;
+ case SDLK_WORLD_88:
+ p->text[len] = '5';
+ break;
+ case SDLK_WORLD_30:
+ p->text[len] = '6';
+ break;
+ case SDLK_WORLD_93:
+ p->text[len] = '7';
+ break;
+ case SDLK_WORLD_65:
+ p->text[len] = '8';
+ break;
+ case SDLK_WORLD_77:
+ p->text[len] = '9';
+ break;
+ case SDLK_WORLD_73:
+ p->text[len] = '0';
+ break;
+ }
+*/
+
checkText (p);
len ++;
}