Layout manager
Posted: Tue Dec 15, 2015 4:26 pm
Библиотека реализующая примитивный менеджер разметки.
Позволяет создавать как статический так и "резиновый" дизайн окна с вытягивающимися и плавающими элементами окна.
Описание API:
Пример создания разметки
Позволяет создавать как статический так и "резиновый" дизайн окна с вытягивающимися и плавающими элементами окна.
Описание API:
Code: Select all
layout_set_margin -- установить размер отступов между элементами (глобально)
container_create -- создать контейнер. базируется на структуре виджета (базовая структура для создания пользовательских контейнеров)
container_add_child -- добавляет виджет/контейнер в другой контейнер
container_free -- освобождает память структуры контейнера
vcontainer_create -- создать контейнер с вертикальной упаковкой дочерних элементов (столбцами)
hcontainer_create -- создать контейнер с горизонтальной упаковкой дочерних элементов (рядами)
widget_create -- создать виджет (базовая структура для создания пользовательских виджетов)
widget_set_size -- установить размер
widget_invalidate -- перерисовать виджет/контейнер
widget_free -- освобождает память структуры
button_create -- создать виджет-кнопку
button_free -- освобождает память структуры
spacer_create -- создать пустой виджет-разделитель для выравнивания элементов
spacer_free -- освобождает память структуры
Code: Select all
mainLayout = vcontainer_create();
mainLayout->expand = EXPAND_HORIZONTAL | EXPAND_VERTICAL;
t_Container *h1 = hcontainer_create();
h1->expand = EXPAND_HORIZONTAL | EXPAND_VERTICAL;
t_Widget *btn1 = button_create("Button 1", 101, 110, 25, &theme);
btn1->alignment = ALIGNMENT_LEFT;
container_add_child(h1, btn1);
t_Widget *btn2 = button_create("Button 2", 102, 110, 25, &theme);
btn2->alignment = ALIGNMENT_CENTER;
container_add_child(h1, btn2);
t_Widget *btn3 = button_create("Button 3", 103, 110, 25, &theme);
btn3->alignment = ALIGNMENT_RIGHT;
container_add_child(h1, btn3);
container_add_child(h1, spacer_create());
t_Widget *btn4 = button_create("Exit", 1, 100, 25, &theme);
btn4->expand = EXPAND_HORIZONTAL;
container_add_child(h1, btn4);
container_add_child(mainLayout, h1);