Menu

Разработка движка для графического отображения

Структура классов:
Движок
Страница
Регион
Строка
Элемент

Движок.
1. Роли
- Хранить информацию о страницах
* Давать доступ к текущей странице
* Давать возможность выбирать принтер для печати
* Давать возможность на предпросмотр
* Выводить на печать

  • Описание.
    Инициализация движка:
    -Задание размеров листа
    -Регистрация шрифтов (стилей ?)
    -Создание первого листа, в конструкторе класса

Получение текущего листа происходит через метод currentPage().

Страница.
1. Роли.
-Хранение информации о регионах.

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

Регион.
1. Роли.
-Хранение информации о строках и свободных элементах.

  • Задачи.
    Сообщать странице о переполнении. Регион должен упорядочивать контент по вертикали (По центру, к верхней границе, к нижней границе).
    -При упорядочиванию по центру высота всех строк вычисляется по принципу height() / rows().count();
    -При пристыковке к верхней границе высота всех строк, кроме последней, равна минимальной необходимой высоте строки (максимальная высота содержащегося в ней элемента), высота последней равна height() - сумма высот остальных строк.
    -При пристыковке к нижней границе по аналогии.

Строка.
1. Роли.
- Хранение информации о графических элементах

  1. Задачи.
    Сообщать элементам высоту.
Posted by NorthHunter 2012-09-05

Log in to post a comment.