[MIMGUI] Полоска активного окна

Dewize

Потрачен
Автор темы
442
88
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Версия MoonLoader
.027.0-preview
Как реализовать, что то похожее? Тип какое активное окно там и это полоска.


1692795635925.png
 

Dewize

Потрачен
Автор темы
442
88
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.

Dewize

Потрачен
Автор темы
442
88
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.

chromiusj

fullstack eblan
Модератор
5,754
4,057
Понял, а поподробнее можно? Что должно быть в, ибо как ты наверно уже понял я еблан тот ещё
 

RedHolms

Известный
Проверенный
622
369
Lua:
-- типо наше меню
local menus = {
    {
        title = "...",
        draw = function()
        end
    },
    ...
}

local selected_menu = 1

-- в отрисовке
-- абстрактный пример
for i, menu in pairs(menus) do
    local base_pos = ImGui.GetCursorScreenPos()
    if ImGui.Button(menu.title) then
        selected_menu = i
    end
    
    if selected_menu == i then
        local dl = ImGui.GetWindowDrawList()
        dl:AddRectFilled(
            base_pos, -- левый верхний угол
            base_pos + ImVec2(20, 5), -- правый нижний
            0xffffffff -- цвет
        )
    end
end
 
  • Нравится
Реакции: Vespan

Dewize

Потрачен
Автор темы
442
88
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Окееей, я что-то тут сварганил, как мне теперь сделать так, чтоб этот дрищ на прямоугольнике красиво свапался туда сюда??



