1 |
# -*- Mode: Perl -*- |
2 |
# Term.pm -- |
3 |
# ITIID : $ITI$ $Header $__Header$ |
4 |
# Author : Ulrich Pfeifer |
5 |
# Created On : Wed Sep 18 20:10:42 1996 |
6 |
# Last Modified By: Ulrich Pfeifer |
7 |
# Last Modified On: Sun Nov 22 18:44:44 1998 |
8 |
# Language : CPerl |
9 |
# Update Count : 15 |
10 |
# Status : Unknown, Use with caution! |
11 |
# |
12 |
# Copyright (c) 1996-1997, Ulrich Pfeifer |
13 |
# |
14 |
|
15 |
package WAIT::Format::Term; |
16 |
require WAIT::Format::Base; |
17 |
use strict; |
18 |
use vars qw(@ISA); |
19 |
require Term::Cap; |
20 |
my %DEFAULT; |
21 |
@ISA = qw(WAIT::Format::Base); |
22 |
|
23 |
my $terminal = eval {Tgetent Term::Cap { TERM => undef, OSPEED => 9200 }}; |
24 |
unless (defined $terminal) { |
25 |
eval { require Term::Info; }; |
26 |
if ($@ ne '') { |
27 |
warn "Neither Term::Cap nor Term::Info seems to work.". |
28 |
" Reverting to dumb settings"; |
29 |
%DEFAULT = ( |
30 |
bold_s => '*', |
31 |
bold_e => '*', |
32 |
query_s => '[', |
33 |
query_e => ']', |
34 |
italic_s => '_', |
35 |
italic_e => '_', |
36 |
); |
37 |
} else { |
38 |
import Term::Info qw(Tput); |
39 |
%DEFAULT = ( |
40 |
bold_s => Tput("bold"), |
41 |
bold_e => Tput("sgr0"), |
42 |
query_s => Tput("rev"), |
43 |
query_e => Tput("sgr0"), |
44 |
italic_s => Tput("smul"), |
45 |
italic_e => Tput("sgr0"), |
46 |
); |
47 |
} |
48 |
} else { |
49 |
%DEFAULT = ( |
50 |
bold_s => $terminal->{_md}, |
51 |
bold_e => $terminal->{_me}, |
52 |
query_s => $terminal->{_mr} || $terminal->{_md}, |
53 |
query_e => $terminal->{_me}, |
54 |
italic_s => $terminal->{_us}, |
55 |
italic_e => $terminal->{_ue}, |
56 |
); |
57 |
} |
58 |
|
59 |
sub new { |
60 |
my $type = shift; |
61 |
my %parm = @_; |
62 |
my %self = %DEFAULT; |
63 |
|
64 |
for (keys %DEFAULT) { |
65 |
$self{$_} = $parm{$_} if exists $parm{$_}; |
66 |
} |
67 |
bless \%self, ref($type) || $type; |
68 |
} |
69 |
|
70 |
sub bold { |
71 |
my $self = shift; |
72 |
$self->{bold_s} . $_[0] . $self->{bold_e}; |
73 |
} |
74 |
|
75 |
sub italic { |
76 |
my $self = shift; |
77 |
$self->{italic_s} . $_[0] . $self->{italic_e}; |
78 |
} |
79 |
|
80 |
sub query { |
81 |
my $self = shift; |
82 |
$self->{query_s} . $_[0] . $self->{query_e}; |
83 |
} |
84 |
|
85 |
1; |