Навигационное меню мимгуи

$Mr.R1ch$

Активный
Автор темы
287
40
Версия MoonLoader
Другое
Пытаюсь сделать такую функцию, чтобы при нажатии на кнопку навигации, красился цвет. То есть к примеру я нажал на вторую кнопку, и её прозрачность поменялась (стала светлее), чтобы можно было понять в какой вкладе я нахожусь, пытался сделать но не получается. Как сделать подскажите?

Пример:
IMG_20240114_115110.jpg



Lua:
function colored_button_main(r, g, b)
    if tab == 1 then
        imgui.PushStyleColor(imgui.Col.Button, imgui.ImVec4(r / 255, g / 255, b / 255, 0.86))
        if imgui.Button(faicons('BARS') .. u8' Главное меню', imgui.ImVec2(520, 50)) then tab = 1 end
        imgui.PopStyleColor(1)
    else
    
        if imgui.Button(faicons('BARS') .. u8' Главное меню', imgui.ImVec2(520, 50)) then tab = 1 end
    end

Пытаюсь сделать такую функцию, чтобы при нажатии на кнопку навигации, красился цвет. То есть к примеру я нажал на вторую кнопку, и её прозрачность поменялась (стала светлее), чтобы можно было понять в какой вкладе я нахожусь, пытался сделать но не получается. Как сделать подскажите?

Пример:
IMG_20240114_115110.jpg



Lua:
function colored_button_main(r, g, b)
    if tab == 1 then
        imgui.PushStyleColor(imgui.Col.Button, imgui.ImVec4(r / 255, g / 255, b / 255, 0.86))
        if imgui.Button(faicons('BARS') .. u8' Главное меню', imgui.ImVec2(520, 50)) then tab = 1 end
        imgui.PopStyleColor(1)
    else
   
        if imgui.Button(faicons('BARS') .. u8' Главное меню', imgui.ImVec2(520, 50)) then tab = 1 end
    end
Это весь мой код, мб надо что то ещё вставить в свой код чтобы работало, не помню
 
Решение
Lua:
local currentTabIndex = 1
local tabs = {
    'Page 1',
    'Page 2',
    'Page 3'
}

-- frame
for index, name in ipairs(tabs) do
    imgui.PushStyleColor(imgui.Col.Button, index == currentTabIndex and imgui.ImVec4(0, 1, 0, 1) or imgui.ImVec4(1, 0, 0, 1))
    if imgui.Button(('%s##tab:%d'):format(name, index)) then
        currentTabIndex = index
    end
    imgui.PopStyleColor()
end

if currentTabIndex == 1 then
    imgui.Text('открыта первая вкладка')
end

chapo

чопа сребдс // @moujeek
Модератор
8,934
11,701
Lua:
local currentTabIndex = 1
local tabs = {
    'Page 1',
    'Page 2',
    'Page 3'
}

-- frame
for index, name in ipairs(tabs) do
    imgui.PushStyleColor(imgui.Col.Button, index == currentTabIndex and imgui.ImVec4(0, 1, 0, 1) or imgui.ImVec4(1, 0, 0, 1))
    if imgui.Button(('%s##tab:%d'):format(name, index)) then
        currentTabIndex = index
    end
    imgui.PopStyleColor()
end

if currentTabIndex == 1 then
    imgui.Text('открыта первая вкладка')
end
 

$Mr.R1ch$

Активный
Автор темы
287
40
Lua:
local currentTabIndex = 1
local tabs = {
    'Page 1',
    'Page 2',
    'Page 3'
}

-- frame
for index, name in ipairs(tabs) do
    imgui.PushStyleColor(imgui.Col.Button, index == currentTabIndex and imgui.ImVec4(0, 1, 0, 1) or imgui.ImVec4(1, 0, 0, 1))
    if imgui.Button(('%s##tab:%d'):format(name, index)) then
        currentTabIndex = index
    end
    imgui.PopStyleColor()
end

if currentTabIndex == 1 then
    imgui.Text('открыта первая вкладка')
end
Спасибо!