код:
--===== [ Работа с окнами ] =====--

        if window == 0 then -- Каждое окно имеет свой номер, начиная с 0
            imgui.SetCursorPos(imgui.ImVec2(0, 280))
            local PixelButtonWindow1 = imgui.GetCursorScreenPos()
            dl:AddRectFilled(PixelButtonWindow1, imgui.ImVec2(PixelButtonWindow1.x + 7, PixelButtonWindow1.y + 40), 0xFF0000ff) -- Создаём полоску возле кнопки с блоком. (Декоротивный элемент)
            imgui.SetCursorPos(imgui.ImVec2(215, 0))  -- Указываем позицию в котором будем нашего окна(чилда)
            imgui.BeginChild('MainWindow', imgui.ImVec2(985, 600), false)  -- Указываем имя чилда, размер и отключаем обводку

            imgui.Text(u8'Открыт первый раздел')
            imgui.EndChild()
        elseif window == 1 then -- Каждое окно имеет свой номер, начиная с 0
            imgui.SetCursorPos(imgui.ImVec2(0, 320))
            local PixelButtonWindow2 = imgui.GetCursorScreenPos()
            dl:AddRectFilled(PixelButtonWindow2, imgui.ImVec2(PixelButtonWindow2.x + 7, PixelButtonWindow2.y + 40), 0xFF0000ff) -- Создаём полоску возле кнопки с блоком. (Декоротивный элемент)
            imgui.SetCursorPos(imgui.ImVec2(215, 0)) -- Указываем позицию в котором будем нашего окна(чилда)
            imgui.BeginChild('Settings', imgui.ImVec2(985, 600), false)  -- Указываем имя чилда, размер и отключаем обводку

            imgui.Text(u8'Открыт второй раздел')
            imgui.EndChild()
        elseif window == 2 then -- Каждое окно имеет свой номер, начиная с 0
            imgui.SetCursorPos(imgui.ImVec2(0, 360))
            local PixelButtonWindow3 = imgui.GetCursorScreenPos()
            dl:AddRectFilled(PixelButtonWindow3, imgui.ImVec2(PixelButtonWindow3.x + 7, PixelButtonWindow3.y + 40), 0xFF0000ff) -- Создаём полоску возле кнопки с блоком. (Декоротивный элемент)
            imgui.SetCursorPos(imgui.ImVec2(215, 0)) -- Указываем позицию в котором будем нашего окна(чилда)
            imgui.BeginChild('Сapt Statistics', imgui.ImVec2(985, 600), false)  -- Указываем имя чилда, размер и отключаем обводку

            imgui.Text(u8'Открыт третий раздел')
            imgui.EndChild()
        elseif window == 3 then -- Каждое окно имеет свой номер, начиная с 0
            imgui.SetCursorPos(imgui.ImVec2(0, 400))
            local PixelButtonWindow4 = imgui.GetCursorScreenPos()
            dl:AddRectFilled(PixelButtonWindow4, imgui.ImVec2(PixelButtonWindow4.x + 7, PixelButtonWindow4.y + 40), 0xFF0000ff) -- Создаём полоску возле кнопки с блоком. (Декоротивный элемент)
            imgui.SetCursorPos(imgui.ImVec2(215, 0)) -- Указываем позицию в котором будем нашего окна(чилда)
            imgui.BeginChild('Auto Zabiv', imgui.ImVec2(985, 600), false)  -- Указываем имя чилда, размер и отключаем обводку

            imgui.Text(u8'Открыт четвёртый раздел')
            imgui.EndChild()
        elseif window == 4 then -- Каждое окно имеет свой номер, начиная с 0
            imgui.SetCursorPos(imgui.ImVec2(0, 440))
            local PixelButtonWindow5 = imgui.GetCursorScreenPos()
            dl:AddRectFilled(PixelButtonWindow5, imgui.ImVec2(PixelButtonWindow5.x + 7, PixelButtonWindow5.y + 40), 0xFF0000ff) -- Создаём полоску возле кнопки с блоком. (Декоротивный элемент)
            imgui.SetCursorPos(imgui.ImVec2(215, 0)) -- Указываем позицию в котором будем нашего окна(чилда)
            imgui.BeginChild('Hot Keys', imgui.ImVec2(985, 600), false)  -- Указываем имя чилда, размер и отключаем обводку

            imgui.Text(u8'Открыт пятый раздел')
            imgui.EndChild()
        elseif window == 5 then -- Каждое окно имеет свой номер, начиная с 0
            imgui.SetCursorPos(imgui.ImVec2(215, 0)) -- Указываем позицию в котором будем нашего окна(чилда)
            imgui.BeginChild('Other', imgui.ImVec2(985, 600), false)  -- Указываем имя чилда, размер и отключаем обводку

            imgui.Text(u8'Открыт первый раздел')
            imgui.EndChild()               
        end   

           ------------------------------
 

chromiusj

fullstack eblan
Модератор
5,754
4,057
Окееей, я что-то тут сварганил, как мне теперь сделать так, чтоб этот дрищ на прямоугольнике красиво свапался туда сюда??



