Получение центра в BeginChild

ca4tuk

Известный
Автор темы
166
44
Версия MoonLoader
.026-beta
ку, ищу способ нахождения координаты центра BeginChild для соответственного отображения объекта по центру.
знаю про этот способ, но он работает только на центр всего окна, поэтому в идеале найти аналогичную шляпу:
Lua:
imgui.SetCursorPosX((imgui.GetWindowWidth() - imgui.CalcTextSize(""..text).x) / 2)
спасибо!
 
Решение
ку, ищу способ нахождения координаты центра BeginChild для соответственного отображения объекта по центру.
знаю про этот способ, но он работает только на центр всего окна, поэтому в идеале найти аналогичную шляпу:
Lua:
imgui.SetCursorPosX((imgui.GetWindowWidth() - imgui.CalcTextSize(""..text).x) / 2)
спасибо!
Так если тебе нужно делать не по ширине всего окна, а по ширине child то просто укажи значение, которые ты используешь при его создании. Только не забудь про отступы. И прибавь к конечному результату положение child относительно окна. При центровке по окну это делать не требуется так как в нашем распоряжении всё пространство.

Lua:
--Пусть наш child создавался с шириной 300 пикселей,
--а параметр внутренних отступов для окон...

Tema05

Известный
1,474
439
ку, ищу способ нахождения координаты центра BeginChild для соответственного отображения объекта по центру.
знаю про этот способ, но он работает только на центр всего окна, поэтому в идеале найти аналогичную шляпу:
Lua:
imgui.SetCursorPosX((imgui.GetWindowWidth() - imgui.CalcTextSize(""..text).x) / 2)
спасибо!
Так если тебе нужно делать не по ширине всего окна, а по ширине child то просто укажи значение, которые ты используешь при его создании. Только не забудь про отступы. И прибавь к конечному результату положение child относительно окна. При центровке по окну это делать не требуется так как в нашем распоряжении всё пространство.

Lua:
--Пусть наш child создавался с шириной 300 пикселей,
--а параметр внутренних отступов для окон WindowPadding равен 5
imgui.SetCursorPosX(imgui.GetCursorPosX() + (290 - imgui.CalcTextSize(""..text).x) / 2)
Небольшая ремарка. Функцией imgui.GetCursorPosX() мы получаем не положение child. Для этого нужно было бы её значение записывать в переменную до создания child. Эта функция даёт нам положение курсора уже внутри child. Поэтому и нужно вычитать внутренние отступы которые с 2 сторон.
 
  • Нравится
Реакции: ca4tuk

ca4tuk

Известный
Автор темы
166
44
Так если тебе нужно делать не по ширине всего окна, а по ширине child то просто укажи значение которые ты используешь при создании. Только не забудь про отступы. И прибавь к конечному результату положение child относительно окна.

Код:
--Пусть наш child создавался с шириной 300 пикселей,
--а параметр внутренних отступов для окон WindowPadding равен 5
imgui.SetCursorPosX(imgui.GetCursorPosX() + (290 - imgui.CalcTextSize(""..text).x) / 2)
спасибо брат, ты немного опоздал, но в будущем понадобится
 
  • Нравится
Реакции: Tema05