radiobutton

dmitry.karle

Известный
Автор темы
361
100
Версия MoonLoader
Другое
1682484328907.png

как сделать такое оформление? Подскажите пожалуйста)
 
Решение
Первый вариант:
1682929117052.png

Lua:
function imgui.ColoredRadioButtonBool(label, state, color)
    local back = imgui.ImVec4(color.x, color.y, color.z, color.w / 2)
    imgui.PushStyleColor(imgui.Col.CheckMark, color)
    imgui.PushStyleColor(imgui.Col.FrameBg, back)
    imgui.PushStyleColor(imgui.Col.FrameBgActive, back)
    imgui.PushStyleColor(imgui.Col.FrameBgHovered, back)
    local radioButton = imgui.RadioButtonBool(label, state)
    imgui.PopStyleColor(4)
    return radioButton
end
Второй вариант:
1682929071787.png

Lua:
function imgui.ColoredRadioButtonBool(label, state, color)
    local DL, p, size = imgui.GetWindowDrawList(), imgui.GetCursorScreenPos(), imgui.ImVec2(20, 20)
    local button = imgui.InvisibleButton('##radio_'..label...

dmitry.karle

Известный
Автор темы
361
100
nPOSsyTkExc.jpg
-помогите пожалуйста, середина белая)
Lua:
local clrs = {
            imgui.ImVec4(0.39, 0.39, 0.83, 1.00),
            imgui.ImVec4(0.98, 0.43, 0.26, 1.00),
            imgui.ImVec4(0.98, 0.43, 0.26, 0.40),
            imgui.ImVec4(0.98, 0.43, 0.26, 0.67),
        }

        imgui.SetCursorPosX(45) -- позволяет задать положение функции по горизнотали
        imgui.SetCursorPosY(540) -- позволяет задать положение функции по вертикали
        imgui.Text(fa.WAND_MAGIC_SPARKLES .. u8" Цвет темы:")
        imgui.SetCursorPosX(30) -- позволяет задать положение функции по горизнотали
        imgui.SetCursorPosY(560) -- позволяет задать положение функции по вертикали
        for i = 1, #tbStyle do
               imgui.PushStyleColor(imgui.Col.FrameBg, clrs[i])
               imgui.PushStyleColor(imgui.Col.FrameBgHovered, clrs[i])
               imgui.PushStyleColor(imgui.Col.FrameBgActive, clrs[i])

            if imgui.RadioButtonBool(u8"##тема"..i, config.settings.theme == i and false or true) then
                config.settings.theme = i
                inicfg.save(config, example)
                SwitchTheStyle(config.settings.theme)
            end

             if config.settings.theme == i then imgui.PopStyleColor() end
            imgui.SameLine()
        end
        imgui.PopStyleColor()
        imgui.PopStyleColor()
        imgui.PopStyleColor()

        SwitchTheStyle(config.settings.theme)
 
Последнее редактирование:

chapo

tg/inst: @moujeek
Всефорумный модератор
9,116
12,208
Первый вариант:
1682929117052.png

Lua:
function imgui.ColoredRadioButtonBool(label, state, color)
    local back = imgui.ImVec4(color.x, color.y, color.z, color.w / 2)
    imgui.PushStyleColor(imgui.Col.CheckMark, color)
    imgui.PushStyleColor(imgui.Col.FrameBg, back)
    imgui.PushStyleColor(imgui.Col.FrameBgActive, back)
    imgui.PushStyleColor(imgui.Col.FrameBgHovered, back)
    local radioButton = imgui.RadioButtonBool(label, state)
    imgui.PopStyleColor(4)
    return radioButton
end
Второй вариант:
1682929071787.png

Lua:
function imgui.ColoredRadioButtonBool(label, state, color)
    local DL, p, size = imgui.GetWindowDrawList(), imgui.GetCursorScreenPos(), imgui.ImVec2(20, 20)
    local button = imgui.InvisibleButton('##radio_'..label, size)
    DL:AddCircleFilled(imgui.ImVec2(p.x + size.x / 2, p.y + size.y / 2), size.x / 2, imgui.GetColorU32Vec4(imgui.ImVec4(color.x, color.y, color.z, 0.5)), 100)
    DL:AddCircleFilled(imgui.ImVec2(p.x + size.x / 2, p.y + size.y / 2), size.x / 2.7, imgui.GetColorU32Vec4(color), 100)
    if state then
        DL:AddCircle(imgui.ImVec2(p.x + size.x / 2, p.y + size.y / 2), size.x / 2 + 1, 0xCCffffff, 100, 2)
    end
    return button
end
 
  • Нравится
Реакции: dmitry.karle и histor

Vespan

loneliness
Проверенный
2,141
1,804