Update of /cvsroot/perl-win32-gui/Win32-GUI
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24631

Modified Files:
        CHANGELOG GUI.pm GUI.xs GUI_MessageLoops.cpp MANIFEST 
        Makefile.PL TODO Window.xs 
Log Message:
Bug fixes; re-work of WIn32::GUI::Timer; preparing for 1.03 release

Index: GUI.xs
===================================================================
RCS file: /cvsroot/perl-win32-gui/Win32-GUI/GUI.xs,v
retrieving revision 1.45
retrieving revision 1.46
diff -C2 -d -r1.45 -r1.46
*** GUI.xs      5 Oct 2005 22:20:48 -0000       1.45
--- GUI.xs      13 Nov 2005 18:57:52 -0000      1.46
***************
*** 43,60 ****
      ##########################################################################
      # (@)METHOD:GetAsyncKeyState(key)
!     # Retrieve the status of the specified virtual key. The status 
!     # specifies whether the key is up, down, or toggled (on, off--
!     # alternating each time the key is pressed). 
      #
!     # keyCode -- If a..z0..9, use the ASCII code. Otherwise, use 
      # a virtual key code. Example: VK_SHIFT
      #
      # Return 1 if the key is depressed, 0 if it's not.
-     #
  LONG
  GetAsyncKeyState(key)
      int key
  CODE:
!     RETVAL = GetAsyncKeyState(key) & 1;
  OUTPUT:
      RETVAL
--- 43,58 ----
      ##########################################################################
      # (@)METHOD:GetAsyncKeyState(key)
!     # Retrieve the status of the specified virtual key at the time the 
function
!     # is called. The status specifies whether the key is up or down.
      #
!     # keyCode -- If A..Z0..9, use the ASCII code. Otherwise, use 
      # a virtual key code. Example: VK_SHIFT
      #
      # Return 1 if the key is depressed, 0 if it's not.
  LONG
  GetAsyncKeyState(key)
      int key
  CODE:
!     RETVAL = (GetAsyncKeyState(key) & 0x8000) >>16;
  OUTPUT:
      RETVAL
***************
*** 1627,1630 ****
--- 1625,1652 ----
      XSRETURN_UNDEF;
    }
+ 
+     
###########################################################################
+     # (@)INTERNAL:GetWindowObject()
+     # Returns the perl window object from a window handle.  If the window 
handle
+     # passed is a handle to a window created by Win32::GUI, returns the perl
+     # object reference, else returns undef.
+ void
+ GetWindowObject(handle)
+     HWND handle
+ PREINIT:
+   SV* SvObject;
+ PPCODE:
+   if (IsWindow(handle)) {
+     SvObject = SV_SELF_FROM_WINDOW(handle);
+     if (SvObject != NULL && SvROK(SvObject)) {
+       XPUSHs(SvObject);
+     }
+     else {
+       XSRETURN_UNDEF;
+     }
+   } 
+   else {
+     XSRETURN_UNDEF;
+   }
    
      
###########################################################################

Index: Makefile.PL
===================================================================
RCS file: /cvsroot/perl-win32-gui/Win32-GUI/Makefile.PL,v
retrieving revision 1.13
retrieving revision 1.14
diff -C2 -d -r1.13 -r1.14
*** Makefile.PL 5 Oct 2005 22:20:49 -0000       1.13
--- Makefile.PL 13 Nov 2005 18:57:52 -0000      1.14
***************
*** 234,237 ****
--- 234,248 ----
  }
  
+ # Remove the Test-More dependency from the PPD file, as it is not
+ # a requirement for a binary distribution
+ sub ppd {
+   my $inherited = shift->SUPER::ppd(@_);
+   #perl 5.6
+   $inherited =~ s/qq\{\\t\\t<DEPENDENCY NAME=.*Test-More.*?\}\.//s;
+   #perl 5.8
+   $inherited =~ s/^.*DEPENDENCY.*Test-More.*$//m;
+   return $inherited;
+ }
+ 
  # In the following here-doc fragments, ensure that command lines are indented 
with TAB
  # and not space for gnu-make compatibility (cygwin)

Index: GUI.pm
===================================================================
RCS file: /cvsroot/perl-win32-gui/Win32-GUI/GUI.pm,v
retrieving revision 1.33
retrieving revision 1.34
diff -C2 -d -r1.33 -r1.34
*** GUI.pm      5 Oct 2005 22:20:48 -0000       1.33
--- GUI.pm      13 Nov 2005 18:57:52 -0000      1.34
***************
*** 25,29 ****
  # STATIC OBJECT PROPERTIES
  #
! $VERSION             = "1.02_02";     # For MakeMaker
  $XS_VERSION          = $VERSION;      # For dynaloader
  $VERSION             = eval $VERSION; # For Perl  (see perldoc perlmodstyle)
--- 25,29 ----
  # STATIC OBJECT PROPERTIES
  #
! $VERSION             = "1.02_03";     # For MakeMaker
  $XS_VERSION          = $VERSION;      # For dynaloader
  $VERSION             = eval $VERSION; # For Perl  (see perldoc perlmodstyle)
***************
*** 2612,2622 ****
  # The triggered NEM event is defined as -onTimer => sub{} method of the 
