Я объясню основной мыслительный процесс для одного возможного решения.
Чтобы вычислить, «левое» оно или нет, вы хотите определить, какое расстояние больше, расстояние между левым краем внутреннего поля, внешним краем или правым.
Вы уже знаете расстояние слева. Чтобы вычислить расстояние справа, вам нужно взять общую externalWidth и вычесть ширину внутреннего поля и расстояние слева:
|-------------------------Outer Box----------------------------------|
|---left distance---|---------inner box--------|---right distance----|
Теперь, если левое расстояние больше правого, оно «правое», если они равны, оно центрировано, а если меньше, то «левое».
То же самое касается сверху вниз.