/
NSImage.go
56 lines (45 loc) · 1.19 KB
/
NSImage.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
package cocoa
/*
#cgo CFLAGS: -x objective-c
#cgo LDFLAGS: -framework Foundation
#import <Foundation/Foundation.h>
#include <Cocoa/Cocoa.h>
#include <CoreGraphics/CoreGraphics.h>
#include <objc/objc-runtime.h>
void NSImage_SetSize(void *id, double x, double y) {
NSImage *image = id;
[image setSize:NSMakeSize(x, y)];
}
*/
import "C"
import (
"unsafe"
"github.com/progrium/macdriver/core"
"github.com/progrium/macdriver/objc"
)
type NSImage struct {
objc.Object
}
func NSImage_InitWithData(data core.NSData) NSImage {
return NSImage{objc.Get("NSImage").Alloc().Send("initWithData:", data)}
}
func NSImage_ImageNamed(name string) NSImage {
return NSImage{objc.Get("NSImage").Send("imageNamed:", core.String(name))}
}
// broken
func (i NSImage) Size() (size core.NSSize) {
i.Send("size", &size)
return size
}
func (i NSImage) SetSize(size core.NSSize) {
C.NSImage_SetSize(unsafe.Pointer(i.Object.Pointer()), C.double(size.Width), C.double(size.Height))
}
func (i NSImage) SetTemplate(b bool) {
i.Send("setTemplate:", b)
}
func (i NSImage) IsTemplate() bool {
return i.Get("isTemplate").Bool()
}
func (i NSImage) SetValueForKey(value, key interface{}) {
i.Send("setValue:forKey:", value, key)
}