parent window.
  package Win32::GUI::Timer;
- @ISA = qw(Win32::GUI);
  
      
###########################################################################
!     # (@)METHOD:new Win32::GUI::Timer(PARENT, NAME, ELAPSE)
      # Creates a new timer in the PARENT window named NAME that will
      # trigger its Timer() event after ELAPSE milliseconds.
      # Can also be called as PARENT->AddTimer(NAME, ELAPSE).
  sub new {
      my $class = shift;
--- 2612,2632 ----
  # The triggered NEM event is defined as -onTimer => sub{} method of the 
parent window.
  package Win32::GUI::Timer;
  
      
###########################################################################
!     # (@)METHOD:new Win32::GUI::Timer(PARENT, [NAME, [ELAPSE]])
      # Creates a new timer in the PARENT window named NAME that will
      # trigger its Timer() event after ELAPSE milliseconds.
      # Can also be called as PARENT->AddTimer(NAME, ELAPSE).
+     #
+     # If NAME is not supplied, then an internal name will be allocated.
+     #
+     # ELAPSE must by an integer greater than or equal to zero.  If ELAPSE
+     # is 0, then the timer object is created, but the timer will be disabled.
+     # You can then start the timer by calling the L<Interval()|/Interval> 
method
+     # and setting ELAPSE to a non-zero number. If ELASPE is not supplied, then
+     # 0 will be used.
+     #
+     # Note: Different OS versions might change too low or large intervals for 
ELAPSE
+     # to more appropriate values. E.g. > 0x7fffffff or < 10
  sub new {
      my $class = shift;
***************
*** 2629,2643 ****
  
      # Get a new Id
!     $id = $Win32::GUI::TimerIdCounter;
!     $Win32::GUI::TimerIdCounter++;
  
      # Force a name if havent.
      $name = "_Timer".$id unless defined $name;
!     $elapse = 10 unless defined $elapse;
  
      my $self = {};
      bless($self, $class);
  
!     # add $self->{name}
      $self->{-id} = $id;
      $self->{-name} = $name;
--- 2639,2658 ----
  
      # Get a new Id
!     $id = $Win32::GUI::TimerIdCounter++;
  
      # Force a name if havent.
      $name = "_Timer".$id unless defined $name;
!     $elapse = 0 unless defined $elapse;
! 
!     # check $elapse
!     if($elapse != int($elapse) or $elapse < 0) {
!           warn qq(ELAPSE must be an integer greater than or equal to 0, not 
"$elapse". Using ELAPSE=0.);
!           $elapse = 0;
!     }
  
      my $self = {};
      bless($self, $class);
  
!     # store object propeties
      $self->{-id} = $id;
      $self->{-name} = $name;
***************
*** 2645,2658 ****
      $self->{-interval} = $elapse;
  
!     # Store name in timers hash
      $window->{-timers}->{$id} = $name;
      # Add Timer into parent hash.
      $window->{$name} = $self;
-     # Only if perl is circular ref-safe
-     if ($] > 5.006) {
-       $self->{-window} = \$window;
-     }
  
!     Win32::GUI::SetTimer($window, $id, $elapse);
  
      return $self;
--- 2660,2669 ----
      $self->{-interval} = $elapse;
  
!     # Store name in parent's timers hash
      $window->{-timers}->{$id} = $name;
      # Add Timer into parent hash.
      $window->{$name} = $self;
  
!     Win32::GUI::SetTimer($window, $id, $elapse) if $elapse > 0;
  
      return $self;
***************
*** 2662,2692 ****
      # (@)METHOD:Interval(ELAPSE)
      # Get or set the periodic timer interval. Unit: ms
!     # When setting a new interval, the existing timer is reseted.
      #
!     # Note: Different OS versions might change too low or large intervals to 
more
!     # appropriate values. E.g. > 0x7fffffff or < 10
  sub Interval {
      my $self = shift;
!     my $interval = shift;
!     if(defined $interval) {
!         if (!$interval) { # match Win32::GUI::Tutorial::Part4
!           $self->Kill();
!         } else {
!             Win32::GUI::SetTimer($self->{-handle}, $self->{-id}, $interval);
!             $self->{-interval} = $interval;
!         }
      } else {
!         return $self->{-interval};
      }
  }
  
      
###########################################################################
!     # (@)METHOD:Kill()
      # Remove the periodic timer event.
      #
!     # To use system resources efficiently, applications should DESTROY or Kill
      # timers that are no longer necessary.
  sub Kill {
!   Win32::GUI::Timer::DESTROY(shift);
  }
  
--- 2673,2729 ----
      # (@)METHOD:Interval(ELAPSE)
      # Get or set the periodic timer interval. Unit: ms
!     # When setting a new interval, any existing timer is reset.  When setting
!     # returns the previous interval.
      #
!     # Setting ELAPSE to 0 suspends the timer (i.e. it will not fire timer 
events).
!     # The timer can be restarted later by setting ELAPSE to a positive value.
!     #
!     # Note: Different OS versions might change too low or large intervals for 
ELAPSE
!     # to more appropriate values. E.g. > 0x7fffffff or < 10
  sub Interval {
      my $self = shift;
!     my $elapse = shift;
! 
!     #Get
!     return $self->{-interval} unless defined $elapse;
! 
!     my $previous = $self->{-interval};
!     # check $elapse
!     if($elapse != int($elapse) or $elapse < 0) {
!         warn qq(ELAPSE must be an integer greater than or equal to 0, not 
"$elapse". Using previous value($previous ms));
!         $elapse = $previous;
!     }
!     $self->{-interval} = $elapse;
!     if ($elapse > 0) { # match Win32::GUI::Tutorial::Part4
!         Win32::GUI::SetTimer($self->{-handle}, $self->{-id}, $elapse);
      } else {
!         Win32::GUI::KillTimer($self->{-handle}, $self->{-id});
      }
+ 
+     return $previous;
  }
  
      
