summaryrefslogtreecommitdiff
path: root/dialog_darwin.go
diff options
context:
space:
mode:
Diffstat (limited to 'dialog_darwin.go')
-rw-r--r--dialog_darwin.go22
1 files changed, 13 insertions, 9 deletions
diff --git a/dialog_darwin.go b/dialog_darwin.go
index 6bf7d60..0d1d388 100644
--- a/dialog_darwin.go
+++ b/dialog_darwin.go
@@ -8,6 +8,7 @@ import (
// #cgo LDFLAGS: -lobjc -framework Foundation -framework AppKit
// #include "objc_darwin.h"
+// #include "dialog_darwin.h"
import "C"
// NSAlert styles.
@@ -27,27 +28,30 @@ var (
_runModal = sel_getUid("runModal")
)
-func _msgBox(primarytext string, secondarytext string, style uintptr, button0 string) {
+func _msgBox(primarytext string, secondarytext string, style uintptr) {
ret := make(chan struct{})
defer close(ret)
uitask <- func() {
- box := C.objc_msgSend_noargs(_NSAlert, _new)
- C.objc_msgSend_id(box, _setMessageText, toNSString(primarytext))
+ primary := toNSString(primarytext)
+ secondary := C.id(nil)
if secondarytext != "" {
- C.objc_msgSend_id(box, _setInformativeText, toNSString(secondarytext))
+ secondary = toNSString(secondarytext)
+ }
+ switch style {
+ case 0: // normal
+ C.msgBox(primary, secondary)
+ case 1: // error
+ C.msgBoxError(primary, secondary)
}
- C.objc_msgSend_uint(box, _setAlertStyle, C.uintptr_t(style))
- C.objc_msgSend_id(box, _addButtonWithTitle, toNSString(button0))
- C.objc_msgSend_noargs(box, _runModal)
ret <- struct{}{}
}
<-ret
}
func msgBox(primarytext string, secondarytext string) {
- _msgBox(primarytext, secondarytext, _NSInformationalAlertStyle, "OK")
+ _msgBox(primarytext, secondarytext, 0)
}
func msgBoxError(primarytext string, secondarytext string) {
- _msgBox(primarytext, secondarytext, _NSCriticalAlertStyle, "OK")
+ _msgBox(primarytext, secondarytext, 1)
}