Лабораторная работа №2 (GUI: динамическое создание виджетов)

Задание:

Создать программу, эмулирующую работу палиры компонентов, инспектора объектов и редактора форм.

Вид создаваемой формы

Палира компонентов содержит три кнопки: 1) для создания кнопок, 2) для создания однострочных полей ввода, 3) для создания панелей-контейнеров.

Нажатие на кнопку палитры компонентов создает соответствующий виджет, устанавливая его свойства в значения по умолчанию. Набор свойств одинаков для всех типов виджетов:

  1. координата X левого верхнего угла (по умолчанию = 50);
  2. координата Y левого верхнего угла (по умолчанию = 50);
  3. ширина виджета (по умолчанию = 64);
  4. высота виджета (по умолчанию = 24);
  5. имя виджета, уникальное в пределах родителя (по умолчанию = тип виджета + номер возрастающей последовательности, гарантирующий уникальность имени);
  6. текст на виджете (по умолчанию = имя виджета);
  7. имя родительского компонента (имя одной из панелей, или пустая строка). Пустое имя означает отображение виджета непосредственно в редакторе формы (по умолчанию = пустое);

Дерево виджетов и набор свойств выбранного виджета отображается в инспекторе объектов.

Изменение свойста выбранного виджета влияет на отображение виджета после нажатия кнопки Enter или при выходе с поля редактирования свойства виджета.

Изменение свойств виджета должно проверяться на корректность и при необходимости генерировать ошибку, ввостанавливая предыдущее значение свойства (например, ввод нечисловых значений координат виджетов).

Изменение свойств виджета может влиять на значения свойств других виджетов, что должно быть корректно обработано (например, изменение имени панели влияет на все виджеты в пределах панели).

Удаление виджета производится нажатием на кнопку Delete при нахождении в дереве выбора виджета.