###########################################################################
!     # (@)METHOD:Kill([REMOVE=0])
      # Remove the periodic timer event.
      #
!     # Kill() with no parameters, or a False parameter suspends the timer,
!     # exactly as $timer->Interval(0); In this case it return the previous
!     # interval.
!     #
!     # Kill() with a True parameter will stop and remove all traces of the 
timer.
!     # To use system resources efficiently, applications should Kill(1)
      # timers that are no longer necessary.
  sub Kill {
!     my $self = shift;
!     my $remove = shift;
! 
!     if($remove) {
!           $self->DESTROY();
!     }
!     else {
!           return $self->Interval(0);
!     }
!     return undef;
  }
  
***************
*** 2695,2712 ****
  sub DESTROY {
      my $self = shift;
-     if ( defined $self &&
-          defined $self->{-handle} &&
-          defined $self->{-id} ) {
-         # Kill timer
-         Win32::GUI::KillTimer($self->{-handle}, $self->{-id});
  
!       if (defined $self->{-window}) {
!         my $window = ${$self->{-window}};
!         # Remove id from timers hash if not yet triggered
!         delete $window->{-timers}->{$self->{-id}}
!           if ref($window) and defined $window->{-timers}->{$self->{-id}};
!         # Remove name from parent
!         delete $window->{$self->{-name}} if defined $window;
!       }
      }
  }
--- 2732,2748 ----
  sub DESTROY {
      my $self = shift;
  
!     # Kill timer
!     Win32::GUI::KillTimer($self->{-handle}, $self->{-id});
! 
!     # We put this code to tidy up the parent here, rather than
!     # in Timer->Kill(1), so that we still tidy up, even in the
!     # unlikely event of someone doing PARENT->{Timer name} = undef;
!     my $window = Win32::GUI::GetWindowObject($self->{-handle});
!     if(defined $window) {
!         # Remove id from -timers hash
!         delete $window->{-timers}->{$self->{-id}};
!         # Remove name from parent
!         delete $window->{$self->{-name}};
      }
  }

Index: CHANGELOG
===================================================================
RCS file: /cvsroot/perl-win32-gui/Win32-GUI/CHANGELOG,v
retrieving revision 1.65
retrieving revision 1.66
diff -C2 -d -r1.65 -r1.66
*** CHANGELOG   16 Oct 2005 08:03:19 -0000      1.65
--- CHANGELOG   13 Nov 2005 18:57:52 -0000      1.66
***************
*** 6,9 ****
--- 6,25 ----
  Win32-GUI ChangeLog
  ===================
+ + [Robert May] : 13 Nov 2005 - Bug fixes and preparing for 1.03 release
+     - Makefile.PL added code to remove Test::More dependence from PPD
+     - GUI_MessageLoops.cpp, Window.xs change all mouse related handlers to
+     use GET_X_LPARAM and GET_Y_LPARAM rather than HIWORD and LOWORD
+     (Tracker: 1262098) 
+     - GUI.xs added INTERNAL function GetWindowObject to get the perl window
+     object from a window handle
+     - GUI.pm, t\05_Timer*.t, docs\GUI\Tutorial\Part4.pod - re-wrote
+     Win32::GUI::Timer implementation and updated docs to make it all
+     consistent, and to make destruction happen correctly.  Added full tests
+     for the package. 
+     - GUI.xs fixed GetAsyncKeyState(), which was checking the wrong bit of
+     window's return value. Updated documentation.
+     - MANIFEST updated with new samples and new tests
+     - GUI.pm upped version to 1.02_03
+ 
  + [Jeremy White] : Bug fix - not enough space malloc'ed for strings
      - Combobox.xs: added 1 to safemalloc

Index: MANIFEST
===================================================================
RCS file: /cvsroot/perl-win32-gui/Win32-GUI/MANIFEST,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** MANIFEST    4 Aug 2005 22:57:34 -0000       1.9
--- MANIFEST    13 Nov 2005 18:57:52 -0000      1.10
***************
*** 68,71 ****
--- 68,72 ----
  MANIFEST.SKIP
  MDI.xs
+ META.yml
  MonthCal.xs
  NotifyIcon.xs
***************
*** 82,86 ****
--- 83,89 ----
  samples/EventModel.pl
  samples/GetOpenFileName.pl
+ samples/guiperl.ico
  samples/harrow.cur
