Как сделать чтобы imgui окно прилипло к курсору?

schtolz

Известный
Автор темы
111
66
Версия MoonLoader
.026-beta
Есть окно
Lua:
imgui.SetNextWindowPos(imgui.ImVec2(pox,poy),imgui.Cond.Always)
imgui.Begin("Окно",exit,imgui.WindowFlags.NoMove)
imgui.End
Есть функция которая перемещает это окно
Lua:
function()
        imgui.ShowCursor = true
        local x, y = getCursorPos()
        pox,poy = x,y
        if isKeyJustPressed(0x02) then
            settings.x = pox
            settings.y = poy
            moving.v = false
            imgui.ShowCursor = false
            json.save()
        end  
end
Почему при активации этой функции (естественно через бесконечный цикл через условие если moving.v = true) окно не прилипает к курсору?
 

schtolz

Известный
Автор темы
111
66
Lua:
imgui.SetNextWindowPos(imgui.ImVec2(pox,poy),imgui.Cond.FirstUseEver)
Так, ну оно и в imgui.Cond.Always работает. Я щас методом теста понял, что не перемещается оно потому, что не является активным окном.
Переключение moving.v происходит в другом имгуи окне. Как сделать активным окно?
Допустим выглядит это так
Lua:
function imgui.OnDrawFrame()
  imgui.SetNextWindowPos(imgui.ImVec2(pox1,poy1),imgui.Cond.Always)
  imgui.Begin("Окно1",exit,imgui.WindowFlags.NoMove)
  imgui.Chechbox('Перемещение',moving)
  imgui.End

  imgui.SetNextWindowPos(imgui.ImVec2(pox,poy),imgui.Cond.Always)
  imgui.Begin("Окно2",exit,imgui.WindowFlags.NoMove)
  imgui.End
end

function()
        imgui.ShowCursor = true
        local x, y = getCursorPos()
        pox,poy = x,y
        if isKeyJustPressed(0x02) then
            settings.x = pox
            settings.y = poy
            moving.v = false
            imgui.ShowCursor = false
            json.save()
        end  
end
Как сделать активным окно2, если через окно1 я включил функцию перемещения окна2
 
Последнее редактирование:

MLycoris

Режим чтения
Проверенный
1,801
1,831
Как сделать активным окно2, если через окно1 я включил функцию перемещения окна2
К сожалению, с этим не смогу помочь, яж на мимгуи пишу, щас проверил у себя, перемещалось только то окно, на котором был флаг
imgui.Cond.FirstUseEver, независимо от того активное оно или нет. Если тебе не критично, то советую на мимгуи перейти, примерчики подобных есть :)
 
  • Нравится
Реакции: Lance_Sterling