404

[ Avaa Bypassed ]




Upload:

Command:

botdev@3.143.236.11: ~ $
#!/usr/bin/perl

use X11::Protocol;
use X11::Protocol::Constants qw(InputOutput CopyFromParent Replace Exposure_m);

use IO::Select;
use strict;

$| = 1;

my $big_size = 1000;
my $small_wd = 50;
my $small_ht = 20;

my $X = X11::Protocol->new;

my $cmap = $X->default_colormap;
my($bg_pixel,) = $X->AllocColor($cmap, (0xdddd, 0xdddd, 0xdddd));

my $main_win = $X->new_rsrc;
$X->CreateWindow($main_win, $X->root, InputOutput, CopyFromParent,
		 CopyFromParent, (0, 0), $big_size, $big_size, 0,
		 'background_pixel' => $bg_pixel);

$X->ChangeProperty($main_win, $X->atom('WM_ICON_NAME'), $X->atom('STRING'),
                   8, Replace, "long run");
$X->ChangeProperty($main_win, $X->atom('WM_NAME'), $X->atom('STRING'), 8,
                   Replace, "Long-running X11::Protocol test");
$X->ChangeProperty($main_win, $X->atom('WM_CLASS'), $X->atom('STRING'), 8,
                   Replace, "longrun\0LongRun");
$X->ChangeProperty($main_win, $X->atom('WM_NORMAL_HINTS'),
                   $X->atom('WM_SIZE_HINTS'), 32, Replace,
                   pack("Lx16llx16llllllx4", 8|16|128|256,
			$big_size, $big_size,
                        1, 1, 1, 1, $big_size, $big_size));
$X->ChangeProperty($main_win, $X->atom('WM_HINTS'), $X->atom('WM_HINTS'),
                   32, Replace, pack("LLLx24", 1|2, 1, 1));
my $delete_atom = $X->atom('WM_DELETE_WINDOW');
$X->ChangeProperty($main_win, $X->atom('WM_PROTOCOLS'), $X->atom('ATOM'),
                   32, Replace, pack("L", $delete_atom));

my $text_gc = $X->new_rsrc;
my($text_pixel,) = $X->AllocColor($cmap, (0x0000, 0x0000, 0x0000));
my $font = $X->new_rsrc;
$X->OpenFont($font, "fixed");
$X->CreateGC($text_gc, $main_win, 'foreground' => $text_pixel,
	     'font' => $font);

$X->MapWindow($main_win);

my $fds = IO::Select->new($X->connection->fh);

my $num_cols = $big_size / $small_wd;
my @cols;

my %visible;

sub label {
    my($win) = @_;
    $X->PolyText8($win, $text_gc, 4, ($small_ht + 10) / 2,
		  [0, sprintf("%x", $win)]);
}

sub handle_event {
    my(%e) = @_;
    if ($e{'name'} eq "Expose") {
	my $win = $e{'window'};
	label($win) if $visible{$win};
    }
}

$X->{'event_handler'} = \&handle_event;

my $last_id;
for (;;) {
    while ($fds->can_read(0)) {
	$X->handle_input;
    }
    for (my $x = 0; $x < $big_size; $x += $small_wd) {
	my @column;
	for (my $y = 0; $y < $big_size; $y += $small_ht) {
#  	    my($rand_pixel,) =
#  	      $X->AllocColor($cmap, (rand(65536), rand(65535), rand(65535)));
	    my $rand_pixel = rand(2**32);
	    my $win = $X->new_rsrc;
	    if ($win != $last_id + 1) {
		print "x";
	    }
	    $last_id = $win;
	    $X->CreateWindow($win, $main_win, InputOutput, CopyFromParent,
			     CopyFromParent, ($x, $y), $small_wd, $small_ht,
			     1, 'background_pixel' => $rand_pixel,
			     'event_mask' => Exposure_m);
	    if (rand() < 0.001) {
		$X->MapWindow($win);
		push @column, $win if rand() < 0.9;
		$visible{$win} = 1;
		label($win);
	    } else {
		$X->DestroyWindow($win);
	    }
	}
	push @cols, [@column];
	if (@cols >= $num_cols) {
	    for my $win (@{shift @cols}) {
		delete $visible{$win};
		$X->DestroyWindow($win);
	    }
	}
    }
    print ".";
}

Filemanager

Name Type Size Permission Actions
anim.pl File 2.77 KB 0644
full_test.pl.gz File 5.44 KB 0644
long-run.pl File 3.09 KB 0644
random-win.pl File 1.08 KB 0644
render-clock.pl.gz File 3.33 KB 0644
render-test.pl.gz File 1.92 KB 0644
teletype.pl File 2.87 KB 0644
widgets.c.gz File 7.69 KB 0644
widgets1.pl.gz File 6.9 KB 0644
widgets2.pl.gz File 7.6 KB 0644
widgets3.pl.gz File 6.68 KB 0644
wintree.pl File 2.3 KB 0644