diff --git a/v3/STATUS.md b/v3/STATUS.md new file mode 100644 index 000000000..2b6a1864a --- /dev/null +++ b/v3/STATUS.md @@ -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 diff --git a/v3/TODO.md b/v3/TODO.md deleted file mode 100644 index eb099a96d..000000000 --- a/v3/TODO.md +++ /dev/null @@ -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 \ No newline at end of file