Давно меня мучали вопросы - как реализовать ООП на С.
И вот я, наконец, попробовал это сделать.
Пока есть несколько "классов":
окно (базовый класс, так как эта библиотека для интерфейса)
меню (потомок окна)
драйвер экрана (пока ZX обычный)
драйвера клавиатуры (PS2 и ZX)
Реализован событийный интерфейс. Стека окон пока что нет.
Демо окошек-менюшек тут: https://github.com/salextpuru/sdcc-n...libui/testui.c
Собственно, библиотека тут: https://github.com/salextpuru/sdcc-n...r/libsrc/libui
Не пинайте ногами, что всё крайне медленно и неоптимально. Я проверял принципы. Хотя, для многих вещей это уже годится - утилиты разные и проч.
Общие принципы:
Один класс - один файл.
Области видимости разграничены на private (с помощью static функций и переменных) и public.
Думаю, перспектива есть. Было бы время![]()




Ответить с цитированием
Размещение рекламы на форуме способствует его дальнейшему развитию 
