- 1,464
- 592
Описание: возвращает средние ширины кнопки в MImgui, устанавливая:
- ширины контекста окно;
- ширины отступ;
- количество кнопки.
Протестировано:
- Ширины отступы до 10;
- Количество кнопки до 10.
Зачем? Думаю это пригодится те кто не умеет ставить средние размеры. Я решил поделиться лайфхак. Если такой же уже есть - не увидел, мб косячил
Код:
Пример использования:
Допустим, если 3 кнопки и 1 строка
- ширины контекста окно;
- ширины отступ;
- количество кнопки.
Протестировано:
- Ширины отступы до 10;
- Количество кнопки до 10.
Зачем? Думаю это пригодится те кто не умеет ставить средние размеры. Я решил поделиться лайфхак. Если такой же уже есть - не увидел, мб косячил
Код:
Lua:
function imgui.GetEqualButtonWidth(count)
local available_width = imgui.GetContentRegionAvail().x
local spacing = imgui.GetStyle().ItemSpacing.x
return math.max(1, (available_width - spacing * (count - 1)) / count)
end
Пример использования:
Допустим, если 3 кнопки и 1 строка
Lua:
local button_width = imgui.GetEqualButtonWidth(3)
imgui.Button('Test1', imgui.ImVec2(button_width, 0)); imgui.SameLine()
imgui.Button('Test2', imgui.ImVec2(button_width, 0)); imgui.SameLine()
imgui.Button('Test3', imgui.ImVec2(button_width, 0))
Lua:
function imgui.GetEqualButtonWidth(count)
local available_width = imgui.GetContentRegionAvail().x
local spacing = imgui.GetStyle().ItemSpacing.x
return math.max(1, (available_width - spacing * (count - 1)) / count)
end
function imgui.CreateButton(count)
local button_width = imgui.GetEqualButtonWidth(count)
for i = 1, count do
imgui.Button('Test Width', imgui.ImVec2(button_width, 0))
if i ~= count then imgui.SameLine() end
end
end
function imgui.MassCreateButton(count)
for i = count, 1, -1 do -- перевернул в другую сторону
-- for i = 1, count do -- или так
imgui.CreateButton(i)
end
end
-- в фрейм имгуи
imgui.MassCreateButton(10)
Последнее редактирование: