подобие заголовка для Child

optimal user

Известный
Автор темы
107
6
Версия MoonLoader
.026-beta
imgui.BeginChild("Info", imgui.ImVec2(125, 220), true)
Хочу чтобы по мимо обводки, также было название видно, например как TitleBar обычного окна
Есть какие-то способы реализовать подобное на lua?

Вот что-то подобное мне хотелось бы реализовать

yzYXmg9.png
 
Последнее редактирование:

Hinаta

Известный
777
363
mimgui
Lua:
local imgui = require('mimgui')
local ImVec4 = imgui.ImVec4
local ImVec2 = imgui.ImVec2
local window = imgui.new.bool(true)

local main_frame = imgui.OnFrame(function() return window[0] end,
    function(open)
        imgui.SetNextWindowSize(ImVec2(700, 700))
        imgui.Begin('##', window, imgui.WindowFlags.NoTitleBar)
        imgui.PushStyleColor(imgui.Col.Border, ImVec4(1, 0.25, 0.1, 1))
        imgui.GetStyle().ChildRounding = 8
        local DL = imgui.GetWindowDrawList()
        local p = imgui.GetWindowPos()
        DL:AddRectFilled(ImVec2(p.x + 9, p.y + 9), ImVec2(p.x + 357, p.y + 25),
            imgui.ColorConvertFloat4ToU32(ImVec4(1, 0.25, 0.1, 1)), 8)
        DL:AddRectFilled(ImVec2(p.x + 9, p.y + 15), ImVec2(p.x + 357, p.y + 25),
            imgui.ColorConvertFloat4ToU32(ImVec4(1, 0.25, 0.1, 1)))
        imgui.BeginChild('##1', ImVec2(350, 350), true)
        imgui.SetCursorPos(ImVec2(165, 0))
        imgui.Text('Title')
        imgui.EndChild()
        imgui.PopStyleColor()
        imgui.End()
    end
)

uuvL9Zv.png
 
  • Нравится
Реакции: MrDorlik

xColorized

Известный
1,109
486
mimgui
Lua:
local imgui = require('mimgui')
local ImVec4 = imgui.ImVec4
local ImVec2 = imgui.ImVec2
local window = imgui.new.bool(true)

local main_frame = imgui.OnFrame(function() return window[0] end,
    function(open)
        imgui.SetNextWindowSize(ImVec2(700, 700))
        imgui.Begin('##', window, imgui.WindowFlags.NoTitleBar)
        imgui.PushStyleColor(imgui.Col.Border, ImVec4(1, 0.25, 0.1, 1))
        imgui.GetStyle().ChildRounding = 8
        local DL = imgui.GetWindowDrawList()
        local p = imgui.GetWindowPos()
        DL:AddRectFilled(ImVec2(p.x + 9, p.y + 9), ImVec2(p.x + 357, p.y + 25),
            imgui.ColorConvertFloat4ToU32(ImVec4(1, 0.25, 0.1, 1)), 8)
        DL:AddRectFilled(ImVec2(p.x + 9, p.y + 15), ImVec2(p.x + 357, p.y + 25),
            imgui.ColorConvertFloat4ToU32(ImVec4(1, 0.25, 0.1, 1)))
        imgui.BeginChild('##1', ImVec2(350, 350), true)
        imgui.SetCursorPos(ImVec2(165, 0))
        imgui.Text('Title')
        imgui.EndChild()
        imgui.PopStyleColor()
        imgui.End()
    end
)

uuvL9Zv.png
В функцию отдельно сделай, чтоб людям удобнее чуть-чуть было
 

bulba$h

Активный
326
92
В функцию отдельно сделай, чтоб людям удобнее чуть-чуть было
Lua:
function imgui.ChildText(text, x, y)
    imgui.PushStyleColor(imgui.Col.Border, ImVec4(1, 0.25, 0.1, 1))
    imgui.GetStyle().ChildRounding = 8

    local p = imgui.GetWindowPos()
    local size = ImVec2(x, y)

    local DL = imgui.GetWindowDrawList()
    DL:AddRectFilled(ImVec2(p.x + 9, p.y + 9), ImVec2(p.x + x + 9, p.y + 25), imgui.ColorConvertFloat4ToU32(ImVec4(1, 0.25, 0.1, 1)), 8)
    DL:AddRectFilled(ImVec2(p.x + 9, p.y + 15), ImVec2(p.x + x + 9, p.y + 25), imgui.ColorConvertFloat4ToU32(ImVec4(1, 0.25, 0.1, 1)))

    imgui.BeginChild('##1', size, true)
    local textWidth = imgui.CalcTextSize(text).x
    local textPos = ImVec2(size.x * 0.5 - textWidth * 0.5, 0)
    imgui.SetCursorPos(textPos)
    imgui.Text(text)
    imgui.EndChild()

    imgui.PopStyleColor()
end

сделал выравнивание текста по середине + сделать кастомный размер чилда
 
Последнее редактирование:
  • Влюблен
  • Bug
Реакции: xColorized и Akionka

xColorized

Известный
1,109
486
Lua:
function imgui.ChildText(name, title, x, y)
    imgui.PushStyleColor(imgui.Col.Border, imgui.ImVec4(1, 0.25, 0.1, 1))
    imgui.GetStyle().ChildRounding = 8

    local p = imgui.GetWindowPos()
    local size = imgui.ImVec2(x, y)

    local DL = imgui.GetWindowDrawList()
    DL:AddRectFilled(imgui.ImVec2(p.x + 9, p.y + 9),imgui. ImVec2(p.x + x + 9, p.y + 25), imgui.ColorConvertFloat4ToU32(ImVec4(1, 0.25, 0.1, 1)), 8)
    DL:AddRectFilled(imgui.ImVec2(p.x + 9, p.y + 15),imgui. ImVec2(p.x + x + 9, p.y + 25), imgui.ColorConvertFloat4ToU32(ImVec4(1, 0.25, 0.1, 1)))

    imgui.BeginChild(name, size, true)
    local textWidth = imgui.CalcTextSize(text).x
    local textPos = imgui.ImVec2(size.x * 0.5 - textWidth * 0.5, 0)
    imgui.SetCursorPos(textPos)
    imgui.Text(text)
    imgui.EndChild()

    imgui.PopStyleColor()
end
 
Последнее редактирование:
  • Ха-ха
  • Нравится
Реакции: bulba$h и Hinаta