Adonthell
0.4
Main Page
Related Pages
Classes
Files
File List
File Members
event_handler.h
Go to the documentation of this file.
1
/*
2
$Id: event_handler.h,v 1.5 2003/01/20 20:18:43 ksterker Exp $
3
4
Copyright (C) 2000/2001/2002/2003 Kai Sterker <kaisterker@linuxgames.com>
5
Part of the Adonthell Project http://adonthell.linuxgames.com
6
7
This program is free software; you can redistribute it and/or modify
8
it under the terms of the GNU General Public License.
9
This program is distributed in the hope that it will be useful,
10
but WITHOUT ANY WARRANTY.
11
12
See the COPYING file for more details.
13
*/
14
15
16
/**
17
* @file event_handler.h
18
* @author Kai Sterker <kaisterker@linuxgames.com>
19
*
20
* @brief Declares the event_handler class
21
*
22
*/
23
24
#ifndef EVENT_HANDLER_H__
25
#define EVENT_HANDLER_H__
26
27
#include "
event_handler_base.h
"
28
#include "
event_list.h
"
29
30
/**
31
* It ensures global access to the individual %event handlers.
32
*/
33
class
event_handler
34
{
35
public
:
36
/**
37
* Instanciate the actual event handlers. Event handlers
38
* can be specific to a certain event, or take care of
39
* different events.
40
*/
41
static
void
init
();
42
43
/**
44
* Delete the %event handlers.
45
*/
46
static
void
cleanup
();
47
48
/**
49
* Unregister an %event.
50
*
51
* @param ev pointer to the %event to unregister.
52
*/
53
static
void
remove_event
(
event
* ev)
54
{
55
ev->
set_registered
(
false
);
56
Handler[ev->
type
()]->
remove_event
(ev);
57
}
58
59
/**
60
* Check if an %event corresponding to ev exists, and execute it.
61
*
62
* @param ev %event to raise.
63
*/
64
static
void
raise_event
(
const
event
* ev)
65
{
66
Handler[ev->
type
()]->
raise_event
(ev);
67
}
68
69
protected
:
70
/**
71
* Registers an %event.
72
*
73
* @param ev pointer to the %event to register.
74
*/
75
static
void
register_event
(
event
* ev)
76
{
77
ev->
set_registered
(
true
);
78
Handler[ev->
type
()]->
register_event
(ev);
79
}
80
81
/**
82
* Only %event_list is allowed to register events with the
83
* %event_handler.
84
*/
85
friend
void
event_list::add_event
(
event
* ev);
86
87
/**
88
* As is event::resume.
89
*/
90
friend
void
event::resume
();
91
92
private
:
93
/**
94
* A list of the actual %event handlers
95
*/
96
static
event_handler_base
* Handler[MAX_EVENTS];
97
};
98
99
#endif // EVENT_HANDLER_H__
src
event_handler.h
Generated by
1.8.1.2