Update of /cvsroot/perl-win32-gui/Win32-GUI/Win32-GUI-Grid
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20182
Modified Files:
Changes Grid.pm Grid.xs Makefile.PL TYPEMAP
Added Files:
GridRC.PL TODO
Removed Files:
MANIFEST README
Log Message:
Merge Grid into core distribution
Index: Makefile.PL
===================================================================
RCS file: /cvsroot/perl-win32-gui/Win32-GUI/Win32-GUI-Grid/Makefile.PL,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** Makefile.PL 1 Nov 2005 12:34:46 -0000 1.1
--- Makefile.PL 11 Jun 2006 16:42:11 -0000 1.2
***************
*** 1,38 ****
use ExtUtils::MakeMaker;
! # See lib/ExtUtils/MakeMaker.pm for details of how to influence
! # the contents of the Makefile that is written.
! WriteMakefile(
! 'NAME' => 'Win32::GUI::Grid',
! 'VERSION_FROM' => 'Grid.pm',
! 'XS' => { 'Grid.xs' => 'Grid.cpp' },
! 'LIBS' => ['Comctl32.lib Mfc42.lib Eafxis.lib'], # e.g., '-lm'
! 'DEFINE' => '', # e.g., '-DHAVE_SOMETHING'
! 'INC' => '', # e.g., '-I/usr/include/other'
! 'MYEXTLIB' => './MFCGrid/Lib/MFCGrid.lib',
! ($] ge '5.005')
! ? (
! 'AUTHOR' => 'ROCHER Laurent ([EMAIL PROTECTED])',
! 'ABSTRACT' => 'Add a Grid control to Win32::GUI (MFC Grid from
CodeProject.com)',
! )
! : (),
);
! sub MY::xs_c {
! '
! .xs.c:
! $(PERL) -I$(PERL_ARCHLIB) -I$(PERL_LIB) $(XSUBPP) $(XSPROTOARG)
$(XSUBPPARGS) $*.xs > $*.c
! .xs.cpp:
! $(PERL) -I$(PERL_ARCHLIB) -I$(PERL_LIB) $(XSUBPP) $(XSPROTOARG)
$(XSUBPPARGS) $*.xs > $*.cpp
! ./MFCGrid/Lib/MFCGrid.lib: MFCGrid/makefile
! cd MFCGrid
! nmake
! cd ..
! ';
}
--- 1,97 ----
+ #!perl -w
+ use strict;
+ use warnings;
+
+ # Makefile.PL for Win32::GUI::Grid
+ # $Id$
+
+ use 5.006;
+ use Config;
use ExtUtils::MakeMaker;
! use File::Find();
! my @demos;
! File::Find::find(sub { push @demos, $File::Find::name if $File::Find::name =~
/\.(pl|bmp)$/ }, 'demos');
!
! my %config = (
! NAME => 'Win32::GUI::Grid',
! VERSION_FROM => 'Grid.pm',
! ABSTRACT_FROM => 'Grid.pm',
! AUTHOR => 'ROCHER Laurent ([EMAIL PROTECTED])',
! XS => { 'Grid.xs' => 'Grid.cpp' },
! LIBS => ['-lcomctl32 -lMfc42 -lEafxis'],
! MYEXTLIB => './MFCGrid/Lib/MFCGrid.lib',
! PL_FILES => {'GridRC.PL' => '$(BASEEXT).rc', },
! OBJECT => '$(BASEEXT)$(OBJ_EXT) $(BASEEXT).res',
! macro => {RC => 'rc.exe',
! RCFLAGS => '',
! INST_DEMODIR =>
'$(INST_LIB)/Win32/GUI/demos/$(BASEEXT)',
! DEMOS => "@demos", },
! clean => {FILES => '*.rc *.res', },
);
+ # if building using gcc (MinGW or cygwin) use windres
+ # as the resource compiler
+ # and the MinGW C++ standard library
+ if($Config{cc} =~ /gcc/i) {
+ $config{macro}->{RC} = 'windres';
+ $config{macro}->{RCFLAGS} = '-O coff -o $*.res';
+ $config{LIBS} = [':nodefault -lcomctl32 -lmsvcp60'];
+ }
! # Can only build with mscv.
! if($Config{cc} !~ /cl/i) {
! print <<__EXPLAIN;
! Win32::GUI::Grid can only be built using MSVC, not '$Config{cc}',
! as it requires the MFC framework. Win32::GUI::Grid will be skipped
! during the current build process.
! __EXPLAIN
! ExtUtils::MakeMaker::WriteEmptyMakefile(NAME => 'Win32::GUI::Grid');
! }
! else {
! WriteMakefile(%config);
! }
! package MY;
! sub xs_c {
! my $inherited = shift->SUPER::xs_c(@_);
! $inherited =~ s/\.c/.cpp/g;
! return $inherited;
}
+ # Add rule to make MFCGrid.lib
+ # Add rule for .rc to .res conversion
+ # Add rules to install demo scripts
+ sub postamble {
+ return <<'__POSTAMBLE';
+
+ # Win32::GUI::Grid MFCGrid.lib section
+
+ ./MFCGrid/Lib/MFCGrid.lib: MFCGrid/makefile
+ cd MFCGrid
+ $(MAKE) $(PASTHRU)
+ cd ..
+
+ # Win32::GUI::Grid RC section
+
+ .rc.res:
+ $(RC) $(RCFLAGS) $<
+
+ # Win32::GUI::Grid demo script section
+
+ pure_all :: demo_to_blib
+ $(NOECHO) $(NOOP)
+
+ demo_to_blib: $(DEMOS)
+ $(NOECHO) $(MKPATH) $(INST_DEMODIR)
+ $(CP) $? $(INST_DEMODIR)
+ $(NOECHO) $(TOUCH) demo_to_blib
+
+ clean ::
+ -$(RM_F) demo_to_blib
+
+ __POSTAMBLE
+ }
--- NEW FILE: TODO ---
- Watch for new versions of MFC grid
- Is build possible under mingw?
- Is static build possible, so as not to depend on mfc42.dll?
- make clean should clean MFCGrid/Build and MFCGrid/Lib
- more tests!
- fix 'unreferenced targ' compiler warnings
--- MANIFEST DELETED ---
Index: Grid.xs
===================================================================
RCS file: /cvsroot/perl-win32-gui/Win32-GUI/Win32-GUI-Grid/Grid.xs,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** Grid.xs 1 Nov 2005 12:34:46 -0000 1.1
--- Grid.xs 11 Jun 2006 16:42:10 -0000 1.2
***************
*** 3,6 ****
--- 3,8 ----
/**********************************************************************/
+ /* $Id */
+
//////////////////////////////////////////////////////////////////////
// Include
***************
*** 69,73 ****
#define WM_EXITLOOP (WM_APP+1)
! // Return a COLOREF from a SV
COLORREF SvCOLORREF(pTHX_ SV* c)
{
--- 71,75 ----
#define WM_EXITLOOP (WM_APP+1)
! // Return a COLORREF from a SV
COLORREF SvCOLORREF(pTHX_ SV* c)
{
***************
*** 299,302 ****
--- 301,305 ----
int constant (char * name, int arg)
{
+ errno = 0;
switch(name[2])
{
***************
*** 428,431 ****
--- 431,435 ----
}
+ errno = EINVAL;
return 0;
}
***************
*** 830,833 ****
--- 834,839 ----
MODULE = Win32::GUI::Grid PACKAGE = Win32::GUI::Grid
+ PROTOTYPES: ENABLE
+
##################################################################
# #
***************
*** 2701,2704 ****
--- 2707,2711 ----
else if (pCell && pCell->IsKindOf(RUNTIME_CLASS(CGridCellURL)))
{
+ RETVAL = FALSE;
next_i = -1;
for(i = 3; i < items; i++) {
***************
*** 2708,2711 ****
--- 2715,2719 ----
next_i = i + 1;
((CGridCellURL*)pCell)->SetAutoLaunchUrl((LONG) SvIV(ST(next_i)));
+ RETVAL = TRUE;
}
}
***************
*** 2716,2719 ****
--- 2724,2728 ----
else if (pCell && pCell->IsKindOf(RUNTIME_CLASS(CGridCellCheck)))
{
+ RETVAL = FALSE;
next_i = -1;
for(i = 3; i < items; i++) {
***************
*** 2723,2726 ****
--- 2732,2736 ----
next_i = i + 1;
((CGridCellCheck*)pCell)->SetCheck((LONG) SvIV(ST(next_i)));
+ RETVAL = TRUE;
}
}
***************
*** 2910,2920 ****
# void EnsureVisible(CCellID &cell);
# void EnsureVisible(int nRow, int nCol);
! void
! EnsureVisible(object, nRow, nCol)
! CMFCWnd* object
! int nRow
! int nCol
! CODE:
! object->EnsureVisible(nRow, nCol);
void
--- 2920,2931 ----
# void EnsureVisible(CCellID &cell);
# void EnsureVisible(int nRow, int nCol);
! # Duplicate of EnsureCellVisible??
! # void
! # EnsureVisible(object, nRow, nCol)
! # CMFCWnd* object
! # int nRow
! # int nCol
! # CODE:
! # object->EnsureVisible(nRow, nCol);
void
Index: Grid.pm
===================================================================
RCS file: /cvsroot/perl-win32-gui/Win32-GUI/Win32-GUI-Grid/Grid.pm,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** Grid.pm 1 Nov 2005 12:34:46 -0000 1.1
--- Grid.pm 11 Jun 2006 16:42:10 -0000 1.2
***************
*** 1,108 ****
package Win32::GUI::Grid;
use strict;
! use vars qw($VERSION @ISA @EXPORT @EXPORT_OK $AUTOLOAD);
! use Carp 'croak','carp';
! use Win32::GUI;
require Exporter;
require DynaLoader;
- require AutoLoader;
[...2095 lines suppressed...]
+ =item L<Win32::GUI|Win32::GUI>
+
+ =item L<http://perl-win32-gui.sourceforge.net/>
+
+ =item L<http://www.codeproject.com/miscctrl/gridctrl.asp>
+
+ MFC Grid Control by Chris Maunder
+
+ =back
+
+ =head1 DEPENDENCIES
+
Win32::GUI
+ Microsoft Foundation Classes (MFC)
+
+ =head1 AUTHOR
+
+ Laurent Rocher ([EMAIL PROTECTED])
=cut
Index: Changes
===================================================================
RCS file: /cvsroot/perl-win32-gui/Win32-GUI/Win32-GUI-Grid/Changes,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** Changes 1 Nov 2005 12:34:46 -0000 1.1
--- Changes 11 Jun 2006 16:42:10 -0000 1.2
***************
*** 2,45 ****
Revision history for Perl extension Win32::GUI::Grid.
0.07 14/02/2004
! - Use MFC Grid control 2.25
! - Correct EnsureCellVisible methods ( bad name in XS, but keep
EnsureVisible for compatibility)
! - Fix locale setting problem.
0.06 14/02/2004
! - Fix Clipboard error (Ctrl+C) [Thank to Andrew St. Denis]
! - Fix some Grid draw problem
! - Add WM_PRINTCLIENT support for new Win32::GUI -noflicker option.
! - New Cell Type (Calendar, URL)
! - SetCellOptions : New options
0.05 07/09/2003
! - Add SetCellEditable method.
! - Add List cell editing.
! - New event _ChangedEdit for COMBO and LIST edit control when select
change in list.
0.04 07/08/2003
! - Correct -heigth option.
! - In InsertColumn, set last parameter optional.
! - Add Column Perl Sort method.
0.03 03/06/2003
! - Correct Abnormal terminaison when multiple grid instance
0.02 03/06/2003
! - Correct crash when destroy grid during cell edit.
! - Virtual Mode support.
! - New cell editing support.
! + Numeric
! + Date
! + Time
! + Check
! + Combo
! - Add Perl Sort method.
0.01 28/05/2003
! - First build Win32::GUI::Grid
! - Use MFC Grid control 2.24
TODO
! - Printing support (???)
--- 2,49 ----
Revision history for Perl extension Win32::GUI::Grid.
+ 0.08 24/05/2006
+ - Merge into Win32::GUI core distribution
+ - Minor fix to constants() XS and AUTOLOAD() functions ( not re-setting
$! )
+
0.07 14/02/2004
! - Use MFC Grid control 2.25
! - Correct EnsureCellVisible methods ( bad name in XS, but keep
EnsureVisible for compatibility)
! - Fix locale setting problem.
0.06 14/02/2004
! - Fix Clipboard error (Ctrl+C) [Thank to Andrew St. Denis]
! - Fix some Grid draw problem
! - Add WM_PRINTCLIENT support for new Win32::GUI -noflicker option.
! - New Cell Type (Calendar, URL)
! - SetCellOptions : New options
0.05 07/09/2003
! - Add SetCellEditable method.
! - Add List cell editing.
! - New event _ChangedEdit for COMBO and LIST edit control when select
change in list.
0.04 07/08/2003
! - Correct -heigth option.
! - In InsertColumn, set last parameter optional.
! - Add Column Perl Sort method.
0.03 03/06/2003
! - Correct Abnormal termination when multiple grid instance
0.02 03/06/2003
! - Correct crash when destroy grid during cell edit.
! - Virtual Mode support.
! - New cell editing support.
! + Numeric
! + Date
! + Time
! + Check
! + Combo
! - Add Perl Sort method.
0.01 28/05/2003
! - First build Win32::GUI::Grid
! - Use MFC Grid control 2.24
TODO
! - Printing support (???)
--- README DELETED ---
--- NEW FILE: GridRC.PL ---
#!perl -w
use strict;
use warnings;
use ExtUtils::MakeMaker;
# $Id: GridRC.PL,v 1.1 2006/06/11 16:42:10 robertemay Exp $
# perl script to produce the RC file for
# Win32::GUI::Grid create Resource
# file with a VERSIONINFO section
# The variables:
my %info = (
Version => MM->parse_version('Grid.pm'),
Dllname => 'Grid.dll',
Years => '2003..2006',
Win32GUIVersion => MM->parse_version('../GUI.pm'),
);
# Open the target file
if ( @ARGV > 0 ) {
my $file = $ARGV[0];
open(my $fh, '>', $file) or die qq(Failed to open '$file': $!);
select $fh;
}
{
my $fileVersion = $info{Version};
$fileVersion .= "_00" unless $fileVersion =~ m/_/;
$info{FileVersion} =
sprintf("%02d,%02d,%02d,00", $fileVersion =~ m/^(.*)\.([^_]*)_?(.*)$/);
my $prodVersion = $info{Win32GUIVersion};
$prodVersion .= "_00" unless $prodVersion =~ m/_/;
$info{ProductVersion} =
sprintf("%02d,%02d,%02d,00", $prodVersion =~ m/^(.*)\.([^_]*)_?(.*)$/);
}
print <<"__RC";
#include "Winver.h"
1 VERSIONINFO
FILEVERSION $info{FileVersion}
PRODUCTVERSION $info{ProductVersion}
FILEOS VOS__WINDOWS32
FILETYPE VFT_DLL
{
BLOCK "StringFileInfo"
{
BLOCK "040904E4"
{
VALUE "Comments" , "Win32::GUI::Grid, part of the perl Win32::GUI
module. Includes code by Chris Maunder from MFCGrid:
http://www.codeproject.com/miscctrl/gridctrl.asp"
VALUE "CompanyName" , "perl-win32-gui.sourceforge.net"
VALUE "FileDescription" , "Win32::GUI::Grid perl extension"
VALUE "FileVersion" , "$info{Version}"
VALUE "InternalName" , "$info{Dllname}"
VALUE "LegalCopyright" , "Copyright © Laurent Rocher $info{Years}"
VALUE "LegalTrademarks" , "GNU and Artistic licences"
VALUE "OriginalFilename" , "$info{Dllname}"
VALUE "ProductName" , "Win32::GUI perl extension"
VALUE "ProductVersion" , "$info{Win32GUIVersion}"
}
}
BLOCK "VarFileInfo"
{
VALUE "Translation", 0x0409, 0x04E4
}
}
__RC
exit(0);
__END__
Index: TYPEMAP
===================================================================
RCS file: /cvsroot/perl-win32-gui/Win32-GUI/Win32-GUI-Grid/TYPEMAP,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** TYPEMAP 1 Nov 2005 12:34:46 -0000 1.1
--- TYPEMAP 11 Jun 2006 16:42:11 -0000 1.2
***************
*** 1,27 ****
TYPEMAP
LPCTSTR T_PV
- LPCSTR T_PV
- LPTSTR T_PV
DWORD T_IV
UINT T_IV
BOOL T_IV
- HBITMAP T_HANDLE
HDC T_HANDLE
- HFONT T_HANDLE
HIMAGELIST T_HANDLE
HWND T_HANDLE
CMFCWnd* T_MFCWND
COLORREF T_COLOR
-
################################################################################
INPUT
T_HANDLE
if(SvROK($arg)) {
! if(hv_fetch((HV*)SvRV($arg), \"-handle\", 7, 0) != NULL)
! $var = ($type) SvIV(*(hv_fetch((HV*)SvRV($arg), \"-handle\", 7,
0)));
else
$var = NULL;
} else
! $var = ($type) SvIV($arg);
T_MFCWND
--- 1,23 ----
TYPEMAP
LPCTSTR T_PV
DWORD T_IV
UINT T_IV
BOOL T_IV
HDC T_HANDLE
HIMAGELIST T_HANDLE
HWND T_HANDLE
CMFCWnd* T_MFCWND
COLORREF T_COLOR
################################################################################
INPUT
T_HANDLE
if(SvROK($arg)) {
! SV** out=hv_fetch((HV*)SvRV($arg), \"-handle\", 7, 0);
! if(out != NULL)
! $var = INT2PTR($type,SvIV(*out));
else
$var = NULL;
} else
! $var = INT2PTR($type,SvIV($arg));
T_MFCWND
***************
*** 34,39 ****
OUTPUT
T_HANDLE
! sv_setiv($arg, (IV) $var);
T_COLOR
sv_setiv($arg, (IV) $var);
-
--- 30,34 ----
OUTPUT
T_HANDLE
! sv_setiv($arg, PTR2IV($var));
T_COLOR
sv_setiv($arg, (IV) $var);