Window creation/X11: Difference between revisions
put perl6 entry after perl 5
(Perl 6 entry) |
(put perl6 entry after perl 5) |
||
Line 411:
{{omit from|TI-83 BASIC}} {{omit from|TI-89 BASIC}} <!-- Does not have a local X server or network access. -->
{{omit from|PureBasic}}
=={{header|Perl}}==▼
=== X11::Protocol ===▼
<lang perl>#!/usr/bin/perl -w▼
use strict;▼
use X11::Protocol;▼
my $X = X11::Protocol->new;▼
my $window = $X->new_rsrc;▼
$X->CreateWindow ($window,▼
$X->root, # parent window▼
'InputOutput', # class▼
0, # depth, copy from parent▼
0, # visual, copy from parent▼
0,0, # X,Y (window manager will override)▼
300,100, # width,height▼
0, # border width▼
background_pixel => $X->black_pixel,▼
event_mask => $X->pack_event_mask('Exposure',▼
'ButtonPress'),▼
);▼
my $gc = $X->new_rsrc;▼
$X->CreateGC ($gc, $window,▼
foreground => $X->white_pixel);▼
$X->{'event_handler'} = sub {▼
my %event = @_;▼
my $event_name = $event{'name'};▼
if ($event_name eq 'Expose') {▼
$X->PolyRectangle ($window, $gc, [ 10,10, # x,y top-left corner▼
30,20 ]); # width,height▼
$X->PolyText8 ($window, $gc,▼
10, 55, # X,Y of text baseline▼
[ 0, # delta X▼
'Hello ... click mouse button to exit.' ]);▼
} elsif ($event_name eq 'ButtonPress') {▼
exit 0;▼
}▼
};▼
$X->MapWindow ($window);▼
for (;;) {▼
$X->handle_input;▼
}</lang>▼
=={{header|Perl 6}}==
Line 488 ⟶ 536:
XCloseDisplay($display);
</lang>
▲=={{header|Perl}}==
▲=== X11::Protocol ===
▲<lang perl>#!/usr/bin/perl -w
▲use strict;
▲use X11::Protocol;
▲my $X = X11::Protocol->new;
▲my $window = $X->new_rsrc;
▲$X->CreateWindow ($window,
▲ $X->root, # parent window
▲ 'InputOutput', # class
▲ 0, # depth, copy from parent
▲ 0, # visual, copy from parent
▲ 0,0, # X,Y (window manager will override)
▲ 300,100, # width,height
▲ 0, # border width
▲ background_pixel => $X->black_pixel,
▲ event_mask => $X->pack_event_mask('Exposure',
▲ 'ButtonPress'),
▲ );
▲my $gc = $X->new_rsrc;
▲$X->CreateGC ($gc, $window,
▲ foreground => $X->white_pixel);
▲$X->{'event_handler'} = sub {
▲ my %event = @_;
▲ my $event_name = $event{'name'};
▲ if ($event_name eq 'Expose') {
▲ $X->PolyRectangle ($window, $gc, [ 10,10, # x,y top-left corner
▲ 30,20 ]); # width,height
▲ $X->PolyText8 ($window, $gc,
▲ 10, 55, # X,Y of text baseline
▲ [ 0, # delta X
▲ 'Hello ... click mouse button to exit.' ]);
▲ } elsif ($event_name eq 'ButtonPress') {
▲ exit 0;
▲ }
▲};
▲$X->MapWindow ($window);
▲for (;;) {
▲ $X->handle_input;
▲}</lang>
=={{header|PicoLisp}}==
|