Added the Mac OS X implementation of messageboxes.
This commit is contained in:
parent
234b724403
commit
e20b468472
|
@ -0,0 +1,52 @@
|
|||
// 2 march 2014
|
||||
package ui
|
||||
|
||||
import (
|
||||
// ...
|
||||
)
|
||||
|
||||
// #cgo LDFLAGS: -lobjc -framework Foundation -framework AppKit
|
||||
// #include "objc_darwin.h"
|
||||
import "C"
|
||||
|
||||
// NSAlert styles.
|
||||
const (
|
||||
_NSWarningAlertStyle = 0 // default
|
||||
_NSInformationalAlertStyle = 1
|
||||
_NSCriticalAlertStyle = 2
|
||||
)
|
||||
|
||||
var (
|
||||
_NSAlert = objc_getClass("NSAlert")
|
||||
|
||||
_setMessageText = sel_getUid("setMessageText:")
|
||||
_setInformativeText = sel_getUid("setInformativeText:")
|
||||
_setAlertStyle = sel_getUid("setAlertStyle:")
|
||||
_addButtonWithTitle = sel_getUid("addButtonWithTitle:")
|
||||
_runModal = sel_getUid("runModal")
|
||||
)
|
||||
|
||||
func _msgBox(title string, text string, style uintptr, button0 string) {
|
||||
ret := make(chan struct{})
|
||||
defer close(ret)
|
||||
uitask <- func() {
|
||||
box := objc_new(_NSAlert)
|
||||
// TODO is this appropriate for title?
|
||||
C.objc_msgSend_id(box, _setMessageText, toNSString(title))
|
||||
C.objc_msgSend_id(box, _setInformativeText, toNSString(text))
|
||||
objc_msgSend_uint(box, _setAlertStyle, style)
|
||||
C.objc_msgSend_id(box, _addButtonWithTitle, toNSString(button0))
|
||||
C.objc_msgSend_noargs(box, _runModal)
|
||||
ret <- struct{}{}
|
||||
}
|
||||
<-ret
|
||||
}
|
||||
|
||||
func msgBox(title string, text string) {
|
||||
// TODO _NSInformationalAlertStyle?
|
||||
_msgBox(title, text, _NSWarningAlertStyle, "OK")
|
||||
}
|
||||
|
||||
func msgBoxError(title string, text string) {
|
||||
_msgBox(title, text, _NSCriticalAlertStyle, "OK")
|
||||
}
|
|
@ -11,10 +11,6 @@ import (
|
|||
// #include "objc_darwin.h"
|
||||
import "C"
|
||||
|
||||
// temporary for now
|
||||
func msgBox(string, string){}
|
||||
func msgBoxError(string, string){}
|
||||
|
||||
var uitask chan func()
|
||||
|
||||
var (
|
||||
|
|
Loading…
Reference in New Issue