Mercurial > sdl-ios-xcode
comparison test/testcursor.c @ 1883:2780f547f5e7
Fix for bug #240
Christian Walther contributed Cocoa cursor code.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Sat, 24 Jun 2006 17:36:55 +0000 |
parents | fe99535ac064 |
children | c121d94672cb e7d2858670c1 |
comparison
equal
deleted
inserted
replaced
1882:339d733e3699 | 1883:2780f547f5e7 |
---|---|
53 0xff00, | 53 0xff00, |
54 0xff00, | 54 0xff00, |
55 0xff00 | 55 0xff00 |
56 }; | 56 }; |
57 | 57 |
58 /* another test cursor: smaller than 16x16, and with an odd height */ | |
59 | |
60 Uint8 small_cursor_data[11] = { 0x00, 0x18, 0x08, 0x38, 0x44, 0x54, 0x44, 0x38, 0x20, 0x20, 0x00 }; | |
61 Uint8 small_cursor_mask[11] = { 0x3C, 0x3C, 0x3C, 0x7C, 0xC6, 0xC6, 0xC6, 0x7C, 0x78, 0x70, 0x70 }; | |
58 | 62 |
59 /* XPM */ | 63 /* XPM */ |
60 static const char *arrow[] = { | 64 static const char *arrow[] = { |
61 /* width height num_colors chars_per_pixel */ | 65 /* width height num_colors chars_per_pixel */ |
62 " 32 32 3 1", | 66 " 32 32 3 1", |
137 | 141 |
138 int main(int argc, char *argv[]) | 142 int main(int argc, char *argv[]) |
139 { | 143 { |
140 SDL_Surface *screen; | 144 SDL_Surface *screen; |
141 SDL_bool quit = SDL_FALSE, first_time = SDL_TRUE; | 145 SDL_bool quit = SDL_FALSE, first_time = SDL_TRUE; |
142 SDL_Cursor *cursor[2]; | 146 SDL_Cursor *cursor[3]; |
143 int current; | 147 int current; |
144 | 148 |
145 /* Load the SDL library */ | 149 /* Load the SDL library */ |
146 if ( SDL_Init(SDL_INIT_VIDEO) < 0 ) { | 150 if ( SDL_Init(SDL_INIT_VIDEO) < 0 ) { |
147 fprintf(stderr, "Couldn't initialize SDL: %s\n",SDL_GetError()); | 151 fprintf(stderr, "Couldn't initialize SDL: %s\n",SDL_GetError()); |
168 fprintf(stderr, "Couldn't initialize arrow cursor: %s\n",SDL_GetError()); | 172 fprintf(stderr, "Couldn't initialize arrow cursor: %s\n",SDL_GetError()); |
169 SDL_FreeCursor(cursor[0]); | 173 SDL_FreeCursor(cursor[0]); |
170 SDL_Quit(); | 174 SDL_Quit(); |
171 return(1); | 175 return(1); |
172 } | 176 } |
177 cursor[2] = SDL_CreateCursor(small_cursor_data, small_cursor_mask, | |
178 8, 11, 3, 5); | |
179 if (cursor[2]==NULL) { | |
180 fprintf(stderr, "Couldn't initialize test cursor: %s\n",SDL_GetError()); | |
181 SDL_Quit(); | |
182 return(1); | |
183 } | |
173 | 184 |
174 current = 0; | 185 current = 0; |
175 SDL_SetCursor(cursor[current]); | 186 SDL_SetCursor(cursor[current]); |
176 | 187 |
177 while (!quit) { | 188 while (!quit) { |
178 SDL_Event event; | 189 SDL_Event event; |
179 while (SDL_PollEvent(&event)) { | 190 while (SDL_PollEvent(&event)) { |
180 switch(event.type) { | 191 switch(event.type) { |
181 case SDL_MOUSEBUTTONDOWN: | 192 case SDL_MOUSEBUTTONDOWN: |
182 current = !current; | 193 current = (current + 1)%3; |
183 SDL_SetCursor(cursor[current]); | 194 SDL_SetCursor(cursor[current]); |
184 break; | 195 break; |
185 case SDL_KEYDOWN: | 196 case SDL_KEYDOWN: |
186 if (event.key.keysym.sym == SDLK_ESCAPE) { | 197 if (event.key.keysym.sym == SDLK_ESCAPE) { |
187 quit = SDL_TRUE; | 198 quit = SDL_TRUE; |