swig/Examples/test-suite/union_parameter.i
William S Fulton d6b81eb831 Revert rev 11187 "Merged with recent changes from trunk."
This reverts commit c595e4d90ebfd63eb55430c735bb121cf690bd59.

Conflicts:

	Source/Modules/c.cxx

From: William S Fulton <wsf@fultondesigns.co.uk>

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/gsoc2008-maciekd@13033 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-05-06 01:13:16 +00:00

43 lines
1 KiB
OpenEdge ABL

%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;
}
%}