+ samples/listview_drag_drop.pl
  samples/MDI.pl
  samples/MonthCal.pl
***************
*** 88,91 ****
--- 91,110 ----
  samples/Region.pl
  samples/SplashScreen.pl
+ samples/Tutorial_Part1_hello1.pl
+ samples/Tutorial_Part1_hello2.pl
+ samples/Tutorial_Part1_hello3.pl
+ samples/Tutorial_Part1_hello4.pl
+ samples/Tutorial_Part1_hello5.pl
+ samples/Tutorial_Part1_hello6.pl
+ samples/Tutorial_Part2_framework.pl
+ samples/Tutorial_Part3_DialogBox.pl
+ samples/Tutorial_Part4_NotifyIcon.pl
+ samples/Tutorial_Part4_StatusBar.pl
+ samples/Tutorial_Part4_timer.pl
+ samples/Tutorial_Part5_modalWindow.pl
+ samples/Tutorial_Part5_popupWindow1.pl
+ samples/Tutorial_Part5_popupWindow2.pl
+ samples/Tutorial_Part5_twoWindows.pl
+ samples/Tutorial_Part9_noDosWindow.pl
  Splitter.xs
  StatusBar.xs
***************
*** 96,100 ****
  t/05_AcceleratorTable.t
  t/05_Menu.t
! t/05_Timer.t
  t/06_Cursor.t
  t/06_Icon.t
--- 115,123 ----
  t/05_AcceleratorTable.t
  t/05_Menu.t
! t/05_Timer_01_OEM.t
! t/05_Timer_02_NEM.t
! t/05_Timer_03_Interval.t
! t/05_Timer_04_Kill.t
! t/05_Timer_05_DESTROY.t
  t/06_Cursor.t
  t/06_Icon.t

Index: Window.xs
===================================================================
RCS file: /cvsroot/perl-win32-gui/Win32-GUI/Window.xs,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** Window.xs   3 Aug 2005 21:45:58 -0000       1.9
--- Window.xs   13 Nov 2005 18:57:52 -0000      1.10
***************
*** 396,401 ****
               */
              PerlResult = DoEvent(NOTXSCALL perlud, PERLWIN32GUI_NEM_CONTROL1, 
"LButtonDown",
!                 PERLWIN32GUI_ARGTYPE_LONG, LOWORD(lParam),
!                 PERLWIN32GUI_ARGTYPE_LONG, HIWORD(lParam),
                  PERLWIN32GUI_ARGTYPE_LONG, wParam,
                  -1);
--- 396,401 ----
               */
              PerlResult = DoEvent(NOTXSCALL perlud, PERLWIN32GUI_NEM_CONTROL1, 
"LButtonDown",
!                 PERLWIN32GUI_ARGTYPE_LONG, GET_X_LPARAM(lParam),
!                 PERLWIN32GUI_ARGTYPE_LONG, GET_Y_LPARAM(lParam),
                  PERLWIN32GUI_ARGTYPE_LONG, wParam,
                  -1);
***************
*** 408,413 ****
               */
              PerlResult = DoEvent(NOTXSCALL perlud, PERLWIN32GUI_NEM_CONTROL2, 
"LButtonUp",
!                 PERLWIN32GUI_ARGTYPE_LONG, LOWORD(lParam),
!                 PERLWIN32GUI_ARGTYPE_LONG, HIWORD(lParam),
                  PERLWIN32GUI_ARGTYPE_LONG, wParam,
                  -1);
--- 408,413 ----
               */
              PerlResult = DoEvent(NOTXSCALL perlud, PERLWIN32GUI_NEM_CONTROL2, 
"LButtonUp",
!                 PERLWIN32GUI_ARGTYPE_LONG, GET_X_LPARAM(lParam),
!                 PERLWIN32GUI_ARGTYPE_LONG, GET_Y_LPARAM(lParam),
                  PERLWIN32GUI_ARGTYPE_LONG, wParam,
                  -1);
***************
*** 420,425 ****
               */ 
              PerlResult = DoEvent(NOTXSCALL perlud, PERLWIN32GUI_NEM_CONTROL3, 
"RButtonDown",
!                 PERLWIN32GUI_ARGTYPE_LONG, LOWORD(lParam),
!                 PERLWIN32GUI_ARGTYPE_LONG, HIWORD(lParam),
                  PERLWIN32GUI_ARGTYPE_LONG, wParam,
                  -1);
--- 420,425 ----
               */ 
              PerlResult = DoEvent(NOTXSCALL perlud, PERLWIN32GUI_NEM_CONTROL3, 
"RButtonDown",
!                 PERLWIN32GUI_ARGTYPE_LONG, GET_X_LPARAM(lParam),
!                 PERLWIN32GUI_ARGTYPE_LONG, GET_Y_LPARAM(lParam),
                  PERLWIN32GUI_ARGTYPE_LONG, wParam,
                  -1);
***************
*** 432,437 ****
               */ 
              PerlResult = DoEvent(NOTXSCALL perlud, PERLWIN32GUI_NEM_CONTROL4, 
"RButtonUp",
!                 PERLWIN32GUI_ARGTYPE_LONG, LOWORD(lParam),
!                 PERLWIN32GUI_ARGTYPE_LONG, HIWORD(lParam),
                  PERLWIN32GUI_ARGTYPE_LONG, wParam,
                  -1);
