Как открыть окно Imgui на месте прошлого окна

Lill_Chich

Участник
Автор темы
73
5
Версия MoonLoader
.026-beta
Я хочу сделать Чтобы слева были кнопки как в UltraFuck и чтобы если нажать на одну из этих кнопок открылось окно на прошлом месте
 
Решение
Я хочу сделать Чтобы слева были кнопки как в UltraFuck и чтобы если нажать на одну из этих кнопок открылось окно на прошлом месте
Это BeginChild, при этом в настройках темы имгуи прозрачность WindowsBg выкручен на минимум (вот так я понял).

Это параметр, прозрачность которого нужно выкрутить на Минимум.
Код:
colors[clr.WindowBg] = ImVec4(0.00, 0.00, 0.00, 0.00)

Примерный код, как делаю я =)
Lua:
--  ЗДЕСЬ КОД окна --
imgui.BeginChild(u8'##name', imgui.ImVec2(150,300), true)
    if imgui.Button(u8'Кнопка 1', imgui.ImVec2(130,40)) then
        menu = 1
    end
    if imgui.Button(u8'Кнопка 2', imgui.ImVec2(130,40)) then
        menu = 2
    end
imgui.EndChild
imgui.SameLine()
imgui.BeginChild(u8'##name2', imgui.ImVec2(150,300)...

Mico

Активный
246
46
Я хочу сделать Чтобы слева были кнопки как в UltraFuck и чтобы если нажать на одну из этих кнопок открылось окно на прошлом месте
Это BeginChild, при этом в настройках темы имгуи прозрачность WindowsBg выкручен на минимум (вот так я понял).

Это параметр, прозрачность которого нужно выкрутить на Минимум.
Код:
colors[clr.WindowBg] = ImVec4(0.00, 0.00, 0.00, 0.00)

Примерный код, как делаю я =)
Lua:
--  ЗДЕСЬ КОД окна --
imgui.BeginChild(u8'##name', imgui.ImVec2(150,300), true)
    if imgui.Button(u8'Кнопка 1', imgui.ImVec2(130,40)) then
        menu = 1
    end
    if imgui.Button(u8'Кнопка 2', imgui.ImVec2(130,40)) then
        menu = 2
    end
imgui.EndChild
imgui.SameLine()
imgui.BeginChild(u8'##name2', imgui.ImVec2(150,300), true)
    if menu == 1 then
        imgui.Text(u8'Окно 1')
    end
    if menu == 2 then
        imgui.Text(u8'Окно 2')
    end
imgui.EndChild

Надеюсь я тебя понял))
 

santeera

Участник
52
2
В цветах
ищи типо таких строчек
либо CTRL+f и WindowBg
Screenshot_5.png
 

Lill_Chich

Участник
Автор темы
73
5
Чо здесь не так:
require 'lib.moonloader'

local imgui = require('imgui')
local encoding = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8

