aseprite / aseprite/api

More facilities for Dialog() + user preferences for each script

Open
#20 1 comment 6 reactions 0 assignees View on GitHub
feature
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.