Исходник [Module] ImStyleSerializer хранение стилей mimgui в файле

randazzo

.
Автор темы
1,417
1,028
Модуль для сохранения и загрузки стилей ImGui через файл. Файл со стилями хранится в папке /moonloader/config. Взаимодействие происходит через библиотеку inicfg, стиль сохраняется в следующем формате:
INI:
[Style name]
Style_var = param
Пример использования:

Lua:
local iss = require 'ImStyleSerializer'

local ffi = require "ffi"
local imgui = require "mimgui"

showWindow = imgui.new.bool(false)
textBuffer = imgui.new.char[256]("Style name")
styles = {}

function main()
    while true do wait(0)
        if wasKeyPressed(0x33) then -- VK_3
            showWindow[0] = not showWindow[0]
        end
    end
end

imgui.OnFrame(function() return showWindow[0] end,
function()
    imgui.Begin("Example of usage ImStyleSerializer", showWindow, imgui.WindowFlags.NoCollapse + imgui.WindowFlags.AlwaysAutoResize)
    imgui.InputText('##styleName', textBuffer, ffi.sizeof(textBuffer) - 1) imgui.SameLine()
    if imgui.Button("Save style") then
        iss.saveStyles(imgui.GetStyle(), ffi.string(textBuffer), "imguistyles.ini")
        styles = iss.getStyles()
        stylesArray = imgui.new['const char*'][#styles](styles)
    end
    if styleStatus then
        if imgui.Combo('Select style', styleSelected, stylesArray, #styles) then
            iss.applyStyle(imgui.GetStyle(), styles[styleSelected[0] + 1])
        end
        imgui.Separator()
        imgui.ShowStyleEditor()
    end
end)

imgui.OnInitialize(function()
    if not doesFileExist(getWorkingDirectory()..'\\config\\imguistyles.ini') then iss.saveStyles(imgui.GetStyle(), "Dark", "imguistyles.ini") end
    styleStatus = iss.loadStyles("imguistyles.ini")
    if styleStatus then
        styles = iss.getStyles()
        stylesArray = imgui.new['const char*'][#styles](styles)
        styleSelected = imgui.new.int(0)
    else print("Can't load styles")
    end
end)
Установка: переместить файл в папку /moonloader/lib

Github: https://github.com/randazz0/ImStyleSerializer-mimgui/
 

Вложения

  • ImStyleSerializer.lua
    8.7 KB · Просмотры: 23
  • Нравится
Реакции: Pheonixxx и trefa

AnWu

Guardian of Order
Всефорумный модератор
4,687
5,163
Какая же это помойка. Где грамотная реализация через экспорт? Где общий стайл эдитор?
 
  • Нравится
  • Вау
Реакции: Shamanije и Carrentine