function apply_custom_style()
    imgui.SwitchContext()
    local style = imgui.GetStyle()
    local colors = style.Colors
    local clr = imgui.Col
    local ImVec4 = imgui.ImVec4
    local ImVec2 = imgui.ImVec2
    style.WindowPadding = ImVec2(15, 15)
    style.WindowRounding = 15.0
    style.FramePadding = ImVec2(5, 5)
    style.ItemSpacing = ImVec2(12, 8)
    style.ItemInnerSpacing = ImVec2(8, 6)
    style.IndentSpacing = 25.0
    style.ScrollbarSize = 15.0
    style.ScrollbarRounding = 15.0
    style.GrabMinSize = 15.0
    style.GrabRounding = 7.0
    style.ChildWindowRounding = 8.0
    style.FrameRounding = 6.0
  
 
    colors[clr.Text] = ImVec4(0.95, 0.96, 0.98, 1.00)
    colors[clr.TextDisabled] = ImVec4(0.36, 0.42, 0.47, 1.00)
    colors[clr.WindowBg] = ImVec4(0.00, 0.00, 0.00, 0.00)
    colors[clr.ChildWindowBg] = ImVec4(0.15, 0.18, 0.22, 1.00)
    colors[clr.PopupBg] = ImVec4(0.08, 0.08, 0.08, 0.94)
    colors[clr.Border] = ImVec4(0.43, 0.43, 0.50, 0.50)
    colors[clr.BorderShadow] = ImVec4(0.00, 0.00, 0.00, 0.00)
    colors[clr.FrameBg] = ImVec4(0.20, 0.25, 0.29, 1.00)
    colors[clr.FrameBgHovered] = ImVec4(0.12, 0.20, 0.28, 1.00)
    colors[clr.FrameBgActive] = ImVec4(0.09, 0.12, 0.14, 1.00)
    colors[clr.TitleBg] = ImVec4(0.09, 0.12, 0.14, 0.65)
    colors[clr.TitleBgCollapsed] = ImVec4(0.00, 0.00, 0.00, 0.51)
    colors[clr.TitleBgActive] = ImVec4(0.08, 0.10, 0.12, 1.00)
    colors[clr.MenuBarBg] = ImVec4(0.15, 0.18, 0.22, 1.00)
    colors[clr.ScrollbarBg] = ImVec4(0.02, 0.02, 0.02, 0.39)
    colors[clr.ScrollbarGrab] = ImVec4(0.20, 0.25, 0.29, 1.00)
    colors[clr.ScrollbarGrabHovered] = ImVec4(0.18, 0.22, 0.25, 1.00)
    colors[clr.ScrollbarGrabActive] = ImVec4(0.09, 0.21, 0.31, 1.00)
    colors[clr.ComboBg] = ImVec4(0.20, 0.25, 0.29, 1.00)
    colors[clr.CheckMark] = ImVec4(0.28, 0.56, 1.00, 1.00)
    colors[clr.SliderGrab] = ImVec4(0.28, 0.56, 1.00, 1.00)
    colors[clr.SliderGrabActive] = ImVec4(0.37, 0.61, 1.00, 1.00)
    colors[clr.Button] = ImVec4(0.20, 0.25, 0.29, 1.00)
    colors[clr.ButtonHovered] = ImVec4(0.28, 0.56, 1.00, 1.00)
    colors[clr.ButtonActive] = ImVec4(0.06, 0.53, 0.98, 1.00)
    colors[clr.Header] = ImVec4(0.20, 0.25, 0.29, 0.55)
    colors[clr.HeaderHovered] = ImVec4(0.26, 0.59, 0.98, 0.80)
    colors[clr.HeaderActive] = ImVec4(0.26, 0.59, 0.98, 1.00)
    colors[clr.ResizeGrip] = ImVec4(0.26, 0.59, 0.98, 0.25)
    colors[clr.ResizeGripHovered] = ImVec4(0.26, 0.59, 0.98, 0.67)
    colors[clr.ResizeGripActive] = ImVec4(0.06, 0.05, 0.07, 1.00)
    colors[clr.CloseButton] = ImVec4(0.40, 0.39, 0.38, 0.16)
    colors[clr.CloseButtonHovered] = ImVec4(0.40, 0.39, 0.38, 0.39)
    colors[clr.CloseButtonActive] = ImVec4(0.40, 0.39, 0.38, 1.00)
    colors[clr.PlotLines] = ImVec4(0.61, 0.61, 0.61, 1.00)
    colors[clr.PlotLinesHovered] = ImVec4(1.00, 0.43, 0.35, 1.00)
    colors[clr.PlotHistogram] = ImVec4(0.90, 0.70, 0.00, 1.00)
    colors[clr.PlotHistogramHovered] = ImVec4(1.00, 0.60, 0.00, 1.00)
    colors[clr.TextSelectedBg] = ImVec4(0.25, 1.00, 0.00, 0.43)
    colors[clr.ModalWindowDarkening] = ImVec4(1.00, 0.98, 0.95, 0.73)
end

local window = imgui.ImBool(false)

function main()
    while not isSampAvailable() do wait(200) end
    sampRegisterChatCommand('proverka', proverka)
    imgui.Process = false
    window.v = false  --show window
    while true do
        wait(0)
        imgui.Process = window.v
    end

end

function imgui.OnDrawFrame()
    if window.v then
        imgui.SetNextWindowPos(imgui.ImVec2(700.0, 700.0), imgui.Cond.FirstUseEver)
        imgui.SetNextWindowSize(imgui.ImVec2(280.0, 70.0), imgui.Cond.FirstUseEver)
        imgui.Begin('Proverka', window)
        imgui.BeginChild(u8'##name', imgui.ImVec2(150,300), true)
        if imgui.Button(u8'Кнопка 1', imgui.ImVec2(130,40)) then
            menu = 1
        end
        if imgui.Button(u8'Кнопка 2', imgui.ImVec2(130,40)) then
            menu = 2
        end
        imgui.EndChild()
        imgui.SameLine()
        imgui.BeginChild(u8'##name2', imgui.ImVec2(150,300), true)
        if menu == 1 then
            imgui.Text(u8'Окно 1')
        end
        if menu == 2 then
            imgui.Text(u8'Окно 2')
        end
        imgui.EndChild()
    end
end

function proverka()
    window.v = not window.v
    imgui.Process = window.v
end

Ошибку нашёл.
 
Последнее редактирование:
  • Нравится
Реакции: Respound и Mico