Coder Social home page Coder Social logo

ui's Introduction

ui: platform-native GUI library for Go

This is a library that aims to provide simple GUI software development in Go. It is based on my libui, a simple cross-platform library that does the same thing, but written in C.

It runs on/requires:

  • Windows: cgo, Windows Vista SP2 with Platform Update and newer
  • Mac OS X: cgo, Mac OS X 10.8 and newer
  • other Unixes: cgo, GTK+ 3.10 and newer
    • Debian, Ubuntu, etc.: sudo apt-get install libgtk-3-dev
    • Red Hat/Fedora, etc.: sudo dnf install gtk3-devel

It also requires Go 1.8 or newer.

It currently aligns to libui's Alpha 4.1, with only a small handful of functions not available.

Status

Package ui is currently mid-alpha software. Much of what is currently present runs stabily enough for the examples and perhaps some small programs to work, but the stability is still a work-in-progress, much of what is already there is not feature-complete, some of it will be buggy on certain platforms, and there's a lot of stuff missing. The libui README has more information.

Installation

Once you have the dependencies installed, a simple

go get github.com/andlabs/ui/...

should suffice.

Documentation

The in-code documentation is sufficient to get started, but needs improvement.

Some simple example programs are in the examples directory. You can go build each of them individually.

Windows manifests

Package ui requires a manifest that specifies Common Controls v6 to run on Windows. It should at least also state as supported Windows Vista and Windows 7, though to avoid surprises with other packages (or with Go itself; see this issue) you should state compatibility with higher versions of Windows too.

The simplest option is provided as a subpackage winmanifest; you can simply import it without a name, and it'll set things up properly:

import _ "github.com/andlabs/ui/winmanifest"

You do not have to worry about importing this in non-Windows-only files; it does nothing on non-Windows platforms.

If you wish to use your own manifest instead, you can use the one in winmanifest as a template to see what's required and how. You'll need to specify the template in a .rc file and use windres in MinGW-w64 to generate a .syso file as follows:

windres -i resources.rc -o winmanifest_windows_GOARCH.syso -O coff

You may also be interested in the github.com/akavel/rsrc and github.com/josephspurrier/goversioninfo packages, which provide other Go-like options for embedding the manifest.

Note that if you choose to ship a manifest as a separate .exe.manifest file instead of embedding it in your binary, and you use Cygwin or MSYS2 as the source of your MinGW-w64, Cygwin and MSYS2 instruct gcc to embed a default manifest of its own if none is specified. This default will override your manifest file! See this issue for more details, including workaround instructions.

macOS program execution

If you run a macOS program binary directly from the command line, it will start in the background. This is intentional; see this for more details.

ui's People

Contributors

adamar avatar andlabs avatar boppreh avatar emersion avatar henkman avatar kybin avatar oemmerson avatar pftbest avatar tompao avatar trevors avatar vorstenbosch avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ui's Issues

Feature request: Richer elements

This one might be huge thing to do.

Would be awesome if there would be more options that OnClicked(), SetText(), Text(). Things like richer text (color, links etc.), OnDoubleClick(), MouseOver() (like hover in css), ForegroundColor, BackgroundColor, inline images etc. stuff like that.

I haven't played with the Area widget so I'm not sure, but with Area you pass AreaHandler which allows you to have more control over the field. Same kind of behavior could be added to other fields which would allow the OnDoubleClick and MouseOver etc. events and when you have control to those events you could easily dynamically change e.g. BackgroundColor of text if the element just has the option to change that.

There wouldn't be need to code every event (OnDoubleClick, MouseOver etc.) to the ui library if you just have the AreaHandler'ish handler for every field (optionally) and let the user chose if she/he wants to handle the events.

How to select a folder on dialog ?

I can open a dialog and select a file by following code, but I cannot select a directory, could you please help me out ?

func fileSelected(filename string) {
    fmt.Println(filename)
}

func initGUI() {
    button := ui.NewButton("Button")
    button.OnClicked(func() {
        ui.OpenFile(window, fileSelected)
    })
}

windows 7

Hi,

does ui work on windows 7 with x32?

Thanks,
Gerald

Include screenshots on Linux / OS X / Windows in README

"Native" is an overused term, as a lot of GUI libraries that promise "native" really aren't (I'm looking at you, AWT/Swing).

It'd be really convincing if you could include screenshots so people know exactly what this provides.

Exception when running tests

go version go1.4rc1 windows/amd64

  1. run go test
  2. Select the Foreign Events tab
  3. Click the Open button
  4. Close the file dialog

As soon as I close the file dialog I get this exception :

d:\Dev\go\gopath\src\github.com\andlabs\ui>go test
Exception 0xc0000005 0x8 0xc328c48348 0xc328c48348
PC=0xc328c48348


goroutine 17 [syscall, locked to thread]:
runtime.goexit()
        c:/go/src/runtime/asm_amd64.s:2232 +0x1

goroutine 5 [chan receive]:
github.com/andlabs/ui.funcโ”ฌร€024()
        d:/dev/go/gopath/src/github.com/andlabs/ui/zz_test.go:310 +0x10d
created by github.com/andlabs/ui.initโ”ฌร€1
        d:/dev/go/gopath/src/github.com/andlabs/ui/zz_test.go:311 +0x35

goroutine 6 [chan receive]:
github.com/andlabs/ui.uiissueloop()
        d:/dev/go/gopath/src/github.com/andlabs/ui/uitask.go:59 +0x5a
created by github.com/andlabs/ui.Go
        d:/dev/go/gopath/src/github.com/andlabs/ui/uitask.go:21 +0x74
rax     0x43b110
rbx     0xc328c48348
rcx     0x0
rdx     0x461f40
rdi     0xc082071dd8
rsi     0x22fc30
rbp     0x0
rsp     0xc082071d88
r8      0xc082071df0
r9      0x6ecda0
r10     0x0
r11     0x246
r12     0x0
r13     0x800d
r14     0x0
r15     0xb065a
rip     0xc328c48348
rflags  0xc300010246
cs      0x33
fs      0x53
gs      0x2b
exit status 2
FAIL    github.com/andlabs/ui   23.362s

UI events cause Crash after adding Table (Darwin)

After I have added a ui.Table to my interface, events on UI component crash frequently. Resizing the window dies 100%.

Here are some dumps I've collected after crashing.

Clicking on Image:

panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xb code=0x1 addr=0x14 pc=0x40259ce]

goroutine 16 [running]:
runtime.panic(0x412d7c0, 0x4211d84)
/usr/local/go/src/pkg/runtime/panic.c:279 +0xf5
github.com/andlabs/ui.areaMouseEvent(0x4723640, 0x7023e90, 0x4030000, 0xc20803c560)
/Users/antonyho/golang/src/github.com/andlabs/ui/area_darwin.go:170 +0x6c1
github.com/andlabs/ui.areaView_mouseMoved_mouseDragged(0x4723640, 0x7023e90, 0xc20803c560)
/Users/antonyho/golang/src/github.com/andlabs/ui/area_darwin.go:177 +0x45
github.com/andlabs/ui._Cfunc_uimsgloop(0x4034f71)
github.com/andlabs/ui/_obj/_cgo_defun.c:588 +0x31
github.com/andlabs/ui.uimsgloop()
/Users/antonyho/golang/src/github.com/andlabs/ui/uitask_darwin.go:27 +0x1a
github.com/andlabs/ui.Go(0x0, 0x0)
/Users/antonyho/golang/src/github.com/andlabs/ui/uitask.go:22 +0x71
main.main()
/Users/antonyho/golang/src/reserve-gui/main.go:279 +0x36

goroutine 19 [finalizer wait]:
runtime.park(0x401d430, 0x421f128, 0x4213e49)
/usr/local/go/src/pkg/runtime/proc.c:1369 +0x89
runtime.parkunlock(0x421f128, 0x4213e49)
/usr/local/go/src/pkg/runtime/proc.c:1385 +0x3b
runfinq()
/usr/local/go/src/pkg/runtime/mgc0.c:2644 +0xcf
runtime.goexit()
/usr/local/go/src/pkg/runtime/proc.c:1445

goroutine 17 [syscall]:
runtime.goexit()
/usr/local/go/src/pkg/runtime/proc.c:1445

goroutine 21 [chan receive]:
github.com/andlabs/ui.uiissueloop()
/Users/antonyho/golang/src/github.com/andlabs/ui/uitask.go:59 +0x50
created by github.com/andlabs/ui.Go
/Users/antonyho/golang/src/github.com/andlabs/ui/uitask.go:21 +0x6a
exit status 2

Resizing Window:

fatal error: unexpected signal during runtime execution
[signal 0xb code=0x1 addr=0x28 pc=0x7fff9adcf825]

runtime stack:
runtime: unexpected return pc for runtime.sigpanic called from 0x7fff9adcf825
runtime.throw(0x4211cd6)
/usr/local/go/src/pkg/runtime/panic.c:520 +0x69
runtime: unexpected return pc for runtime.sigpanic called from 0x7fff9adcf825
runtime.sigpanic()
/usr/local/go/src/pkg/runtime/os_darwin.c:439 +0x3d

