Add xgbsel as dependency
This commit is contained in:
26
x/selection.go
Normal file
26
x/selection.go
Normal file
@@ -0,0 +1,26 @@
|
||||
package x
|
||||
|
||||
import "io"
|
||||
import "strings"
|
||||
import "git.tebibyte.media/tomo/xgbsel/v2"
|
||||
import "git.tebibyte.media/tomo/tomo/data"
|
||||
|
||||
type selectionData struct {
|
||||
data data.Data
|
||||
}
|
||||
|
||||
func (this selectionData) Convert (target xgbsel.Target) (io.ReadSeekCloser, bool) {
|
||||
mimeStr, _ := target.ToMime()
|
||||
ty, subty, _ := strings.Cut(string(mimeStr), "/")
|
||||
mime := data.M(ty, subty)
|
||||
stream, ok := this.data[mime]
|
||||
stream.Seek(0, io.SeekStart)
|
||||
return stream, ok
|
||||
}
|
||||
|
||||
func (this selectionData) Supported () (targets []xgbsel.Target) {
|
||||
for mime := range this.data {
|
||||
targets = append(targets, xgbsel.MimeToTargets(mime.String())...)
|
||||
}
|
||||
return targets
|
||||
}
|
||||
Reference in New Issue
Block a user