X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=sdlgit%2FSDL-Site.git;a=blobdiff_plain;f=pages%2Fblog-0025.html-inc;h=0de3c832cedb93b3d65e9876f3ff91874c42d50a;hp=e65be37dd7211e92b433042690e9c72fb1ba4899;hb=a05e5d4499fb58198e463162d0385e8a156e1f03;hpb=e1ec9f6e00ef090d063bc417e9683d40fc49b26f diff --git a/pages/blog-0025.html-inc b/pages/blog-0025.html-inc index e65be37..0de3c83 100644 --- a/pages/blog-0025.html-inc +++ b/pages/blog-0025.html-inc @@ -1,36 +1,59 @@
#!/usr/bin/env perl - -use SDL; -use SDL::Events; -use SDL::Event; -use SDL::Video; - -SDL::init(SDL_INIT_VIDEO); - -my $display = SDL::Video::set_video_mode(640,480,32, SDL_SWSURFACE ); -my $event = SDL::Event->new(); - -while(1) -{ - SDL::Events::pump_events(); - - if(SDL::Events::poll_event($event) && $event->type == SDL_ACTIVEEVENT) - { - print "Hello Mouse!!!\n" if ($event->active_gain && ($event->active_state == SDL_APPMOUSEFOCUS) ); - print "Bye Mouse!!!\n" if (!$event->active_gain && ($event->active_state == SDL_APPMOUSEFOCUS) ); - } - - exit if($event->type == SDL_QUIT); -}-
1 #!/usr/bin/perl -w + 2 use strict; + 3 use warnings; + 4 use SDL v2.3; #Require the redesign branch + 5 use SDL::Video; + 6 use SDL::Event; + 7 use SDL::Events; + 8 + 9 SDL::init(SDL_INIT_VIDEO); +10 my $display = SDL::Video::set_video_mode(640,480,32, SDL_SWSURFACE ); +11 my $event = SDL::Event->new(); +12 +13 #This filters out all ActiveEvents +14 my $filter = sub { +15 my ($e, $type) = ($_[0], $_[0]->type); +16 if($type == SDL_ACTIVEEVENT){ return 0 } +17 elsif($type == SDL_MOUSEBUTTONDOWN && $e->button_button == 1){ return 0 } +18 else { return 1; } +19 }; +20 +21 SDL::Events::set_event_filter($filter); +22 +23 while(1) +24 { +25 +26 SDL::Events::pump_events(); +27 if(SDL::Events::poll_event($event)) +28 { +29 +30 if( $event->type == SDL_ACTIVEEVENT) +31 { +32 print "Hello Mouse!!!\n" if ($event->active_gain && ($event->active_state == SDL_APPMOUSEFOCUS) ); +33 print "Bye Mouse!!!\n" if (!$event->active_gain && ($event->active_state == SDL_APPMOUSEFOCUS) ); +34 } +35 if( $event->type == SDL_MOUSEBUTTONDOWN) +36 { +37 my ($x, $y, $but ) = ($event->button_x, $event->button_y, $event->button_button); +38 warn "$but CLICK!!! at $x and $y \n"; +39 } +40 +41 last if($event->type == SDL_QUIT); +42 } +43 } +44 SDL::quit();
Tinker with $filter and look at perldoc lib/SDL/pods/Event.pod.
Have fun,
--yapgh+