goroutine 16 [syscall]:
runtime.cgocall(0x4002370, 0x45b5f40)
/usr/local/go/src/pkg/runtime/cgocall.c:143 +0xe5 fp=0x45b5f28 sp=0x45b5ee0
github.com/andlabs/ui._Cfunc_containerBounds(0x40f3480, 0xc20804c000, 0x186, 0x41330e0, 0xc2080b2940)
github.com/andlabs/ui/_obj/_cgo_defun.c:183 +0x31 fp=0x45b5f40 sp=0x45b5f28
github.com/andlabs/ui.containerResized(0xc2080c6440)
/Users/antonyho/golang/src/github.com/andlabs/ui/container_darwin.go:45 +0x5a fp=0x45b5fa0 sp=0x45b5f40
----- stack segment boundary -----
runtime.cgocallbackg1()
/usr/local/go/src/pkg/runtime/cgocall.c:275 +0xb9 fp=0x45a1e48 sp=0x45a1df0
runtime.cgocallbackg()
/usr/local/go/src/pkg/runtime/cgocall.c:247 +0x6b fp=0x45a1e70 sp=0x45a1e48
runtime.cgocallback_gofunc(0x400e10d, 0x4002720, 0x45a1ee8)
/usr/local/go/src/pkg/runtime/asm_amd64.s:786 +0x69 fp=0x45a1e80 sp=0x45a1e70
runtime.asmcgocall(0x4002720, 0x45a1ee8)
/usr/local/go/src/pkg/runtime/asm_amd64.s:691 +0x3a fp=0x45a1e88 sp=0x45a1e80
runtime.cgocall(0x4002720, 0x45a1ee8)
/usr/local/go/src/pkg/runtime/cgocall.c:143 +0xfd fp=0x45a1ed0 sp=0x45a1e88
github.com/andlabs/ui._Cfunc_uimsgloop(0x4034f71)
github.com/andlabs/ui/_obj/_cgo_defun.c:588 +0x31 fp=0x45a1ee8 sp=0x45a1ed0
github.com/andlabs/ui.uimsgloop()
/Users/antonyho/golang/src/github.com/andlabs/ui/uitask_darwin.go:27 +0x1a fp=0x45a1ef0 sp=0x45a1ee8
github.com/andlabs/ui.Go(0x0, 0x0)
/Users/antonyho/golang/src/github.com/andlabs/ui/uitask.go:22 +0x71 fp=0x45a1f18 sp=0x45a1ef0
main.main()
/Users/antonyho/golang/src/reserve-gui/main.go:279 +0x36 fp=0x45a1f50 sp=0x45a1f18
runtime.main()
/usr/local/go/src/pkg/runtime/proc.c:247 +0x11a fp=0x45a1fa8 sp=0x45a1f50
runtime.goexit()
/usr/local/go/src/pkg/runtime/proc.c:1445 fp=0x45a1fb0 sp=0x45a1fa8
created by _rt0_go
/usr/local/go/src/pkg/runtime/asm_amd64.s:97 +0x120

goroutine 19 [finalizer wait]:
runtime.park(0x401d430, 0x421f128, 0x4213e49)
/usr/local/go/src/pkg/runtime/proc.c:1369 +0x89
runtime.parkunlock(0x421f128, 0x4213e49)
/usr/local/go/src/pkg/runtime/proc.c:1385 +0x3b
runfinq()
/usr/local/go/src/pkg/runtime/mgc0.c:2644 +0xcf
runtime.goexit()
/usr/local/go/src/pkg/runtime/proc.c:1445

goroutine 17 [syscall]:
runtime.goexit()
/usr/local/go/src/pkg/runtime/proc.c:1445

goroutine 21 [chan receive]:
github.com/andlabs/ui.uiissueloop()
/Users/antonyho/golang/src/github.com/andlabs/ui/uitask.go:59 +0x50
created by github.com/andlabs/ui.Go
/Users/antonyho/golang/src/github.com/andlabs/ui/uitask.go:21 +0x6a
exit status 2

TextArea Missing

Mentioned in Area docs, but I can't seem to find it :-)

Thanks.

Request: Notification area/Menu bar support

Go is well suited for services and background tasks, where the GUI should be hidden most of the time. The GUI could be minimised to the system notification area on Windows or placed in the menu bar on OSX.

Build failure on MacOS X

Hi,

While trying andlabs/ui on MacOS X 10.7.5, noticed the following build error:

ui$ go build
# github.com/andlabs/ui
ld: duplicate symbol _objc_msgSend_noargs in $WORK/github.com/andlabs/ui/_obj/delegate_darwin.cgo2.o and $WORK/github.com/andlabs/ui/_obj/_cgo_export.o for architecture x86_64
collect2: ld returned 1 exit status

I'm still tracking down the cause, will update the issue as soon as it's clearer.
Thank you,

Tom

Feature Request: Auto-completion Widget

I would like to have an auto-completion widget, say if I want to develop a text editor using this. If the suggestions could be populated by reading from an output channel and if the letters pressed in the input go into an input channel, the better it will be.

Go func returns error if run from OS X app bundle

error setting NSApplication activation policy (basically identifies our program as a separate program; needed for several things, such as Dock icon, application menu, window resizing, etc.) (unknown reason)

I think this is because it's trying to init.Cocoa, which, the Finder may have already done for the app.

P.S. This package is awesome!

TreeView & TableView

I'm currently using QT for a very basic tree view and table view application, I'd love to port it over to this library.

Is there any roadmap of when treeview support may appear?

Won't compile on Mavericks 10.9.3

I get lots of these with either 'go build' or 'sh test.sh'

Undefined symbols for architecture x86_64:
"_addControl", referenced from:
__cgo_4736bf25ed3f_Cfunc_addControl in sysdata_darwin.cgo2.o
(maybe you meant: __cgo_4736bf25ed3f_Cfunc_addControl)
"_applyStandardControlFont", referenced from:
__cgo_4736bf25ed3f_Cfunc_applyStandardControlFont in sysdata_darwin.cgo2.o
(maybe you meant: __cgo_4736bf25ed3f_Cfunc_applyStandardControlFont)

Table column name and column width

HI ,
first forgive me my english is not good.
I get a problem with Table is that Table column display name is based on struct field name, but my mother tongue is not English.
so is there anyway to change table column display name to display non english character.

type Column struct{
Name string
Age string //but i thought int need be surpport
}

and table column display Name,Age,i want to display ๅง“ๅ,ๅนด้พ„
maybe struct tag display:"ๅง“ๅ" is a way
qq 20141016101113

by the way,how to set button height and width,
thanks!

Request: Read only textbox

Could be simple boolean to which would disable/enable text input or could be handled with events (when there would be textbox.Input(iu.Event) function and if you just ignore it, it wouldn't output anything to the textbox).

Feature Request: Drop down list

Drop down list maybe not as abstract as other GUI component. But this is an essential item as a GUI. I don't know whether I can use this library to construct my own drop down list, but it is a nice-to-have feature. Thank you!

Methods for taking/detecting element focus

It would be very useful to be able to force focus to specific element (a text field for example), and similarly, to detect when an element gains focus. Something along the lines of:

textfield := ui.NewTextField()
textfield.OnFocus(func() {
    textfield.SetText("")
})
// ...
window.Show()
textfield.Focus()

If we implemented named events, OnFocus could be generalized to something like:

textfield.On(FOCUS, func(e ui.Event) { /* ... */ })

Where FOCUS is an enum of possible event types (well, technically a const of iota, but you get the point). This would also allow a uniform interface to similar operations such as OnChanged (similar to how event handling is done in JavaScript):

textfield.On(FOCUS, func(e ui.Event) { /* ... */ })
textfield.On(CHANGED, func(e ui.Event) { /* ... */ })
textfield.On(KEYDOWN, func(e ui.Event) { /* ... */ })
// etc..

Accessing OnSelected method of Checkbox in a table

I am building a table out of this struct:

type DisplayAccount struct {
    Enabled bool
    Name    string
}

Here is the code:

// Assemble table of accounts
accounts := make([]DisplayAccount, len(config.Accounts))

// Pull accounts from config file
for i, account := range config.Accounts {
    enabled := account.Enabled
    acctName := strings.Join([]string{account.Name, account.Server}, "@")
    accounts[i] = DisplayAccount{enabled, acctName}
}   

// Populate table
accountTable := ui.NewTable(reflect.TypeOf(accounts[0]))
accountTable.Lock()
e := accountTable.Data().(*[]DisplayAccount)
*e = accounts
accountTable.Unlock()

How do I access the OnSelected method of each "Enabled" field in accountTable?

Add support for multi-line TextFields

The current implementation has no (obvious) support for multi-line text fields, which are fairly essential for any non-trivial application. As pointed out in #8, future mentions text areas briefly, but keeping a bug open to track the progress of this feature is useful.

The reason I say obvious above is because you could roll your own on top of Area, but that seems painful, and a TextArea primitive should be provided by the framework.

undefined errors while running tests on Windows

go version go1.3.1 windows/amd64
Windows 7 (64-bit)
gcc version 4.9.1 (x86_64-posix-seh-rev0, Built by MinGW-W64 project)

D:\>go get github.com/andlabs/ui

cd %GOPATH%\src\github.com\andlabs\ui

d:\Dev\go\gopath\src\github.com\andlabs\ui>go test
# testmain
github.com/andlabs/ui(.text): undefined: github.com/andlabs/ui(/1630)
github.com/andlabs/ui(.text): undefined: github.com/andlabs/ui(/1586)
github.com/andlabs/ui(.text): undefined: github.com/andlabs/ui(/1541)
github.com/andlabs/ui(.text): undefined: github.com/andlabs/ui(/1491)
github.com/andlabs/ui(.text): undefined: github.com/andlabs/ui(/1440)
github.com/andlabs/ui(.text): undefined: github.com/andlabs/ui(/1383)
github.com/andlabs/ui(.text): undefined: github.com/andlabs/ui(/1334)
github.com/andlabs/ui(.text): undefined: github.com/andlabs/ui(/1284)
github.com/andlabs/ui(.text): undefined: github.com/andlabs/ui(/1226)
github.com/andlabs/ui(.text): undefined: github.com/andlabs/ui(/1176)
github.com/andlabs/ui(.text): undefined: github.com/andlabs/ui(/1124)
github.com/andlabs/ui(.text): undefined: github.com/andlabs/ui(/1081)
github.com/andlabs/ui(.text): undefined: github.com/andlabs/ui(/1031)
github.com/andlabs/ui(.text): undefined: github.com/andlabs/ui(/982)
github.com/andlabs/ui(.text): undefined: github.com/andlabs/ui(/935)
github.com/andlabs/ui(.text): undefined: github.com/andlabs/ui(/880)
github.com/andlabs/ui(.text): undefined: github.com/andlabs/ui(/828)
github.com/andlabs/ui(.text): undefined: github.com/andlabs/ui(/777)
github.com/andlabs/ui(.text): undefined: github.com/andlabs/ui(/729)
github.com/andlabs/ui(.text): undefined: github.com/andlabs/ui(/682)
github.com/andlabs/ui(.text): undefined: github.com/andlabs/ui(/628)
too many errors
FAIL    github.com/andlabs/ui [build failed]

Support tab navigation under Windows

I just tested the example program from documentation (doc.go), and found that Tab key is completely ignored.
Thus keyboard navigation is not possible under Windows.

Which part of api is stable?

The readme says "this package is very much incomplete; see stable.md for a list of what is guaranteed to not change at the API level โ€” for everything newer, you have been warned!" but I cannot find it in the repo, so the question.

Compilation problem under Windows

I am not sure if I have a broken MinGW installation, or there is something "obvious" that must be done to compile Windows programs.
But if I try to compile the ui package in the "redo" directory, the following happens:

github.com/andlabs/ui/redo

In file included from c:\mingw\include_mingw.h:35:0,
from c:\mingw\include\windows.h:28,
from winapi_windows.h:17,
from c:\go\src\github.com\andlabs\ui\redo\area_windows.go:12:
c:\mingw\include\sdkddkver.h:137:8: error: #error The _WIN32_WINNT value does not match NTDDI_VERSION

error The _WIN32_WINNT value does not match NTDDI_VERSION

    ^

go get github.com/andlabs/ui

github.com/andlabs/ui

panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xb code=0x1 addr=0x0 pc=0x15672]

