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


Reply via email to