Command improvements.

This commit is contained in:
Nuno Cruces 2022-03-26 02:56:06 +00:00
parent 781b9e4fa1
commit 05bce67856
4 changed files with 28 additions and 20 deletions

View File

@ -316,22 +316,18 @@ func loadFlags() []zenity.Option {
switch {
case errorDlg:
setDefault(&title, "Error")
setDefault(&icon, "dialog-error")
setDefault(&text, "An error has occurred.")
setDefault(&okLabel, "OK")
case infoDlg:
setDefault(&title, "Information")
setDefault(&icon, "dialog-information")
setDefault(&text, "All updates are complete.")
setDefault(&okLabel, "OK")
case warningDlg:
setDefault(&title, "Warning")
setDefault(&icon, "dialog-warning")
setDefault(&text, "Are you sure you want to proceed?")
setDefault(&okLabel, "OK")
case questionDlg:
setDefault(&title, "Question")
setDefault(&icon, "dialog-question")
setDefault(&text, "Are you sure you want to proceed?")
setDefault(&okLabel, "Yes")
setDefault(&cancelLabel, "No")
@ -347,7 +343,6 @@ func loadFlags() []zenity.Option {
setDefault(&cancelLabel, "Cancel")
case passwordDlg:
setDefault(&title, "Type your password")
setDefault(&icon, "dialog-password")
setDefault(&okLabel, "OK")
setDefault(&cancelLabel, "Cancel")
case progressDlg:
@ -355,10 +350,6 @@ func loadFlags() []zenity.Option {
setDefault(&text, "Running...")
setDefault(&okLabel, "OK")
setDefault(&cancelLabel, "Cancel")
case notification:
setDefault(&icon, "dialog-information")
default:
setDefault(&text, "")
}
// General options
@ -390,10 +381,12 @@ func loadFlags() []zenity.Option {
ico = zenity.WarningIcon
case "dialog-password":
ico = zenity.PasswordIcon
case "":
default:
ico = zenity.NoIcon
}
opts = append(opts, ico)
if icon != unspecified {
opts = append(opts, ico)
}
// Message options

View File

@ -14,11 +14,14 @@ import (
func notify(opts ...zenity.Option) error {
if !listen {
if text == unspecified {
return nil
}
return zenity.Notify(text, opts...)
}
zenutil.Command = false
icon := zenity.InfoIcon
ico := zenity.NoIcon
for scanner := bufio.NewScanner(os.Stdin); scanner.Scan(); {
line := scanner.Text()
var cmd, msg string
@ -32,20 +35,20 @@ func notify(opts ...zenity.Option) error {
case "icon":
switch msg {
case "error", "dialog-error":
icon = zenity.ErrorIcon
ico = zenity.ErrorIcon
case "info", "dialog-information":
icon = zenity.InfoIcon
ico = zenity.InfoIcon
case "question", "dialog-question":
icon = zenity.QuestionIcon
ico = zenity.QuestionIcon
case "important", "warning", "dialog-warning":
icon = zenity.WarningIcon
ico = zenity.WarningIcon
case "dialog-password":
icon = zenity.PasswordIcon
ico = zenity.PasswordIcon
default:
icon = zenity.NoIcon
ico = zenity.NoIcon
}
case "message", "tooltip":
opts := []zenity.Option{icon}
opts := []zenity.Option{ico}
if n := strings.IndexByte(msg, '\n'); n >= 0 {
opts = append(opts, zenity.Title(msg[:n]))
msg = msg[n+1:]

View File

@ -32,6 +32,17 @@ func message(kind messageKind, text string, opts options) error {
flags |= 0x30 // MB_ICONWARNING
case InfoIcon:
flags |= 0x40 // MB_ICONINFORMATION
case unspecifiedIcon:
switch kind {
case errorKind:
flags |= 0x10 // MB_ICONERROR
case questionKind:
flags |= 0x20 // MB_ICONQUESTION
case warningKind:
flags |= 0x30 // MB_ICONWARNING
case infoKind:
flags |= 0x40 // MB_ICONINFORMATION
}
}
if kind == questionKind && opts.defaultCancel {

View File

@ -132,7 +132,8 @@ func (i DialogIcon) apply(o *options) { o.icon = i }
// The stock dialog icons.
const (
ErrorIcon DialogIcon = iota + 1
unspecifiedIcon DialogIcon = iota
ErrorIcon
WarningIcon
InfoIcon
QuestionIcon