goroutine 16 [running]:
runtime.panic(0x1dae60, 0x31a9e4)
/usr/local/go/src/pkg/runtime/panic.c:279 +0xf5
main.(_typeConv).Type(0x2083b82c0, 0x2208383328, 0x208441530, 0x1c03, 0x208484c01)
/usr/local/go/src/cmd/cgo/gcc.go:1288 +0x1632
main.(_typeConv).Type(0x2083b82c0, 0x22083832b8, 0x2084414d0, 0x1c03, 0x1)
/usr/local/go/src/cmd/cgo/gcc.go:1189 +0x3dd6
main.(_typeConv).Type(0x2083b82c0, 0x22083834f0, 0x208446300, 0x1c03, 0x0)
/usr/local/go/src/cmd/cgo/gcc.go:1075 +0x387f
main.(_typeConv).Struct(0x2083b82c0, 0x208371b60, 0x1c03, 0x6, 0x0, 0x0, 0x8)
/usr/local/go/src/cmd/cgo/gcc.go:1551 +0x70b
main.(_typeConv).Type(0x2083b82c0, 0x22083833c0, 0x208371b60, 0x1c03, 0x1)
/usr/local/go/src/cmd/cgo/gcc.go:1234 +0x3038
main.(_typeConv).Type(0x2083b82c0, 0x22083832b8, 0x208441380, 0x1c03, 0x0)
/usr/local/go/src/cmd/cgo/gcc.go:1189 +0x3dd6
main.(_typeConv).Struct(0x2083b82c0, 0x2083714a0, 0x1c03, 0x6, 0x0, 0x0, 0x8)
/usr/local/go/src/cmd/cgo/gcc.go:1551 +0x70b
main.(_typeConv).Type(0x2083b82c0, 0x22083833c0, 0x2083714a0, 0x1c03, 0x208471a01)
/usr/local/go/src/cmd/cgo/gcc.go:1234 +0x3038
main.(_typeConv).Type(0x2083b82c0, 0x22083832b8, 0x208440180, 0x1c03, 0x20841a010)
/usr/local/go/src/cmd/cgo/gcc.go:1189 +0x3dd6
main.(_typeConv).Type(0x2083b82c0, 0x2208383328, 0x208440120, 0x1c03, 0x26d420)
/usr/local/go/src/cmd/cgo/gcc.go:1269 +0x1301
main.(_typeConv).Struct(0x2083b82c0, 0x208371380, 0x1c03, 0x6, 0x0, 0x0, 0x0)
/usr/local/go/src/cmd/cgo/gcc.go:1551 +0x70b
main.(_typeConv).Type(0x2083b82c0, 0x22083833c0, 0x208371380, 0x1c03, 0x1)
/usr/local/go/src/cmd/cgo/gcc.go:1234 +0x3038
main.(_typeConv).Type(0x2083b82c0, 0x22083832b8, 0x208440060, 0x1c03, 0x20841a000)
/usr/local/go/src/cmd/cgo/gcc.go:1189 +0x3dd6
main.(_typeConv).Type(0x2083b82c0, 0x2208383328, 0x208440000, 0x1c03, 0x4)
/usr/local/go/src/cmd/cgo/gcc.go:1269 +0x1301
main.(_typeConv).FuncArg(0x2083b82c0, 0x2208383328, 0x208440000, 0x1c03, 0x1)
/usr/local/go/src/cmd/cgo/gcc.go:1405 +0x59
main.(_typeConv).FuncType(0x2083b82c0, 0x208471a80, 0x1c03, 0x208471a80)
/usr/local/go/src/cmd/cgo/gcc.go:1458 +0x534
main.(_Package).loadDWARF(0x20836d1e0, 0x2083b6080, 0x20837ab00, 0x19, 0x20)
/usr/local/go/src/cmd/cgo/gcc.go:539 +0x1462
main.(_Package).Translate(0x20836d1e0, 0x2083b6080)
/usr/local/go/src/cmd/cgo/gcc.go:182 +0x150
main.main()
/usr/local/go/src/cmd/cgo/main.go:259 +0xef1

goroutine 19 [finalizer wait]:
runtime.park(0x4fed0, 0x31eeb8, 0x31e269)
/usr/local/go/src/pkg/runtime/proc.c:1369 +0x89
runtime.parkunlock(0x31eeb8, 0x31e269)
/usr/local/go/src/pkg/runtime/proc.c:1385 +0x3b
runfinq()
/usr/local/go/src/pkg/runtime/mgc0.c:2644 +0xcf
runtime.goexit()
/usr/local/go/src/pkg/runtime/proc.c:1445

mac build error

Hi,

While trying andlabs/ui on OS X 10.9.3 (13D65),

$ go version
go version go1.3 darwin/amd64
$ gcc -v
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/c++/4.2.1
Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn)
Target: x86_64-apple-darwin13.2.0
Thread model: posix

noticed the following build error:

ui$ go build
# github.com/andlabs/ui
panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xb code=0x1 addr=0x0 pc=0x15672]

goroutine 16 [running]:
runtime.panic(0x1dae60, 0x31b9e4)
    /usr/local/go/src/pkg/runtime/panic.c:279 +0xf5
main.(*typeConv).Type(0x2083ba160, 0x22083844a8, 0x2084dce10, 0x1ecf, 0x208462c01)
    /usr/local/go/src/cmd/cgo/gcc.go:1288 +0x1632
main.(*typeConv).Type(0x2083ba160, 0x2208384400, 0x2084dcdb0, 0x1ecf, 0x3200000001)
    /usr/local/go/src/cmd/cgo/gcc.go:1189 +0x3dd6
main.(*typeConv).Type(0x2083ba160, 0x2208384610, 0x2084dac00, 0x1ecf, 0x0)
    /usr/local/go/src/cmd/cgo/gcc.go:1075 +0x387f
main.(*typeConv).Struct(0x2083ba160, 0x208372f60, 0x1ecf, 0x6, 0x0, 0x0, 0x8)
    /usr/local/go/src/cmd/cgo/gcc.go:1551 +0x70b
main.(*typeConv).Type(0x2083ba160, 0x2208384540, 0x208372f60, 0x1ecf, 0x1)
    /usr/local/go/src/cmd/cgo/gcc.go:1234 +0x3038
main.(*typeConv).Type(0x2083ba160, 0x2208384400, 0x2084dcc00, 0x1ecf, 0x0)
    /usr/local/go/src/cmd/cgo/gcc.go:1189 +0x3dd6
main.(*typeConv).Struct(0x2083ba160, 0x2083737a0, 0x1ecf, 0x6, 0x0, 0x0, 0x8)
    /usr/local/go/src/cmd/cgo/gcc.go:1551 +0x70b
main.(*typeConv).Type(0x2083ba160, 0x2208384540, 0x2083737a0, 0x1ecf, 0x2084da101)
    /usr/local/go/src/cmd/cgo/gcc.go:1234 +0x3038
main.(*typeConv).Type(0x2083ba160, 0x2208384400, 0x2084dd3b0, 0x1ecf, 0x2084580c0)
    /usr/local/go/src/cmd/cgo/gcc.go:1189 +0x3dd6
main.(*typeConv).Type(0x2083ba160, 0x22083844a8, 0x2084dd350, 0x1ecf, 0x26d420)
    /usr/local/go/src/cmd/cgo/gcc.go:1269 +0x1301
main.(*typeConv).Struct(0x2083ba160, 0x208373680, 0x1ecf, 0x6, 0x0, 0x0, 0x0)
    /usr/local/go/src/cmd/cgo/gcc.go:1551 +0x70b
main.(*typeConv).Type(0x2083ba160, 0x2208384540, 0x208373680, 0x1ecf, 0x26d401)
    /usr/local/go/src/cmd/cgo/gcc.go:1234 +0x3038
main.(*typeConv).Type(0x2083ba160, 0x2208384400, 0x2084dd290, 0x1ecf, 0x2084580a0)
    /usr/local/go/src/cmd/cgo/gcc.go:1189 +0x3dd6
main.(*typeConv).Type(0x2083ba160, 0x22083844a8, 0x2084dd230, 0x1ecf, 0x76)
    /usr/local/go/src/cmd/cgo/gcc.go:1269 +0x1301
main.(*typeConv).FuncArg(0x2083ba160, 0x22083844a8, 0x2084dd230, 0x1ecf, 0x1)
    /usr/local/go/src/cmd/cgo/gcc.go:1405 +0x59
main.(*typeConv).FuncType(0x2083ba160, 0x2084da2c0, 0x1ecf, 0x2084da2c0)
    /usr/local/go/src/cmd/cgo/gcc.go:1458 +0x534
main.(*Package).loadDWARF(0x20836f380, 0x2083b8080, 0x20837d400, 0x19, 0x20)
    /usr/local/go/src/cmd/cgo/gcc.go:539 +0x1462
main.(*Package).Translate(0x20836f380, 0x2083b8080)
    /usr/local/go/src/cmd/cgo/gcc.go:182 +0x150
main.main()
    /usr/local/go/src/cmd/cgo/main.go:259 +0xef1

goroutine 19 [finalizer wait]:
runtime.park(0x4fed0, 0x31feb8, 0x31f269)
    /usr/local/go/src/pkg/runtime/proc.c:1369 +0x89
runtime.parkunlock(0x31feb8, 0x31f269)
    /usr/local/go/src/pkg/runtime/proc.c:1385 +0x3b
runfinq()
    /usr/local/go/src/pkg/runtime/mgc0.c:2644 +0xcf
