mimgui | второе окно

akitann

Новичок
Автор темы
9
0
Версия SA-MP
  1. 0.3.7 (R1)
  2. 0.3.7-R3
как мне создать и открыть второе окно при помощи первого ? т.е. создал первое окно, а в нем кнопка. и мне нужно что бы при нажатии на эту кнопку, открывалось второе и закрывалось первые окна
 

cord

Хватит спать на мне
Проверенный
572
470
Lua:
local imgui = require 'mimgui'
local WinState, show = imgui.new.bool(), imgui.new.bool()
local changepos = false -- статус редактирования позиции окошка
local posX, posY = 500, 500 -- задаём начальную позицию второго окошка

imgui.OnFrame(function() return show[0] and not isGamePaused() end,
function()
    imgui.SetNextWindowPos(imgui.ImVec2(posX, posY), imgui.Cond.Always, imgui.ImVec2(1, 1))
    imgui.SetNextWindowSize(imgui.ImVec2(255, 90), imgui.Cond.Always)
    imgui.Begin('Window Two', show, imgui.WindowFlags.NoDecoration, imgui.WindowFlags.AlwaysAutoResize, imgui.WindowFlags.NoSavedSettings, imgui.WindowFlags.NoMove, imgui.WindowFlags.NoInputs)
    imgui.Text('One')
    imgui.Text('Two')
    imgui.End()
end).HideCursor = true -- HideCursor отвечает за то, чтобы курсор не показывался

imgui.OnFrame(function() return WinState[0] end,
    function(player)
        imgui.SetNextWindowPos(imgui.ImVec2(500, 500), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
        imgui.SetNextWindowSize(imgui.ImVec2(245, 280), imgui.Cond.Always)
        imgui.Begin('Window One', WinState, imgui.WindowFlags.NoResize)
        if imgui.Button('Open new window') then -- вкл/выкл второе окошко
            show[0] = not show[0]
            WinState[0] = not WinState[0]
        end
        if imgui.Button('Change pos') then -- нажав на эту кнопку, можно поменять позицию окна
            changepos = true
        end
        imgui.End()
    end
)
function main()
    sampRegisterChatCommand('cmd', function() WinState[0] = not WinState[0] end)
    while true do wait(0)
        if changepos then -- редактирование позиции окошка
            posX, posY = getCursorPos()
            if isKeyJustPressed(1) then -- если нажата ЛКМ, то сохраняем позицию
                changepos = false
                return posX,posY
            end
        end
    end
end
А вообще посмотри эту тему:
 
  • Нравится
Реакции: akitann и MLycoris

chromiusj

Kommando-Leiteinheit Bioresonanztechnik-Replika
Модератор
5,500
3,828
просто добавь после 22 строки выключение первого окна
 
  • Нравится
Реакции: akitann и MLycoris