--- 432,437 ----
               */ 
              PerlResult = DoEvent(NOTXSCALL perlud, PERLWIN32GUI_NEM_CONTROL4, 
"RButtonUp",
!                 PERLWIN32GUI_ARGTYPE_LONG, GET_X_LPARAM(lParam),
!                 PERLWIN32GUI_ARGTYPE_LONG, GET_Y_LPARAM(lParam),
                  PERLWIN32GUI_ARGTYPE_LONG, wParam,
                  -1);

Index: TODO
===================================================================
RCS file: /cvsroot/perl-win32-gui/Win32-GUI/TODO,v
retrieving revision 1.12
retrieving revision 1.13
diff -C2 -d -r1.12 -r1.13
*** TODO        1 Oct 2005 23:02:39 -0000       1.12
--- TODO        13 Nov 2005 18:57:52 -0000      1.13
***************
*** 11,15 ****
  
  - Documentation:
-   - review and update the tutorial
    - revise and correct FAQ
    - any TBD sections
--- 11,14 ----
***************
*** 41,46 ****
    to turn off Win32::GUI warnings. (see -DW32G_NEWWARN)
  
- - Tutorial docs: code all the examples, and make sure they work before each 
release.
- 
  - Makefile.PL.  Add code to fail at Makefile.PL stage if the chosen compiler
    is not available, and we autodetected from $Config{cc}.  This will prevent 
us getting
--- 40,43 ----

Index: GUI_MessageLoops.cpp
===================================================================
RCS file: /cvsroot/perl-win32-gui/Win32-GUI/GUI_MessageLoops.cpp,v
retrieving revision 1.14
retrieving revision 1.15
diff -C2 -d -r1.14 -r1.15
*** GUI_MessageLoops.cpp        1 Oct 2005 18:00:39 -0000       1.14
--- GUI_MessageLoops.cpp        13 Nov 2005 18:57:52 -0000      1.15
***************
*** 332,336 ****
      case WM_MOUSEMOVE:
          /*
!          * (@)EVENT:MouseMouve()
           * (@)APPLIES_TO:*
           */
--- 332,336 ----
      case WM_MOUSEMOVE:
          /*
!          * (@)EVENT:MouseMove()
           * (@)APPLIES_TO:*
           */
***************
*** 347,352 ****
           */
          PerlResult = DoEvent(NOTXSCALL perlud, PERLWIN32GUI_NEM_LMOUSEDOWN, 
"MouseDown",
!             PERLWIN32GUI_ARGTYPE_LONG, LOWORD(lParam),
!             PERLWIN32GUI_ARGTYPE_LONG, HIWORD(lParam),
              PERLWIN32GUI_ARGTYPE_LONG, wParam,
              -1);
--- 347,352 ----
           */
          PerlResult = DoEvent(NOTXSCALL perlud, PERLWIN32GUI_NEM_LMOUSEDOWN, 
"MouseDown",
!             PERLWIN32GUI_ARGTYPE_LONG, GET_X_LPARAM(lParam),
!             PERLWIN32GUI_ARGTYPE_LONG, GET_Y_LPARAM(lParam),
              PERLWIN32GUI_ARGTYPE_LONG, wParam,
              -1);
***************
*** 358,363 ****
           */
          PerlResult = DoEvent(NOTXSCALL perlud, PERLWIN32GUI_NEM_LMOUSEUP, 
"MouseUp",
!             PERLWIN32GUI_ARGTYPE_LONG, LOWORD(lParam),
!             PERLWIN32GUI_ARGTYPE_LONG, HIWORD(lParam),
              PERLWIN32GUI_ARGTYPE_LONG, wParam,
              -1);
--- 358,363 ----
           */
          PerlResult = DoEvent(NOTXSCALL perlud, PERLWIN32GUI_NEM_LMOUSEUP, 
"MouseUp",
!             PERLWIN32GUI_ARGTYPE_LONG, GET_X_LPARAM(lParam),
!             PERLWIN32GUI_ARGTYPE_LONG, GET_Y_LPARAM(lParam),
              PERLWIN32GUI_ARGTYPE_LONG, wParam,
              -1);
***************
*** 369,374 ****
           */
          PerlResult = DoEvent(NOTXSCALL perlud, PERLWIN32GUI_NEM_LMOUSEDBLCLK, 
"MouseDblClick",
!             PERLWIN32GUI_ARGTYPE_LONG, LOWORD(lParam),
!             PERLWIN32GUI_ARGTYPE_LONG, HIWORD(lParam),
              PERLWIN32GUI_ARGTYPE_LONG, wParam,
              -1);
--- 369,374 ----
           */
          PerlResult = DoEvent(NOTXSCALL perlud, PERLWIN32GUI_NEM_LMOUSEDBLCLK, 
"MouseDblClick",
!             PERLWIN32GUI_ARGTYPE_LONG, GET_X_LPARAM(lParam),
!             PERLWIN32GUI_ARGTYPE_LONG, GET_Y_LPARAM(lParam),
              PERLWIN32GUI_ARGTYPE_LONG, wParam,
              -1);
