# radio.tcl --
#
# This demonstration script creates a toplevel window containing
# several radiobutton widgets.
#
# RCS: @(#) $Id: radio.tcl,v 1.4 2001/11/12 14:32:50 dkf Exp $

our $widgetDemo;
unless ($widgetDemo) {
    die "This script should be run from the \"widget\" demo."
}

my $w = '.radio';
$interp->call('destroy', $w);
toplevel $w;
wm('title', $w, "Radiobutton Demonstration");
wm('iconname', $w, "radio");
positionWindow($w);
label "$w.msg", -font=>$font, -wraplength=>'5i', -justify=>'left', -text=>"Three groups of radiobuttons are displayed below.  If you click on a button then the button will become selected exclusively among all the buttons in its group.  A Tcl variable is associated with each group to indicate which of the group's buttons is selected.  Click the \"See Variables\" button to see the current values of the variables.";
tkpack "$w.msg", -side=>'top';

frame "$w.buttons";
tkpack "$w.buttons", -side=>'bottom', -fill=>'x', -pady=>'2m';
button "$w.buttons.dismiss", -text=>'Dismiss', -command=>"destroy $w";
button "$w.buttons.code", -text=>"See Code", -command=>"showCode $w";
button "$w.buttons.vars", -text=>"See Variables",
	-command=>"showVars $w.dialog size color align";
tkpack "$w.buttons.dismiss", "$w.buttons.code", "$w.buttons.vars", -side=>'left', -expand=>1;

labelframe "$w.left", -pady=>2, -text=>"Point Size", -padx=>2;
labelframe "$w.mid", -pady=>2, -text=>"Color", -padx=>2;
labelframe "$w.right", -pady=>2, -text=>"Alignment", -padx=>2;
tkpack "$w.left", "$w.mid", "$w.right", qw/-side left -expand yes  -pady .5c -padx .5c/;

foreach my $i (qw(10 12 14 18 24)) {
    radiobutton "$w.left.b$i", -text=>"Point Size $i", -variable=>'size',
	    -relief=>'flat', -value=>$i;
    tkpack "$w.left.b$i",  qw/-side top -pady 2 -anchor w -fill x/;
}

foreach my $c (qw(Red Green Blue Yellow Orange Purple)) {
    my $lower = lc($c);
    radiobutton "$w.mid.$lower", -text=>$c, -variable=>'color',
	    -relief=>'flat', -value=>$lower, -anchor=>'w',
	    -command=>"$w.mid configure -fg \$color";
    tkpack "$w.mid.$lower", qw/-side top -pady 2 -fill x/;
}

my $lab = label "$w.right.l", -text=>"Label", qw/-bitmap questhead -compound left/;
$lab->configure(-width=>$interp->Eval("winfo reqwidth $w.right.l"), -compound=>'top');
$lab->configure(-height=>$interp->Eval("winfo reqheight $w.right.l"));
foreach my $aa (qw(Top Left Right Bottom)) {
    my $lower = lc($aa);
    radiobutton "$w.right.$lower", -text=>$a, -variable=>'align',
	    -relief=>'flat', -value=>$lower, -indicatoron=>0, -width=>7,
	    -command=>"$w.right.l configure -compound \$align";
}
grid "x", "$w.right.top";
grid "$w.right.left", "$w.right.l", "$w.right.right";
grid "x", "$w.right.bottom";