runtime.goexit()
    /usr/local/go/src/pkg/runtime/proc.c:1445

I'm still tracking down the cause, will update the issue as soon as it's clearer.
Thank you

Child windows?

Hi,

I can't figure out how to spawn a 2nd window, I currently only see this in the OpenFile dialog and that directly touches the lower c/objc parts. Do you plan to add a more generic version?

For my use case I actually only want something like a modal messagebox to force user focus in an error case.

Feature request: Qt Quick controls

The combination of Qt Quick controls and layouts provides almost everything needed for a GUI application.

Also a declarative interface would be good (like Walk)


Application

  • Menu Bar
  • Status Bar
  • Tool Bar

Navigation

  • Split View
  • Tab View
  • Table View

Controls

  • Button
  • Check Box
  • Combo Box
  • Group Box
  • Label
  • Progress Bar
  • Radio Button
  • Slider
  • Spin Box
  • Text Area
  • Text Field

Layouts

  • Column
  • Grid
  • Row

Error while running test on Windows

Windows 7
Go 1.3.3

gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=C:/Program\ Files/mingw-w64/x86_64-4.9.2-posix-seh-rt_v3-rev
0/mingw64/bin/../libexec/gcc/x86_64-w64-mingw32/4.9.2/lto-wrapper.exe
Target: x86_64-w64-mingw32
Configured with: ../../../src/gcc-4.9.2/configure --host=x86_64-w64-mingw32 --bu
ild=x86_64-w64-mingw32 --target=x86_64-w64-mingw32 --prefix=/mingw64 --with-sysr
oot=/c/mingw492/x86_64-492-posix-seh-rt_v3-rev0/mingw64 --with-gxx-include-dir=/
mingw64/x86_64-w64-mingw32/include/c++ --enable-shared --enable-static --disable
-multilib --enable-languages=ada,c,c++,fortran,objc,obj-c++,lto --enable-libstdc
xx-time=yes --enable-threads=posix --enable-libgomp --enable-libatomic --enable-
lto --enable-graphite --enable-checking=release --enable-fully-dynamic-string --
enable-version-specific-runtime-libs --disable-isl-version-check --disable-cloog
-version-check --disable-libstdcxx-pch --disable-libstdcxx-debug --enable-bootst
rap --disable-rpath --disable-win32-registry --disable-nls --disable-werror --di
sable-symvers --with-gnu-as --with-gnu-ld --with-arch=nocona --with-tune=core2 -
-with-libiconv --with-system-zlib --with-gmp=/c/mingw492/prerequisites/x86_64-w6
4-mingw32-static --with-mpfr=/c/mingw492/prerequisites/x86_64-w64-mingw32-static
--with-mpc=/c/mingw492/prerequisites/x86_64-w64-mingw32-static --with-isl=/c/mi
ngw492/prerequisites/x86_64-w64-mingw32-static --with-cloog=/c/mingw492/prerequi
sites/x86_64-w64-mingw32-static --enable-cloog-backend=isl --with-pkgversion='x8
6_64-posix-seh-rev0, Built by MinGW-W64 project' --with-bugurl=http://sourceforg
e.net/projects/mingw-w64 CFLAGS='-O2 -pipe -I/c/mingw492/x86_64-492-posix-seh-rt
v3-rev0/mingw64/opt/include -I/c/mingw492/prerequisites/x86_64-zlib-static/incl
ude -I/c/mingw492/prerequisites/x86_64-w64-mingw32-static/include' CXXFLAGS='-O2
-pipe -I/c/mingw492/x86_64-492-posix-seh-rt_v3-rev0/mingw64/opt/include -I/c/mi
ngw492/prerequisites/x86_64-zlib-static/include -I/c/mingw492/prerequisites/x86

64-w64-mingw32-static/include' CPPFLAGS= LDFLAGS='-pipe -L/c/mingw492/x86_64-492
-posix-seh-rt_v3-rev0/mingw64/opt/lib -L/c/mingw492/prerequisites/x86_64-zlib-st
atic/lib -L/c/mingw492/prerequisites/x86_64-w64-mingw32-static/lib '
Thread model: posix
gcc version 4.9.2 (x86_64-posix-seh-rev0, Built by MinGW-W64 project)

go test

testmain

github.com/andlabs/ui(.text): undefined: github.com/andlabs/ui(/1837)
github.com/andlabs/ui(.text): undefined: github.com/andlabs/ui(/1876)
github.com/andlabs/ui(.text): undefined: github.com/andlabs/ui(/1876)
github.com/andlabs/ui(.text): undefined: github.com/andlabs/ui(/1876)
github.com/andlabs/ui(.text): undefined: github.com/andlabs/ui(/1812)
github.com/andlabs/ui(.text): undefined: github.com/andlabs/ui(/1784)
github.com/andlabs/ui(.text): undefined: github.com/andlabs/ui(/1756)
github.com/andlabs/ui(.text): undefined: github.com/andlabs/ui(/1812)
github.com/andlabs/ui(.text): undefined: github.com/andlabs/ui(/1734)
github.com/andlabs/ui(.text): undefined: github.com/andlabs/ui(/1812)
github.com/andlabs/ui(.text): undefined: github.com/andlabs/ui(/1698)
github.com/andlabs/ui(.text): undefined: github.com/andlabs/ui(/1876)
github.com/andlabs/ui(.text): undefined: github.com/andlabs/ui(/1837)
github.com/andlabs/ui(.text): undefined: github.com/andlabs/ui(/1876)
github.com/andlabs/ui(.text): undefined: github.com/andlabs/ui(/1876)
github.com/andlabs/ui(.text): undefined: github.com/andlabs/ui(/1837)
github.com/andlabs/ui(.text): undefined: github.com/andlabs/ui(/1876)
github.com/andlabs/ui(.text): undefined: github.com/andlabs/ui(/1876)
github.com/andlabs/ui(.text): undefined: github.com/andlabs/ui(/1837)
github.com/andlabs/ui(.text): undefined: github.com/andlabs/ui(/1876)
github.com/andlabs/ui(.text): undefined: github.com/andlabs/ui(/1876)
too many errors
FAIL github.com/andlabs/ui [build failed]

go test -x
WORK=C:\Users\Antony\AppData\Local\Temp\go-build162267415
mkdir -p $WORK\github.com\andlabs\ui_test\github.com\andlabs
mkdir -p $WORK\github.com\andlabs\ui_test_obj_test
cd C:\Users\Antony\Go\src\github.com\andlabs\ui
CGO_LDFLAGS="-g" "-O2" "-luser32" "-lkernel32" "-lgdi32" "-luxtheme" "-lmsimg32"
"-lcomdlg32" "C:\Go\pkg\tool\windows_amd64\cgo.exe" -objdir "C:\Users\An
tony\AppData\Local\Temp\go-build162267415\github.com\andlabs\ui_test_
obj_test" -- -I "C:\Users\Antony\AppData\Local\Temp\go-build162267415\g
ithub.com\andlabs\ui_test_obj_test" --std=c99 area_windows.go button_win
dows.go checkbox_windows.go common_windows.go container_windows.go control_windo
ws.go dialog_windows.go group_windows.go imagelist_windows.go label_windows.go p
rogressbar_windows.go spinbox_windows.go tab_windows.go table_windows.go textbox
_windows.go textfield_windows.go uitask_windows.go window_windows.go
"C:\Go\pkg\tool\windows_amd64\6c.exe" -F -V -w -trimpath "C:\Users\Antony
\AppData\Local\Temp\go-build162267415" -I "C:\Users\Antony\AppData\Local
\Temp\go-build162267415\github.com\andlabs\ui_test_obj_test" -I "C:
Go\pkg\windows_amd64" -o "C:\Users\Antony\AppData\Local\Temp\go-build162
267415\github.com\andlabs\ui_test_obj_test_cgo_defun.6" -D GOOS_windows
-D GOARCH_amd64 "C:\Users\Antony\AppData\Local\Temp\go-build162267415\gi
thub.com\andlabs\ui_test_obj_test_cgo_defun.c"
gcc -I "C:\Users\Antony\Go\src\github.com\andlabs\ui" -m64 -mthreads -fme
ssage-length=0 -print-libgcc-file-name
gcc -I "C:\Users\Antony\Go\src\github.com\andlabs\ui" -m64 -mthreads -fme
ssage-length=0 -I "C:\Users\Antony\AppData\Local\Temp\go-build162267415\g
ithub.com\andlabs\ui_test_obj_test" -g -O2 --std=c99 -o "C:\Users\Anto
ny\AppData\Local\Temp\go-build162267415\github.com\andlabs\ui_test_ob
j_test_cgo_main.o" -c "C:\Users\Antony\AppData\Local\Temp\go-build162267
415\github.com\andlabs\ui_test_obj_test_cgo_main.c"
gcc -I "C:\Users\Antony\Go\src\github.com\andlabs\ui" -m64 -mthreads -fme
ssage-length=0 -I "C:\Users\Antony\AppData\Local\Temp\go-build162267415\g
ithub.com\andlabs\ui_test_obj_test" -g -O2 --std=c99 -o "C:\Users\Anto
ny\AppData\Local\Temp\go-build162267415\github.com\andlabs\ui_test_ob
j_test_cgo_export.o" -c "C:\Users\Antony\AppData\Local\Temp\go-build1622
67415\github.com\andlabs\ui_test_obj_test_cgo_export.c"
gcc -I "C:\Users\Antony\Go\src\github.com\andlabs\ui" -m64 -mthreads -fme
ssage-length=0 -I "C:\Users\Antony\AppData\Local\Temp\go-build162267415\g
ithub.com\andlabs\ui_test_obj_test" -g -O2 --std=c99 -o "C:\Users\Anto
ny\AppData\Local\Temp\go-build162267415\github.com\andlabs\ui_test_ob
j_test\area_windows.cgo2.o" -c "C:\Users\Antony\AppData\Local\Temp\go-bui
ld162267415\github.com\andlabs\ui_test_obj_test\area_windows.cgo2.c"
gcc -I "C:\Users\Antony\Go\src\github.com\andlabs\ui" -m64 -mthreads -fme
ssage-length=0 -I "C:\Users\Antony\AppData\Local\Temp\go-build162267415\g
ithub.com\andlabs\ui_test_obj_test" -g -O2 --std=c99 -o "C:\Users\Anto
ny\AppData\Local\Temp\go-build162267415\github.com\andlabs\ui_test_ob
j_test\button_windows.cgo2.o" -c "C:\Users\Antony\AppData\Local\Temp\go-b
uild162267415\github.com\andlabs\ui_test_obj_test\button_windows.cgo2.c"

