neko/internal/types/desktop.go

86 lines
1.8 KiB
Go
Raw Normal View History

package types
2021-01-22 08:44:09 +13:00
import (
"image"
)
2021-01-10 10:58:18 +13:00
type CursorImage struct {
Width uint16
Height uint16
Xhot uint16
Yhot uint16
Serial uint64
Pixels []byte
}
2020-11-02 04:09:48 +13:00
type ScreenSize struct {
2020-11-26 10:35:54 +13:00
Width int
Height int
Rate int16
2020-11-02 04:09:48 +13:00
}
type ScreenConfiguration struct {
2020-11-26 10:35:54 +13:00
Width int
Height int
Rates map[int]int16
2020-11-02 04:09:48 +13:00
}
2021-01-13 10:54:13 +13:00
type KeyboardModifiers struct {
NumLock *bool
CapsLock *bool
}
2021-01-16 04:53:03 +13:00
type KeyboardMap struct {
Layout string
Variant string
}
2020-11-02 04:09:48 +13:00
type DesktopManager interface {
Start()
Shutdown() error
OnBeforeScreenSizeChange(listener func())
OnAfterScreenSizeChange(listener func())
2020-11-02 04:09:48 +13:00
// xorg
Move(x, y int)
Scroll(x, y int)
ButtonDown(code int) error
KeyDown(code uint64) error
ButtonUp(code int) error
KeyUp(code uint64) error
ResetKeys()
2020-11-02 04:09:48 +13:00
ScreenConfigurations() map[int]ScreenConfiguration
2021-01-16 05:30:19 +13:00
SetScreenSize(ScreenSize) error
2020-11-02 04:09:48 +13:00
GetScreenSize() *ScreenSize
2021-01-16 04:53:03 +13:00
SetKeyboardMap(KeyboardMap) error
GetKeyboardMap() (*KeyboardMap, error)
2021-01-13 10:54:13 +13:00
SetKeyboardModifiers(mod KeyboardModifiers)
GetKeyboardModifiers() KeyboardModifiers
2021-01-10 10:58:18 +13:00
GetCursorImage() *CursorImage
2021-01-22 08:44:09 +13:00
GetScreenshotImage() *image.RGBA
2020-11-02 04:09:48 +13:00
2021-01-11 03:58:17 +13:00
// xevent
OnCursorChanged(listener func(serial uint64))
2021-01-12 03:30:53 +13:00
OnClipboardUpdated(listener func())
OnFileChooserDialogOpened(listener func())
OnFileChooserDialogClosed(listener func())
2021-01-11 03:58:17 +13:00
OnEventError(listener func(error_code uint8, message string, request_code uint8, minor_code uint8))
2020-11-02 04:09:48 +13:00
// clipboard
ClipboardGetBinary(mime string) ([]byte, error)
ClipboardSetBinary(mime string, data []byte) error
ClipboardGetTargets() ([]string, error)
ClipboardGetPlainText() (string, error)
ClipboardSetPlainText(data string) error
ClipboardGetRichText() (string, error)
ClipboardSetRichText(data string) error
2021-01-07 06:57:50 +13:00
// drop
2021-01-15 07:53:58 +13:00
DropFiles(x int, y int, files []string) bool
2021-01-18 11:50:03 +13:00
// filechooser
HandleFileChooserDialog(uri string) error
CloseFileChooserDialog()
IsFileChooserDialogOpened() bool
}