The Perl/Tk IPADM Client, ipadm
The client’s primary duties are to build the human interface and establish a communications link to the server, ipadmd. In order to talk to the server, ipadm starts the helper, ipadmh, as a separate process. Then ipadm sends a message to the daemon requesting a list of subnet descriptions, which it uses to construct the hypertext interface shown in Figure 19-2. Each subnet description has tags and bindings that react to mouseclicks and subsequently display the subnet’s nodes, as shown in Figure 19-3.
The following sections explain all this in detail.
Creating the Hypertext User Interface
As Figure 19-2 shows, ipadm’s MainWindow is essentially a single, scrolled ROText widget listing all of ACME Rocket Supply’s subnets.
my $t = $MW->Scrolled('ROText',
qw/-width 80 -height 10 -relief ridge -scrollbars w/);As the cursor passes over a subnet line, it becomes “hot,” is highlighted in green, and is able to respond to a button click. Clicking on a hot item opens a Toplevel “subnet editing” window, which we’ll see shortly. All these actions are controlled by text tags and bindings. First, we create and configure several tags:
$t->tagConfigure(qw/title -font/ => 'Helvetica 18 bold'); $t->tagConfigure(qw/subnet -lmargin1 .5c -lmargin2 1c -foreground blue/); $t->tagConfigure(qw/hot -relief raised -borderwidth 1 -background green/);
The title tag is applied to the title line, giving
it a nice, large font. The subnet tag is applied to each subnet line, and the ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access