gcc -I "C:\Users\Antony\Go\src\github.com\andlabs\ui" -m64 -mthreads -fme
ssage-length=0 -I "C:\Users\Antony\AppData\Local\Temp\go-build162267415\g
ithub.com\andlabs\ui_test_obj_test" -g -O2 --std=c99 -o "C:\Users\Anto
ny\AppData\Local\Temp\go-build162267415\github.com\andlabs\ui_test_ob
j_test\checkbox_windows.cgo2.o" -c "C:\Users\Antony\AppData\Local\Temp\go
-build162267415\github.com\andlabs\ui_test_obj_test\checkbox_windows.cgo
2.c"
gcc -I "C:\Users\Antony\Go\src\github.com\andlabs\ui" -m64 -mthreads -fme
ssage-length=0 -I "C:\Users\Antony\AppData\Local\Temp\go-build162267415\g
ithub.com\andlabs\ui_test_obj_test" -g -O2 --std=c99 -o "C:\Users\Anto
ny\AppData\Local\Temp\go-build162267415\github.com\andlabs\ui_test_ob
j_test\common_windows.cgo2.o" -c "C:\Users\Antony\AppData\Local\Temp\go-b
uild162267415\github.com\andlabs\ui_test_obj_test\common_windows.cgo2.c"

gcc -I "C:\Users\Antony\Go\src\github.com\andlabs\ui" -m64 -mthreads -fme
ssage-length=0 -I "C:\Users\Antony\AppData\Local\Temp\go-build162267415\g
ithub.com\andlabs\ui_test_obj_test" -g -O2 --std=c99 -o "C:\Users\Anto
ny\AppData\Local\Temp\go-build162267415\github.com\andlabs\ui_test_ob
j_test\container_windows.cgo2.o" -c "C:\Users\Antony\AppData\Local\Temp\g
o-build162267415\github.com\andlabs\ui_test_obj_test\container_windows.c
go2.c"
gcc -I "C:\Users\Antony\Go\src\github.com\andlabs\ui" -m64 -mthreads -fme
ssage-length=0 -I "C:\Users\Antony\AppData\Local\Temp\go-build162267415\g
ithub.com\andlabs\ui_test_obj_test" -g -O2 --std=c99 -o "C:\Users\Anto
ny\AppData\Local\Temp\go-build162267415\github.com\andlabs\ui_test_ob
j_test\control_windows.cgo2.o" -c "C:\Users\Antony\AppData\Local\Temp\go-
build162267415\github.com\andlabs\ui_test_obj_test\control_windows.cgo2.
c"
gcc -I "C:\Users\Antony\Go\src\github.com\andlabs\ui" -m64 -mthreads -fme
ssage-length=0 -I "C:\Users\Antony\AppData\Local\Temp\go-build162267415\g
ithub.com\andlabs\ui_test_obj_test" -g -O2 --std=c99 -o "C:\Users\Anto
ny\AppData\Local\Temp\go-build162267415\github.com\andlabs\ui_test_ob
j_test\dialog_windows.cgo2.o" -c "C:\Users\Antony\AppData\Local\Temp\go-b
uild162267415\github.com\andlabs\ui_test_obj_test\dialog_windows.cgo2.c"

gcc -I "C:\Users\Antony\Go\src\github.com\andlabs\ui" -m64 -mthreads -fme
ssage-length=0 -I "C:\Users\Antony\AppData\Local\Temp\go-build162267415\g
ithub.com\andlabs\ui_test_obj_test" -g -O2 --std=c99 -o "C:\Users\Anto
ny\AppData\Local\Temp\go-build162267415\github.com\andlabs\ui_test_ob
j_test\group_windows.cgo2.o" -c "C:\Users\Antony\AppData\Local\Temp\go-bu
ild162267415\github.com\andlabs\ui_test_obj_test\group_windows.cgo2.c"
gcc -I "C:\Users\Antony\Go\src\github.com\andlabs\ui" -m64 -mthreads -fme
ssage-length=0 -I "C:\Users\Antony\AppData\Local\Temp\go-build162267415\g
ithub.com\andlabs\ui_test_obj_test" -g -O2 --std=c99 -o "C:\Users\Anto
ny\AppData\Local\Temp\go-build162267415\github.com\andlabs\ui_test_ob
j_test\imagelist_windows.cgo2.o" -c "C:\Users\Antony\AppData\Local\Temp\g
o-build162267415\github.com\andlabs\ui_test_obj_test\imagelist_windows.c
go2.c"
gcc -I "C:\Users\Antony\Go\src\github.com\andlabs\ui" -m64 -mthreads -fme
ssage-length=0 -I "C:\Users\Antony\AppData\Local\Temp\go-build162267415\g
ithub.com\andlabs\ui_test_obj_test" -g -O2 --std=c99 -o "C:\Users\Anto
ny\AppData\Local\Temp\go-build162267415\github.com\andlabs\ui_test_ob
j_test\label_windows.cgo2.o" -c "C:\Users\Antony\AppData\Local\Temp\go-bu
ild162267415\github.com\andlabs\ui_test_obj_test\label_windows.cgo2.c"
gcc -I "C:\Users\Antony\Go\src\github.com\andlabs\ui" -m64 -mthreads -fme
ssage-length=0 -I "C:\Users\Antony\AppData\Local\Temp\go-build162267415\g
ithub.com\andlabs\ui_test_obj_test" -g -O2 --std=c99 -o "C:\Users\Anto
ny\AppData\Local\Temp\go-build162267415\github.com\andlabs\ui_test_ob
j_test\progressbar_windows.cgo2.o" -c "C:\Users\Antony\AppData\Local\Temp
\go-build162267415\github.com\andlabs\ui_test_obj_test\progressbar_windo
ws.cgo2.c"
gcc -I "C:\Users\Antony\Go\src\github.com\andlabs\ui" -m64 -mthreads -fme
ssage-length=0 -I "C:\Users\Antony\AppData\Local\Temp\go-build162267415\g
ithub.com\andlabs\ui_test_obj_test" -g -O2 --std=c99 -o "C:\Users\Anto
ny\AppData\Local\Temp\go-build162267415\github.com\andlabs\ui_test_ob
j_test\spinbox_windows.cgo2.o" -c "C:\Users\Antony\AppData\Local\Temp\go-
build162267415\github.com\andlabs\ui_test_obj_test\spinbox_windows.cgo2.
c"
gcc -I "C:\Users\Antony\Go\src\github.com\andlabs\ui" -m64 -mthreads -fme
ssage-length=0 -I "C:\Users\Antony\AppData\Local\Temp\go-build162267415\g
ithub.com\andlabs\ui_test_obj_test" -g -O2 --std=c99 -o "C:\Users\Anto
ny\AppData\Local\Temp\go-build162267415\github.com\andlabs\ui_test_ob
j_test\tab_windows.cgo2.o" -c "C:\Users\Antony\AppData\Local\Temp\go-buil
d162267415\github.com\andlabs\ui_test_obj_test\tab_windows.cgo2.c"
gcc -I "C:\Users\Antony\Go\src\github.com\andlabs\ui" -m64 -mthreads -fme
ssage-length=0 -I "C:\Users\Antony\AppData\Local\Temp\go-build162267415\g
ithub.com\andlabs\ui_test_obj_test" -g -O2 --std=c99 -o "C:\Users\Anto
ny\AppData\Local\Temp\go-build162267415\github.com\andlabs\ui_test_ob
j_test\table_windows.cgo2.o" -c "C:\Users\Antony\AppData\Local\Temp\go-bu
ild162267415\github.com\andlabs\ui_test_obj_test\table_windows.cgo2.c"
gcc -I "C:\Users\Antony\Go\src\github.com\andlabs\ui" -m64 -mthreads -fme
ssage-length=0 -I "C:\Users\Antony\AppData\Local\Temp\go-build162267415\g
ithub.com\andlabs\ui_test_obj_test" -g -O2 --std=c99 -o "C:\Users\Anto
ny\AppData\Local\Temp\go-build162267415\github.com\andlabs\ui_test_ob
j_test\textbox_windows.cgo2.o" -c "C:\Users\Antony\AppData\Local\Temp\go-
build162267415\github.com\andlabs\ui_test_obj_test\textbox_windows.cgo2.
c"
gcc -I "C:\Users\Antony\Go\src\github.com\andlabs\ui" -m64 -mthreads -fme
ssage-length=0 -I "C:\Users\Antony\AppData\Local\Temp\go-build162267415\g
ithub.com\andlabs\ui_test_obj_test" -g -O2 --std=c99 -o "C:\Users\Anto
ny\AppData\Local\Temp\go-build162267415\github.com\andlabs\ui_test_ob
j_test\textfield_windows.cgo2.o" -c "C:\Users\Antony\AppData\Local\Temp\g
o-build162267415\github.com\andlabs\ui_test_obj_test\textfield_windows.c
go2.c"
gcc -I "C:\Users\Antony\Go\src\github.com\andlabs\ui" -m64 -mthreads -fme
ssage-length=0 -I "C:\Users\Antony\AppData\Local\Temp\go-build162267415\g
ithub.com\andlabs\ui_test_obj_test" -g -O2 --std=c99 -o "C:\Users\Anto
ny\AppData\Local\Temp\go-build162267415\github.com\andlabs\ui_test_ob
j_test\uitask_windows.cgo2.o" -c "C:\Users\Antony\AppData\Local\Temp\go-b
uild162267415\github.com\andlabs\ui_test_obj_test\uitask_windows.cgo2.c"

gcc -I "C:\Users\Antony\Go\src\github.com\andlabs\ui" -m64 -mthreads -fme
ssage-length=0 -I "C:\Users\Antony\AppData\Local\Temp\go-build162267415\g
ithub.com\andlabs\ui_test_obj_test" -g -O2 --std=c99 -o "C:\Users\Anto
ny\AppData\Local\Temp\go-build162267415\github.com\andlabs\ui_test_ob
j_test\window_windows.cgo2.o" -c "C:\Users\Antony\AppData\Local\Temp\go-b
uild162267415\github.com\andlabs\ui_test_obj_test\window_windows.cgo2.c"