код:
--===== [ Работа с окнами ] =====--

        if window == 0 then -- Каждое окно имеет свой номер, начиная с 0
            imgui.SetCursorPos(imgui.ImVec2(0, 280))
            local PixelButtonWindow1 = imgui.GetCursorScreenPos()
            dl:AddRectFilled(PixelButtonWindow1, imgui.ImVec2(PixelButtonWindow1.x + 7, PixelButtonWindow1.y + 40), 0xFF0000ff) -- Создаём полоску возле кнопки с блоком. (Декоротивный элемент)
            imgui.SetCursorPos(imgui.ImVec2(215, 0))  -- Указываем позицию в котором будем нашего окна(чилда)
            imgui.BeginChild('MainWindow', imgui.ImVec2(985, 600), false)  -- Указываем имя чилда, размер и отключаем обводку

            imgui.Text(u8'Открыт первый раздел')
            imgui.EndChild()
        elseif window == 1 then -- Каждое окно имеет свой номер, начиная с 0
            imgui.SetCursorPos(imgui.ImVec2(0, 320))
            local PixelButtonWindow2 = imgui.GetCursorScreenPos()
            dl:AddRectFilled(PixelButtonWindow2, imgui.ImVec2(PixelButtonWindow2.x + 7, PixelButtonWindow2.y + 40), 0xFF0000ff) -- Создаём полоску возле кнопки с блоком. (Декоротивный элемент)
            imgui.SetCursorPos(imgui.ImVec2(215, 0)) -- Указываем позицию в котором будем нашего окна(чилда)
            imgui.BeginChild('Settings', imgui.ImVec2(985, 600), false)  -- Указываем имя чилда, размер и отключаем обводку

            imgui.Text(u8'Открыт второй раздел')
            imgui.EndChild()
        elseif window == 2 then -- Каждое окно имеет свой номер, начиная с 0
            imgui.SetCursorPos(imgui.ImVec2(0, 360))
            local PixelButtonWindow3 = imgui.GetCursorScreenPos()
            dl:AddRectFilled(PixelButtonWindow3, imgui.ImVec2(PixelButtonWindow3.x + 7, PixelButtonWindow3.y + 40), 0xFF0000ff) -- Создаём полоску возле кнопки с блоком. (Декоротивный элемент)
            imgui.SetCursorPos(imgui.ImVec2(215, 0)) -- Указываем позицию в котором будем нашего окна(чилда)
            imgui.BeginChild('Сapt Statistics', imgui.ImVec2(985, 600), false)  -- Указываем имя чилда, размер и отключаем обводку

            imgui.Text(u8'Открыт третий раздел')
            imgui.EndChild()
        elseif window == 3 then -- Каждое окно имеет свой номер, начиная с 0
            imgui.SetCursorPos(imgui.ImVec2(0, 400))
            local PixelButtonWindow4 = imgui.GetCursorScreenPos()
            dl:AddRectFilled(PixelButtonWindow4, imgui.ImVec2(PixelButtonWindow4.x + 7, PixelButtonWindow4.y + 40), 0xFF0000ff) -- Создаём полоску возле кнопки с блоком. (Декоротивный элемент)
            imgui.SetCursorPos(imgui.ImVec2(215, 0)) -- Указываем позицию в котором будем нашего окна(чилда)
            imgui.BeginChild('Auto Zabiv', imgui.ImVec2(985, 600), false)  -- Указываем имя чилда, размер и отключаем обводку

            imgui.Text(u8'Открыт четвёртый раздел')
            imgui.EndChild()
        elseif window == 4 then -- Каждое окно имеет свой номер, начиная с 0
            imgui.SetCursorPos(imgui.ImVec2(0, 440))
            local PixelButtonWindow5 = imgui.GetCursorScreenPos()
            dl:AddRectFilled(PixelButtonWindow5, imgui.ImVec2(PixelButtonWindow5.x + 7, PixelButtonWindow5.y + 40), 0xFF0000ff) -- Создаём полоску возле кнопки с блоком. (Декоротивный элемент)
            imgui.SetCursorPos(imgui.ImVec2(215, 0)) -- Указываем позицию в котором будем нашего окна(чилда)
            imgui.BeginChild('Hot Keys', imgui.ImVec2(985, 600), false)  -- Указываем имя чилда, размер и отключаем обводку

            imgui.Text(u8'Открыт пятый раздел')
            imgui.EndChild()
        elseif window == 5 then -- Каждое окно имеет свой номер, начиная с 0
            imgui.SetCursorPos(imgui.ImVec2(215, 0)) -- Указываем позицию в котором будем нашего окна(чилда)
            imgui.BeginChild('Other', imgui.ImVec2(985, 600), false)  -- Указываем имя чилда, размер и отключаем обводку

            imgui.Text(u8'Открыт первый раздел')
            imgui.EndChild()              
        end  

           ------------------------------
через os.clock
 
  • Ха-ха
Реакции: Vespan

Dewize

Потрачен
Автор темы
442
88
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Последнее редактирование:
  • Эм
Реакции: YarikVL и chapo