Commit | Line | Data |
7b6a53a1 |
1 | #!/usr/bin/env perl |
8fde61e3 |
2 | # |
7b6a53a1 |
3 | # Event.pm |
8fde61e3 |
4 | # |
7b6a53a1 |
5 | # Copyright (C) 2005 David J. Goehrig <dgoehrig@cpan.org> |
6 | # |
7 | # ------------------------------------------------------------------------------ |
8 | # |
9 | # This library is free software; you can redistribute it and/or |
10 | # modify it under the terms of the GNU Lesser General Public |
11 | # License as published by the Free Software Foundation; either |
12 | # version 2.1 of the License, or (at your option) any later version. |
13 | # |
14 | # This library is distributed in the hope that it will be useful, |
15 | # but WITHOUT ANY WARRANTY; without even the implied warranty of |
16 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
17 | # Lesser General Public License for more details. |
18 | # |
19 | # You should have received a copy of the GNU Lesser General Public |
20 | # License along with this library; if not, write to the Free Software |
21 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
22 | # |
23 | # ------------------------------------------------------------------------------ |
24 | # |
25 | # Please feel free to send questions, suggestions or improvements to: |
26 | # |
27 | # David J. Goehrig |
28 | # dgoehrig@cpan.org |
8fde61e3 |
29 | # |
30 | |
31 | package SDL::Event; |
7b6a53a1 |
32 | |
8fde61e3 |
33 | use strict; |
084b921f |
34 | use warnings; |
35 | use Carp; |
36 | |
8fde61e3 |
37 | use SDL; |
38 | |
39 | sub new { |
40 | my $proto = shift; |
41 | my $class = ref($proto) || $proto; |
42 | my $self; |
43 | $self = \SDL::NewEvent(); |
44 | bless $self, $class; |
45 | return $self; |
46 | } |
47 | |
48 | sub DESTROY { |
49 | my $self = shift; |
50 | SDL::FreeEvent($$self); |
51 | } |
52 | |
53 | sub type { |
54 | my $self = shift; |
55 | if (@_) { |
56 | SDL::SetEventType($$self,$_[0]); |
57 | } |
58 | return SDL::EventType($$self); |
59 | } |
60 | |
61 | sub pump { |
62 | SDL::PumpEvents(); |
63 | } |
64 | |
65 | sub poll { |
66 | my $self = shift; |
67 | return SDL::PollEvent($$self); |
68 | } |
69 | |
70 | sub push { |
71 | my $self = shift; |
72 | return SDL::PushEvent($$self); |
73 | } |
74 | |
75 | sub wait { |
76 | my $self = shift; |
77 | return SDL::WaitEvent($$self); |
78 | } |
79 | |
80 | sub set { |
81 | my $self = shift; |
82 | my $state = shift; |
83 | return SDL::EventState($self->type(),$state); |
84 | } |
85 | |
86 | sub set_unicode { |
87 | my $self = shift; |
88 | my $toggle = shift; |
89 | return SDL::EnableUnicode($toggle); |
90 | } |
91 | |
92 | sub set_key_repeat { |
93 | my $self = shift; |
94 | my $delay = shift; |
95 | my $interval = shift; |
96 | return SDL::EnableKeyRepeat($delay,$interval); |
97 | } |
98 | |
99 | sub active_gain { |
100 | my $self = shift; |
101 | return SDL::ActiveEventGain($$self); |
102 | } |
103 | |
104 | sub active_state { |
105 | my $self = shift; |
106 | return SDL::ActiveEventState($$self); |
107 | } |
108 | |
109 | sub key_state { |
110 | my $self = shift; |
111 | return SDL::KeyEventState($$self); |
112 | } |
113 | |
114 | sub key_sym { |
115 | my $self = shift; |
116 | return SDL::KeyEventSym($$self); |
117 | } |
118 | |
119 | sub key_name { |
120 | my $self = shift; |
121 | return SDL::GetKeyName(SDL::KeyEventSym($$self)); |
122 | } |
123 | |
124 | sub key_mod { |
125 | my $self = shift; |
126 | return SDL::KeyEventMod($$self); |
127 | } |
128 | |
129 | sub key_unicode { |
130 | my $self = shift; |
131 | return SDL::KeyEventUnicode($$self); |
132 | } |
133 | |
134 | sub key_scancode { |
135 | my $self = shift; |
136 | return SDL::KeyEventScanCode($$self); |
137 | } |
138 | |
139 | sub motion_state { |
140 | my $self = shift; |
141 | return SDL::MouseMotionState($$self); |
142 | } |
143 | |
144 | sub motion_x { |
145 | my $self = shift; |
146 | return SDL::MouseMotionX($$self); |
147 | } |
148 | |
149 | sub motion_y { |
150 | my $self = shift; |
151 | return SDL::MouseMotionY($$self); |
152 | } |
153 | |
154 | sub motion_xrel { |
155 | my $self = shift; |
156 | return SDL::MouseMotionXrel($$self); |
157 | } |
158 | |
159 | sub motion_yrel { |
160 | my $self = shift; |
161 | return SDL::MouseMotionYrel($$self); |
162 | } |
163 | |
164 | sub button_state { |
165 | my $self = shift; |
166 | return SDL::MouseButtonState($$self); |
167 | } |
168 | |
169 | sub button_x { |
170 | my $self = shift; |
171 | return SDL::MouseButtonX($$self); |
172 | } |
173 | |
174 | sub button_y { |
175 | my $self = shift; |
176 | return SDL::MouseButtonY($$self); |
177 | } |
178 | |
179 | sub button { |
180 | my $self = shift; |
181 | return SDL::MouseButton($$self); |
182 | } |
183 | |
184 | sub resize_w { |
185 | my $self = shift; |
186 | SDL::ResizeEventW($$self); |
187 | } |
188 | |
189 | sub resize_h { |
190 | my $self = shift; |
191 | SDL::ResizeEventH($$self); |
192 | } |
193 | |
194 | 1; |