Update of /cvsroot/perl-win32-gui/Win32-GUI
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22924
Modified Files:
CHANGELOG GUI.pm GUI_Events.cpp GUI_MessageLoops.cpp
GUI_Options.cpp Makefile.PL
Log Message:
Start of DropFiles Integration
Index: Makefile.PL
===================================================================
RCS file: /cvsroot/perl-win32-gui/Win32-GUI/Makefile.PL,v
retrieving revision 1.17
retrieving revision 1.18
diff -C2 -d -r1.17 -r1.18
*** Makefile.PL 16 Mar 2006 21:11:12 -0000 1.17
--- Makefile.PL 12 Apr 2006 20:00:06 -0000 1.18
***************
*** 6,9 ****
--- 6,10 ----
use Config;
+ our $W32G_CORE = 1;
$main::USERESOURCE = 1;
$main::BUILDENV = '';
***************
*** 256,259 ****
--- 257,265 ----
use warnings;
+ sub pasthru {
+ my $inherited = shift->SUPER::pasthru(@_);
+ return "$inherited W32G_CORE=1";
+ }
+
sub xs_c {
my $inherited = shift->SUPER::xs_c(@_);
Index: GUI.pm
===================================================================
RCS file: /cvsroot/perl-win32-gui/Win32-GUI/GUI.pm,v
retrieving revision 1.39
retrieving revision 1.40
diff -C2 -d -r1.39 -r1.40
*** GUI.pm 16 Mar 2006 21:11:11 -0000 1.39
--- GUI.pm 12 Apr 2006 20:00:05 -0000 1.40
***************
*** 610,613 ****
--- 610,632 ----
}
+
###########################################################################
+ # (@)METHOD:AcceptFiles([FLAG])
+ # Gets/sets the
L<Win32::GUI::Reference::Options\-acceptfiles|-acceptfiles>
+ # options on a window. If C<FLAG> is not provided, returns the current
+ # state. If FLAG is provided it sets or unsets the state, returning the
+ # previous state.
+ sub AcceptFiles {
+ my $win = shift;
+ my $accept = shift;
+
+ my $old_accept = $win->GetWindowLong(GWL_EXSTYLE) & WS_EX_ACCEPTFILES() ?
1 : 0;
+
+ if(defined $accept) {
+ $win->Change(-acceptfiles => $accept);
+ }
+
+ return $old_accept;
+ }
+
###############################################################################
# SUB-PACKAGES
Index: CHANGELOG
===================================================================
RCS file: /cvsroot/perl-win32-gui/Win32-GUI/CHANGELOG,v
retrieving revision 1.75
retrieving revision 1.76
diff -C2 -d -r1.75 -r1.76
*** CHANGELOG 12 Apr 2006 19:49:21 -0000 1.75
--- CHANGELOG 12 Apr 2006 20:00:05 -0000 1.76
***************
*** 6,9 ****
--- 6,20 ----
Win32-GUI ChangeLog
===================
+ + [Robert May] : 12 Apr 2006 - Start of DropFiles integration
+ - GUI.pm Add Acceptfiles method and documentation.
+ - GUI_Events.cpp Fix OEM callback to allow passing SV.
+ - GUI_MessageLoops.cpp modify WM_DROPFILES handling to pass
+ a Win32::GUI::DropFiles object, and update event documentation.
+ - GUI_Options.cpp Add -acceptfiles option for windows
+ - Makefile.PL set up W32G_CORE variable so that sub directories
+ can know if they arebeing called from a higher level Makefile,
+ and so that tests know how they are being run.
+ - docs/GUI/Reference/Options.pod added -acceptfiles documentation
+
+ [Robert May] : 12 Apr 2006 - Fix GetKeyState
- GUI.xs Changed stack macros in GetKeyStae to those that exist
Index: GUI_Options.cpp
===================================================================
RCS file: /cvsroot/perl-win32-gui/Win32-GUI/GUI_Options.cpp,v
retrieving revision 1.12
retrieving revision 1.13
diff -C2 -d -r1.12 -r1.13
*** GUI_Options.cpp 16 Mar 2006 21:11:11 -0000 1.12
--- GUI_Options.cpp 12 Apr 2006 20:00:06 -0000 1.13
***************
*** 313,316 ****
--- 313,317 ----
} else BitmaskOption("-hscroll", perlcs->cs.style, WS_HSCROLL)
} else BitmaskOption("-vscroll", perlcs->cs.style, WS_VSCROLL)
+ } else BitmaskOption("-acceptfiles", perlcs->cs.dwExStyle,
WS_EX_ACCEPTFILES)
} else BitmaskOption("-container", perlcs->dwPlStyle,
PERLWIN32GUI_CONTAINER)
}
Index: GUI_Events.cpp
===================================================================
RCS file: /cvsroot/perl-win32-gui/Win32-GUI/GUI_Events.cpp,v
retrieving revision 1.12
retrieving revision 1.13
diff -C2 -d -r1.12 -r1.13
*** GUI_Events.cpp 16 Mar 2006 21:11:11 -0000 1.12
--- GUI_Events.cpp 12 Apr 2006 20:00:06 -0000 1.13
***************
*** 142,145 ****
--- 142,148 ----
XPUSHs(sv_2mortal(newSVpv(va_arg( args, char * ), 0)));
break;
+ case PERLWIN32GUI_ARGTYPE_SV:
+ XPUSHs(va_arg( args, SV *));
+ break;
default:
warn("Win32::GUI: WARNING! unknown argument type (%d) to
event '%s'", argtype, Name);
Index: GUI_MessageLoops.cpp
===================================================================
RCS file: /cvsroot/perl-win32-gui/Win32-GUI/GUI_MessageLoops.cpp,v
retrieving revision 1.19
retrieving revision 1.20
diff -C2 -d -r1.19 -r1.20
*** GUI_MessageLoops.cpp 16 Mar 2006 21:11:11 -0000 1.19
--- GUI_MessageLoops.cpp 12 Apr 2006 20:00:06 -0000 1.20
***************
*** 627,637 ****
case WM_DROPFILES:
/*
! * (@)EVENT:DropFiles(DROP_HANDLE)
! * Sent when the window receives dropped files.
* (@)APPLIES_TO:*
*/
! PerlResult = DoEvent(NOTXSCALL perlud, PERLWIN32GUI_NEM_DROPFILE,
"DropFiles",
! PERLWIN32GUI_ARGTYPE_LONG, (LONG) wParam,
-1);
break;
}
--- 627,653 ----
case WM_DROPFILES:
/*
! * (@)EVENT:DropFiles(DROP)
! * Sent when the window receives dropped files. To enable a window to
! * be a target for files dragged from a shell window, you must set the
! * window's L<-acceptfiles|Win32::GUI::Reference::Options\-acceptfiles>
! * option or call C<< $win->AcceptFiles(1) >> on the window (See
! * L<Win32::GUI::AcceptFiles|AccepFiles()>). The DROP parameter is
either
! * a Win32 drop handle (see MSDN) or a
! * L<Win32::GUI::DropFiles|Win32::GUI::DropFiles> object if you have
done
! * C<use Win32::GUI::DropFiles;> somewhere in your code.
* (@)APPLIES_TO:*
*/
! { HV *dropfiles_stash = gv_stashpv("Win32::GUI::DropFiles", 0);
! if(dropfiles_stash) { /* Win32::GUI::DropFiles is available */
! PerlResult = DoEvent(NOTXSCALL perlud, PERLWIN32GUI_NEM_DROPFILE,
"DropFiles",
! PERLWIN32GUI_ARGTYPE_SV,
CreateObjectWithHandle(NOTXSCALL "Win32::GUI::DropFiles", (HWND)wParam),
-1);
+ } else { /* Win32::GUI::DropFiles is not available */
+ PerlResult = DoEvent(NOTXSCALL perlud, PERLWIN32GUI_NEM_DROPFILE,
"DropFiles",
+ PERLWIN32GUI_ARGTYPE_LONG, wParam,
+ -1);
+ DragFinish((HDROP)wParam);
+ }
+ }
break;
}
***************
*** 966,972 ****
break;
case WM_DROPFILES:
! PerlResult = DoEvent(NOTXSCALL perlud, PERLWIN32GUI_NEM_DROPFILE,
"DropFiles",
! PERLWIN32GUI_ARGTYPE_LONG, (LONG) wParam,
-1);
}
--- 982,997 ----
break;
case WM_DROPFILES:
! { HV *dropfiles_stash = gv_stashpv("Win32::GUI::DropFiles", 0);
! if(dropfiles_stash) { /* Win32::GUI::DropFiles is available */
! PerlResult = DoEvent(NOTXSCALL perlud, PERLWIN32GUI_NEM_DROPFILE,
"DropFiles",
! PERLWIN32GUI_ARGTYPE_SV,
CreateObjectWithHandle(NOTXSCALL "Win32::GUI::DropFiles", (HWND)wParam),
-1);
+ } else { /* Win32::GUI::DropFiles is not available */
+ PerlResult = DoEvent(NOTXSCALL perlud, PERLWIN32GUI_NEM_DROPFILE,
"DropFiles",
+ PERLWIN32GUI_ARGTYPE_LONG, wParam,
+ -1);
+ DragFinish((HDROP)wParam);
+ }
+ }
}