Documentation
¶
Overview ¶
Mack is a Golang wrapper for AppleScript. With Mack, you can easily trigger OS X desktop notifications and system sounds from within your Go application. Mack is ideal for local workflow optimization or OS X binary applications.
Repository: http://github.com/everdev/mack
Index ¶
- func Beep(times int) error
- func Clipboard() (string, error)
- func List(title string, items ...string) (selected []string, didCancel bool, err error)
- func ListWithOpts(list ListOptions) (selected []string, didCancel bool, err error)
- func Notify(text string, options ...string) error
- func Say(text string, options ...string) error
- func SetClipboard(content string) error
- func Tell(application string, commands ...string) (string, error)
- type AlertOptions
- type DialogOptions
- type ListOptions
- type Response
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Beep ¶
Beep triggers a given number of system beeps.
mack.Beep(1) // Beeps once mack.Beep(3) // Beeps 3 times
Parameters:
times int // Required - The number of beeps to play
func List ¶
List triggers a desktop list selection box. It accepts a title and one or more string items for the user to select from
Use ListWithOpts for more control over the parameters
selected, didCancel, err := mack.List("Pick Things", "thing one", "thing two")
func ListWithOpts ¶
func ListWithOpts(list ListOptions) (selected []string, didCancel bool, err error)
ListWithOpts trigger a desktop list selection box accepting custom parameters.
list := mack.ListOptions{
Items: []string{"item one", 'item two"},
Title: "My List Title",
Message: "Pick one or more items from this list",
DefaultItems: []string{"item one"},
AllowMultiple: true,
}
selected, didCancel, err := ListWithOpts(list)
func Notify ¶
Notify triggers a desktop notification.
mack.Notify("My message") // Display a notification with the content "My message"
mack.Notify("My message", "My title") // Display a notification with the title "My title"
mack.Notify("My message", "My title", "My subtitle") // Display a notification with the subtitle "My subtitle"
mack.Notify("My message", "My title", "My subtitle", "Ping") // Display a notification with a Ping sound
mack.Notify("My message", "", "", "Ping") // Display a notification with a Ping sound and no title or subtitle
Parameters:
text string // Required - The content of the notification
title string // Optional - The title of the notification
subtitle string // Optional - The subtitle of the notification
sound string // Optional - The sound to play when showing the notification
// Sounds list located at: /System/Library/Sounds/
// ex. Basso, Blow, Bottle, Frog, Funk, Glass, Hero, Morse, Ping, Pop, Purr, Sosumi, Submarine, Tink
func Say ¶
Say triggers a voice notification that will read the text provided in a given voice.
mack.Say("Hi in Bruce's voice!", "Bruce") // Have the "Bruce" voice read the text
mack.Say("Hi in default voice!") // Have the system default voice read the text
Parameters:
text string // Required - What the system voice will say
voice string // Optional - The name of the system voice, otherwise defaults to system preferences
// Voice list located at: /System/Library/Speech/Voices
// ex. Agnes, Albert, Alex, Alice Compact, Alva Compact, Amelie Compact, Anna Compact, BadNews, Bahh, Bells, Boing, Bruce,
// Bubbles, Carmit Compact, Cellos, Damayanti Compact, Daniel Compact, Deranged, Diego Compact, Ellen Compact,
// Fiona Compact, Fred, GoodNews, Hysterical, Ioana Compact, Joana Compact, Junior, Kanya Compact, Karen Compact, Kathy,
// Kyoko Compact, Laura Compact, Lekha Compact, Luciana Compact, Mariska Compact, Mei-Jia Compact, Melina Compact,
// Milena Compact, Moira Compact, Monica Compact, Nora Compact, Organ, Paulina Compact, Princess, Ralph, Samantha Compact,
// Sara Compact, Satu Compact, Sin-ji Compact, Tarik Compact, Tessa Compact, Thomas Compact, Ting-Ting Compact, Trinoids,
// Veena Compact, Vicki, Victoria, Whisper, Xander Compact, Yelda Compact, Yuna Compact, Zarvox, Zosia Compact, Zuzana Compact
func SetClipboard ¶
SetClipboard changes the content of the clipboard
func Tell ¶
Tell tells an application the specified commands
mack.Tell("TextEdit", "activate") // Activates TextEdit
mack.Tell("TextEdit", "quit") // Quits TextEdit
mack.Tell("Finder",
"activate",
`open (POSIX file "/Applications")`) // Activate Finder and open the "/Applications" folder
Parameters:
application string // Required - What application the system will tell to commands string // Required - What command lines the system will tell
Types ¶
type AlertOptions ¶
type AlertOptions struct {
Title string // The title of the alert, displayed in emphasis
Message string // The explanatory message, displayed in small text
Style string // The style of the alert: "informational" (default), "warning" or "critical"
Duration int // The number of seconds to wait for a user response, blank or "" will keep it visible until closed
// Buttons
Buttons string // The list of up to 3 buttons. Must be commas separated, ex. "Yes, No, Don't Know"
DefaultButton string // The default selected button from the button list, ex. "Don't Know"
}
AlertOptions are used to generate an AlertBox
type DialogOptions ¶
type DialogOptions struct {
Text string // The content of the dialog box
Title string // The title of the dialog box, displayed in emphasis
Answer string // The default text in the input field
HiddenAnswer bool // If true, converts the answer text to bullets (like a password field)
Icon string // The path to a .icns file, or one of the following: "stop", "note", "caution"
Duration int // The number of seconds to wait for a user response
// Buttons
Buttons string // The list of up to 3 buttons. Must be commas separated, ex. "Yes, No, Don't Know"
DefaultButton string // The default selected button from the button list, ex. "Don't Know"
}
DialogOptions are used to generate a DialogBox
type ListOptions ¶
type ListOptions struct {
Items []string // The items to display
Title string // The title of the dialog box
Message string // A message prompt to display in the obx
OkButton string // Text to display on the OK button - defaults to "OK"
CancelButton string // Text to display on the Cancel button - defaults to "Cancel"
DefaultItems []string // Optional list of items to select by default
AllowMultiple bool // If true, then the user can select multiple items in the list
AllowEmpty bool // If true then the user can select zero items in the list
}
ListOptions supplies parameters to the ListWithOpts function.
type Response ¶
type Response struct {
Clicked string // The name of the button clicked
GaveUp bool // True if the user failed to respond in the duration specified
Text string // Only on Dialog boxes - The return value of the input field
}
The response format after a button click on an alert or dialog box
func Alert ¶
Alert triggers a desktop alert with custom buttons. Either an error is returned, or the string output from the user interaction.
mack.Alert("Alert") // Display an alert with the emhpasized text "My alert"
mack.Alert("Alert", "Message") // Display an alert with the small text "My message"
mack.Alert("Alert", "Message", "critical") // Display an alert styled as "critical"
mack.Alert("Alert", "Message", "critical", "5") // Display an alert that will disappear after 5 seconds
mack.Alert("Alert", "", "", "10") // Display an alert that will disappear after 10 seconds
response, err := mack.Alert("Alert") // Capture the Response for the alert
Parameters:
title string // Required - The title of the alert, displayed in emphasis message string // Optional - The explanatory message, displayed in small text style string // Optional - The style of the alert: "informational" (default), "warning" or "critical" duration string // Optional - The number of seconds to wait for a user response, blank or "" will keep it visible until closed
func AlertBox ¶
func AlertBox(alert AlertOptions) (Response, error)
AlertBox triggers a desktop alert with the option for custom buttons. Either an error is returned, or the string output from the user interaction.
alert := mack.AlertOptions{
Title: "Alert title", // Required
Message: "Alert message", // Optional
Style: "critical", // Optional
Duration: 5, // Optional
Buttons: "Yes, No, Don't Know", // Optional - Comma separated list, max of 3
DefaultButton: "Don't Know", // Optional - Ignored if no ButtonList
}
response, err := mack.AlertBox(alert) // Display an alert with the AlertBox settings, returns an error and Response
func Dialog ¶
Dialog triggers a desktop dialog box. Either an error is returned, or the string output from the user interaction.
mack.Dialog("Dialog text") // Display a dialog box
mack.Dialog("Dialog text", "My Title") // Display a dialog box with the title "My Title"
mack.Dialog("Dialog text", "My Title", "default text") // Display a dialog box with "default text" in the input field
mack.Dialog("Dialog text", "My Title", "default text", "5") // Display a dialog box that will disappear after 5 seconds
mack.Dialog("Dialog text", "", "", "10") // Display a dialog box that will disappear after 10 seconds
response, err := mack.Dialog("My dialog") // Capture the Response for the dialog box
Parameters:
text string // Required - The content of the dialog box title string // Optional - The title of the dialog box, displayed in emphasis answer string // Optional - The default text in the input field duration string // Optional - The number of seconds to wait for a user response
func DialogBox ¶
func DialogBox(dialog DialogOptions) (Response, error)
DialogBox triggers a desktop dialog box with the option for custom buttons. Either an error is returned, or the string output from the user interaction.
dialog := mack.DialogOptions{
Text: "Dialog text", // Required
Title: "Dialog title", // Optional
Answer: "Default answer", // Optional
Duration: 5, // Optional
HiddenAnswer: true, // Optional - If true, turns the input text to bullets
Icon: "stop", // Optional - "stop", "note", "caution" or location of .icns file
Buttons: "Yes, No, Don't Know", // Optional - Comma separated list, max of 3
DefaultButton: "Don't Know", // Optional - Ignored if no ButtonList
}
response, err := mack.DialogBox(dialog) // Display a dialog with the DialogBox settings, returns an error and Response