/trunk/Examples/test-suite/union_parameter.i
Swig | 43 lines | 34 code | 8 blank | 1 comment | 0 complexity | 21c63a83b4b6783c6af6699af7861385 MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
- %module union_parameter
- %warnfilter(SWIGWARN_PARSE_KEYWORD) type; // 'type' is a Go keyword, renamed as 'Xtype'
- %inline %{
- typedef unsigned char Uint8;
- typedef struct SDL_ActiveEvent {
- Uint8 type; /* SDL_ACTIVEEVENT */
- Uint8 gain; /* Whether given states were gained or lost (1/0) */
- Uint8 state; /* A mask of the focus states */
- } SDL_ActiveEvent;
- /* Keyboard event structure */
- typedef struct SDL_KeyboardEvent {
- Uint8 type; /* SDL_KEYDOWN or SDL_KEYUP */
- int which; /* The keyboard device index */
- int state; /* SDL_PRESSED or SDL_RELEASED */
- } SDL_KeyboardEvent;
- typedef union {
- Uint8 type;
- SDL_ActiveEvent active;
- SDL_KeyboardEvent key;
- } SDL_Event;
- int SDL_PollEvent (SDL_Event *ev) {
- static int toggle = 0;
- if (toggle == 0) {
- ev->type = 1;
- ev->active.gain = 20;
- ev->active.state = 30;
- } else {
- ev->type = 2;
- ev->key.which = 2000;
- ev->key.state = 3000;
- }
- toggle = 1 - toggle;
- return 1;
- }
- %}