More facilities for Dialog() + user preferences for each script
- Dominant language
- No language data
- Stars
- 307
- Forks
- 68
- PR merge metrics
- No merged PRs in 30d
Description
Some functions requested by [Goomboo](https://twitter.com/MapleGecko) in the Discord server:
- [x] **Built-in functions to remember user preferences**: At the moment it's possible to remember user preferences by creating another file, but the user will be notified by a huge warning message that could scare non-devs. It would be great to have some place allocated in a file placed in appdata, that could be accessed through api functions to save and load user preferences for the active script. That way, people could make more complex scripts without the fear of scaring the user away.
*This will be possible in extensions with scripts, the `plugin` object will have a `plugin.preferences` property which will be a standard Lua table that will maintain the values between sessions:*
```lua
function init(plugin)
plugin.preferences.something = ...
end
```
- [ ] **Scrollbar component**: For big dialogs, it would be awesome to have a scrollable block, so we can build lists in the same way as the convolution matrix window
- [ ] **Changing the color of text**: Being able to use colors from theme.xml (Inactive text is a good example) or custom colors for any text or label
- [ ] **Being able to display icons from sheet.png and/or images**: Basically for making dialogs and buttons more readable, and possibly for in-dialog preview.
- [ ] **Buttons for the title bar**: It would be great to be able to add buttons in the title bar, for less important features, or config dialogs
- [ ] **Forcing the use of newrow() between all components**: At the moment, it's impossible to align some components ( like Dialog:number with labels), and it would be nice to be able to. Of course the best would be a html-like 12-grid system or something similar
- [ ] **Buttons group**: Buttons groups would be cool
Contributor guide
No contributing guide indexed for this repository
Research direction
Separate the unchecked Dialog() requests from the already described plugin.preferences behavior. Start by reviewing the Dialog(), newrow(), and plugin.preferences entry points mentioned in the issue, then define one focused change with an explicit completion condition for its UI behavior and scripting API.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- lua
- Domain
- api, design
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100