Создание инкапсулированных GUI-компонентов

Операционная система QNX (в реализациях RTP 6.XX) содержит в своём составе инструментарий визуального проектирования приложений Photon Application Builder (PhAB). При всей общей приемлемости для высокопроизводительной разработки приложений для OS QNX и её графической оболочки Photon, технология использования PhAB (по крайней мере, так, как она описана в технической документации QNX) вызывает несколько вопросов:

Фирма разработчик QSSL ориентирована, в первую очередь, на использование классического языка C. Это обстоятельство часто объясняют (при чём объясняет не сама QSSL, а сторонние обозреватели) ориентацией системы на построение встроенных (embedded) систем, и, как следствие на достижение максимальной производительности результирующих приложений.

С этим утверждением нельзя согласиться, и можно отнести его только к бытующим “народным заблуждениям”. Приложения, созданные на C++ практически ни в чём не уступают по производительности приложениям C. (Редким исключением является вызов виртуальных функций членов классов, но и здесь одна избыточная косвенность вызова может не приниматься в расчёт ввиду своей малости). По всем нюансам сравнительных производительностей этих языков, я отсылаю всех заинтересовавшихся непосредственно к анализу, произведённому автором C++ Бьярном Страуструпом, например, в двух работах, посвящённых не обучению C++, а разъяснению того, что, почему и как сделано [1,2].

Более того, GNU компилятор GCC, используемый в QNX с 2000 года, с одинаковой лёгкостью оперирует как с C, так и с C++. Приверженность QSSL классическому C (во всех их примерах использования и фрагментах кода) можно отнести только к историческим традициям фирмы с 20-ти летней историей.

И система QNX, и её графическая подсистема Photon, и GUI приложения, создаваемые с помощью PhAB, в высшей степени модульные, детерминированы и объектны. “Объектны” не в смысле используемого инструмента, а в смысле организации и функционирования. Поэтому, вдвойне огорчительно отсутствие в PhAB средств построения некоторых “крупноблочных” компонент, инкапсулирующих в себе GUI отображения и программный код, служащих повторно используемым строительным материалом для приложений.

Итак, задача: создание графических интерфейсных GUI компонент, используя IDE PhAB в операционной системе QNX RTP 6.x., с ориентацией на C++. Такие компоненты должны позволять описывать достаточно объёмные графические объекты (система связных окон, мнемосхема управляемого устройства и т.д.) с достаточно сложным поведением, и обеспечивать: Создание динамических наборов (массивы, списки) единообразных пользовательских компонент в приложении;
Встраиваемость (переносимость) в новые приложения компонент, подготовленных в ходе более ранних работ;
Повторную используемость программного кода.