Documentation
¶
Overview ¶
Package zenity provides cross-platform access to simple dialogs that interact graphically with the user.
It is inspired by, and closely follows the API of, the zenity program, which it uses to provide the functionality on various Unixes. See:
https://help.gnome.org/users/zenity/stable/
This package does not require cgo, and it does not impose any threading or initialization requirements.
Index ¶
- Constants
- func Entry(text string, options ...Option) (string, bool, error)
- func Error(text string, options ...Option) (bool, error)
- func Info(text string, options ...Option) (bool, error)
- func List(text string, items []string, options ...Option) (string, bool, error)
- func ListItems(text string, items ...string) (string, bool, error)
- func ListMultiple(text string, items []string, options ...Option) ([]string, error)
- func ListMultipleItems(text string, items ...string) ([]string, error)
- func Notify(text string, options ...Option) error
- func Password(options ...Option) (usr string, pw string, ok bool, err error)
- func Question(text string, options ...Option) (bool, error)
- func SelectColor(options ...Option) (color.Color, error)
- func SelectFile(options ...Option) (string, error)
- func SelectFileMutiple(options ...Option) ([]string, error)
- func SelectFileSave(options ...Option) (string, error)
- func Warning(text string, options ...Option) (bool, error)
- type DialogIcon
- type FileFilter
- type FileFilters
- type Option
- func CancelLabel(cancel string) Option
- func Color(c color.Color) Option
- func ConfirmCreate() Option
- func ConfirmOverwrite() Option
- func Context(ctx context.Context) Option
- func DefaultCancel() Option
- func DefaultItems(items ...string) Option
- func Directory() Option
- func DisallowEmpty() Option
- func Ellipsize() Option
- func EntryText(text string) Option
- func ExtraButton(extra string) Option
- func Filename(filename string) Option
- func Height(height uint) Option
- func HideText() Option
- func Icon(icon DialogIcon) Option
- func NoWrap() Option
- func OKLabel(ok string) Option
- func ShowHidden() Option
- func ShowPalette() Option
- func Title(title string) Option
- func Username() Option
- func Width(width uint) Option
Examples ¶
Constants ¶
const ErrExtraButton = stringErr("extra button pressed")
ErrExtraButton is returned by dialog functions when the extra button is pressed.
Variables ¶
This section is empty.
Functions ¶
func Entry ¶ added in v0.6.0
Entry displays the text entry dialog.
Returns false on cancel, or ErrExtraButton.
Valid options: Title, Width, Height, OKLabel, CancelLabel, ExtraButton, Icon, EntryText, HideText.
Example ¶
package main
import (
"github.com/ncruces/zenity"
)
func main() {
zenity.Entry("Enter new text:",
zenity.Title("Add a new entry"))
}
Output:
func Error ¶
Error displays the error dialog.
Returns true on OK, false on dismiss, or ErrExtraButton.
Valid options: Title, Width, Height, OKLabel, ExtraButton, Icon, NoWrap, Ellipsize.
Example ¶
package main
import (
"github.com/ncruces/zenity"
)
func main() {
zenity.Error("An error has occurred.",
zenity.Title("Error"),
zenity.Icon(zenity.ErrorIcon))
}
Output:
func Info ¶
Info displays the info dialog.
Returns true on OK, false on dismiss, or ErrExtraButton.
Valid options: Title, Width, Height, OKLabel, ExtraButton, Icon, NoWrap, Ellipsize.
Example ¶
package main
import (
"github.com/ncruces/zenity"
)
func main() {
zenity.Info("All updates are complete.",
zenity.Title("Information"),
zenity.Icon(zenity.InfoIcon))
}
Output:
func List ¶ added in v0.6.2
List displays the list dialog.
Returns false on cancel, or ErrExtraButton.
Valid options: Title, Width, Height, OKLabel, CancelLabel, ExtraButton, Icon, DefaultItems, DisallowEmpty.
Example ¶
package main
import (
"github.com/ncruces/zenity"
)
func main() {
zenity.List(
"Select items from the list below:",
[]string{"apples", "oranges", "bananas", "strawberries"},
zenity.Title("Select items from the list"),
zenity.DisallowEmpty(),
)
}
Output:
func ListItems ¶ added in v0.6.2
ListItems displays the list dialog.
Returns false on cancel, or ErrExtraButton.
Example ¶
package main
import (
"github.com/ncruces/zenity"
)
func main() {
zenity.ListItems(
"Select items from the list below:",
"apples", "oranges", "bananas", "strawberries")
}
Output:
func ListMultiple ¶ added in v0.6.2
ListMultiple displays the list dialog, allowing multiple items to be selected.
Returns a nil slice on cancel, or ErrExtraButton.
Valid options: Title, Width, Height, OKLabel, CancelLabel, ExtraButton, Icon, DefaultItems, DisallowEmpty.
Example ¶
package main
import (
"github.com/ncruces/zenity"
)
func main() {
zenity.ListMultiple(
"Select items from the list below:",
[]string{"apples", "oranges", "bananas", "strawberries"},
zenity.Title("Select items from the list"),
zenity.DefaultItems("apples", "bananas"),
)
}
Output:
func ListMultipleItems ¶ added in v0.6.2
ListMultipleItems displays the list dialog, allowing multiple items to be selected.
Returns a nil slice on cancel, or ErrExtraButton.
Example ¶
package main
import (
"github.com/ncruces/zenity"
)
func main() {
zenity.ListMultipleItems(
"Select items from the list below:",
"apples", "oranges", "bananas", "strawberries")
}
Output:
func Notify ¶ added in v0.4.0
Notify displays a notification.
Valid options: Title, Icon.
Example ¶
package main
import (
"github.com/ncruces/zenity"
)
func main() {
zenity.Notify("There are system updates necessary!",
zenity.Title("Warning"),
zenity.Icon(zenity.InfoIcon))
}
Output:
func Password ¶ added in v0.6.0
Password displays the password dialog.
Returns false on cancel, or ErrExtraButton.
Valid options: Title, OKLabel, CancelLabel, ExtraButton, Icon, Username.
Example ¶
package main
import (
"github.com/ncruces/zenity"
)
func main() {
zenity.Password(zenity.Title("Type your password"))
}
Output:
func Question ¶
Question displays the question dialog.
Returns true on OK, false on Cancel, or ErrExtraButton.
Valid options: Title, Width, Height, OKLabel, CancelLabel, ExtraButton, Icon, NoWrap, Ellipsize, DefaultCancel.
Example ¶
package main
import (
"github.com/ncruces/zenity"
)
func main() {
zenity.Question("Are you sure you want to proceed?",
zenity.Title("Question"),
zenity.Icon(zenity.QuestionIcon))
}
Output:
func SelectColor ¶ added in v0.2.2
SelectColor displays the color selection dialog.
Returns nil on cancel.
Valid options: Title, Color, ShowPalette.
Example ¶
package main
import (
"image/color"
"github.com/ncruces/zenity"
)
func main() {
zenity.SelectColor(
zenity.Color(color.NRGBA{R: 0x66, G: 0x33, B: 0x99, A: 0x80}))
}
Output:
Example (Palette) ¶
package main
import (
"image/color"
"github.com/ncruces/zenity"
)
func main() {
zenity.SelectColor(
zenity.ShowPalette(),
zenity.Color(color.NRGBA{R: 0x66, G: 0x33, B: 0x99, A: 0xff}))
}
Output:
func SelectFile ¶
SelectFile displays the file selection dialog.
Returns an empty string on cancel.
Valid options: Title, Directory, Filename, ShowHidden, FileFilter(s).
Example ¶
package main
import (
"github.com/ncruces/zenity"
)
const defaultPath = ``
func main() {
zenity.SelectFile(
zenity.Filename(defaultPath),
zenity.FileFilters{
{"Go files", []string{"*.go"}},
{"Web files", []string{"*.html", "*.js", "*.css"}},
{"Image files", []string{"*.png", "*.gif", "*.ico", "*.jpg", "*.webp"}},
})
}
Output:
Example (Directory) ¶
package main
import (
"github.com/ncruces/zenity"
)
const defaultPath = ``
func main() {
zenity.SelectFile(
zenity.Filename(defaultPath),
zenity.Directory())
}
Output:
func SelectFileMutiple ¶
SelectFileMutiple displays the multiple file selection dialog.
Returns a nil slice on cancel.
Valid options: Title, Directory, Filename, ShowHidden, FileFilter(s).
Example ¶
package main
import (
"github.com/ncruces/zenity"
)
const defaultPath = ``
func main() {
zenity.SelectFileMutiple(
zenity.Filename(defaultPath),
zenity.FileFilters{
{"Go files", []string{"*.go"}},
{"Web files", []string{"*.html", "*.js", "*.css"}},
{"Image files", []string{"*.png", "*.gif", "*.ico", "*.jpg", "*.webp"}},
})
}
Output:
Example (Directory) ¶
package main
import (
"github.com/ncruces/zenity"
)
const defaultPath = ``
func main() {
zenity.SelectFileMutiple(
zenity.Filename(defaultPath),
zenity.Directory())
}
Output:
func SelectFileSave ¶
SelectFileSave displays the save file selection dialog.
Returns an empty string on cancel.
Valid options: Title, Filename, ConfirmOverwrite, ConfirmCreate, ShowHidden, FileFilter(s).
Example ¶
package main
import (
"github.com/ncruces/zenity"
)
const defaultName = ``
func main() {
zenity.SelectFileSave(
zenity.ConfirmOverwrite(),
zenity.Filename(defaultName),
zenity.FileFilters{
{"Go files", []string{"*.go"}},
{"Web files", []string{"*.html", "*.js", "*.css"}},
{"Image files", []string{"*.png", "*.gif", "*.ico", "*.jpg", "*.webp"}},
})
}
Output:
func Warning ¶
Warning displays the warning dialog.
Returns true on OK, false on dismiss, or ErrExtraButton.
Valid options: Title, Width, Height, OKLabel, ExtraButton, Icon, NoWrap, Ellipsize.
Example ¶
package main
import (
"github.com/ncruces/zenity"
)
func main() {
zenity.Warning("Are you sure you want to proceed?",
zenity.Title("Warning"),
zenity.Icon(zenity.WarningIcon))
}
Output:
Types ¶
type DialogIcon ¶ added in v0.4.0
type DialogIcon int
DialogIcon is the enumeration for dialog icons.
const ( ErrorIcon DialogIcon = iota + 1 WarningIcon InfoIcon QuestionIcon PasswordIcon NoIcon )
The stock dialog icons.
type FileFilter ¶
type FileFilter struct {
Name string // display string that describes the filter (optional)
Patterns []string // filter patterns for the display string
}
FileFilter is an Option that sets a filename filter.
macOS hides filename filters from the user, and only supports filtering by extension (or "type").
type FileFilters ¶
type FileFilters []FileFilter
FileFilters is an Option that sets multiple filename filters.
type Option ¶
type Option interface {
// contains filtered or unexported methods
}
An Option is an argument passed to dialog functions to customize their behavior.
func CancelLabel ¶
CancelLabel returns an Option to set the label of the Cancel button.
func ConfirmCreate ¶ added in v0.2.0
func ConfirmCreate() Option
ConfirmCreate returns an Option to confirm file selection if filename does not yet exist (Windows only).
func ConfirmOverwrite ¶
func ConfirmOverwrite() Option
ConfirmOverwrite returns an Option to confirm file selection if filename already exists.
func Context ¶ added in v0.4.2
Context returns an Option to set a Context that can dismiss the dialog.
Dialogs dismissed by the Context return Context.Err.
func DefaultCancel ¶
func DefaultCancel() Option
DefaultCancel returns an Option to give the Cancel button focus by default.
func DefaultItems ¶ added in v0.6.2
DefaultItems returns an Option to set the items to initially select (macOS only).
func Directory ¶
func Directory() Option
Directory returns an Option to activate directory-only selection.
func DisallowEmpty ¶ added in v0.6.2
func DisallowEmpty() Option
DisallowEmpty returns an Option to not allow zero items to be selected (macOS only).
func Ellipsize ¶
func Ellipsize() Option
Ellipsize returns an Option to enable ellipsizing in the dialog text (Unix only).
func ExtraButton ¶
ExtraButton returns an Option to add an extra button.
func Filename ¶
Filename returns an Option to set the filename.
You can specify a file name, a directory path, or both. Specifying a file name, makes it the default selected file. Specifying a directory path, makes it the default dialog location.
func HideText ¶ added in v0.6.0
func HideText() Option
HideText returns an Option to hide the entry text.
func NoWrap ¶
func NoWrap() Option
NoWrap returns an Option to disable enable text wrapping (Unix only).
func ShowHidden ¶ added in v0.2.0
func ShowHidden() Option
ShowHidden returns an Option to show hidden files (Windows and macOS only).
func ShowPalette ¶ added in v0.2.2
func ShowPalette() Option
ShowPalette returns an Option to show the palette.