[mimgui] добавочное окно

Tema05

Известный
Автор темы
1,471
435
Версия MoonLoader
.026-beta
Мне нужно было чтобы при нажатии на кнопку чтобы открывалось ещё 1 окно поменьше. Разумеется я сразу захотел использовать popup но возникла проблема в том что мне не нужно чтобы окно не пропадало при нажатии в другую область. Я захотел попробовать popupmodal но там возникла проблема с тем что игрок и клавиши намертво блокируются пока открыто это окно. Далее я подумал рисовать его через drawlist но тут возникла проблема с тем что окно может появляться за пределами imgui и следовательно там рендеринг не работает. Остаётся только создавать новое полноценное окно imgui которое будет координатно прикреплено к основному (оно не должно двигаться так что это будет просто), но этот способ мне не нравится.

Так что я хочу узнать если ли способ сделать так чтобы popup не пропадал при нажатии в другую область или как сделать так чтобы popupmodal не блокировал нажатия и персонажа?
 
Решение
Можно просто новое окно создавать, а не imgui.Popup
Lua:
local testwindow = imgui.new.bool(false)

local otherFrame = imgui.OnFrame(
function() return testwindow[0] end,
function(self)
    imgui.SetNextWindowPos(imgui.ImVec2(500, 500), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
    imgui.SetNextWindowSize(imgui.ImVec2(100, 200), imgui.Cond.FirstUseEver)
    imgui.Begin('Test window', testwindow, imgui.WindowFlags.NoDecoration + imgui.WindowFlags.NoNav) -- либо флаги которые нужны
    imgui.Text('kek')
    imgui.End()
end)

-- в основном frame
if imgui.Button('test') then
    testwindow[0] = not testwindow[0]
end

PanSeek

t.me/dailypanseek
Всефорумный модератор
908
1,775
Можно просто новое окно создавать, а не imgui.Popup
Lua:
local testwindow = imgui.new.bool(false)

local otherFrame = imgui.OnFrame(
function() return testwindow[0] end,
function(self)
    imgui.SetNextWindowPos(imgui.ImVec2(500, 500), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
    imgui.SetNextWindowSize(imgui.ImVec2(100, 200), imgui.Cond.FirstUseEver)
    imgui.Begin('Test window', testwindow, imgui.WindowFlags.NoDecoration + imgui.WindowFlags.NoNav) -- либо флаги которые нужны
    imgui.Text('kek')
    imgui.End()
end)

-- в основном frame
if imgui.Button('test') then
    testwindow[0] = not testwindow[0]
end
 
  • Нравится
Реакции: James Saula

Tema05

Известный
Автор темы
1,471
435
Можно просто новое окно создавать, а не imgui.Popup
Lua:
local testwindow = imgui.new.bool(false)

local otherFrame = imgui.OnFrame(
function() return testwindow[0] end,
function(self)
    imgui.SetNextWindowPos(imgui.ImVec2(500, 500), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
    imgui.SetNextWindowSize(imgui.ImVec2(100, 200), imgui.Cond.FirstUseEver)
    imgui.Begin('Test window', testwindow, imgui.WindowFlags.NoDecoration + imgui.WindowFlags.NoNav) -- либо флаги которые нужны
    imgui.Text('kek')
    imgui.End()
end)

-- в основном frame
if imgui.Button('test') then
    testwindow[0] = not testwindow[0]
end
Здравствуйте сударь, не соизволите ли Вы милейший прочитать до конца моё сообщение?
Остаётся только создавать новое полноценное окно imgui которое будет координатно прикреплено к основному (оно не должно двигаться так что это будет просто), но этот способ мне не нравится.

Так что я хочу узнать если ли способ сделать так чтобы popup не пропадал при нажатии в другую область или как сделать так чтобы popupmodal не блокировал нажатия и персонажа?
 

PanSeek

t.me/dailypanseek
Всефорумный модератор
908
1,775
Здравствуйте сударь, не соизволите ли Вы милейший прочитать до конца моё сообщение?
при нажатии на кнопку чтобы открывалось ещё 1 окно
Окно и imgui.Popup, вроде бы разные вещи, может я и ошибаюсь (хотя по логике, что там окно, что там окно).
Сделать логику для окна и повесить нужные флаги, если BeginPopupModal, то тоже есть флаги, но я ими не занимался.

Возможно c этим что, но это не WindowFlags, а SelectableFlags, не разбирался, стоило бы наверное промолчать, но если вдруг поможет, то хотя бы вот:
Screenshot_13.png


P.S. Я вроде понял что нужно, но думаю тебе не понравится такое решение, я не сталкивался с таким и думаю не столкнусь ибо не вижу в этом применений.
P.S.S. Извиняюсь за свой тупизм, если так можно это назвать😶
 
  • Нравится
Реакции: Tema05 и James Saula

Tema05

Известный
Автор темы
1,471
435
Окно и imgui.Popup, вроде бы разные вещи, может я и ошибаюсь (хотя по логике, что там окно, что там окно).
Сделать логику для окна и повесить нужные флаги, если BeginPopupModal, то тоже есть флаги, но я ими не занимался.

Возможно c этим что, но это не WindowFlags, а SelectableFlags, не разбирался, стоило бы наверное промолчать, но если вдруг поможет, то хотя бы вот:
Посмотреть вложение 96987

P.S. Я вроде понял что нужно, но думаю тебе не понравится такое решение, я не сталкивался с таким и думаю не столкнусь ибо не вижу в этом применений.
P.S.S. Извиняюсь за свой тупизм, если так можно это назвать😶
Всевозможные флаги я тоже испробовал ещё до написания темы и они не помогло. Поиск в оригинальной документации тоже не помог. Я решил что буду юзать Popup и пожертвую наличием анимации сворачивая.