windows-nt/Source/XPSP1/NT/enduser/speech/lib/perl/iit/guiwrap.pm

85 lines
2.1 KiB
Perl
Raw Permalink Normal View History

2020-09-26 03:20:57 -05:00
use Win32::GUI;
$BS_GROUPBOX = 7;
sub AutoFormCheckboxGroup
{
my($pWnd) = shift(@_);
my($bRadio) = shift(@_);
my($sName) = shift(@_);
my($nLeft) = shift(@_);
my($nTop) = shift(@_);
my($sText) = shift(@_);
my($nMaxLength) = length($sName) + 2;
for (my $i = 1 ; $i < scalar(@_) ; $i += 2)
{
if (length($_[$i]) > $nMaxLength)
{
$nMaxLength = length($_[$i]);
}
}
my($nWidth) = ($nMaxLength * $g_nHorzCharSize) + $g_nHorzSpacing * 2;
my($nHeight) = (scalar(@_) / 2 + 1) * ($g_nVertSpacing + $g_nVertCharSize) + $g_nVertSpacing;
FormCheckboxGroup($pWnd, $bRadio, $sName, $nLeft, $nTop, $nWidth, $nHeight, $sText, @_);
}
# pWnd, bRadio, sName, nLeft, nTop, nWidth, nHeight, sText, [cbx1name, cbx1text], [...]
sub FormCheckboxGroup
{
my($pWnd) = shift(@_);
my($bRadio) = shift(@_);
my($sName) = shift(@_);
my($nLeft) = shift(@_);
my($nTop) = shift(@_);
my($nWidth) = shift(@_);
my($nHeight) = shift(@_);
my($sText) = shift(@_);
if (scalar(@_) % 2 == 1)
{
print(STDERR "bad windows dimensions\n");
return(0);
}
$pWnd->AddButton(
-name => $sName,
-left => $nLeft,
-top => $nTop,
-width => $nWidth,
-height => $nHeight,
-text => $sText,
-style => WS_VISIBLE | WS_CHILD | $BS_GROUPBOX,
);
for (my $i = 0 ; $i < scalar(@_) ; $i += 2)
{
if ($bRadio)
{
$W->AddRadioButton(
-name => $_[$i],
-left => $nLeft + $g_nHorzSpacing,
-top => $nTop + ((($i / 2) + 1) * ($g_nVertSpacing + $g_nVertCharSize)),
-text => $_[$i + 1]." ",
);
}
else
{
$W->AddCheckbox(
-name => $_[$i],
-left => $nLeft + $g_nHorzSpacing,
-top => $nTop + ((($i / 2) + 1) * ($g_nVertSpacing + $g_nVertCharSize)),
-text => $_[$i + 1]." ",
);
}
}
if ($_[0] && $bRadio)
{
$pWnd->{$_[0]}->Checked(1);
}
}