:- module switch_detection_regression. :- interface. :- import_module float. :- type text_align ---> start ; end ; left ; right ; center. :- type direction ---> ltr ; rtl. :- pred halign(text_align::in, direction::in, float::in, float::in, float::out) is det. %---------------------------------------------------------------------------% :- implementation. halign(TextAlign, Dir, X0, W, X) :- ( ( TextAlign = left ; TextAlign = start, Dir = ltr ; TextAlign = end, Dir = rtl ), X = X0 ; ( TextAlign = right ; TextAlign = end, Dir = ltr ; TextAlign = start, Dir = rtl ), X = X0 - W ; TextAlign = center, X = X0 - W / 2.0 ). %---------------------------------------------------------------------------%