Hi Blair,

    Fix and commit on CVS.

    Problem come from BS_CENTER style is BS_LEFT | BS_RIGHT so SwitchBit
order it's important.

    I rewrite like this :

    if(strcmp(option, "-align") == 0) {
        // BS_CENTER is BS_LEFT | BS_RIGHT
        if(strcmp(SvPV_nolen(value), "left") == 0) {
            SwitchBit(perlcs->cs.style, BS_RIGHT, 0);
            SwitchBit(perlcs->cs.style, BS_LEFT, 1);
        } else if(strcmp(SvPV_nolen(value), "center") == 0) {
            SwitchBit(perlcs->cs.style, BS_CENTER, 1);
        } else if(strcmp(SvPV_nolen(value), "right") == 0) {
            SwitchBit(perlcs->cs.style, BS_LEFT, 0);
            SwitchBit(perlcs->cs.style, BS_RIGHT, 1);
        } else {
            if(PL_dowarn) warn("Win32::GUI: Invalid value for -align!");
        }
    }

    Thank for bug report.

Laurent.


> I've noticed that the button attribute "align" breaks if you specify
> "center", if empty it works (i.e. default).
>
> <pre>
> use Win32::GUI;
> my $W = new GUI::Window(-height=>100,-width=>100);
> my $B = $W->AddButton(-text=>'Test', -width=>'100', -align=>'center');
> $W->Center();
> $W->Show();
> Win32::GUI::Dialog;
> </pre>
>
> If one replaces "center" with "right" it works as expected. The error is
> not apparent in Button.xs and I've happens on XPsp2 and W2Ksp4.
>
> Blair
>


Reply via email to