fckeuspy-go/vendor/fyne.io/fyne/v2/internal/driver/mobile/keyboard.go

47 lines
1.0 KiB
Go

package mobile
import (
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/driver/mobile"
"fyne.io/fyne/v2/internal/driver/mobile/app"
)
func (dev *device) hideVirtualKeyboard() {
if d, ok := fyne.CurrentApp().Driver().(*driver); ok {
if d.app == nil { // not yet running
return
}
d.app.HideVirtualKeyboard()
dev.keyboardShown = false
}
}
func (dev *device) handleKeyboard(obj fyne.Focusable) {
isDisabled := false
if disWid, ok := obj.(fyne.Disableable); ok {
isDisabled = disWid.Disabled()
}
if obj != nil && !isDisabled {
if keyb, ok := obj.(mobile.Keyboardable); ok {
dev.showVirtualKeyboard(keyb.Keyboard())
} else {
dev.showVirtualKeyboard(mobile.DefaultKeyboard)
}
} else {
dev.hideVirtualKeyboard()
}
}
func (dev *device) showVirtualKeyboard(keyboard mobile.KeyboardType) {
if d, ok := fyne.CurrentApp().Driver().(*driver); ok {
if d.app == nil { // not yet running
fyne.LogError("Cannot show keyboard before app is running", nil)
return
}
dev.keyboardShown = true
d.app.ShowVirtualKeyboard(app.KeyboardType(keyboard))
}
}