5
0
mirror of https://github.com/wailsapp/wails.git synced 2025-05-19 02:19:31 +08:00

Intial STATUS.md commit

This commit is contained in:
Lea Anthony 2023-04-18 18:53:39 +10:00
parent c7e5608a60
commit a66d9ab0b1
No known key found for this signature in database
GPG Key ID: 33DAF7BB90A58405
2 changed files with 249 additions and 49 deletions

249
v3/STATUS.md Normal file
View File

@ -0,0 +1,249 @@
# Status
Status of features in v3. Incomplete - please add as you see fit.
## Application
Application interface methods
| Method | Windows | Linux | Mac | Notes |
|---------------------------------------------------------------|---------|-------|-----|-------|
| run() error | | | ✅ | |
| destroy() | | | ✅ | |
| setApplicationMenu(menu *Menu) | | | ✅ | |
| name() string | | | ✅ | |
| getCurrentWindowID() uint | | | ✅ | |
| showAboutDialog(name string, description string, icon []byte) | | | ✅ | |
| setIcon(icon []byte) | | | ✅ | |
| on(id uint) | | | ✅ | |
| dispatchOnMainThread(id uint) | | | ✅ | |
| hide() | | | ✅ | |
| show() | | | ✅ | |
## Webview Window
Webview Window Interface Methods
| Method | Windows | Linux | Mac | Notes |
|----------------------------------------------------|---------|-------|-----|-------|
| setTitle(title string) | | | ✅ | |
| setSize(width, height int) | | | ✅ | |
| setAlwaysOnTop(alwaysOnTop bool) | | | ✅ | |
| setURL(url string) | | | ✅ | |
| setResizable(resizable bool) | | | ✅ | |
| setMinSize(width, height int) | | | ✅ | |
| setMaxSize(width, height int) | | | ✅ | |
| execJS(js string) | | | ✅ | |
| restore() | | | ✅ | |
| setBackgroundColour(color *RGBA) | | | ✅ | |
| run() | | | ✅ | |
| center() | | | ✅ | |
| size() (int, int) | | | ✅ | |
| width() int | | | ✅ | |
| height() int | | | ✅ | |
| position() (int, int) | | | ✅ | |
| destroy() | | | ✅ | |
| reload() | | | ✅ | |
| forceReload() | | | ✅ | |
| toggleDevTools() | | | ✅ | |
| zoomReset() | | | ✅ | |
| zoomIn() | | | ✅ | |
| zoomOut() | | | ✅ | |
| getZoom() float64 | | | ✅ | |
| setZoom(zoom float64) | | | ✅ | |
| close() | | | ✅ | |
| zoom() | | | ✅ | |
| setHTML(html string) | | | ✅ | |
| setPosition(x int, y int) | | | ✅ | |
| on(eventID uint) | | | ✅ | |
| minimise() | | | ✅ | |
| unminimise() | | | ✅ | |
| maximise() | | | ✅ | |
| unmaximise() | | | ✅ | |
| fullscreen() | | | ✅ | |
| unfullscreen() | | | ✅ | |
| isMinimised() bool | | | ✅ | |
| isMaximised() bool | | | ✅ | |
| isFullscreen() bool | | | ✅ | |
| disableSizeConstraints() | | | ✅ | |
| setFullscreenButtonEnabled(enabled bool) | | | ✅ | |
| show() | | | ✅ | |
| hide() | | | ✅ | |
| getScreen() (*Screen, error) | | | ✅ | |
| setFrameless(bool) | | | ✅ | |
| openContextMenu(menu *Menu, data *ContextMenuData) | | | ✅ | |
## Runtime
### Application
| Feature | Windows | Linux | Mac | Notes |
|---------|---------|-------|-----|-------|
| Quit | | | ✅ | |
| Hide | | | ✅ | |
| Show | | | ✅ | |
### Dialogs
| Feature | Windows | Linux | Mac | Notes |
|----------|---------|-------|-----|-------|
| Info | | | ✅ | |
| Warning | | | ✅ | |
| Error | | | ✅ | |
| Question | | | ✅ | |
| OpenFile | | | ✅ | |
| SaveFile | | | ✅ | |
### Clipboard
| Feature | Windows | Linux | Mac | Notes |
|---------|---------|-------|-----|-------|
| SetText | | | ✅ | |
| Text | | | ✅ | |
### ContextMenu
| Feature | Windows | Linux | Mac | Notes |
|-----------------|---------|-------|-----|-------|
| OpenContextMenu | | | ✅ | |
### Screens
| Feature | Windows | Linux | Mac | Notes |
|------------|---------|-------|-----|-------|
| GetAll | | | ✅ | |
| GetPrimary | | | ✅ | |
| GetCurrent | | | ✅ | |
### Window
| Feature | Windows | Linux | Mac | Notes |
|---------------------|---------|-------|-----|------------------------|
| SetTitle | | | ✅ | |
| SetSize | | | ✅ | |
| Size | | | ✅ | |
| SetPosition | | | ✅ | |
| Position | | | ✅ | |
| FullScreen | | | ✅ | |
| UnFullscreen | | | ✅ | |
| Minimise | | | ✅ | |
| UnMinimise | | | ✅ | |
| Maximise | | | ✅ | |
| UnMaximise | | | ✅ | |
| Show | | | ✅ | |
| Hide | | | ✅ | |
| Center | | | ✅ | |
| SetBackgroundColour | | | ✅ | |
| SetAlwaysOnTop | | | ✅ | |
| SetResizable | | | ✅ | |
| SetMinSize | | | ✅ | |
| SetMaxSize | | | ✅ | |
| Width | | | ✅ | |
| Height | | | ✅ | |
| ZoomIn | | | ✅ | Increase view scale |
| ZoomOut | | | ✅ | Decrease view scale |
| ZoomReset | | | ✅ | Reset view scale |
| GetZoom | | | ✅ | Get current view scale |
| SetZoom | | | ✅ | Set view scale |
| Screen | | | ✅ | Get screen for window |
### Log
To log or not to log? System logger vs custom logger.
## Menu
| Event | Windows | Linux | Mac | Notes |
|--------------------------|---------|-------|-----|-------|
| Default Application Menu | | | ✅ | |
## Tray Menus
| Feature | Windows | Linux | Mac | Notes |
|--------------------|---------|-------|-----|-------|
| Icon | | | ✅ | |
| Label | | | ✅ | |
| Label (ANSI Codes) | | | | |
| Menu | | | ✅ | |
## Cross Platform Events
Mapping native events to cross-platform events.
| Event | Windows | Linux | Mac | Notes |
|--------------------------|---------|-------|-----------------|-------|
| WindowWillClose | | | WindowWillClose | |
| WindowDidClose | | | | |
| WindowDidResize | | | | |
| WindowDidHide | | | | |
| ApplicationWillTerminate | | | | |
... Add more
## Bindings Generation
TBD
## Models Generation
TBD
## Task file
TBD
## Theme
| Plugin | Windows | Linux | Mac | Notes |
|-----------------|---------|-------|-----|-------|
| Dark | | | | |
| Light | | | | |
| System | | | | |
## NSIS Installer
TBD
## Templates
TBD
## Plugins
Built-in plugin support:
| Plugin | Windows | Linux | Mac | Notes |
|-----------------|---------|-------|-----|-------|
| Browser | | | ✅ | |
| KV Store | | | ✅ | |
| Log | | | ✅ | |
| Single Instance | | | ✅ | |
| SQLite | | | ✅ | |
| Start at login | | | ✅ | |
| Server | | | | |
## Packaging
| | Windows | Linux | Mac | Notes |
|-----------------|---------|-------|-----|-------|
| Icon Generation | | | ✅ | |
| Icon Embedding | | | ✅ | |
| Info.plist | | | ✅ | |
| NSIS Installer | | | | |
| Mac bundle | | | ✅ | |
| Windows exe | | | | |
## Frameless Windows
| Feature | Windows | Linux | Mac | Notes |
|---------|---------|-------|----|-------|
| Resize | | | | |
| Drag | | | | |
## Mac Specific
- [x] Translucency
## Windows Specific
## Linux Specific

View File

@ -1,49 +0,0 @@
# TODO
Informal and incomplete list of things needed in v3.
## General
- [x] Generate Bindings
- [x] Generate TS Models
- [ ] Dev Mode
- [ ] Generate Info.Plist from `info.json`
- [ ] Windows Port
- [ ] Linux Port
## Runtime
- [x] Pass window ID with window calls in JS
- [x] Implement alias for `window` in JS
- [x] Implement runtime dispatcher
- [x] Log
- [x] Same Window
- [ ] Other Window
- [x] Dialogs
- [x] Info
- [x] Warning
- [x] Error
- [x] Question
- [x] OpenFile
- [x] SaveFile
- [x] Events
- [x] Screens
- [x] Clipboard
- [x] Application
- [ ] Create `.d.ts` file
## Templates
- [ ] Create plain template
- [ ] Improve default template
## Runtime
- [ ] To log or not to log?
- [ ] Unify cross-platform events, eg. `onClose`
## Plugins
- [ ] Move logins to `v3/plugins`
- [ ] Expose application logger to plugins