Date: Thu, 19 Jan 2006 20:02:29 +0200
authorSam Lantinga <slouken@libsdl.org>
Fri, 20 Jan 2006 13:07:25 +0000
changeset 1258b2283b0ded26
parent 1257 448a9a64537b
child 1259 36f24cdfcda7
Date: Thu, 19 Jan 2006 20:02:29 +0200
From: Vassilis Virvilis <vasvir@iit.demokritos.gr>
Subject: [SDL] Request: Please reconsider adding tag in SDL_Event

Hi,

Patch in question:

--- include/SDL_events.h 20 Aug 2004 18:57:01 -0000 1.11
+++ include/SDL_events.h 19 Jan 2006 17:35:09 -0000
@@ -214,7 +214,7 @@
} SDL_SysWMEvent;

/* General event structure */
-typedef union {
+typedef union SDL_Event {
Uint8 type;
SDL_ActiveEvent active;
SDL_KeyboardEvent key;

Reasoning:
----------
1) Allows forward declaration of the SDL_Event union in C++. Please
note that in plain C it is possible to forward declare it.

2) Forward declaration is good because it allows encapsulation. It hides
the specific implementation and does not necessarily exposes SDL staff
to my appication's namespace

3) It can't harm plain C because tags are living in a different namespace
than typenames

4) It is already done like this in other places in SDL. Check for example
SDL_KeySym, and SDL_.*Event structures.

5) Right now I have to include SDL/event.h from a C++ header file. See 2)
include/SDL_events.h
     1.1 --- a/include/SDL_events.h	Thu Jan 19 21:28:52 2006 +0000
     1.2 +++ b/include/SDL_events.h	Fri Jan 20 13:07:25 2006 +0000
     1.3 @@ -214,7 +214,7 @@
     1.4  } SDL_SysWMEvent;
     1.5  
     1.6  /* General event structure */
     1.7 -typedef union {
     1.8 +typedef union SDL_Event {
     1.9  	Uint8 type;
    1.10  	SDL_ActiveEvent active;
    1.11  	SDL_KeyboardEvent key;