pond
pond copied to clipboard
Windows support
IMHO, a lot of Windows users would enjoy Pond.
@agl do you think Pond may be ported easily (including dependencies) on Windows ? Do you plan to do it ?
The GUI would be a lot of work, but the CLI might work with some sort of terminal compat. Maybe Cygwin provides one?
I've no plans to do that myself.
Ain't touching this one myself, but it's worth mentioning that GTK+3 has a Windows port, making the GUI doable : http://blogs.gnome.org/mclasen/2013/10/28/gtk-3-on-windows/
There is a relevant answer on SO here : http://stackoverflow.com/a/17042596/667457
I've made some progress on Windows compatibility in the following fork using GTK+3, Go 1.3rc2, and MinGW (all 32 bit). Here are my current notes - https://github.com/saltthefries/pond/blob/master/README_WINDOWS.md My fork is here-- https://github.com/saltthefries/pond
README_WINDOWS.md notes link is dead, can you please update with a current one?
Sorry @sysfu, I reorganized this into a branch "windows". https://github.com/saltthefries/pond/blob/windows/README_WINDOWS.md
This now compiles in Windows, but it's not working yet and it's a mess. There is more to do with GTK. I'll try and do some cleanup and learn some more Go to push this further over the weekend.
I did some more digging on this and I'm not able to compile demo.go in @agl's agl/go-gtk fork on Windows using Go 1.4.2 (latest). I am able to compile demo.go the upstream (mattn/go-gtk). I see that @burdges is working on merging @agl's fork back into the upstream here https://github.com/mattn/go-gtk/issues/225
I upgraded to Go 1.4.2 on my Windows environment as 1.3rc2 wasn't working for either. I have GTK+3 bundle v3.6.4 and GTK+2 bundle v2.24.10 installed.
Here's what I get in Windows 7 with Go 1.4.2 when trying to build demo.go:
E:\gopath\src\github.com\agl\go-gtk\example\demo>go build
# github.com/agl/go-gtk/example/demo
.\demo.go:12: undefined: gtk.GtkMenuItem
.\demo.go:14: undefined: gtk.GTK_WINDOW_TOPLEVEL
.\demo.go:15: undefined: gtk.GTK_WIN_POS_CENTER
.\demo.go:25: too many arguments to conversion to gtk.VBox: gtk.VBox(false, 1)
.\demo.go:30: missing argument to conversion to gtk.MenuBar: gtk.MenuBar()
.\demo.go:36: missing argument to conversion to gtk.VPaned: gtk.VPaned()
.\demo.go:42: cannot convert "Demo" (type string) to type gtk.Frame
.\demo.go:43: too many arguments to conversion to gtk.VBox: gtk.VBox(false, 1)
.\demo.go:46: cannot convert "Demo" (type string) to type gtk.Frame
.\demo.go:47: too many arguments to conversion to gtk.VBox: gtk.VBox(false, 1)
.\demo.go:47: too many errors
There is no clean way to merge agl/go-gtk
into mattn/go-gtk
becuase Go lacks the conditional compliation directives needed to deal with significant variation in foreign libraries. Yet another reason Go is not a system programming lagnauge.
I/we could finish pulling/bastardizing agl's changes into mattn's most recent branch, thus giving proper error reporting for GTK, which might simplify your life.
Have you built much from mattn/go-gtk
successfully? Are there any big fixes there for windows users? If so, that's another possible benifit.
If you do not still need mattn/go-gtk
, then I should mention : There are no GTK v2 calls used in Pond so unless your confident in your pkg-config
skillz you might benifit from uninstalling it. I donno about Windows but under MacPorts on OS X you can encounter wierd dependencies of GTK 3 components on packages that depend on GTK 2 components if you build GTK 3 as an X11 library. I resolved it by building GTK 3 as a native Quartz library. I donno anything about how pkg-config
works on windows.
Feel free to jabber me at [email protected] or to get a mutual friend to put us in contact through pond or whatever.
Anyway, there is no garantee that gopath\src\github.com\agl\go-gtk\example\demo
should build becuase @agl did not necessarily fix the demos when he ported go-gtk
from GTK 2 to GTK 3.
It does not Build on my debian system with only GTK 3 but no GTK 2. In fact, it depends on mattn/go-gtk
which probably moved on since the version @agl forked. I can try building it on OS X with GTK 2 and mattn/go-gtk
instealled to see if I get the same errors if you like. lol