- 8,935
- 11,704
Еще один аналог fAwesome
Установка: перенести файл GoogleIcons.lua
в папку moonloader\lib
Авторы модуля:
- @СоМиК - идея
- @chapo - модуль
- @neverlane - помощь в переводе кодировок иконок (да и вообще он мой кумир)
- и еще 27 юзеров чата луашных сениоров
Доступные типы шрифта:
- GoogleIcons.FontType.Default
- GoogleIcons.FontType.Outlined
- GoogleIcons.FontType.Round
- GoogleIcons.FontType.Sharp
- GoogleIcons.FontType.TwoTone
Lua:
local GoogleIcons = require('GoogleIcons') -- подключаем модуль
local icon, iconFont -- определяем переменные в которых у нас будет хранится функция и шрифт (необязательно)
imgui.OnInitialize(function()
icon, iconFont = GoogleIcons.LoadFont(FontType.Default, 14) -- подгружаем шрифт
--[[
Аргументы функции:
- тип шрифта (необязательно)
- размер шрифта (необязательно)
- список подгружаемых иконок (что бы не подгружать сразу все, например {'название_иконки'}) (необязательно)
- свой конфиг шрифта (необязательно)
]]
end)
-- отрисовка: imgui.Text(icon('название_иконки'))
Lua:
local imgui = require('mimgui')
local GoogleIcons = require('GoogleIcons') -- подключаем модуль
imgui.OnInitialize(function()
icon = GoogleIcons.LoadFont(GoogleIcons.FontType.Default, 14, {'person'}) -- загружаем шрифт
end)
local frame = imgui.OnFrame(
function() return true end,
function(this)
if imgui.Begin('Window') then
imgui.Text(icon('person')) -- рисуем иконку
end
imgui.End()
end
)
Lua:
local ffi = require('ffi')
local imgui = require('mimgui')
local GoogleIcons = require('GoogleIcons')
local icon, iconFont
local renderWindow = imgui.new.bool(false)
local search = imgui.new.char[64]('')
imgui.OnInitialize(function()
imgui.GetIO().IniFilename = nil
imgui.GetStyle().WindowPadding = imgui.ImVec2(5, 5)
icon, iconFont = GoogleIcons.LoadFont(FontType.Default, 14)
end)
local frame = imgui.OnFrame(
function() return renderWindow[0] end,
function(this)
local size, res = imgui.ImVec2(300, 500), imgui.ImVec2(getScreenResolution())
imgui.SetNextWindowPos(imgui.ImVec2(res.x / 2, res.y / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
imgui.SetNextWindowSize(size, imgui.Cond.FirstUseEver)
if imgui.Begin('GoogleIcons test', renderWindow) then
local size = imgui.GetWindowSize()
imgui.InputText('Search', search, ffi.sizeof(search))
if imgui.BeginChild('icons', imgui.ImVec2(size.x - 10, size.y - imgui.GetCursorPosY() - 5), true) then
imgui.Columns(2)
imgui.Text('icon')
imgui.NextColumn()
imgui.Text('name')
imgui.Columns(1)
imgui.Separator()
for name in pairs(GoogleIcons.Icon) do
if #ffi.string(search) == 0 or name:lower():find(ffi.string(search):lower()) then
imgui.Columns(2)
imgui.Text(icon(name))
imgui.NextColumn()
imgui.Text(name)
imgui.Columns(1)
end
end
imgui.EndChild()
end
imgui.End()
end
end
)
function main()
while not isSampAvailable() do wait(0) end
sampRegisterChatCommand('googleicons', function()
renderWindow[0] = not renderWindow[0]
end)
wait(-1)
end
Вложения
Последнее редактирование: