Основы объектно-ориентированного проектирования


Операции над окнами


Принимая во внимание иерархическую природу окон, мы сделаем класс WINDOW наследником класса TWO_WAY_TREE, реализующего деревья. В результате все иерархические операции легко доступны как операции на деревьях: добавить подокно (вершину-ребенка), переподчинить другому окружающему окну (другому родителю) и т. д. Для задания положения окна в мире и в устройстве будем использовать следующие процедуры (все с двумя аргументами):

Таблица 14.1. Установка позиций окнаУстановка абсолютного положенияСдвиг относительно текущей позиции
Положение в миреgopan
Положение на устройстве

place_proportional

place_pixel

move_proportional

move_pixel

Процедуры _proportional интерпретируют значения своих аргументов как отношение высоты и ширины окна родителя, а аргументами остальных процедур являются абсолютные значения (в мировых координатах для go и pan, и в координатах устройства для процедур _pixel). Имеются аналогичные процедуры и для задания размеров окна.



Содержание раздела