Content-Type: multipart/alternative; boundary="----_=_NextPart_002_01C5EC8E.E00F6E9F" ------_=_NextPart_002_01C5EC8E.E00F6E9F Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hey all, =20 Ariel Serbin and I have notice something strange occurring with the splitter demo, and specifically the splitter control itself. =20 Run the script attached, a previous post contained it. Then, drag the splitter to the left a short distance, then back to the right and equal amount. You'll notice that there is a nasty artifact showing up on the screen. Of course when your test in the text field overlaps this artifact, it is resolved within the relative area of the text [Rob and all may know the proper names, but unfortunately I'm not that in depth]. =20 I believe it has something to with the underlying DC objects that are drawing the splitter control, but am fully aware that I don't have the understanding to fix this. =20 =20 WinXP SP2, AS 5.8.7, Win32-GUI 1.02 and Win32-GUI 1.02_03 this occurs. =20 Jason P. =20 Note: For ease of replicable visibility, we've widened the splitter control in the code below. =20 --CODE- =20 =20 #!perl -w use strict; use warnings; =20 use Win32::GUI; =20 my $mw =3D Win32::GUI::Window->new( -title =3D> "Splitter Test", -pos =3D> [100,100], -size =3D> [500,400], -onResize =3D> \&main_resize, ); =20 $mw->AddTextfield( -name =3D> "TF1", -multiline =3D> 1, -width =3D> 200, ); =20 $mw->AddSplitter( -name =3D> "SP", -left =3D> 200, -width =3D> 10, #FATTY -onRelease =3D> \&do_splitter, ); =20 $mw->AddTextfield( -name =3D> "TF2", -multiline =3D> 1, -left =3D> 200 + $mw->SP->Width(), ); =20 =20 $mw->Show(); Win32::GUI::Dialog(); exit(0); =20 # NEM splitter event gets 2 parameters. The first (as always) # is the window object the wvwnt came from - in this case the # splitter window; The second depends on the splitter orientation: # if horzontal it is the top coordinate; if vertical it is # the left coordinate. (coordinates relative to the parent's # client area) # The splitter window is moved by the splitter object, so you only # have to re-position your other windows sub do_splitter { my ($splitter, $coord) =3D @_; =20 $mw->TF1->Width($coord); $mw->TF2->Move($coord+$mw->SP->Width(), 0); $mw->TF2->Resize($mw->ScaleWidth()-$mw->SP->Width(), $mw->ScaleHeight()); } =20 sub main_resize { my $self =3D shift; =20 $mw->TF1->Height($self->ScaleHeight()); $mw->SP->Height($self->ScaleHeight()); =20 $mw->TF2->Resize($mw->ScaleWidth()-$self->TF1->Width()-$mw->SP->Width(), $mw->ScaleHeight()); } __END__ ------_=_NextPart_002_01C5EC8E.E00F6E9F Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable

Hey all,

 

Ariel Serbin and I have notice something strange = occurring with the splitter demo, and specifically the splitter control = itself.

 

Run the script attached, a previous post contained = it. Then, drag the splitter to the left a short distance, then back to the right = and equal amount. You’ll notice that there is a nasty artifact showing = up on the screen. Of course when your test in the text field overlaps this = artifact, it is resolved within the relative area of the text [Rob and all may = know the proper names, but unfortunately I’m not that in = depth].

 

I believe it has something to with the underlying DC = objects that are drawing the splitter control, but am fully aware that I = don’t have the understanding to fix this.

 

 

WinXP SP2, AS 5.8.7, Win32-GUI 1.02 and Win32-GUI = 1.02_03 this occurs.

 

Jason P.

 

Note: For ease of replicable visibility, we’ve = widened the splitter control in the code below.

 

--CODE—

 

 

#!perl -w

use strict;

use warnings;

 

use Win32::GUI;

 

my $mw =3D = Win32::GUI::Window->new(

         =    -title =3D> "Splitter Test",

         =    -pos   =3D> [100,100],

         =    -size  =3D> [500,400],

         =    -onResize =3D> \&main_resize,

);

 

$mw->AddTextfield(

         =    -name =3D> "TF1",

         =    -multiline =3D> 1,

         =    -width =3D> 200,

);

 

$mw->AddSplitter(

         =    -name =3D> "SP",

         =    -left =3D> 200,

         =    -width =3D> 10, #FATTY

         =    -onRelease =3D> \&do_splitter,

);

 

$mw->AddTextfield(

         =    -name =3D> "TF2",

         =    -multiline =3D> 1,

         =    -left =3D> 200 + $mw->SP->Width(),

);

 

 

$mw->Show();

Win32::GUI::Dialog();

exit(0);

 

# NEM splitter event gets 2 parameters.  The = first (as always)

# is the window object the wvwnt came from - in this = case the

# splitter window; The second depends on the splitter orientation:

# if horzontal it is the top coordinate; if vertical = it is

# the left coordinate. (coordinates relative to the = parent's

# client area)

# The splitter window is moved by the splitter = object, so you only

# have to re-position your other = windows

sub do_splitter {

         =    my ($splitter, $coord) =3D @_;

 

         =    $mw->TF1->Width($coord);

         =    $mw->TF2->Move($coord+$mw->SP->Width(), 0);

         =    = $mw->TF2->Resize($mw->ScaleWidth()-$mw->SP->Width(), $mw->ScaleHeight());

}

 

sub main_resize

{

         =    my $self =3D shift;

 

         =    = $mw->TF1->Height($self->ScaleHeight());

         =    = $mw->SP->Height($self->ScaleHeight());

         =    = $mw->TF2->Resize($mw->ScaleWidth()-$self->TF1->Width()-$mw= ->SP->Width(),

         =             &= nbsp;           &n= bsp;   $mw->ScaleHeight());

}

__END__

------_=_NextPart_002_01C5EC8E.E00F6E9F--