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 ----