Update of /cvsroot/perl-win32-gui/Win32-GUI/t In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7815/t
Modified Files: 01_basic.t 98_Pod.t Added Files: 07_CustomDraw.t Log Message: Reini Urban changes Index: 01_basic.t =================================================================== RCS file: /cvsroot/perl-win32-gui/Win32-GUI/t/01_basic.t,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** 01_basic.t 21 Nov 2005 22:33:34 -0000 1.3 --- 01_basic.t 16 Mar 2006 08:57:49 -0000 1.4 *************** *** 1,3 **** ! #!perl -wT # Win32::GUI test suite. # $Id$ --- 1,3 ---- ! #!perl -w # Win32::GUI test suite. # $Id$ --- NEW FILE: 07_CustomDraw.t --- #!perl -wT # Win32::GUI test suite. # $Id: 07_CustomDraw.t,v 1.1 2006/03/16 08:57:49 jwgui Exp $ # # Test most CustomDraw events, objects, methods and properties. # By Reini Urban. use strict; use warnings; BEGIN { $| = 1 } # Autoflush$win use Test::More qw/no_plan/; use Win32::GUI; use Win32::GUI::CustomDraw; # import the methods and constants sub CLR_WHITE {0xFFFFFF}; sub CLR_BLACK {0x000000}; sub CLR_GREY {0x888888}; # my @Controls = qw/ListView Toolbar Header Button Rebar Tooltip TrackBar TreeView/; # my @FullControls = qw/Header ListView Rebar Trackbar TreeView Tooltip/; my @ItemDraw = qw/ListView TreeView/; my @SubItemDraw = qw/ListView TreeView/; my $W = new Win32::GUI::Window( -name => "TestWindow", -pos => [ 0, 0], -size => [800, 600], -text => "TestWindow", ); for my $ctrl (@ItemDraw) { my $method = "Add$ctrl"; my $name = "$ctrl"; my $populate = $ctrl."_Populate"; my $C = $W->$method(-name => $name, -onCustomDraw => \&FullControl_ItemDraw, -width => $W->ScaleWidth, -height => $W->ScaleHeight); { no strict 'refs'; &$populate(); } $C->DESTROY(); } for my $ctrl (@SubItemDraw) { my $method = "Add$ctrl"; my $name = "$ctrl"; my $populate = $ctrl."_Populate"; my $C = $W->$method(-name => $name, -onCustomDraw => \&FullControl_SubItemDraw, -width => $W->ScaleWidth, -height => $W->ScaleHeight); { no strict 'refs'; &$populate(); } $C->DESTROY(); } $W->DESTROY(); sub ListView_Populate { $W->Show(); $W->ListView->InsertItem(-item => 0, -text => "Line 0"); $W->ListView->EnsureVisible(0); $W->ListView->InsertItem(-item => 1, -text => "Line 1"); $W->ListView->InsertItem(-item => 2, -text => "Line 2", -selected => 1); $W->ListView->EnsureVisible(2); $W->Update(); sleep(0.03); $W->DoEvents(); } sub Header_Populate { $W->Show(); $W->Header->InsertItem(-item => 0, -text => "Line 0"); $W->Header->InsertItem(-item => 1, -text => "Line 1"); $W->Header->InsertItem(-item => 2, -text => "Line 2", -selected => 1); $W->Update(); sleep(0.03); $W->DoEvents(); } sub TreeView_Populate { $W->TreeView->InsertItem(-item => 0, -text => "Line 0"); $W->Show(); $W->TreeView->EnsureVisible(0); $W->TreeView->InsertItem(-item => 1, -text => "Line 1", -bold => 1); $W->TreeView->InsertItem(-item => 2, -text => "Line 2", -selected => 1); $W->TreeView->EnsureVisible(2); $W->Update(); sleep(0.03); $W->DoEvents(); } sub FullControl_ItemDraw { my ($win, $ctrl) = @_; is(ref($ctrl), ref($win)."::CustomDraw", "got ".ref($ctrl)); my $drawstage = $ctrl->{-drawstage}; my $item = $ctrl->{-item}; # can_ok(ref($ctrl), qw(STORE Handle WindowFrom Item Rect HDC IdFrom # Code DrawStage ItemState ItemLParam)); is($drawstage, $ctrl->DrawStage(), "AUTOLOAD DrawStage"); is($item, $ctrl->Item(), "AUTOLOAD Item"); return CDRF_NOTIFYITEMDRAW if $drawstage == CDDS_PREPAINT; if ($drawstage == CDDS_ITEMPREPAINT) { my $rect = $ctrl->Rect(); ok(@$rect, "AUTOLOAD Rect"); my $hdc = $ctrl->HDC(); ok($hdc, "AUTOLOAD HDC"); ok($ctrl->ItemState() >= 0, "AUTOLOAD ItemState"); if ($item == 2) { is(($ctrl->ItemState() & CDIS_SELECTED), CDIS_SELECTED); ok(1, "ITEM 2 Selected"); } if ($item) { $ctrl->TextColor(CLR_WHITE); $ctrl->BackColor(CLR_GREY); } else { ok(1, "CDDS_ITEMPREPAINT Item 0"); return CDRF_DODEFAULT; # do nothing on first item } return CDRF_NEWFONT; } return CDRF_DODEFAULT; } sub FullControl_SubItemDraw { my ($win, $ctrl) = @_; isa_ok($ctrl, ref($win)."::CustomDraw"); my $drawstage = $ctrl->{-drawstage}; my $item = $ctrl->{-item}; return CDRF_NOTIFYITEMDRAW if $drawstage == CDDS_PREPAINT; if ($drawstage == CDDS_ITEMPREPAINT) { if ($item) { $ctrl->TextColor(CLR_WHITE); $ctrl->BackColor(CLR_GREY); return CDRF_NEWFONT; } else { ok(1, "CDDS_ITEMPREPAINT 0"); return CDRF_DODEFAULT; # do nothing on first item } } elsif ($drawstage == (CDDS_SUBITEM | CDDS_ITEMPREPAINT)) { if ($ctrl->SubItem() == 0) { $ctrl->TextColor(CLR_GREY); $ctrl->BackColor(CLR_WHITE); ok(1, "CDDS_SUBITEM 0"); return CDRF_NEWFONT; } else { return CDRF_DODEFAULT; } } return CDRF_DODEFAULT; } Index: 98_Pod.t =================================================================== RCS file: /cvsroot/perl-win32-gui/Win32-GUI/t/98_Pod.t,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** 98_Pod.t 21 Nov 2005 22:33:34 -0000 1.1 --- 98_Pod.t 16 Mar 2006 08:57:49 -0000 1.2 *************** *** 3,8 **** # $Id$ - # Testing RichEdit::GetCharFormat() - use strict; use warnings; --- 3,6 ----