54 lines
1.8 KiB
Go
54 lines
1.8 KiB
Go
package dialog
|
|
|
|
import (
|
|
"unicode"
|
|
"unicode/utf8"
|
|
|
|
"fyne.io/fyne/v2"
|
|
"fyne.io/fyne/v2/container"
|
|
"fyne.io/fyne/v2/lang"
|
|
"fyne.io/fyne/v2/theme"
|
|
"fyne.io/fyne/v2/widget"
|
|
)
|
|
|
|
func createInformationDialog(title, message string, icon fyne.Resource, parent fyne.Window) Dialog {
|
|
d := newTextDialog(title, message, icon, parent)
|
|
d.dismiss = &widget.Button{
|
|
Text: lang.L("OK"),
|
|
OnTapped: d.Hide,
|
|
}
|
|
d.create(container.NewGridWithColumns(1, d.dismiss))
|
|
return d
|
|
}
|
|
|
|
// NewInformation creates a dialog over the specified window for user information.
|
|
// The title is used for the dialog window and message is the content.
|
|
// After creation you should call Show().
|
|
func NewInformation(title, message string, parent fyne.Window) Dialog {
|
|
return createInformationDialog(title, message, theme.InfoIcon(), parent)
|
|
}
|
|
|
|
// ShowInformation shows a dialog over the specified window for user information.
|
|
// The title is used for the dialog window and message is the content.
|
|
func ShowInformation(title, message string, parent fyne.Window) {
|
|
NewInformation(title, message, parent).Show()
|
|
}
|
|
|
|
// NewError creates a dialog over the specified window for an application error.
|
|
// The message is extracted from the provided error (should not be nil).
|
|
// After creation you should call Show().
|
|
func NewError(err error, parent fyne.Window) Dialog {
|
|
dialogText := err.Error()
|
|
r, size := utf8.DecodeRuneInString(dialogText)
|
|
if r != utf8.RuneError {
|
|
dialogText = string(unicode.ToUpper(r)) + dialogText[size:]
|
|
}
|
|
return createInformationDialog(lang.L("Error"), dialogText, theme.ErrorIcon(), parent)
|
|
}
|
|
|
|
// ShowError shows a dialog over the specified window for an application error.
|
|
// The message is extracted from the provided error (should not be nil).
|
|
func ShowError(err error, parent fyne.Window) {
|
|
NewError(err, parent).Show()
|
|
}
|