kyrtion
Известный
- 900
- 321
Описание: возвращает средние ширины кнопки в MImgui, устанавливая:
- ширины контекста окно;
- ширины отступ;
- количество кнопки.
Протестировано:
- Ширины отступы до 10;
- Количество кнопки до 10.
Зачем? Думаю это пригодится те кто не умеет ставить средние размеры. Я решил поделиться лайфхак. Если такой же уже есть - не увидел, мб косячил
Код:
Пример использования:
Допустим, если 3 кнопки и 1 строка
- ширины контекста окно;
- ширины отступ;
- количество кнопки.
Протестировано:
- Ширины отступы до 10;
- Количество кнопки до 10.
Зачем? Думаю это пригодится те кто не умеет ставить средние размеры. Я решил поделиться лайфхак. Если такой же уже есть - не увидел, мб косячил
Код:
Lua:
function imgui.GetMiddleButtonX(count)
local width = imgui.GetWindowContentRegionWidth() -- ширины контекста окно
local space = imgui.GetStyle().ItemSpacing.x
return count == 1 and width or width/count - ((space * (count-1)) / count) -- вернется средние ширины по количеству
end
Пример использования:
Допустим, если 3 кнопки и 1 строка
Lua:
imgui.Button('Test1', imgui.ImVec2(imgui.GetMiddleButtonX(3), 0)); imgui.SameLine()
imgui.Button('Test2', imgui.ImVec2(imgui.GetMiddleButtonX(3), 0)); imgui.SameLine()
imgui.Button('Test3', imgui.ImVec2(imgui.GetMiddleButtonX(3), 0))
Lua:
function imgui.GetMiddleButtonX(count)
local width = imgui.GetWindowContentRegionWidth()
local space = imgui.GetStyle().ItemSpacing.x
return count == 1 and width or width/count - ((space * (count-1)) / count)
end
function imgui.CreateButton(count)
for i = 1, count do
imgui.Button('Test Width', imgui.ImVec2(imgui.GetMiddleButtonX(count), 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)