***************
*** 380,385 ****
           */
          PerlResult = DoEvent(NOTXSCALL perlud, PERLWIN32GUI_NEM_RMOUSEDOWN, 
"MouseRightDown",
!             PERLWIN32GUI_ARGTYPE_LONG, LOWORD(lParam),
!             PERLWIN32GUI_ARGTYPE_LONG, HIWORD(lParam),
              PERLWIN32GUI_ARGTYPE_LONG, wParam,
              -1);
--- 380,385 ----
           */
          PerlResult = DoEvent(NOTXSCALL perlud, PERLWIN32GUI_NEM_RMOUSEDOWN, 
"MouseRightDown",
!             PERLWIN32GUI_ARGTYPE_LONG, GET_X_LPARAM(lParam),
!             PERLWIN32GUI_ARGTYPE_LONG, GET_Y_LPARAM(lParam),
              PERLWIN32GUI_ARGTYPE_LONG, wParam,
              -1);
***************
*** 391,396 ****
           */
          PerlResult = DoEvent(NOTXSCALL perlud, PERLWIN32GUI_NEM_RMOUSEUP, 
"MouseRightUp",
!             PERLWIN32GUI_ARGTYPE_LONG, LOWORD(lParam),
!             PERLWIN32GUI_ARGTYPE_LONG, HIWORD(lParam),
              PERLWIN32GUI_ARGTYPE_LONG, wParam,
              -1);
--- 391,396 ----
           */
          PerlResult = DoEvent(NOTXSCALL perlud, PERLWIN32GUI_NEM_RMOUSEUP, 
"MouseRightUp",
!             PERLWIN32GUI_ARGTYPE_LONG, GET_X_LPARAM(lParam),
!             PERLWIN32GUI_ARGTYPE_LONG, GET_Y_LPARAM(lParam),
              PERLWIN32GUI_ARGTYPE_LONG, wParam,
              -1);
***************
*** 402,407 ****
           */
          PerlResult = DoEvent(NOTXSCALL perlud, PERLWIN32GUI_NEM_RMOUSEDBLCLK, 
"MouseRightDblClick",
!             PERLWIN32GUI_ARGTYPE_LONG, LOWORD(lParam),
!             PERLWIN32GUI_ARGTYPE_LONG, HIWORD(lParam),
              PERLWIN32GUI_ARGTYPE_LONG, wParam,
              -1);
--- 402,407 ----
           */
          PerlResult = DoEvent(NOTXSCALL perlud, PERLWIN32GUI_NEM_RMOUSEDBLCLK, 
"MouseRightDblClick",
!             PERLWIN32GUI_ARGTYPE_LONG, GET_X_LPARAM(lParam),
!             PERLWIN32GUI_ARGTYPE_LONG, GET_Y_LPARAM(lParam),
              PERLWIN32GUI_ARGTYPE_LONG, wParam,
              -1);
***************
*** 413,418 ****
           */
          PerlResult = DoEvent(NOTXSCALL perlud, PERLWIN32GUI_NEM_MMOUSEDOWN, 
"MouseMiddleDown",
!             PERLWIN32GUI_ARGTYPE_LONG, LOWORD(lParam),
!             PERLWIN32GUI_ARGTYPE_LONG, HIWORD(lParam),
              PERLWIN32GUI_ARGTYPE_LONG, wParam,
              -1);
--- 413,418 ----
           */
          PerlResult = DoEvent(NOTXSCALL perlud, PERLWIN32GUI_NEM_MMOUSEDOWN, 
"MouseMiddleDown",
!             PERLWIN32GUI_ARGTYPE_LONG, GET_X_LPARAM(lParam),
!             PERLWIN32GUI_ARGTYPE_LONG, GET_Y_LPARAM(lParam),
              PERLWIN32GUI_ARGTYPE_LONG, wParam,
              -1);
***************
*** 424,429 ****
           */
          PerlResult = DoEvent(NOTXSCALL perlud, PERLWIN32GUI_NEM_MMOUSEUP, 
"MouseMiddleUp",
!             PERLWIN32GUI_ARGTYPE_LONG, LOWORD(lParam),
!             PERLWIN32GUI_ARGTYPE_LONG, HIWORD(lParam),
              PERLWIN32GUI_ARGTYPE_LONG, wParam,
              -1);
--- 424,429 ----
           */
          PerlResult = DoEvent(NOTXSCALL perlud, PERLWIN32GUI_NEM_MMOUSEUP, 
"MouseMiddleUp",
!             PERLWIN32GUI_ARGTYPE_LONG, GET_X_LPARAM(lParam),
!             PERLWIN32GUI_ARGTYPE_LONG, GET_Y_LPARAM(lParam),
              PERLWIN32GUI_ARGTYPE_LONG, wParam,
              -1);
***************
*** 435,440 ****
           */
          PerlResult = DoEvent(NOTXSCALL perlud, PERLWIN32GUI_NEM_MMOUSEDBLCLK, 
"MouseMiddleDblClick",
!             PERLWIN32GUI_ARGTYPE_LONG, LOWORD(lParam),
!             PERLWIN32GUI_ARGTYPE_LONG, HIWORD(lParam),
              PERLWIN32GUI_ARGTYPE_LONG, wParam,
              -1);
--- 435,440 ----
           */
          PerlResult = DoEvent(NOTXSCALL perlud, PERLWIN32GUI_NEM_MMOUSEDBLCLK, 
"MouseMiddleDblClick",
!             PERLWIN32GUI_ARGTYPE_LONG, GET_X_LPARAM(lParam),
!             PERLWIN32GUI_ARGTYPE_LONG, GET_Y_LPARAM(lParam),
              PERLWIN32GUI_ARGTYPE_LONG, wParam,
              -1);
***************
*** 525,528 ****
--- 525,534 ----
          /*
           * (@)EVENT:Timer()
+        * Sent when a Win32::GUI::Timer object reaches its ELAPSEd time.
+        * For OEM the event is names $name_Timer.
+        * For NEM the subroutine called is set with the parent window's
+        * -onTimer option.  There are 2 arguments passed to the NEM event 
handler:
+        *  the first is the parent window object, and the second is the timer's
+        *  name.
           * (@)APPLIES_TO:*
           */
***************
*** 830,835 ****
      case WM_LBUTTONDOWN:
          PerlResult = DoEvent(NOTXSCALL perlud, PERLWIN32GUI_NEM_LMOUSEDOWN, 
"MouseDown",
!             PERLWIN32GUI_ARGTYPE_LONG, LOWORD(lParam),
!             PERLWIN32GUI_ARGTYPE_LONG, HIWORD(lParam),
              PERLWIN32GUI_ARGTYPE_LONG, wParam,
              -1);
--- 836,841 ----
      case WM_LBUTTONDOWN:
          PerlResult = DoEvent(NOTXSCALL perlud, PERLWIN32GUI_NEM_LMOUSEDOWN, 
"MouseDown",
!             PERLWIN32GUI_ARGTYPE_LONG, GET_X_LPARAM(lParam),
!             PERLWIN32GUI_ARGTYPE_LONG, GET_Y_LPARAM(lParam),
              PERLWIN32GUI_ARGTYPE_LONG, wParam,
              -1);
***************
*** 837,842 ****
      case WM_LBUTTONUP:
          PerlResult = DoEvent(NOTXSCALL perlud, PERLWIN32GUI_NEM_LMOUSEUP, 
"MouseUp",
!             PERLWIN32GUI_ARGTYPE_LONG, LOWORD(lParam),
!             PERLWIN32GUI_ARGTYPE_LONG, HIWORD(lParam),
              PERLWIN32GUI_ARGTYPE_LONG, wParam,
              -1);
--- 843,848 ----
      case WM_LBUTTONUP:
          PerlResult = DoEvent(NOTXSCALL perlud, PERLWIN32GUI_NEM_LMOUSEUP, 
"MouseUp",
!             PERLWIN32GUI_ARGTYPE_LONG, GET_X_LPARAM(lParam),
!             PERLWIN32GUI_ARGTYPE_LONG, GET_Y_LPARAM(lParam),
              PERLWIN32GUI_ARGTYPE_LONG, wParam,
              -1);
***************
*** 844,849 ****
      case WM_LBUTTONDBLCLK:
          PerlResult = DoEvent(NOTXSCALL perlud, PERLWIN32GUI_NEM_LMOUSEDBLCLK, 
"MouseDblClick",
!             PERLWIN32GUI_ARGTYPE_LONG, LOWORD(lParam),
!             PERLWIN32GUI_ARGTYPE_LONG, HIWORD(lParam),
              PERLWIN32GUI_ARGTYPE_LONG, wParam,
              -1);
--- 850,855 ----
      case WM_LBUTTONDBLCLK:
          PerlResult = DoEvent(NOTXSCALL perlud, PERLWIN32GUI_NEM_LMOUSEDBLCLK, 
"MouseDblClick",
!             PERLWIN32GUI_ARGTYPE_LONG, GET_X_LPARAM(lParam),
!             PERLWIN32GUI_ARGTYPE_LONG, GET_Y_LPARAM(lParam),
              PERLWIN32GUI_ARGTYPE_LONG, wParam,
              -1);
***************
*** 851,856 ****
      case WM_RBUTTONDOWN:
          PerlResult = DoEvent(NOTXSCALL perlud, PERLWIN32GUI_NEM_RMOUSEDOWN, 
"MouseRightDown",
!             PERLWIN32GUI_ARGTYPE_LONG, LOWORD(lParam),
!             PERLWIN32GUI_ARGTYPE_LONG, HIWORD(lParam),
              PERLWIN32GUI_ARGTYPE_LONG, wParam,
              -1);
--- 857,862 ----
      case WM_RBUTTONDOWN:
          PerlResult = DoEvent(NOTXSCALL perlud, PERLWIN32GUI_NEM_RMOUSEDOWN, 
"MouseRightDown",
!             PERLWIN32GUI_ARGTYPE_LONG, GET_X_LPARAM(lParam),
!             PERLWIN32GUI_ARGTYPE_LONG, GET_Y_LPARAM(lParam),
              PERLWIN32GUI_ARGTYPE_LONG, wParam,
              -1);