gcc -I "C:\Users\Antony\Go\src\github.com\andlabs\ui" -m64 -mthreads -fme
ssage-length=0 -I "C:\Users\Antony\AppData\Local\Temp\go-build162267415\g
ithub.com\andlabs\ui_test_obj_test" -g -O2 --std=c99 -o "C:\Users\Anto
ny\AppData\Local\Temp\go-build162267415\github.com\andlabs\ui_test_ob
j_test\area_windows.o" -c "C:\Users\Antony\Go\src\github.com\andlabs\ui
\area_windows.c"
gcc -I "C:\Users\Antony\Go\src\github.com\andlabs\ui" -m64 -mthreads -fme
ssage-length=0 -I "C:\Users\Antony\AppData\Local\Temp\go-build162267415\g
ithub.com\andlabs\ui_test_obj_test" -g -O2 --std=c99 -o "C:\Users\Anto
ny\AppData\Local\Temp\go-build162267415\github.com\andlabs\ui_test_ob
j_test\basicctrls_windows.o" -c "C:\Users\Antony\Go\src\github.com\andlab
s\ui\basicctrls_windows.c"
gcc -I "C:\Users\Antony\Go\src\github.com\andlabs\ui" -m64 -mthreads -fme
ssage-length=0 -I "C:\Users\Antony\AppData\Local\Temp\go-build162267415\g
ithub.com\andlabs\ui_test_obj_test" -g -O2 --std=c99 -o "C:\Users\Anto
ny\AppData\Local\Temp\go-build162267415\github.com\andlabs\ui_test_ob
j_test\comctl32_windows.o" -c "C:\Users\Antony\Go\src\github.com\andlabs
\ui\comctl32_windows.c"
gcc -I "C:\Users\Antony\Go\src\github.com\andlabs\ui" -m64 -mthreads -fme
ssage-length=0 -I "C:\Users\Antony\AppData\Local\Temp\go-build162267415\g
ithub.com\andlabs\ui_test_obj_test" -g -O2 --std=c99 -o "C:\Users\Anto
ny\AppData\Local\Temp\go-build162267415\github.com\andlabs\ui_test_ob
j_test\common_windows.o" -c "C:\Users\Antony\Go\src\github.com\andlabs\u
i\common_windows.c"
gcc -I "C:\Users\Antony\Go\src\github.com\andlabs\ui" -m64 -mthreads -fme
ssage-length=0 -I "C:\Users\Antony\AppData\Local\Temp\go-build162267415\g
ithub.com\andlabs\ui_test_obj_test" -g -O2 --std=c99 -o "C:\Users\Anto
ny\AppData\Local\Temp\go-build162267415\github.com\andlabs\ui_test_ob
j_test\container_windows.o" -c "C:\Users\Antony\Go\src\github.com\andlabs
\ui\container_windows.c"
gcc -I "C:\Users\Antony\Go\src\github.com\andlabs\ui" -m64 -mthreads -fme
ssage-length=0 -I "C:\Users\Antony\AppData\Local\Temp\go-build162267415\g
ithub.com\andlabs\ui_test_obj_test" -g -O2 --std=c99 -o "C:\Users\Anto
ny\AppData\Local\Temp\go-build162267415\github.com\andlabs\ui_test_ob
j_test\control_windows.o" -c "C:\Users\Antony\Go\src\github.com\andlabs
ui\control_windows.c"
gcc -I "C:\Users\Antony\Go\src\github.com\andlabs\ui" -m64 -mthreads -fme
ssage-length=0 -I "C:\Users\Antony\AppData\Local\Temp\go-build162267415\g
ithub.com\andlabs\ui_test_obj_test" -g -O2 --std=c99 -o "C:\Users\Anto
ny\AppData\Local\Temp\go-build162267415\github.com\andlabs\ui_test_ob
j_test\dialog_windows.o" -c "C:\Users\Antony\Go\src\github.com\andlabs\u
i\dialog_windows.c"
gcc -I "C:\Users\Antony\Go\src\github.com\andlabs\ui" -m64 -mthreads -fme
ssage-length=0 -I "C:\Users\Antony\AppData\Local\Temp\go-build162267415\g
ithub.com\andlabs\ui_test_obj_test" -g -O2 --std=c99 -o "C:\Users\Anto
ny\AppData\Local\Temp\go-build162267415\github.com\andlabs\ui_test_ob
j_test\imagelist_windows.o" -c "C:\Users\Antony\Go\src\github.com\andlabs
\ui\imagelist_windows.c"
gcc -I "C:\Users\Antony\Go\src\github.com\andlabs\ui" -m64 -mthreads -fme
ssage-length=0 -I "C:\Users\Antony\AppData\Local\Temp\go-build162267415\g
ithub.com\andlabs\ui_test_obj_test" -g -O2 --std=c99 -o "C:\Users\Anto
ny\AppData\Local\Temp\go-build162267415\github.com\andlabs\ui_test_ob
j_test\init_windows.o" -c "C:\Users\Antony\Go\src\github.com\andlabs\ui
\init_windows.c"
gcc -I "C:\Users\Antony\Go\src\github.com\andlabs\ui" -m64 -mthreads -fme
ssage-length=0 -I "C:\Users\Antony\AppData\Local\Temp\go-build162267415\g
ithub.com\andlabs\ui_test_obj_test" -g -O2 --std=c99 -o "C:\Users\Anto
ny\AppData\Local\Temp\go-build162267415\github.com\andlabs\ui_test_ob
j_test\tab_windows.o" -c "C:\Users\Antony\Go\src\github.com\andlabs\ui
tab_windows.c"
gcc -I "C:\Users\Antony\Go\src\github.com\andlabs\ui" -m64 -mthreads -fme
ssage-length=0 -I "C:\Users\Antony\AppData\Local\Temp\go-build162267415\g
ithub.com\andlabs\ui_test_obj_test" -g -O2 --std=c99 -o "C:\Users\Anto
ny\AppData\Local\Temp\go-build162267415\github.com\andlabs\ui_test_ob
j_test\table_windows.o" -c "C:\Users\Antony\Go\src\github.com\andlabs\ui
\table_windows.c"
gcc -I "C:\Users\Antony\Go\src\github.com\andlabs\ui" -m64 -mthreads -fme
ssage-length=0 -I "C:\Users\Antony\AppData\Local\Temp\go-build162267415\g
ithub.com\andlabs\ui_test_obj_test" -g -O2 --std=c99 -o "C:\Users\Anto
ny\AppData\Local\Temp\go-build162267415\github.com\andlabs\ui_test_ob
j_test\uitask_windows.o" -c "C:\Users\Antony\Go\src\github.com\andlabs\u
i\uitask_windows.c"
gcc -I "C:\Users\Antony\Go\src\github.com\andlabs\ui" -m64 -mthreads -fme
ssage-length=0 -I "C:\Users\Antony\AppData\Local\Temp\go-build162267415\g
ithub.com\andlabs\ui_test_obj_test" -g -O2 --std=c99 -o "C:\Users\Anto
ny\AppData\Local\Temp\go-build162267415\github.com\andlabs\ui_test_ob
j_test\window_windows.o" -c "C:\Users\Antony\Go\src\github.com\andlabs\u
i\window_windows.c"
gcc -I "C:\Users\Antony\Go\src\github.com\andlabs\ui" -m64 -mthreads -fme
ssage-length=0 -o "C:\Users\Antony\AppData\Local\Temp\go-build162267415\g
ithub.com\andlabs\ui_test_obj_test_cgo_.o" "C:\Users\Antony\AppData
Local\Temp\go-build162267415\github.com\andlabs\ui_test_obj_test_cgo_
main.o" "C:\Users\Antony\AppData\Local\Temp\go-build162267415\github.com
\andlabs\ui_test_obj_test_cgo_export.o" "C:\Users\Antony\AppData\Loca
l\Temp\go-build162267415\github.com\andlabs\ui_test_obj_test\area_wind
ows.cgo2.o" "C:\Users\Antony\AppData\Local\Temp\go-build162267415\github.
com\andlabs\ui_test_obj_test\button_windows.cgo2.o" "C:\Users\Antony\A
ppData\Local\Temp\go-build162267415\github.com\andlabs\ui_test_obj_tes
t\checkbox_windows.cgo2.o" "C:\Users\Antony\AppData\Local\Temp\go-build16
2267415\github.com\andlabs\ui_test_obj_test\common_windows.cgo2.o" "C:
Users\Antony\AppData\Local\Temp\go-build162267415\github.com\andlabs\ui
test_obj_test\container_windows.cgo2.o" "C:\Users\Antony\AppData\Local
\Temp\go-build162267415\github.com\andlabs\ui_test_obj_test\control_win
dows.cgo2.o" "C:\Users\Antony\AppData\Local\Temp\go-build162267415\github
.com\andlabs\ui_test_obj_test\dialog_windows.cgo2.o" "C:\Users\Antony
AppData\Local\Temp\go-build162267415\github.com\andlabs\ui_test_obj_te
st\group_windows.cgo2.o" "C:\Users\Antony\AppData\Local\Temp\go-build1622
67415\github.com\andlabs\ui_test_obj_test\imagelist_windows.cgo2.o" "C:
\Users\Antony\AppData\Local\Temp\go-build162267415\github.com\andlabs\ui
_test_obj_test\label_windows.cgo2.o" "C:\Users\Antony\AppData\Local\Te
mp\go-build162267415\github.com\andlabs\ui_test_obj_test\progressbar_wi
ndows.cgo2.o" "C:\Users\Antony\AppData\Local\Temp\go-build162267415\githu
b.com\andlabs\ui_test_obj_test\spinbox_windows.cgo2.o" "C:\Users\Antony
\AppData\Local\Temp\go-build162267415\github.com\andlabs\ui_test_obj

