Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/eyal-wowhub/settingsgenerator
A library that generates addon settings from a template.
https://github.com/eyal-wowhub/settingsgenerator
lib library lua world-of-warcraft world-of-warcraft-addon wow wow-addon
Last synced: 16 days ago
JSON representation
A library that generates addon settings from a template.
- Host: GitHub
- URL: https://github.com/eyal-wowhub/settingsgenerator
- Owner: Eyal-WowHub
- Created: 2025-01-02T16:02:20.000Z (22 days ago)
- Default Branch: main
- Last Pushed: 2025-01-05T13:34:50.000Z (19 days ago)
- Last Synced: 2025-01-05T14:33:26.116Z (19 days ago)
- Topics: lib, library, lua, world-of-warcraft, world-of-warcraft-addon, wow, wow-addon
- Language: Lua
- Homepage:
- Size: 4.88 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# SettingsGenerator
A library that generates addon settings from a template.
#### Dependencies: [LibStub](https://www.curseforge.com/wow/addons/libstub), [Contracts](https://github.com/Eyal-WowHub/Contracts)
### Examples:
```lua
local SG = LibStub("SettingsGenerator-1.0")
```#### Traditional Template
The following example demonstrates the traditional template structure for creating the settings:
```lua
local settings = {
name = "AddonName",
type = "vertical-layout",
props = {
{
name = "Category 1",
type = "vertical-layout",
props = {
{
name = "Click Me!",
type = "button",
click = ClickHandler
}
}
},
{
name = "Category 2",
type = "vertical-layout",
props = {}
},
{
name = "Category 3",
type = "vertical-layout",
props = {}
}
}
}local optionsID = SG:Generate(settings)
```#### Simplified Template
For a more concise approach, you can use the following simplified template structure, which produces the same results as the above:
```lua
local settings = {
{
name = "AddonName"
},
{
name = "Category 1",
layout = {
{
name = "Click Me!",
type = "button",
click = ClickHandler
}
}
},
{
name = "Category 2",
layout = {}
},
{
name = "Category 3",
layout = {}
}
}local optionsID = SG:FromVerticalLayoutStyle(settings)
```