***************
*** 858,863 ****
      case WM_RBUTTONUP:
          PerlResult = DoEvent(NOTXSCALL perlud, PERLWIN32GUI_NEM_RMOUSEUP, 
"MouseRightUp",
!             PERLWIN32GUI_ARGTYPE_LONG, LOWORD(lParam),
!             PERLWIN32GUI_ARGTYPE_LONG, HIWORD(lParam),
              PERLWIN32GUI_ARGTYPE_LONG, wParam,
              -1);
--- 864,869 ----
      case WM_RBUTTONUP:
          PerlResult = DoEvent(NOTXSCALL perlud, PERLWIN32GUI_NEM_RMOUSEUP, 
"MouseRightUp",
!             PERLWIN32GUI_ARGTYPE_LONG, GET_X_LPARAM(lParam),
!             PERLWIN32GUI_ARGTYPE_LONG, GET_Y_LPARAM(lParam),
              PERLWIN32GUI_ARGTYPE_LONG, wParam,
              -1);
***************
*** 865,870 ****
      case WM_RBUTTONDBLCLK:
          PerlResult = DoEvent(NOTXSCALL perlud, PERLWIN32GUI_NEM_RMOUSEDBLCLK, 
"MouseRightDblClick",
!             PERLWIN32GUI_ARGTYPE_LONG, LOWORD(lParam),
!             PERLWIN32GUI_ARGTYPE_LONG, HIWORD(lParam),
              PERLWIN32GUI_ARGTYPE_LONG, wParam,
              -1);
--- 871,876 ----
      case WM_RBUTTONDBLCLK:
          PerlResult = DoEvent(NOTXSCALL perlud, PERLWIN32GUI_NEM_RMOUSEDBLCLK, 
"MouseRightDblClick",
!             PERLWIN32GUI_ARGTYPE_LONG, GET_X_LPARAM(lParam),
!             PERLWIN32GUI_ARGTYPE_LONG, GET_Y_LPARAM(lParam),
              PERLWIN32GUI_ARGTYPE_LONG, wParam,
              -1);
***************
*** 872,877 ****
      case WM_MBUTTONDOWN:
          PerlResult = DoEvent(NOTXSCALL perlud, PERLWIN32GUI_NEM_MMOUSEDOWN, 
"MouseMiddleDown",
!             PERLWIN32GUI_ARGTYPE_LONG, LOWORD(lParam),
!             PERLWIN32GUI_ARGTYPE_LONG, HIWORD(lParam),
              PERLWIN32GUI_ARGTYPE_LONG, wParam,
              -1);
--- 878,883 ----
      case WM_MBUTTONDOWN:
          PerlResult = DoEvent(NOTXSCALL perlud, PERLWIN32GUI_NEM_MMOUSEDOWN, 
"MouseMiddleDown",
!             PERLWIN32GUI_ARGTYPE_LONG, GET_X_LPARAM(lParam),
!             PERLWIN32GUI_ARGTYPE_LONG, GET_Y_LPARAM(lParam),
              PERLWIN32GUI_ARGTYPE_LONG, wParam,
              -1);
***************
*** 879,884 ****
      case WM_MBUTTONUP:
          PerlResult = DoEvent(NOTXSCALL perlud, PERLWIN32GUI_NEM_MMOUSEUP, 
"MouseMiddleUp",
!             PERLWIN32GUI_ARGTYPE_LONG, LOWORD(lParam),
!             PERLWIN32GUI_ARGTYPE_LONG, HIWORD(lParam),
              PERLWIN32GUI_ARGTYPE_LONG, wParam,
              -1);
--- 885,890 ----
      case WM_MBUTTONUP:
          PerlResult = DoEvent(NOTXSCALL perlud, PERLWIN32GUI_NEM_MMOUSEUP, 
"MouseMiddleUp",
!             PERLWIN32GUI_ARGTYPE_LONG, GET_X_LPARAM(lParam),
!             PERLWIN32GUI_ARGTYPE_LONG, GET_Y_LPARAM(lParam),
              PERLWIN32GUI_ARGTYPE_LONG, wParam,
              -1);
***************
*** 886,891 ****
      case WM_MBUTTONDBLCLK:
          PerlResult = DoEvent(NOTXSCALL perlud, PERLWIN32GUI_NEM_MMOUSEDBLCLK, 
"MouseMiddleDblClick",
!             PERLWIN32GUI_ARGTYPE_LONG, LOWORD(lParam),
!             PERLWIN32GUI_ARGTYPE_LONG, HIWORD(lParam),
              PERLWIN32GUI_ARGTYPE_LONG, wParam,
              -1);
--- 892,897 ----
      case WM_MBUTTONDBLCLK:
          PerlResult = DoEvent(NOTXSCALL perlud, PERLWIN32GUI_NEM_MMOUSEDBLCLK, 
"MouseMiddleDblClick",
!             PERLWIN32GUI_ARGTYPE_LONG, GET_X_LPARAM(lParam),
!             PERLWIN32GUI_ARGTYPE_LONG, GET_Y_LPARAM(lParam),
              PERLWIN32GUI_ARGTYPE_LONG, wParam,
              -1);


Reply via email to