test\tab_windows.cgo2.o" "C:\Users\Antony\AppData\Local\Temp\go-build1622
67415\github.com\andlabs\ui_test_obj_test\table_windows.cgo2.o" "C:\Use
rs\Antony\AppData\Local\Temp\go-build162267415\github.com\andlabs\ui_t
est_obj_test\textbox_windows.cgo2.o" "C:\Users\Antony\AppData\Local\Temp
\go-build162267415\github.com\andlabs\ui_test_obj_test\textfield_window
s.cgo2.o" "C:\Users\Antony\AppData\Local\Temp\go-build162267415\github.co
m\andlabs\ui_test_obj_test\uitask_windows.cgo2.o" "C:\Users\Antony\App
Data\Local\Temp\go-build162267415\github.com\andlabs\ui_test_obj_test
\window_windows.cgo2.o" "C:\Users\Antony\AppData\Local\Temp\go-build162267
415\github.com\andlabs\ui_test_obj_test\area_windows.o" "C:\Users\Anto
ny\AppData\Local\Temp\go-build162267415\github.com\andlabs\ui_test_ob
j_test\basicctrls_windows.o" "C:\Users\Antony\AppData\Local\Temp\go-build
162267415\github.com\andlabs\ui_test_obj_test\comctl32_windows.o" "C:\U
sers\Antony\AppData\Local\Temp\go-build162267415\github.com\andlabs\ui
test_obj_test\common_windows.o" "C:\Users\Antony\AppData\Local\Temp\go
-build162267415\github.com\andlabs\ui_test_obj_test\container_windows.o"
"C:\Users\Antony\AppData\Local\Temp\go-build162267415\github.com\andlab
s\ui_test_obj_test\control_windows.o" "C:\Users\Antony\AppData\Local
Temp\go-build162267415\github.com\andlabs\ui_test_obj_test\dialog_windo
ws.o" "C:\Users\Antony\AppData\Local\Temp\go-build162267415\github.com\a
ndlabs\ui_test_obj_test\imagelist_windows.o" "C:\Users\Antony\AppData
Local\Temp\go-build162267415\github.com\andlabs\ui_test_obj_test\init

windows.o" "C:\Users\Antony\AppData\Local\Temp\go-build162267415\github.c
om\andlabs\ui_test_obj_test\tab_windows.o" "C:\Users\Antony\AppData\L
ocal\Temp\go-build162267415\github.com\andlabs\ui_test_obj_test\table_
windows.o" "C:\Users\Antony\AppData\Local\Temp\go-build162267415\github.c
om\andlabs\ui_test_obj_test\uitask_windows.o" "C:\Users\Antony\AppData
\Local\Temp\go-build162267415\github.com\andlabs\ui_test_obj_test\win
dow_windows.o" -g -O2 -luser32 -lkernel32 -lgdi32 -luxtheme -lmsimg32 -lcomdlg32

"C:\Go\pkg\tool\windows_amd64\cgo.exe" -objdir "C:\Users\Antony\AppData
\Local\Temp\go-build162267415\github.com\andlabs\ui_test_obj_test" -d
ynimport "C:\Users\Antony\AppData\Local\Temp\go-build162267415\github.com
\andlabs\ui_test_obj_test_cgo_.o" -dynout "C:\Users\Antony\AppData\L
ocal\Temp\go-build162267415\github.com\andlabs\ui_test_obj_test_cgo_i
mport.c"
"C:\Go\pkg\tool\windows_amd64\6c.exe" -F -V -w -trimpath "C:\Users\Antony
\AppData\Local\Temp\go-build162267415" -I "C:\Users\Antony\AppData\Local
\Temp\go-build162267415\github.com\andlabs\ui_test_obj_test" -I "C:
Go\pkg\windows_amd64" -o "C:\Users\Antony\AppData\Local\Temp\go-build162
267415\github.com\andlabs\ui_test_obj_test_cgo_import.6" -D GOOS_window
s -D GOARCH_amd64 "C:\Users\Antony\AppData\Local\Temp\go-build162267415\g
ithub.com\andlabs\ui_test_obj_test_cgo_import.c"
gcc -I "C:\Users\Antony\Go\src\github.com\andlabs\ui" -m64 -mthreads -fme
ssage-length=0 -o "C:\Users\Antony\AppData\Local\Temp\go-build162267415\g
ithub.com\andlabs\ui_test_obj_test_all.o" "C:\Users\Antony\AppData\L
ocal\Temp\go-build162267415\github.com\andlabs\ui_test_obj_test_cgo_e
xport.o" "C:\Users\Antony\AppData\Local\Temp\go-build162267415\github.com
\andlabs\ui_test_obj_test\area_windows.cgo2.o" "C:\Users\Antony\AppDat
a\Local\Temp\go-build162267415\github.com\andlabs\ui_test_obj_test\bu
tton_windows.cgo2.o" "C:\Users\Antony\AppData\Local\Temp\go-build162267415
\github.com\andlabs\ui_test_obj_test\checkbox_windows.cgo2.o" "C:\Users
\Antony\AppData\Local\Temp\go-build162267415\github.com\andlabs\ui_tes
t_obj_test\common_windows.cgo2.o" "C:\Users\Antony\AppData\Local\Temp\g
o-build162267415\github.com\andlabs\ui_test_obj_test\container_windows.c
go2.o" "C:\Users\Antony\AppData\Local\Temp\go-build162267415\github.com
andlabs\ui_test_obj_test\control_windows.cgo2.o" "C:\Users\Antony\AppDa
ta\Local\Temp\go-build162267415\github.com\andlabs\ui_test_obj_test\d
ialog_windows.cgo2.o" "C:\Users\Antony\AppData\Local\Temp\go-build16226741
5\github.com\andlabs\ui_test_obj_test\group_windows.cgo2.o" "C:\Users
Antony\AppData\Local\Temp\go-build162267415\github.com\andlabs\ui_test
_obj_test\imagelist_windows.cgo2.o" "C:\Users\Antony\AppData\Local\Temp
go-build162267415\github.com\andlabs\ui_test_obj_test\label_windows.cgo2
.o" "C:\Users\Antony\AppData\Local\Temp\go-build162267415\github.com\and
labs\ui_test_obj_test\progressbar_windows.cgo2.o" "C:\Users\Antony\AppD
ata\Local\Temp\go-build162267415\github.com\andlabs\ui_test_obj_test
spinbox_windows.cgo2.o" "C:\Users\Antony\AppData\Local\Temp\go-build162267
415\github.com\andlabs\ui_test_obj_test\tab_windows.cgo2.o" "C:\Users
Antony\AppData\Local\Temp\go-build162267415\github.com\andlabs\ui_test
_obj_test\table_windows.cgo2.o" "C:\Users\Antony\AppData\Local\Temp\go-b
uild162267415\github.com\andlabs\ui_test_obj_test\textbox_windows.cgo2.o
" "C:\Users\Antony\AppData\Local\Temp\go-build162267415\github.com\andla
bs\ui_test_obj_test\textfield_windows.cgo2.o" "C:\Users\Antony\AppData
\Local\Temp\go-build162267415\github.com\andlabs\ui_test_obj_test\uita
sk_windows.cgo2.o" "C:\Users\Antony\AppData\Local\Temp\go-build162267415
github.com\andlabs\ui_test_obj_test\window_windows.cgo2.o" "C:\Users\An
tony\AppData\Local\Temp\go-build162267415\github.com\andlabs\ui_test_
obj_test\area_windows.o" "C:\Users\Antony\AppData\Local\Temp\go-build1622
67415\github.com\andlabs\ui_test_obj_test\basicctrls_windows.o" "C:\Use
rs\Antony\AppData\Local\Temp\go-build162267415\github.com\andlabs\ui_t
est_obj_test\comctl32_windows.o" "C:\Users\Antony\AppData\Local\Temp\go
-build162267415\github.com\andlabs\ui_test_obj_test\common_windows.o" "C
:\Users\Antony\AppData\Local\Temp\go-build162267415\github.com\andlabs
ui_test_obj_test\container_windows.o" "C:\Users\Antony\AppData\Local\T
emp\go-build162267415\github.com\andlabs\ui_test_obj_test\control_windo
ws.o" "C:\Users\Antony\AppData\Local\Temp\go-build162267415\github.com\a
ndlabs\ui_test_obj_test\dialog_windows.o" "C:\Users\Antony\AppData\Loc
al\Temp\go-build162267415\github.com\andlabs\ui_test_obj_test\imagelis
t_windows.o" "C:\Users\Antony\AppData\Local\Temp\go-build162267415\github
.com\andlabs\ui_test_obj_test\init_windows.o" "C:\Users\Antony\AppData
\Local\Temp\go-build162267415\github.com\andlabs\ui_test_obj_test\tab
_windows.o" "C:\Users\Antony\AppData\Local\Temp\go-build162267415\github.
com\andlabs\ui_test_obj_test\table_windows.o" "C:\Users\Antony\AppData
\Local\Temp\go-build162267415\github.com\andlabs\ui_test_obj_test\uit
ask_windows.o" "C:\Users\Antony\AppData\Local\Temp\go-build162267415\gith
ub.com\andlabs\ui_test_obj_test\window_windows.o" -g -O2 -Wl,-r -nostdlib
-Wl,--start-group -lmingwex -lmingw32 -Wl,--end-group "C:/Program Files/mingw-w
64/x86_64-4.9.2-posix-seh-rt_v3-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4
.9.2/libgcc.a"
"C:\Go\pkg\tool\windows_amd64\6g.exe" -o "C:\Users\Antony\AppData\Local
\Temp\go-build162267415\github.com\andlabs\ui_test\github.com\andlabs
ui.a" -trimpath "C:\Users\Antony\AppData\Local\Temp\go-build162267415" -p
github.com/andlabs/ui -D /C/Users/Antony/Go/src/github.com/andlabs/ui -I "C:
Users\Antony\AppData\Local\Temp\go-build162267415" -pack "C:\Users\Antony
\Go\src\github.com\andlabs\ui\area.go" "C:\Users\Antony\Go\src\github
.com\andlabs\ui\basicctrls.go" "C:\Users\Antony\Go\src\github.com\andla
bs\ui\container.go" "C:\Users\Antony\Go\src\github.com\andlabs\ui\cont
rol.go" "C:\Users\Antony\Go\src\github.com\andlabs\ui\dialog.go" "C:\Us
ers\Antony\Go\src\github.com\andlabs\ui\doc.go" "C:\Users\Antony\Go\s
rc\github.com\andlabs\ui\events_notdarwin.go" "C:\Users\Antony\Go\src\g
ithub.com\andlabs\ui\grid.go" "C:\Users\Antony\Go\src\github.com\andlab
s\ui\imagelist.go" "C:\Users\Antony\Go\src\github.com\andlabs\ui\simpl
egrid.go" "C:\Users\Antony\Go\src\github.com\andlabs\ui\stack.go" "C:\U
sers\Antony\Go\src\github.com\andlabs\ui\table.go" "C:\Users\Antony\Go
\src\github.com\andlabs\ui\uitask.go" "C:\Users\Antony\Go\src\github.c
om\andlabs\ui\window.go" "C:\Users\Antony\Go\src\github.com\andlabs\ui
\yz_icons_test.go" "C:\Users\Antony\Go\src\github.com\andlabs\ui\yz_rep
aint_test.go" "C:\Users\Antony\Go\src\github.com\andlabs\ui\zz_test.go"
"C:\Users\Antony\AppData\Local\Temp\go-build162267415\github.com\andlabs
\ui_test_obj_test_cgo_gotypes.go" "C:\Users\Antony\AppData\Local\Tem
p\go-build162267415\github.com\andlabs\ui_test_obj_test\area_windows.cg
o1.go" "C:\Users\Antony\AppData\Local\Temp\go-build162267415\github.com
andlabs\ui_test_obj_test\button_windows.cgo1.go" "C:\Users\Antony\AppDa
ta\Local\Temp\go-build162267415\github.com\andlabs\ui_test_obj_test\c
heckbox_windows.cgo1.go" "C:\Users\Antony\AppData\Local\Temp\go-build16226
7415\github.com\andlabs\ui_test_obj_test\common_windows.cgo1.go" "C:\Us
ers\Antony\AppData\Local\Temp\go-build162267415\github.com\andlabs\ui_
test_obj_test\container_windows.cgo1.go" "C:\Users\Antony\AppData\Local
Temp\go-build162267415\github.com\andlabs\ui_test_obj_test\control_wind
ows.cgo1.go" "C:\Users\Antony\AppData\Local\Temp\go-build162267415\github
.com\andlabs\ui_test_obj_test\dialog_windows.cgo1.go" "C:\Users\Antony
\AppData\Local\Temp\go-build162267415\github.com\andlabs\ui_test_obj_t
est\group_windows.cgo1.go" "C:\Users\Antony\AppData\Local\Temp\go-build16
2267415\github.com\andlabs\ui_test_obj_test\imagelist_windows.cgo1.go" "
C:\Users\Antony\AppData\Local\Temp\go-build162267415\github.com\andlabs
\ui_test_obj_test\label_windows.cgo1.go" "C:\Users\Antony\AppData\Local
\Temp\go-build162267415\github.com\andlabs\ui_test_obj_test\progressba
r_windows.cgo1.go" "C:\Users\Antony\AppData\Local\Temp\go-build162267415
github.com\andlabs\ui_test_obj_test\spinbox_windows.cgo1.go" "C:\Users
Antony\AppData\Local\Temp\go-build162267415\github.com\andlabs\ui_test
_obj_test\tab_windows.cgo1.go" "C:\Users\Antony\AppData\Local\Temp\go-bu
ild162267415\github.com\andlabs\ui_test_obj_test\table_windows.cgo1.go"
"C:\Users\Antony\AppData\Local\Temp\go-build162267415\github.com\andlabs
\ui_test_obj_test\textbox_windows.cgo1.go" "C:\Users\Antony\AppData\Lo
cal\Temp\go-build162267415\github.com\andlabs\ui_test_obj_test\textfie
ld_windows.cgo1.go" "C:\Users\Antony\AppData\Local\Temp\go-build162267415
\github.com\andlabs\ui_test_obj_test\uitask_windows.cgo1.go" "C:\Users
Antony\AppData\Local\Temp\go-build162267415\github.com\andlabs\ui_test
_obj_test\window_windows.cgo1.go"
cp C:\Users\Antony\Go\src\github.com\andlabs\ui\winapi_windows.h $WORK\github.co
m\andlabs\ui_test_obj_test\winapi_GOOS.h
pack r "C:\Users\Antony\AppData\Local\Temp\go-build162267415\github.com
andlabs\ui_test\github.com\andlabs\ui.a" "C:\Users\Antony\AppData\Loca
l\Temp\go-build162267415\github.com\andlabs\ui_test_obj_test_cgo_impo
rt.6" "C:\Users\Antony\AppData\Local\Temp\go-build162267415\github.com\a
ndlabs\ui_test_obj_test_cgo_defun.6" "C:\Users\Antony\AppData\Local
Temp\go-build162267415\github.com\andlabs\ui_test_obj_test_all.o" # in
ternal
mkdir -p $WORK\github.com\andlabs\ui_test
cd $WORK\github.com\andlabs\ui_test
"C:\Go\pkg\tool\windows_amd64\6g.exe" -o "C:\Users\Antony\AppData\Local
\Temp\go-build162267415\github.com\andlabs\ui_test\main.a" -trimpath "C:
\Users\Antony\AppData\Local\Temp\go-build162267415" -p testmain -complete
-D "" -I "C:\Users\Antony\AppData\Local\Temp\go-build162267415\github.com
\andlabs\ui_test" -I "C:\Users\Antony\AppData\Local\Temp\go-build16226
7415" -pack "C:\Users\Antony\AppData\Local\Temp\go-build162267415\github.
com\andlabs\ui_test_testmain.go"
cd .
"C:\Go\pkg\tool\windows_amd64\6l.exe" -o "C:\Users\Antony\AppData\Local
\Temp\go-build162267415\github.com\andlabs\ui_test\ui.test.exe" -L "C:
Users\Antony\AppData\Local\Temp\go-build162267415\github.com\andlabs\ui
_test" -L "C:\Users\Antony\AppData\Local\Temp\go-build162267415" -w -extl
d=gcc "C:\Users\Antony\AppData\Local\Temp\go-build162267415\github.com\a
ndlabs\ui_test\main.a"

