Управление размером и положением control-ов предполагается делать через контейнеры и control-лы spacer-ы, которые будут разделять control-лы. Также, если control не будет расположен в контейнере, то его положение будет задаваться абсолютными координатами.Ведётся ли разработка лэйаутов в libGUI? (просто если нет, я ей наверное займусь)
vkos, у тебя есть опыт разработки GUI библиотек?
Да, описка вышла.И кроме того, ширина - это всё-таки width, а не wigth.
finit-ограничивать.Слово finition означает finishing?
Скорее всего ты используешь старую версию библиотеки и возможно старую версию примеров. У меня таких глюков давно нет(после буферизации некоторых control-ов).PS: в примере main есть глюк - при перемещении области со скроллами остаются следы на предыдущем месте, которые исчезают при полной перерисовке)
Теперь о главном.
Возможно у кого-то возник вопрос, почему дальше не пишутся control-ы и почему появилась пауза в разработке.
Архитектура библиотеки libGUI(так сказать её движок) до конца не сформирован. Все control-ы, которые есть в библиотеке, я сделал только для проверки некоторых возможностей движка. Сейчас в развитии движка наметился следующий этап. Как уже писал в этой теме Diamond, необходимо, чтобы почти у каждого control-а было своё окно, куда он отрисовывает себя (некоторые control-ы могут не иметь окон, потому что они просто будут им не нужны). В KolibriOS один поток может иметь только одно окно. Пока не будем обращать внимания, что количество потоков в KolibriOS ограничено цифрой 255.
Для управления control-окнами необходимо эффективно управлять потоками и соответственно их окнами. Необходим оконный стек с выравненными по глубине окнами. Должно быть окно, которые всегда будет ниже всех(для фона десктопа и иконок), также самое верхнее окно, которое всегда будет поверх остальных(самым верхним окном могут быть разные окна). Ну и между ними окна выровненные по глубине. При изменении положения окна, которое не является верхним, нужно восстанавливать фон на старом месте не перерисовкой всех нижележащих по глубине окон а восстановлением фона с использованием буферизации. В KolibriOS активированное окно автоматически становиться как бы самым верхним по глубине. То есть переместить окно, не сделав его автоматически самым верхним - невозможно.
В общем придётся мне делать control-окна исходя из того, что сейчас есть в ядре, а потом уже думать как сделать правильную реализацию работы с окнами. Конечно нужно посмотреть на реализацию в других системах.
Никуда не денешься, но придётся попробовать изменить действующий оконный менеджер в ядре(естественно советуясь со всеми разработчиками KolibriOS). Пока что я занят другими задачами(а задач у меня предостаточно), как только смогу - переключусь на libGUI и оконную систему.