tkphone - Phone another X Display and have a line-mode conversation : MainWindow « GUI « Perl

Perl
1. Array
2. CGI
3. Class
4. Data Type
5. Database
6. File
7. GUI
8. Hash
9. Language Basics
10. Network
11. Regular Expression
12. Report
13. Statement
14. String
15. Subroutine
16. System Functions
17. Win32
18. XML
Java
Java Tutorial
Java Source Code / Java Documentation
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
Photoshop Tutorials
Maya Tutorials
Flash Tutorials
3ds-Max Tutorials
Illustrator Tutorials
GIMP Tutorials
C# / C Sharp
C# / CSharp Tutorial
C# / CSharp Open Source
ASP.Net
ASP.NET Tutorial
JavaScript DHTML
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Ruby
PHP
Python
Python Tutorial
Python Open Source
SQL Server / T-SQL
SQL Server / T-SQL Tutorial
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
Flash / Flex / ActionScript
VBA / Excel / Access / Word
XML
XML Tutorial
Microsoft Office PowerPoint 2007 Tutorial
Microsoft Office Excel 2007 Tutorial
Microsoft Office Word 2007 Tutorial
Perl » GUI » MainWindow 
tkphone - Phone another X Display and have a line-mode conversation
   


#Copyright (C1999 2000 ACME Rocket Supply, Inc. All rights reserved.

#This program is free software; you can redistribute it and/or modify it under
#the same terms as Perl itself.



#!/usr/local/bin/perl -w
#
# tkphone - Phone another X Display and have a line-mode conversation.
#
# Usage: see POD for details.

use Tk;
use subs qw/beep phone pconfig/;
use strict;

$ENV{DISPLAY||= ':0'; $ARGV[0||= $ENV{DISPLAY};

my $title = "$ENV{DISPLAY}   phoning   $ARGV[0]";
my $lmw = MainWindow->new(-title => $title);
my $rmw = MainWindow->new(-title => $title, -screen => $ARGV[0]);

my($le, $lt= phone $lmw;
my($re, $rt= phone $rmw;
pconfig $le, $lt, $re, $rt;
pconfig $re, $rt, $le, $lt; $rmw->bell;

MainLoop;

sub phone {

    # Create the menubar and the phone text entry/display area.

    my($screen= @_;

    my $menubar = $screen->Menu;
    $screen->configure(-menu => $menubar)
    my $file = $menubar->cascade(-label => '~File');
    $file->command(-label => "Close", -command => [$screen => 'destroy']);
    $file->command(-label => "Exit",  -command => \&exit);

    my $e = $screen->Entry->pack(qw/-fill x -expand 1/);
    $e->focus;
    my $t = $screen->Text(qw/-height 10/)->pack;
    ($e, $t);

}

sub pconfig {

    # Configure local callbacks to talk to the remote party.

    my($le, $lt, $re, $rt= @_;

    $le->bind('<Return>' =[sub {
        my($le, $lt, $re, $rt= @_;
        $rt->tagConfigure(qw/blue -underline 1/);
        my $input = $le->get . "\n";
        $le->delete(0'end');
        $lt->insert('end' => $input);
        $rt->insert('end' => $input, 'blue');
    },  $lt, $re, $rt]);

}
__END__

=head1 NAME

tkphone - Phone another X Display and have a line-mode conversation.

=head1 SYNOPSIS

B<tkphone> [I<display>]

=head1 DESCRIPTION

This program opens two MainWindows and arranges callbacks so they can
talk to each other.  It expects a single command line argument, the
remote
DISPLAY
specification
(defaults to :so you can phone yourself).

=head1 COPYRIGHT

Copyright (C1999 2000 ACME Rocket Supply, Inc. All rights reserved.

This program is free software; you can redistribute it and/or modify it under
the same terms as Perl itself.

=cut

   
    
    
  
Related examples in the same category
1. Create empty window
2. Destroy a window in button action
3. Tk Configuration Options
4. Create two windows
5. Setting Border Width for Frame
6. Advanced Hello World program using two MainWindows
7. Adding components to the Client Area of a Window with Menu Bar
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.