Mercurial > sdl-ios-xcode
annotate Xcode-iPhoneOS/Demos/src/keyboard.c @ 5127:b6c7a6b07ebf
Updated main.c for API changes
Kees Bakker to sdl
The main.c for the template is still targeting SDL1.2. Here
is the patch to make it work for SDL1.3 (I'm hoping
the mailing lists accepts attachments.)
In this patch I have also changed the shell script that
assembles the Template. Since there is now only one lib
target (same name for "device" and "simulator" version)
I copy the simulator library to the destination with
the name libSDLSimulator.a. This is not a satisfactory
solution, because both libraries are included in the project
while only one is needed (depending on the selected
environment). However, I'm not fluent with Xcode to
say what a better solution would be.
Kind regards,
Kees Bakker
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Fri, 28 Jan 2011 10:37:36 -0800 |
parents | 25d4feb7c127 |
children |
rev | line source |
---|---|
3277
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
1 /* |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
2 * keyboard.c |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
3 * written by Holmes Futrell |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
4 * use however you want |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
5 */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
6 |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
7 #import "SDL.h" |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
8 #import "common.h" |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
9 |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
10 #define GLYPH_SIZE_IMAGE 16 /* size of glyphs (characters) in the bitmap font file */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
11 #define GLYPH_SIZE_SCREEN 32 /* size of glyphs (characters) as shown on the screen */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
12 |
3685
64ce267332c6
Switched from SDL_WindowID and SDL_TextureID to SDL_Window* and SDL_Texture* for code simplicity and improved performance.
Sam Lantinga <slouken@libsdl.org>
parents:
3277
diff
changeset
|
13 static SDL_Texture *texture; /* texture where we'll hold our font */ |
3277
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
14 |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
15 /* iPhone SDL addition keyboard related function definitions */ |
3685
64ce267332c6
Switched from SDL_WindowID and SDL_TextureID to SDL_Window* and SDL_Texture* for code simplicity and improved performance.
Sam Lantinga <slouken@libsdl.org>
parents:
3277
diff
changeset
|
16 extern DECLSPEC int SDLCALL SDL_iPhoneKeyboardShow(SDL_Window * window); |
64ce267332c6
Switched from SDL_WindowID and SDL_TextureID to SDL_Window* and SDL_Texture* for code simplicity and improved performance.
Sam Lantinga <slouken@libsdl.org>
parents:
3277
diff
changeset
|
17 extern DECLSPEC int SDLCALL SDL_iPhoneKeyboardHide(SDL_Window * window); |
64ce267332c6
Switched from SDL_WindowID and SDL_TextureID to SDL_Window* and SDL_Texture* for code simplicity and improved performance.
Sam Lantinga <slouken@libsdl.org>
parents:
3277
diff
changeset
|
18 extern DECLSPEC SDL_bool SDLCALL SDL_iPhoneKeyboardIsShown(SDL_Window * |
64ce267332c6
Switched from SDL_WindowID and SDL_TextureID to SDL_Window* and SDL_Texture* for code simplicity and improved performance.
Sam Lantinga <slouken@libsdl.org>
parents:
3277
diff
changeset
|
19 window); |
64ce267332c6
Switched from SDL_WindowID and SDL_TextureID to SDL_Window* and SDL_Texture* for code simplicity and improved performance.
Sam Lantinga <slouken@libsdl.org>
parents:
3277
diff
changeset
|
20 extern DECLSPEC int SDLCALL SDL_iPhoneKeyboardToggle(SDL_Window * window); |
3277
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
21 |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
22 /* function declarations */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
23 void cleanup(void); |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
24 void drawBlank(int x, int y); |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
25 |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
26 static int numChars = 0; /* number of characters we've typed so far */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
27 static SDL_bool lastCharWasColon = 0; /* we use this to detect sequences such as :) */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
28 static SDL_Color bg_color = { 50, 50, 100, 255 }; /* color of background */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
29 |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
30 /* this structure maps a scancode to an index in our bitmap font. |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
31 it also contains data about under which modifiers the mapping is valid |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
32 (for example, we don't want shift + 1 to produce the character '1', |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
33 but rather the character '!') |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
34 */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
35 typedef struct |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
36 { |
5083 | 37 SDL_ScanCode scancode; /* scancode of the key we want to map */ |
3277
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
38 int allow_no_mod; /* is the map valid if the key has no modifiers? */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
39 SDLMod mod; /* what modifiers are allowed for the mapping */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
40 int index; /* what index in the font does the scancode map to */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
41 } fontMapping; |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
42 |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
43 #define TABLE_SIZE 51 /* size of our table which maps keys and modifiers to font indices */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
44 |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
45 /* Below is the table that defines the mapping between scancodes and modifiers to indices in the |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
46 bitmap font. As an example, then line '{ SDL_SCANCODE_A, 1, KMOD_SHIFT, 33 }' means, map |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
47 the key A (which has scancode SDL_SCANCODE_A) to index 33 in the font (which is a picture of an A), |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
48 The '1' means that the mapping is valid even if there are no modifiers, and KMOD_SHIFT means the |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
49 mapping is also valid if the user is holding shift. |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
50 */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
51 fontMapping map[TABLE_SIZE] = { |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
52 |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
53 {SDL_SCANCODE_A, 1, KMOD_SHIFT, 33}, /* A */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
54 {SDL_SCANCODE_B, 1, KMOD_SHIFT, 34}, /* B */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
55 {SDL_SCANCODE_C, 1, KMOD_SHIFT, 35}, /* C */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
56 {SDL_SCANCODE_D, 1, KMOD_SHIFT, 36}, /* D */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
57 {SDL_SCANCODE_E, 1, KMOD_SHIFT, 37}, /* E */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
58 {SDL_SCANCODE_F, 1, KMOD_SHIFT, 38}, /* F */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
59 {SDL_SCANCODE_G, 1, KMOD_SHIFT, 39}, /* G */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
60 {SDL_SCANCODE_H, 1, KMOD_SHIFT, 40}, /* H */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
61 {SDL_SCANCODE_I, 1, KMOD_SHIFT, 41}, /* I */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
62 {SDL_SCANCODE_J, 1, KMOD_SHIFT, 42}, /* J */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
63 {SDL_SCANCODE_K, 1, KMOD_SHIFT, 43}, /* K */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
64 {SDL_SCANCODE_L, 1, KMOD_SHIFT, 44}, /* L */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
65 {SDL_SCANCODE_M, 1, KMOD_SHIFT, 45}, /* M */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
66 {SDL_SCANCODE_N, 1, KMOD_SHIFT, 46}, /* N */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
67 {SDL_SCANCODE_O, 1, KMOD_SHIFT, 47}, /* O */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
68 {SDL_SCANCODE_P, 1, KMOD_SHIFT, 48}, /* P */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
69 {SDL_SCANCODE_Q, 1, KMOD_SHIFT, 49}, /* Q */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
70 {SDL_SCANCODE_R, 1, KMOD_SHIFT, 50}, /* R */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
71 {SDL_SCANCODE_S, 1, KMOD_SHIFT, 51}, /* S */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
72 {SDL_SCANCODE_T, 1, KMOD_SHIFT, 52}, /* T */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
73 {SDL_SCANCODE_U, 1, KMOD_SHIFT, 53}, /* U */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
74 {SDL_SCANCODE_V, 1, KMOD_SHIFT, 54}, /* V */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
75 {SDL_SCANCODE_W, 1, KMOD_SHIFT, 55}, /* W */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
76 {SDL_SCANCODE_X, 1, KMOD_SHIFT, 56}, /* X */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
77 {SDL_SCANCODE_Y, 1, KMOD_SHIFT, 57}, /* Y */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
78 {SDL_SCANCODE_Z, 1, KMOD_SHIFT, 58}, /* Z */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
79 {SDL_SCANCODE_0, 1, 0, 16}, /* 0 */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
80 {SDL_SCANCODE_1, 1, 0, 17}, /* 1 */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
81 {SDL_SCANCODE_2, 1, 0, 18}, /* 2 */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
82 {SDL_SCANCODE_3, 1, 0, 19}, /* 3 */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
83 {SDL_SCANCODE_4, 1, 0, 20}, /* 4 */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
84 {SDL_SCANCODE_5, 1, 0, 21}, /* 5 */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
85 {SDL_SCANCODE_6, 1, 0, 22}, /* 6 */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
86 {SDL_SCANCODE_7, 1, 0, 23}, /* 7 */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
87 {SDL_SCANCODE_8, 1, 0, 24}, /* 8 */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
88 {SDL_SCANCODE_9, 1, 0, 25}, /* 9 */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
89 {SDL_SCANCODE_SPACE, 1, 0, 0}, /*' ' */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
90 {SDL_SCANCODE_1, 0, KMOD_SHIFT, 1}, /* ! */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
91 {SDL_SCANCODE_SLASH, 0, KMOD_SHIFT, 31}, /* ? */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
92 {SDL_SCANCODE_SLASH, 1, 0, 15}, /* / */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
93 {SDL_SCANCODE_COMMA, 1, 0, 12}, /* , */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
94 {SDL_SCANCODE_SEMICOLON, 1, 0, 27}, /* ; */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
95 {SDL_SCANCODE_SEMICOLON, 0, KMOD_SHIFT, 26}, /* : */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
96 {SDL_SCANCODE_PERIOD, 1, 0, 14}, /* . */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
97 {SDL_SCANCODE_MINUS, 1, 0, 13}, /* - */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
98 {SDL_SCANCODE_EQUALS, 0, KMOD_SHIFT, 11}, /* = */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
99 {SDL_SCANCODE_APOSTROPHE, 1, 0, 7}, /* ' */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
100 {SDL_SCANCODE_APOSTROPHE, 0, KMOD_SHIFT, 2}, /* " */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
101 {SDL_SCANCODE_5, 0, KMOD_SHIFT, 5}, /* % */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
102 |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
103 }; |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
104 |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
105 /* |
5083 | 106 This function maps an SDL_KeySym to an index in the bitmap font. |
3277
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
107 It does so by scanning through the font mapping table one entry |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
108 at a time. |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
109 |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
110 If a match is found (scancode and allowed modifiers), the proper |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
111 index is returned. |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
112 |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
113 If there is no entry for the key, -1 is returned |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
114 */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
115 int |
5083 | 116 keyToIndex(SDL_KeySym key) |
3277
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
117 { |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
118 int i, index = -1; |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
119 for (i = 0; i < TABLE_SIZE; i++) { |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
120 fontMapping compare = map[i]; |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
121 if (key.scancode == compare.scancode) { |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
122 /* if this entry is valid with no key mod and we have no keymod, or if |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
123 the key's modifiers are allowed modifiers for that mapping */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
124 if ((compare.allow_no_mod && key.mod == 0) |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
125 || (key.mod & compare.mod)) { |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
126 index = compare.index; |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
127 break; |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
128 } |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
129 } |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
130 } |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
131 return index; |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
132 } |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
133 |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
134 /* |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
135 This function returns and x,y position for a given character number. |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
136 It is used for positioning each character of text |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
137 */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
138 void |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
139 getPositionForCharNumber(int n, int *x, int *y) |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
140 { |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
141 int x_padding = 16; /* padding space on left and right side of screen */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
142 int y_padding = 32; /* padding space at top of screen */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
143 /* figure out the number of characters that can fit horizontally across the screen */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
144 int max_x_chars = (SCREEN_WIDTH - 2 * x_padding) / GLYPH_SIZE_SCREEN; |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
145 int line_separation = 5; /* pixels between each line */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
146 *x = (n % max_x_chars) * GLYPH_SIZE_SCREEN + x_padding; |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
147 *y = (n / max_x_chars) * (GLYPH_SIZE_SCREEN + line_separation) + |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
148 y_padding; |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
149 } |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
150 |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
151 void |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
152 drawIndex(int index) |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
153 { |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
154 int x, y; |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
155 getPositionForCharNumber(numChars, &x, &y); |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
156 SDL_Rect srcRect = |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
157 { GLYPH_SIZE_IMAGE * index, 0, GLYPH_SIZE_IMAGE, GLYPH_SIZE_IMAGE }; |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
158 SDL_Rect dstRect = { x, y, GLYPH_SIZE_SCREEN, GLYPH_SIZE_SCREEN }; |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
159 drawBlank(x, y); |
3685
64ce267332c6
Switched from SDL_WindowID and SDL_TextureID to SDL_Window* and SDL_Texture* for code simplicity and improved performance.
Sam Lantinga <slouken@libsdl.org>
parents:
3277
diff
changeset
|
160 SDL_RenderCopy(texture, &srcRect, &dstRect); |
3277
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
161 } |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
162 |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
163 /* draws the cursor icon at the current end position of the text */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
164 void |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
165 drawCursor(void) |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
166 { |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
167 drawIndex(29); /* cursor is at index 29 in the bitmap font */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
168 } |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
169 |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
170 /* paints over a glyph sized region with the background color |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
171 in effect it erases the area |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
172 */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
173 void |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
174 drawBlank(int x, int y) |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
175 { |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
176 SDL_Rect rect = { x, y, GLYPH_SIZE_SCREEN, GLYPH_SIZE_SCREEN }; |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
177 SDL_SetRenderDrawColor(bg_color.r, bg_color.g, bg_color.b, |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
178 bg_color.unused); |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
179 SDL_RenderFill(&rect); |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
180 } |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
181 |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
182 /* moves backwards one character, erasing the last one put down */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
183 void |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
184 backspace(void) |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
185 { |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
186 int x, y; |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
187 if (numChars > 0) { |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
188 getPositionForCharNumber(numChars, &x, &y); |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
189 drawBlank(x, y); |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
190 numChars--; |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
191 getPositionForCharNumber(numChars, &x, &y); |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
192 drawBlank(x, y); |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
193 drawCursor(); |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
194 } |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
195 } |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
196 |
3685
64ce267332c6
Switched from SDL_WindowID and SDL_TextureID to SDL_Window* and SDL_Texture* for code simplicity and improved performance.
Sam Lantinga <slouken@libsdl.org>
parents:
3277
diff
changeset
|
197 /* this function loads our font into an SDL_Texture and returns the SDL_Texture */ |
64ce267332c6
Switched from SDL_WindowID and SDL_TextureID to SDL_Window* and SDL_Texture* for code simplicity and improved performance.
Sam Lantinga <slouken@libsdl.org>
parents:
3277
diff
changeset
|
198 SDL_Texture* |
3277
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
199 loadFont(void) |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
200 { |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
201 |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
202 SDL_Surface *surface = SDL_LoadBMP("kromasky_16x16.bmp"); |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
203 |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
204 if (!surface) { |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
205 printf("Error loading bitmap: %s\n", SDL_GetError()); |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
206 return 0; |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
207 } else { |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
208 /* set the transparent color for the bitmap font (hot pink) */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
209 SDL_SetColorKey(surface, 1, SDL_MapRGB(surface->format, 238, 0, 252)); |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
210 /* now we convert the surface to our desired pixel format */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
211 int format = SDL_PIXELFORMAT_ABGR8888; /* desired texture format */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
212 Uint32 Rmask, Gmask, Bmask, Amask; /* masks for desired format */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
213 int bpp; /* bits per pixel for desired format */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
214 SDL_PixelFormatEnumToMasks(format, &bpp, &Rmask, &Gmask, &Bmask, |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
215 &Amask); |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
216 SDL_Surface *converted = |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
217 SDL_CreateRGBSurface(0, surface->w, surface->h, bpp, Rmask, Gmask, |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
218 Bmask, Amask); |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
219 SDL_BlitSurface(surface, NULL, converted, NULL); |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
220 /* create our texture */ |
3685
64ce267332c6
Switched from SDL_WindowID and SDL_TextureID to SDL_Window* and SDL_Texture* for code simplicity and improved performance.
Sam Lantinga <slouken@libsdl.org>
parents:
3277
diff
changeset
|
221 texture = |
3277
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
222 SDL_CreateTextureFromSurface(SDL_PIXELFORMAT_ABGR8888, converted); |
3685
64ce267332c6
Switched from SDL_WindowID and SDL_TextureID to SDL_Window* and SDL_Texture* for code simplicity and improved performance.
Sam Lantinga <slouken@libsdl.org>
parents:
3277
diff
changeset
|
223 if (texture == 0) { |
3277
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
224 printf("texture creation failed: %s\n", SDL_GetError()); |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
225 } else { |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
226 /* set blend mode for our texture */ |
3685
64ce267332c6
Switched from SDL_WindowID and SDL_TextureID to SDL_Window* and SDL_Texture* for code simplicity and improved performance.
Sam Lantinga <slouken@libsdl.org>
parents:
3277
diff
changeset
|
227 SDL_SetTextureBlendMode(texture, SDL_BLENDMODE_BLEND); |
3277
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
228 } |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
229 SDL_FreeSurface(surface); |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
230 SDL_FreeSurface(converted); |
3685
64ce267332c6
Switched from SDL_WindowID and SDL_TextureID to SDL_Window* and SDL_Texture* for code simplicity and improved performance.
Sam Lantinga <slouken@libsdl.org>
parents:
3277
diff
changeset
|
231 return texture; |
3277
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
232 } |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
233 } |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
234 |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
235 int |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
236 main(int argc, char *argv[]) |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
237 { |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
238 |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
239 int index; /* index of last key we pushed in the bitmap font */ |
3685
64ce267332c6
Switched from SDL_WindowID and SDL_TextureID to SDL_Window* and SDL_Texture* for code simplicity and improved performance.
Sam Lantinga <slouken@libsdl.org>
parents:
3277
diff
changeset
|
240 SDL_Window *window; |
3277
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
241 SDL_Event event; /* last event received */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
242 SDLMod mod; /* key modifiers of last key we pushed */ |
5083 | 243 SDL_ScanCode scancode; /* scancode of last key we pushed */ |
3277
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
244 |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
245 if (SDL_Init(SDL_INIT_VIDEO) < 0) { |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
246 printf("Error initializing SDL: %s", SDL_GetError()); |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
247 } |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
248 /* create window */ |
3685
64ce267332c6
Switched from SDL_WindowID and SDL_TextureID to SDL_Window* and SDL_Texture* for code simplicity and improved performance.
Sam Lantinga <slouken@libsdl.org>
parents:
3277
diff
changeset
|
249 window = SDL_CreateWindow("iPhone keyboard test", 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, 0); |
3277
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
250 /* create renderer */ |
3685
64ce267332c6
Switched from SDL_WindowID and SDL_TextureID to SDL_Window* and SDL_Texture* for code simplicity and improved performance.
Sam Lantinga <slouken@libsdl.org>
parents:
3277
diff
changeset
|
251 SDL_CreateRenderer(window, 0, 0); |
3277
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
252 |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
253 /* load up our font */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
254 loadFont(); |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
255 |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
256 /* draw the background, we'll just paint over it */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
257 SDL_SetRenderDrawColor(bg_color.r, bg_color.g, bg_color.b, |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
258 bg_color.unused); |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
259 SDL_RenderFill(NULL); |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
260 SDL_RenderPresent(); |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
261 |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
262 int done = 0; |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
263 /* loop till we get SDL_Quit */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
264 while (SDL_WaitEvent(&event)) { |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
265 switch (event.type) { |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
266 case SDL_QUIT: |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
267 done = 1; |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
268 break; |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
269 case SDL_KEYDOWN: |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
270 index = keyToIndex(event.key.keysym); |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
271 scancode = event.key.keysym.scancode; |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
272 mod = event.key.keysym.mod; |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
273 if (scancode == SDL_SCANCODE_DELETE) { |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
274 /* if user hit delete, delete the last character */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
275 backspace(); |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
276 lastCharWasColon = 0; |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
277 } else if (lastCharWasColon && scancode == SDL_SCANCODE_0 |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
278 && (mod & KMOD_SHIFT)) { |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
279 /* if our last key was a colon and this one is a close paren, the make a hoppy face */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
280 backspace(); |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
281 drawIndex(32); /* index for happy face */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
282 numChars++; |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
283 drawCursor(); |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
284 lastCharWasColon = 0; |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
285 } else if (index != -1) { |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
286 /* if we aren't doing a happy face, then just draw the normal character */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
287 drawIndex(index); |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
288 numChars++; |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
289 drawCursor(); |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
290 lastCharWasColon = |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
291 (event.key.keysym.scancode == SDL_SCANCODE_SEMICOLON |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
292 && (event.key.keysym.mod & KMOD_SHIFT)); |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
293 } |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
294 /* check if the key was a colon */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
295 /* draw our updates to the screen */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
296 SDL_RenderPresent(); |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
297 break; |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
298 #ifdef __IPHONEOS__ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
299 case SDL_MOUSEBUTTONUP: |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
300 /* mouse up toggles onscreen keyboard visibility |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
301 this function is available ONLY on iPhone OS |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
302 */ |
3685
64ce267332c6
Switched from SDL_WindowID and SDL_TextureID to SDL_Window* and SDL_Texture* for code simplicity and improved performance.
Sam Lantinga <slouken@libsdl.org>
parents:
3277
diff
changeset
|
303 SDL_iPhoneKeyboardToggle(window); |
3277
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
304 break; |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
305 #endif |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
306 } |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
307 } |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
308 cleanup(); |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
309 return 0; |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
310 } |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
311 |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
312 /* clean up after ourselves like a good kiddy */ |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
313 void |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
314 cleanup(void) |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
315 { |
3685
64ce267332c6
Switched from SDL_WindowID and SDL_TextureID to SDL_Window* and SDL_Texture* for code simplicity and improved performance.
Sam Lantinga <slouken@libsdl.org>
parents:
3277
diff
changeset
|
316 SDL_DestroyTexture(texture); |
3277
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
317 SDL_Quit(); |
20326ba2bda2
This name inconsistency has been bugging me for a while...
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
318 } |