Закрытие и выполнение действия кнопки в mimgui

турбодизельный унитаз2012

Участник
Автор темы
127
9
Версия MoonLoader
.026-beta
Здарова всем.
Короче, у меня такая проблемка.
Как сделать так, чтобы при нажатии на кнопку, выполнялась команда и закрывался сам диалог mimgui?

214041-88518f3da8604e6b6818fc73fc52d439.jpg

Code:
Lua:
local imgui = require 'mimgui'
local encoding = require 'encoding'
encoding.default = 'CP1251'
local u8 = encoding.UTF8

local WinState = imgui.new.bool()

local tab = 1 -- в этой переменной будет хранится номер открытой вкладки

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(1250, 420), imgui.Cond.Always)
    imgui.Begin(u8'Правила сервера', WinState, imgui.WindowFlags.NoResize)
    for numberTab,nameTab in pairs({'Правила выдачи наказаний','Правила чата','Правила для гос','Правила для гетто','Правила для мафий','Правила випки'}) do -- создаём и парсим таблицу с названиями будущих вкладок
        if imgui.Button(u8(nameTab), imgui.ImVec2(210, 25)) then -- 2ым аргументом настраивается размер кнопок (подробнее в гайде по мимгуи)
            tab = numberTab -- меняем значение переменной tab на номер нажатой кнопки
        end
    end
    imgui.SetCursorPos(imgui.ImVec2(240, 30)) -- [Для декора] Устанавливаем позицию для чайлда ниже
    if imgui.BeginChild('Name##'..tab, imgui.ImVec2(980, 410), true) then -- [Для декора] Создаём чайлд в который поместим содержимое
        if tab == 1 then
            imgui.Text(u8'text')
            if imgui.Button(u8'Посмотреть стандартный диалог с правилами') then
                sampSendChat('/command')
            end
        elseif tab == 2 then
            imgui.Text(u8'text')
            if imgui.Button(u8'Посмотреть стандартный диалог с правилами') then
                sampSendChat('/command')
            end
        elseif tab == 3 then
            imgui.Text(u8'text')
            if imgui.Button(u8'Посмотреть стандартный диалог с правилами') then
                sampSendChat('/command')
            end
            elseif tab == 4 then -- если значение tab == 2
            -- == Содержимое вкладки №2
            imgui.Text(u8'text')
            if imgui.Button(u8'Посмотреть стандартный диалог с правилами') then
                sampSendChat('/command')
            end
        elseif tab == 5 then
            imgui.Text(u8'text')
            if imgui.Button(u8'Посмотреть стандартный диалог с правилами') then
                sampSendChat('/command')
            end
        elseif tab == 6 then --
            imgui.Text(u8'text')
            if imgui.Button(u8'Посмотреть стандартный диалог с правилами') then
                sampSendChat('/command')
            end
        end
        imgui.EndChild()
    end
    imgui.End()
end)

function main()
    sampRegisterChatCommand('cmd', function() WinState[0] = not WinState[0] end)
    wait(-1)
end

Буду очень благодарен ответу.
 
Последнее редактирование: