353 lines
6.7 KiB
Markdown
353 lines
6.7 KiB
Markdown
|
|
# Display API Reference
|
||
|
|
|
||
|
|
Complete API reference for the Display service (`pkg/display`).
|
||
|
|
|
||
|
|
## Service Creation
|
||
|
|
|
||
|
|
```go
|
||
|
|
func NewService(c *core.Core) (any, error)
|
||
|
|
```
|
||
|
|
|
||
|
|
## Window Management
|
||
|
|
|
||
|
|
### CreateWindow
|
||
|
|
|
||
|
|
```go
|
||
|
|
func (s *Service) CreateWindow(opts CreateWindowOptions) (*WindowInfo, error)
|
||
|
|
```
|
||
|
|
|
||
|
|
Creates a new window with the specified options.
|
||
|
|
|
||
|
|
```go
|
||
|
|
type CreateWindowOptions struct {
|
||
|
|
Name string
|
||
|
|
Title string
|
||
|
|
URL string
|
||
|
|
X int
|
||
|
|
Y int
|
||
|
|
Width int
|
||
|
|
Height int
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### CloseWindow
|
||
|
|
|
||
|
|
```go
|
||
|
|
func (s *Service) CloseWindow(name string) error
|
||
|
|
```
|
||
|
|
|
||
|
|
### GetWindowInfo
|
||
|
|
|
||
|
|
```go
|
||
|
|
func (s *Service) GetWindowInfo(name string) (*WindowInfo, error)
|
||
|
|
```
|
||
|
|
|
||
|
|
Returns:
|
||
|
|
|
||
|
|
```go
|
||
|
|
type WindowInfo struct {
|
||
|
|
Name string
|
||
|
|
Title string
|
||
|
|
X int
|
||
|
|
Y int
|
||
|
|
Width int
|
||
|
|
Height int
|
||
|
|
IsVisible bool
|
||
|
|
IsFocused bool
|
||
|
|
IsMaximized bool
|
||
|
|
IsMinimized bool
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### ListWindowInfos
|
||
|
|
|
||
|
|
```go
|
||
|
|
func (s *Service) ListWindowInfos() []*WindowInfo
|
||
|
|
```
|
||
|
|
|
||
|
|
### Window Position & Size
|
||
|
|
|
||
|
|
```go
|
||
|
|
func (s *Service) SetWindowPosition(name string, x, y int) error
|
||
|
|
func (s *Service) SetWindowSize(name string, width, height int) error
|
||
|
|
func (s *Service) SetWindowBounds(name string, x, y, width, height int) error
|
||
|
|
```
|
||
|
|
|
||
|
|
### Window State
|
||
|
|
|
||
|
|
```go
|
||
|
|
func (s *Service) MaximizeWindow(name string) error
|
||
|
|
func (s *Service) MinimizeWindow(name string) error
|
||
|
|
func (s *Service) RestoreWindow(name string) error
|
||
|
|
func (s *Service) FocusWindow(name string) error
|
||
|
|
func (s *Service) SetWindowFullscreen(name string, fullscreen bool) error
|
||
|
|
func (s *Service) SetWindowAlwaysOnTop(name string, onTop bool) error
|
||
|
|
func (s *Service) SetWindowVisibility(name string, visible bool) error
|
||
|
|
```
|
||
|
|
|
||
|
|
### Window Title
|
||
|
|
|
||
|
|
```go
|
||
|
|
func (s *Service) SetWindowTitle(name, title string) error
|
||
|
|
func (s *Service) GetWindowTitle(name string) (string, error)
|
||
|
|
```
|
||
|
|
|
||
|
|
### Window Background
|
||
|
|
|
||
|
|
```go
|
||
|
|
func (s *Service) SetWindowBackgroundColour(name string, r, g, b, a uint8) error
|
||
|
|
```
|
||
|
|
|
||
|
|
### Focus
|
||
|
|
|
||
|
|
```go
|
||
|
|
func (s *Service) GetFocusedWindow() string
|
||
|
|
```
|
||
|
|
|
||
|
|
## Screen Management
|
||
|
|
|
||
|
|
### GetScreens
|
||
|
|
|
||
|
|
```go
|
||
|
|
func (s *Service) GetScreens() []*Screen
|
||
|
|
```
|
||
|
|
|
||
|
|
Returns:
|
||
|
|
|
||
|
|
```go
|
||
|
|
type Screen struct {
|
||
|
|
ID string
|
||
|
|
Name string
|
||
|
|
X int
|
||
|
|
Y int
|
||
|
|
Width int
|
||
|
|
Height int
|
||
|
|
ScaleFactor float64
|
||
|
|
IsPrimary bool
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### GetScreen
|
||
|
|
|
||
|
|
```go
|
||
|
|
func (s *Service) GetScreen(id string) (*Screen, error)
|
||
|
|
```
|
||
|
|
|
||
|
|
### GetPrimaryScreen
|
||
|
|
|
||
|
|
```go
|
||
|
|
func (s *Service) GetPrimaryScreen() (*Screen, error)
|
||
|
|
```
|
||
|
|
|
||
|
|
### GetScreenAtPoint
|
||
|
|
|
||
|
|
```go
|
||
|
|
func (s *Service) GetScreenAtPoint(x, y int) (*Screen, error)
|
||
|
|
```
|
||
|
|
|
||
|
|
### GetScreenForWindow
|
||
|
|
|
||
|
|
```go
|
||
|
|
func (s *Service) GetScreenForWindow(name string) (*Screen, error)
|
||
|
|
```
|
||
|
|
|
||
|
|
### GetWorkAreas
|
||
|
|
|
||
|
|
```go
|
||
|
|
func (s *Service) GetWorkAreas() []*WorkArea
|
||
|
|
```
|
||
|
|
|
||
|
|
Returns usable screen space (excluding dock/taskbar).
|
||
|
|
|
||
|
|
## Layout Management
|
||
|
|
|
||
|
|
### SaveLayout / RestoreLayout
|
||
|
|
|
||
|
|
```go
|
||
|
|
func (s *Service) SaveLayout(name string) error
|
||
|
|
func (s *Service) RestoreLayout(name string) error
|
||
|
|
func (s *Service) ListLayouts() []string
|
||
|
|
func (s *Service) DeleteLayout(name string) error
|
||
|
|
func (s *Service) GetLayout(name string) *Layout
|
||
|
|
```
|
||
|
|
|
||
|
|
### TileWindows
|
||
|
|
|
||
|
|
```go
|
||
|
|
func (s *Service) TileWindows(mode TileMode, windows []string) error
|
||
|
|
```
|
||
|
|
|
||
|
|
Tile modes:
|
||
|
|
|
||
|
|
```go
|
||
|
|
const (
|
||
|
|
TileModeLeft TileMode = "left"
|
||
|
|
TileModeRight TileMode = "right"
|
||
|
|
TileModeGrid TileMode = "grid"
|
||
|
|
TileModeQuadrants TileMode = "quadrants"
|
||
|
|
)
|
||
|
|
```
|
||
|
|
|
||
|
|
### SnapWindow
|
||
|
|
|
||
|
|
```go
|
||
|
|
func (s *Service) SnapWindow(name string, position SnapPosition) error
|
||
|
|
```
|
||
|
|
|
||
|
|
Snap positions:
|
||
|
|
|
||
|
|
```go
|
||
|
|
const (
|
||
|
|
SnapPositionLeft SnapPosition = "left"
|
||
|
|
SnapPositionRight SnapPosition = "right"
|
||
|
|
SnapPositionTop SnapPosition = "top"
|
||
|
|
SnapPositionBottom SnapPosition = "bottom"
|
||
|
|
SnapPositionTopLeft SnapPosition = "top-left"
|
||
|
|
SnapPositionTopRight SnapPosition = "top-right"
|
||
|
|
SnapPositionBottomLeft SnapPosition = "bottom-left"
|
||
|
|
SnapPositionBottomRight SnapPosition = "bottom-right"
|
||
|
|
)
|
||
|
|
```
|
||
|
|
|
||
|
|
### StackWindows
|
||
|
|
|
||
|
|
```go
|
||
|
|
func (s *Service) StackWindows(windows []string, offsetX, offsetY int) error
|
||
|
|
```
|
||
|
|
|
||
|
|
### ApplyWorkflowLayout
|
||
|
|
|
||
|
|
```go
|
||
|
|
func (s *Service) ApplyWorkflowLayout(workflow WorkflowType) error
|
||
|
|
```
|
||
|
|
|
||
|
|
Workflow types:
|
||
|
|
|
||
|
|
```go
|
||
|
|
const (
|
||
|
|
WorkflowCoding WorkflowType = "coding"
|
||
|
|
WorkflowDebugging WorkflowType = "debugging"
|
||
|
|
WorkflowPresenting WorkflowType = "presenting"
|
||
|
|
)
|
||
|
|
```
|
||
|
|
|
||
|
|
## Dialogs
|
||
|
|
|
||
|
|
### File Dialogs
|
||
|
|
|
||
|
|
```go
|
||
|
|
func (s *Service) OpenSingleFileDialog(opts OpenFileOptions) (string, error)
|
||
|
|
func (s *Service) OpenFileDialog(opts OpenFileOptions) ([]string, error)
|
||
|
|
func (s *Service) SaveFileDialog(opts SaveFileOptions) (string, error)
|
||
|
|
func (s *Service) OpenDirectoryDialog(opts OpenDirectoryOptions) (string, error)
|
||
|
|
```
|
||
|
|
|
||
|
|
Options:
|
||
|
|
|
||
|
|
```go
|
||
|
|
type OpenFileOptions struct {
|
||
|
|
Title string
|
||
|
|
DefaultDirectory string
|
||
|
|
AllowMultiple bool
|
||
|
|
Filters []FileFilter
|
||
|
|
}
|
||
|
|
|
||
|
|
type SaveFileOptions struct {
|
||
|
|
Title string
|
||
|
|
DefaultDirectory string
|
||
|
|
DefaultFilename string
|
||
|
|
Filters []FileFilter
|
||
|
|
}
|
||
|
|
|
||
|
|
type FileFilter struct {
|
||
|
|
DisplayName string
|
||
|
|
Pattern string // e.g., "*.png;*.jpg"
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### ConfirmDialog
|
||
|
|
|
||
|
|
```go
|
||
|
|
func (s *Service) ConfirmDialog(title, message string) (bool, error)
|
||
|
|
```
|
||
|
|
|
||
|
|
### PromptDialog
|
||
|
|
|
||
|
|
```go
|
||
|
|
func (s *Service) PromptDialog(title, message string) (string, bool, error)
|
||
|
|
```
|
||
|
|
|
||
|
|
## System Tray
|
||
|
|
|
||
|
|
```go
|
||
|
|
func (s *Service) SetTrayIcon(icon []byte) error
|
||
|
|
func (s *Service) SetTrayTooltip(tooltip string) error
|
||
|
|
func (s *Service) SetTrayLabel(label string) error
|
||
|
|
func (s *Service) SetTrayMenu(items []TrayMenuItem) error
|
||
|
|
func (s *Service) GetTrayInfo() map[string]any
|
||
|
|
```
|
||
|
|
|
||
|
|
Menu item:
|
||
|
|
|
||
|
|
```go
|
||
|
|
type TrayMenuItem struct {
|
||
|
|
Label string
|
||
|
|
ActionID string
|
||
|
|
IsSeparator bool
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
## Clipboard
|
||
|
|
|
||
|
|
```go
|
||
|
|
func (s *Service) ReadClipboard() (string, error)
|
||
|
|
func (s *Service) WriteClipboard(text string) error
|
||
|
|
func (s *Service) HasClipboard() bool
|
||
|
|
func (s *Service) ClearClipboard() error
|
||
|
|
```
|
||
|
|
|
||
|
|
## Notifications
|
||
|
|
|
||
|
|
```go
|
||
|
|
func (s *Service) ShowNotification(opts NotificationOptions) error
|
||
|
|
func (s *Service) ShowInfoNotification(title, message string) error
|
||
|
|
func (s *Service) ShowWarningNotification(title, message string) error
|
||
|
|
func (s *Service) ShowErrorNotification(title, message string) error
|
||
|
|
func (s *Service) RequestNotificationPermission() (bool, error)
|
||
|
|
func (s *Service) CheckNotificationPermission() (bool, error)
|
||
|
|
```
|
||
|
|
|
||
|
|
Options:
|
||
|
|
|
||
|
|
```go
|
||
|
|
type NotificationOptions struct {
|
||
|
|
ID string
|
||
|
|
Title string
|
||
|
|
Message string
|
||
|
|
Subtitle string
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
## Theme
|
||
|
|
|
||
|
|
```go
|
||
|
|
func (s *Service) GetTheme() *Theme
|
||
|
|
func (s *Service) GetSystemTheme() string
|
||
|
|
```
|
||
|
|
|
||
|
|
Returns:
|
||
|
|
|
||
|
|
```go
|
||
|
|
type Theme struct {
|
||
|
|
IsDark bool
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
## Events
|
||
|
|
|
||
|
|
```go
|
||
|
|
func (s *Service) GetEventManager() *EventManager
|
||
|
|
```
|
||
|
|
|
||
|
|
The EventManager handles WebSocket connections for real-time events.
|