Как поменять расположение imgui.Combo?

Seaside_

Участник
Автор темы
64
2
Версия MoonLoader
.026-beta
Привет, хочу поменять расположение imgui.Combo, чтобы текст был слева, а выбор справа.

Lua:
imgui = require 'imgui'
samp = require 'samp.events'
encoding = require 'encoding'
encoding.defau = 'CP1251'
u8 = encoding.UTF8
active_menu = imgui.ImBool(false)
local combo_select = imgui.ImInt(0)

function main()
    while not isSampAvailable() do wait(0) end
    sampRegisterChatCommand('test', function() main_window_state.v = not main_window_state.v end)
    imgui.Process = false

    while true do
        wait(0)
        imgui.Process = main_window_state.v
        if main_window_state.v == false then
            imgui.Process = false
        end
    end
end

function imgui.OnDrawFrame()
    imgui.LockPlayer = false
    imgui.Begin(u8'Тест', main_window_state)
    imgui.Combo(u8'Тест выбор', combo_select, 'Test 1\0Test 2\0Test 3\0\0') --Хочу чтобы тест выбор был слева, а сам выбор с права и ещё чтобы на combobox была надпись "Выбрать тест...", но чтобы она не входила в список выбора.
    imgui.End()
end
 
Решение
Надеюсь я правильно тебя понял:
Lua:
imgui = require 'imgui'
samp = require 'samp.events'
encoding = require 'encoding'
encoding.defau = 'CP1251'
u8 = encoding.UTF8
active_menu = imgui.ImBool(false)
local combo_select = imgui.ImInt(0)

function main()
    while not isSampAvailable() do wait(0) end
    sampRegisterChatCommand('test', function()
        active_menu.v = not active_menu.v
    end)

    while true do wait(0)
        imgui.Process = active_menu.v
    end
end

function imgui.OnDrawFrame()
    if active_menu.v then
        local ex, ey = getScreenResolution() -- получение переменных высоты и ширины экрана
        imgui.SetNextWindowSize(imgui.ImVec2(300, 100), imgui.Cond.FirstUseEver) -- размер окна...

Cosmo

Известный
Друг
644
2,581
Надеюсь я правильно тебя понял:
Lua:
imgui = require 'imgui'
samp = require 'samp.events'
encoding = require 'encoding'
encoding.defau = 'CP1251'
u8 = encoding.UTF8
active_menu = imgui.ImBool(false)
local combo_select = imgui.ImInt(0)

function main()
    while not isSampAvailable() do wait(0) end
    sampRegisterChatCommand('test', function()
        active_menu.v = not active_menu.v
    end)

    while true do wait(0)
        imgui.Process = active_menu.v
    end
end

function imgui.OnDrawFrame()
    if active_menu.v then
        local ex, ey = getScreenResolution() -- получение переменных высоты и ширины экрана
        imgui.SetNextWindowSize(imgui.ImVec2(300, 100), imgui.Cond.FirstUseEver) -- размер окна
        imgui.SetNextWindowPos(imgui.ImVec2(ex / 2, ey / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5)) -- позиция окна (в середине)

        imgui.Begin(u8'Название окна', active_menu)
        imgui.Text('Select: ') -- Твой текст
        imgui.SameLine() -- Создаём следующий элемент на этой же строке
        imgui.Combo(u8'##ЭтотТекстНеВидно', combo_select, 'Test 1\0Test 2\0Test 3\0\0') -- Текст который идёт после ## не будет отображатся, что бы не было текста с двух сторон
        imgui.End()
    end
end
spL8sFl.png
 
  • Нравится
Реакции: barjik

Jesus McWood

Участник
76
33
Привет, хочу поменять расположение imgui.Combo, чтобы текст был слева, а выбор справа.

Lua:
imgui = require 'imgui'
samp = require 'samp.events'
encoding = require 'encoding'
encoding.defau = 'CP1251'
u8 = encoding.UTF8
active_menu = imgui.ImBool(false)
local combo_select = imgui.ImInt(0)

function main()
    while not isSampAvailable() do wait(0) end
    sampRegisterChatCommand('test', function() main_window_state.v = not main_window_state.v end)
    imgui.Process = false

    while true do
        wait(0)
        imgui.Process = main_window_state.v
        if main_window_state.v == false then
            imgui.Process = false
        end
    end
end

function imgui.OnDrawFrame()
    imgui.LockPlayer = false
    imgui.Begin(u8'Тест', main_window_state)
    imgui.Combo(u8'Тест выбор', combo_select, 'Test 1\0Test 2\0Test 3\0\0') --Хочу чтобы тест выбор был слева, а сам выбор с права и ещё чтобы на combobox была надпись "Выбрать тест...", но чтобы она не входила в список выбора.
    imgui.End()
end

Lua:
imgui.SetCursorPosX((imgui.GetWindowWidth() - 75) / 2) --Указан центр
imgui.Combo()