Skip to content

Commit 9afceff

Browse files
committed
dropped pkg dir, more readme bits
1 parent 33cf3fc commit 9afceff

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

101 files changed

+95
-96
lines changed

LICENSE

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
MIT License
22

3-
Copyright (c) 2020 Jeff Lindsay
3+
Copyright (c) 2020 Jeff Lindsay, Mikkel Krautz
44

55
Permission is hereby granted, free of charge, to any person obtaining a copy
66
of this software and associated documentation files (the "Software"), to deal

README.md

+14-15
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<img src="https://github.com/progrium/macdriver/raw/main/macdriver.gif" alt="MacDriver Logo">
22

3-
Native Mac APIs for Go!
3+
Native Mac APIs for Golang!
44

55
[![GoDoc](https://godoc.org/github.com/progrium/macdriver?status.svg)](https://godoc.org/github.com/progrium/macdriver)
66
[![Go Report Card](https://goreportcard.com/badge/github.com/progrium/macdriver)](https://goreportcard.com/report/github.com/progrium/macdriver)
@@ -9,23 +9,22 @@ Native Mac APIs for Go!
99

1010
------
1111

12-
MacDriver is a toolkit for working with Apple/Mac APIs and frameworks. It currently has 3 major components:
12+
MacDriver is a toolkit for working with Apple/Mac APIs and frameworks in Go. It currently has 3 major "layers":
1313

14-
## Bindings for libobjc
14+
## Bindings for Objective-C
1515
The `objc` package wraps the [Objective-C runtime](https://developer.apple.com/documentation/objectivec/objective-c_runtime?language=objc) to dynamically interact with Objective-C objects and classes:
1616

17-
```go
18-
objc.Get("NSApplication").Get("sharedApplication").Send("terminate:", nil)
19-
```
20-
21-
Also dynamically create them:
22-
2317
```go
2418
cls := objc.NewClass("AppDelegate", "NSObject")
2519
cls.AddMethod("applicationDidFinishLaunching:", func(app objc.Object) {
2620
fmt.Println("Launched!")
2721
})
2822
objc.RegisterClass(cls)
23+
24+
delegate := objc.Get("AppDelegate").Alloc().Init()
25+
app := objc.Get("NSApplication").Get("sharedApplication")
26+
app.Set("delegate:", delegate)
27+
app.Send("run")
2928
```
3029

3130
## Framework Packages
@@ -35,6 +34,7 @@ we can automate this process with schema data. These packages effectively let yo
3534
```go
3635
w := cocoa.NSWindow_Init(core.Rect(0, 0, 1440, 900),
3736
cocoa.NSTitledWindowMask, cocoa.NSBackingStoreBuffered, false)
37+
w.SetBackgroundColor(cocoa.NSColor_Clear())
3838
w.MakeKeyAndOrderFront(w)
3939
```
4040

@@ -71,16 +71,16 @@ screen with HTML/JS:
7171
![topframe screenshot](https://pbs.twimg.com/media/EqhYDmlW8AEBC6-?format=jpg&name=large)
7272

7373
## Bridge System
74-
Lastly, a common use case for this toolkit is not building full native apps, but integrating Go applications
75-
with various Mac systems, like windows, native menus, status icons (systray), etc.
74+
Lastly, a common case for this toolkit is not just building full native apps, but integrating Go applications
75+
with Mac systems, like windows, native menus, status icons (systray), etc.
7676
One-off libraries for some of these exist, but besides often limiting what you can do,
7777
they're also just not composable. They all want to own the main thread!
7878

7979
For this and other reasons, we often run the above kind of code in a separate process altogether from our
8080
Go application. This might seem like a step backwards, but it is safer and more robust in a way.
8181

8282
The `bridge` package takes advantage of this situation to create a higher-level abstraction more aligned with a potential
83-
cross-platform toolkit where you can declaratively describe and modify structs that can be copied to the bridge process and applied to the Objective-C
83+
cross-platform toolkit. You can declaratively describe and modify structs that can be copied to the bridge process and applied to the Objective-C
8484
objects in a manner similar to configuration management:
8585

8686
```go
@@ -89,7 +89,7 @@ package main
8989
import (
9090
"os"
9191

92-
"github.com/progrium/macdriver/pkg/bridge"
92+
"github.com/progrium/macdriver/bridge"
9393
)
9494

9595
func main() {
@@ -138,8 +138,7 @@ as needed until we have enough coverage/confidence to know how we'd generate wra
138138

139139
## Thanks
140140

141-
The original `objc` and `variadic` packages were written by Mikkel Krautz. The `variadic` package is a little magic to make everything possible since
142-
libobjc relies heavily on variadic function calls, which aren't possible out of the box in Cgo.
141+
The original `objc` and `variadic` packages were written by [Mikkel Krautz](https://github.com/mkrautz). The `variadic` package is some assembly magic to make everything possible since libobjc relies heavily on variadic function calls, which aren't possible out of the box in Cgo.
143142

144143
## License
145144

pkg/bridge/bridge.go bridge/bridge.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@ import (
1414
"github.com/manifold/qtalk/golang/mux"
1515
"github.com/manifold/qtalk/golang/rpc"
1616
"github.com/mitchellh/mapstructure"
17-
"github.com/progrium/macdriver/pkg/cocoa"
18-
"github.com/progrium/macdriver/pkg/core"
19-
"github.com/progrium/macdriver/pkg/objc"
17+
"github.com/progrium/macdriver/cocoa"
18+
"github.com/progrium/macdriver/core"
19+
"github.com/progrium/macdriver/objc"
2020
)
2121

2222
var (

pkg/bridge/host.go bridge/host.go

File renamed without changes.

pkg/bridge/menu.go bridge/menu.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ import (
77
"reflect"
88

99
"github.com/manifold/qtalk/golang/rpc"
10-
"github.com/progrium/macdriver/pkg/cocoa"
11-
"github.com/progrium/macdriver/pkg/core"
12-
"github.com/progrium/macdriver/pkg/objc"
10+
"github.com/progrium/macdriver/cocoa"
11+
"github.com/progrium/macdriver/core"
12+
"github.com/progrium/macdriver/objc"
1313
"github.com/rs/xid"
1414
)
1515

pkg/bridge/misc.go bridge/misc.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package bridge
22

33
import (
4-
"github.com/progrium/macdriver/pkg/cocoa"
5-
"github.com/progrium/macdriver/pkg/core"
4+
"github.com/progrium/macdriver/cocoa"
5+
"github.com/progrium/macdriver/core"
66
)
77

88
type Point struct {

pkg/bridge/resource.go bridge/resource.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import (
66
"strings"
77

88
"github.com/manifold/qtalk/golang/rpc"
9-
"github.com/progrium/macdriver/pkg/objc"
9+
"github.com/progrium/macdriver/objc"
1010
"github.com/rs/xid"
1111
)
1212

pkg/bridge/systray.go bridge/systray.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ import (
44
"encoding/base64"
55
"reflect"
66

7-
"github.com/progrium/macdriver/pkg/cocoa"
8-
"github.com/progrium/macdriver/pkg/core"
9-
"github.com/progrium/macdriver/pkg/objc"
7+
"github.com/progrium/macdriver/cocoa"
8+
"github.com/progrium/macdriver/core"
9+
"github.com/progrium/macdriver/objc"
1010
)
1111

1212
type StatusItem struct {

pkg/bridge/window.go bridge/window.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@ import (
44
"encoding/base64"
55
"reflect"
66

7-
"github.com/progrium/macdriver/pkg/cocoa"
8-
"github.com/progrium/macdriver/pkg/core"
9-
"github.com/progrium/macdriver/pkg/objc"
10-
"github.com/progrium/macdriver/pkg/webkit"
7+
"github.com/progrium/macdriver/cocoa"
8+
"github.com/progrium/macdriver/core"
9+
"github.com/progrium/macdriver/objc"
10+
"github.com/progrium/macdriver/webkit"
1111
)
1212

1313
type Window struct {

cmd/macbridge/main.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package main
33
import (
44
"runtime"
55

6-
"github.com/progrium/macdriver/pkg/bridge"
6+
"github.com/progrium/macdriver/bridge"
77
)
88

99
func main() {

pkg/cocoa/NSApplication.go cocoa/NSApplication.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
package cocoa
66

7-
import "github.com/progrium/macdriver/pkg/objc"
7+
import "github.com/progrium/macdriver/objc"
88

99
const (
1010
NSApplicationActivationPolicyRegular = 0
File renamed without changes.

pkg/cocoa/NSBundle.go cocoa/NSBundle.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
package cocoa
66

77
import (
8-
"github.com/progrium/macdriver/pkg/core"
9-
"github.com/progrium/macdriver/pkg/objc"
8+
"github.com/progrium/macdriver/core"
9+
"github.com/progrium/macdriver/objc"
1010
)
1111

1212
type NSBundle struct {
File renamed without changes.

pkg/cocoa/NSColor.go cocoa/NSColor.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
package cocoa
66

77
import (
8-
"github.com/progrium/macdriver/pkg/objc"
8+
"github.com/progrium/macdriver/objc"
99
)
1010

1111
type NSColor struct {

pkg/cocoa/NSEvent.go cocoa/NSEvent.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ void monitor(unsigned long long int mask) {
1919
*/
2020
import "C"
2121
import (
22-
"github.com/progrium/macdriver/pkg/objc"
22+
"github.com/progrium/macdriver/objc"
2323
)
2424

2525
const (

pkg/cocoa/NSEvent_monitor.go cocoa/NSEvent_monitor.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import "C"
1010
import (
1111
"unsafe"
1212

13-
"github.com/progrium/macdriver/pkg/objc"
13+
"github.com/progrium/macdriver/objc"
1414
)
1515

1616
var monitorCh chan NSEvent

pkg/cocoa/NSFont.go cocoa/NSFont.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
package cocoa
66

77
import (
8-
"github.com/progrium/macdriver/pkg/core"
9-
"github.com/progrium/macdriver/pkg/objc"
8+
"github.com/progrium/macdriver/core"
9+
"github.com/progrium/macdriver/objc"
1010
)
1111

1212
type NSFont struct {

pkg/cocoa/NSImage.go cocoa/NSImage.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ import "C"
2121
import (
2222
"unsafe"
2323

24-
"github.com/progrium/macdriver/pkg/core"
25-
"github.com/progrium/macdriver/pkg/objc"
24+
"github.com/progrium/macdriver/core"
25+
"github.com/progrium/macdriver/objc"
2626
)
2727

2828
type NSImage struct {

pkg/cocoa/NSImageView.go cocoa/NSImageView.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
package cocoa
66

77
import (
8-
"github.com/progrium/macdriver/pkg/objc"
8+
"github.com/progrium/macdriver/objc"
99
)
1010

1111
type NSImageView struct {

pkg/cocoa/NSLayoutManager.go cocoa/NSLayoutManager.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package cocoa
22

33
import (
4-
"github.com/progrium/macdriver/pkg/core"
5-
"github.com/progrium/macdriver/pkg/objc"
4+
"github.com/progrium/macdriver/core"
5+
"github.com/progrium/macdriver/objc"
66
)
77

88
type NSLayoutManager struct {

pkg/cocoa/NSMenu.go cocoa/NSMenu.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
package cocoa
66

77
import (
8-
"github.com/progrium/macdriver/pkg/core"
9-
"github.com/progrium/macdriver/pkg/objc"
8+
"github.com/progrium/macdriver/core"
9+
"github.com/progrium/macdriver/objc"
1010
)
1111

1212
type NSMenu struct {

pkg/cocoa/NSMenuItem.go cocoa/NSMenuItem.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
package cocoa
66

77
import (
8-
"github.com/progrium/macdriver/pkg/core"
9-
"github.com/progrium/macdriver/pkg/objc"
8+
"github.com/progrium/macdriver/core"
9+
"github.com/progrium/macdriver/objc"
1010
)
1111

1212
type NSMenuItem struct {

pkg/cocoa/NSNib.go cocoa/NSNib.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
package cocoa
66

77
import (
8-
"github.com/progrium/macdriver/pkg/core"
9-
"github.com/progrium/macdriver/pkg/objc"
8+
"github.com/progrium/macdriver/core"
9+
"github.com/progrium/macdriver/objc"
1010
)
1111

1212
type NSNib struct {

pkg/cocoa/NSScreen.go cocoa/NSScreen.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package cocoa
22

33
import (
4-
"github.com/progrium/macdriver/pkg/core"
5-
"github.com/progrium/macdriver/pkg/objc"
4+
"github.com/progrium/macdriver/core"
5+
"github.com/progrium/macdriver/objc"
66
)
77

88
type NSScreen struct {

pkg/cocoa/NSStatusBar.go cocoa/NSStatusBar.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package cocoa
22

3-
import "github.com/progrium/macdriver/pkg/objc"
3+
import "github.com/progrium/macdriver/objc"
44

55
const (
66
NSVariableStatusItemLength = -1.0

pkg/cocoa/NSStatusBarButton.go cocoa/NSStatusBarButton.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package cocoa
22

3-
import "github.com/progrium/macdriver/pkg/core"
3+
import "github.com/progrium/macdriver/core"
44

55
type NSStatusBarButton struct {
66
NSView

pkg/cocoa/NSStatusItem.go cocoa/NSStatusItem.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package cocoa
22

33
import (
4-
"github.com/progrium/macdriver/pkg/objc"
4+
"github.com/progrium/macdriver/objc"
55
)
66

77
type NSStatusItem struct {

pkg/cocoa/NSTextContainer.go cocoa/NSTextContainer.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package cocoa
22

33
import (
4-
"github.com/progrium/macdriver/pkg/core"
5-
"github.com/progrium/macdriver/pkg/objc"
4+
"github.com/progrium/macdriver/core"
5+
"github.com/progrium/macdriver/objc"
66
)
77

88
type NSTextContainer struct {

pkg/cocoa/NSTextView.go cocoa/NSTextView.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
package cocoa
66

77
import (
8-
"github.com/progrium/macdriver/pkg/core"
9-
"github.com/progrium/macdriver/pkg/objc"
8+
"github.com/progrium/macdriver/core"
9+
"github.com/progrium/macdriver/objc"
1010
)
1111

1212
type NSTextAlignment uint

pkg/cocoa/NSView.go cocoa/NSView.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package cocoa
22

33
import (
4-
"github.com/progrium/macdriver/pkg/core"
5-
"github.com/progrium/macdriver/pkg/objc"
4+
"github.com/progrium/macdriver/core"
5+
"github.com/progrium/macdriver/objc"
66
)
77

88
type NSView struct {

pkg/cocoa/NSVisualEffectView.go cocoa/NSVisualEffectView.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package cocoa
22

3-
import "github.com/progrium/macdriver/pkg/objc"
3+
import "github.com/progrium/macdriver/objc"
44

55
const (
66
NSVisualEffectBlendingModeBehindWindow = 0

pkg/cocoa/NSWindow.go cocoa/NSWindow.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ package cocoa
1616
import "C"
1717

1818
import (
19-
"github.com/progrium/macdriver/pkg/core"
20-
"github.com/progrium/macdriver/pkg/objc"
19+
"github.com/progrium/macdriver/core"
20+
"github.com/progrium/macdriver/objc"
2121
)
2222

2323
const (

pkg/cocoa/init.go cocoa/init.go

File renamed without changes.

pkg/core/CALayer.go core/CALayer.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package core
22

3-
import "github.com/progrium/macdriver/pkg/objc"
3+
import "github.com/progrium/macdriver/objc"
44

55
type CALayer struct {
66
objc.Object

0 commit comments

Comments
 (0)