testmain

github.com/andlabs/ui(.text): undefined: github.com/andlabs/ui(/1837)
github.com/andlabs/ui(.text): undefined: github.com/andlabs/ui(/1876)
github.com/andlabs/ui(.text): undefined: github.com/andlabs/ui(/1876)
github.com/andlabs/ui(.text): undefined: github.com/andlabs/ui(/1876)
github.com/andlabs/ui(.text): undefined: github.com/andlabs/ui(/1812)
github.com/andlabs/ui(.text): undefined: github.com/andlabs/ui(/1784)
github.com/andlabs/ui(.text): undefined: github.com/andlabs/ui(/1756)
github.com/andlabs/ui(.text): undefined: github.com/andlabs/ui(/1812)
github.com/andlabs/ui(.text): undefined: github.com/andlabs/ui(/1734)
github.com/andlabs/ui(.text): undefined: github.com/andlabs/ui(/1812)
github.com/andlabs/ui(.text): undefined: github.com/andlabs/ui(/1698)
github.com/andlabs/ui(.text): undefined: github.com/andlabs/ui(/1876)
github.com/andlabs/ui(.text): undefined: github.com/andlabs/ui(/1837)
github.com/andlabs/ui(.text): undefined: github.com/andlabs/ui(/1876)
github.com/andlabs/ui(.text): undefined: github.com/andlabs/ui(/1876)
github.com/andlabs/ui(.text): undefined: github.com/andlabs/ui(/1837)
github.com/andlabs/ui(.text): undefined: github.com/andlabs/ui(/1876)
github.com/andlabs/ui(.text): undefined: github.com/andlabs/ui(/1876)
github.com/andlabs/ui(.text): undefined: github.com/andlabs/ui(/1837)
github.com/andlabs/ui(.text): undefined: github.com/andlabs/ui(/1876)
github.com/andlabs/ui(.text): undefined: github.com/andlabs/ui(/1876)
too many errors
$WORK\github.com\andlabs\ui_test\ui.test.exe
FAIL github.com/andlabs/ui [build failed]

documentation and examples

in Your readme You state that You're open to new feature requests.

I have one. Quite boring, but it can help improve this repository, and make it even more popular.
DOCS! :)

The wiki getting started guide is excellent(both form and content), but wiki itself is lacking. It even states, that more advanced examples are elsewhere, but they're nowhere there.

Such a moment - not being sure what HAVE to be done next is usually a good one to fill the docs, wiki, and examples while waiting for some enlightment or great ideas. Especially when so much work was already (I'm referring to godoc now).

Even such a simple thing as linking https://godoc.org/github.com/andlabs/ui in readme file would be as simple, as nice and useful.

missing plan 9 support

a native (go) implementation of devdraw would be the fastest way to implement plan 9 support. alternatively, once cgo works on plan 9, one could use the native graphics library.

Request: SetChecked and SetIndex funcs

Hi,

I'm hoping to use this awesome library to create some apps that remember user choices between executions. But I can't see a way to automatically check a checkbox or select an item in a combobox.

Thanks.

Redraw problems on Windows

I'm using Windows 8.1, 64 bits, and the wakeup and test applications displays some redraw problems. Here's an example (the window is exactly as it started):

ui-redraw

The test application displayed similar problems but I couldn't capture them. It's not visible in gif above, but the borders of the text fields also flicker when resizing the window.

Problem with sync.WaitGroup and gtk?

I'm developing on Debian. I'm trying to use sync.WaitGroup in a program using the ui library, and it keeps dumping with this message:

[xcb] Unknown sequence number while processing queue
[xcb] Most likely this is a multi-threaded client and XInitThreads has not been called
[xcb] Aborting, sorry about that.

It could be that I just don't understand what I'm doing yet (quite likely). But I also found this: http://stackoverflow.com/questions/18647475/threading-problems-with-gtk

Call XInitThreads(). This should be done before gtk_init, that will stop the messages!

ProgressBar?

I faintly remember there being a ProgressBar widget in the early examples.
Were you forced to drop it or is it on the rewrite TODO? :)

Access to higher-fidelity events for TextField

At the moment, TextField only supports the OnChanged event callback, which triggers every time the user makes an edit to the field (often just a single character change). It is hard to build useful features on top of this, because you do not know if the user pressed a key, pasted, released a key, erased a character, etc. Furthermore, you cannot detect actions such as the user pressing the enter key in the field, because this does not change the contents of the text field. Having a finer-grained set of events for TextField (keyUp and keyDown come to mind) would be extremely useful, and would enable much richer interactions with input fields.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.