Я разрабатываю простой графический интерфейс.У меня есть виджеты, у которых есть дети и один родитель.Каждый виджет является составным объектом с вектором объектов WidgetComposite.Одним из таких WidgetComposites является PaintingBehaviour, но виджет не знает его как таковой.
Для отображения моего окна я использую Visitor, который называется ScreenVisitor.Когда вызывается посетитель, происходит следующее:
Первый виджет, WidgetScene, выполняет итерацию для каждого из своих виджетов и вызывает метод accept (Visitor * v).Затем каждый виджет принимает посетителя, а затем выполняет итерацию по своим дочерним элементам.
Например, это список объектов (в порядке, в котором он будет происходить), который посетитель должен будет принять.1008 *
Теперь моя проблема проста: я хочу, чтобы каждый виджет был нарисован на его родителе.Как бы вы поступили?Я пробовал с деревом, но у меня всегда одна и та же проблема: когда мне нужно подняться в иерархии (например, после отображения child3, когда мне нужно отобразить child4), я не знаю, как получитьправый родитель.
Я пишу на C ++, но эта проблема не зависит от языка.
У вас есть идеи?Заранее спасибо!